uncle6me-web
|
90777e3877
|
fix(auth-recipe): 回灌 telegram/line_notify/kbdb 種子,補 AuthInjectSpec.path(修 source/live 漂移)
issue #13 升級:根因不只 acr parts 殘留,是 auth-recipe-seeds.ts source 漏了 3 個 static_key
auth recipe(telegram/line_notify/kbdb),但 prod KV 手動 seed 過 → 任何全新 self-hosted
`POST /init/seed` 只 seed 23 個、漏 telegram → self-host(leo21c/mira)telegram_send 的
auth_service:'telegram' resolve 不到 → {{auth.bot_token}} 注入空 → telegram 發訊壞掉。
實測 smoking gun(2026-06-29):
- prod cypher.arcrun.dev/auth-recipes = 27 個(含 telegram)
- self-host arcrun-cypher-executor.leo21c.workers.dev = 23 個(無 telegram/line_notify/kbdb)
修法(資料/型別,非業務邏輯,守 mindset §1 不建 component):
- auth-recipe-seeds.ts 補 telegram(inject.path bot_token)/line_notify(header Bearer)/kbdb(header Bearer)
- recipes.ts AuthInjectSpec 補 path?(WASM auth_static_key + SDD §六早有此欄、source 介面漏 → tsc 擋)
- google_user(oauth2)暫不回灌:內嵌 client_secret 不可進 git + 介面無 oauth2 欄 → 留 Phase D
形態取自 prod GET /auth-recipes/{service};設計權威 auth-recipe.md §六(telegram path)/§七(kbdb 共用)。
telegram 自此與 notion(header)/gsheets(service_account) 同一條 recipe+auth-recipe 鏈,一致。
tsc 全綠;local 模擬 token-in-path 注入 PASS。
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
|
2026-06-29 12:37:19 +08:00 |
|
uncle6me-web
|
764f657201
|
merge: issue #13 步驟2 清 parts.ts 降級零件殘留
telegram/gmail/sheets/line 改走 recipe canonical_id、移除已刪 ai_transform。
TS tsc 過、gmail 讀取留 TODO 不硬塞。自動派工第 2 件共用框架 PR。
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
|
2026-06-28 16:06:54 +08:00 |
|
uncle6me-web
|
225aa9f9e7
|
清 parts.ts 降級零件殘留:telegram/gmail/sheets/line 改走 recipe、移除已刪的 ai_transform(issue #13 步驟2)
telegram/gmail/google_sheets/line_notify 已於 2026-05-29 Phase 2 降級為 recipe,
但 acr parts 仍列舊 component: 形態誤導 CC。參照 notion 樣板改成「走 recipe」描述 +
canonical_id 對齊 api-recipe-seeds.ts(telegram_send/gmail_send/google_sheets_append/line_notify_send)。
ai_transform_compile/run 已刪除(mindset §2),整段移除。
canonical_id 均已核實存在於 cypher-executor/src/lib/api-recipe-seeds.ts。
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
|
2026-06-28 16:05:39 +08:00 |
|
uncle6me-web
|
caa8e103ff
|
merge: issue #13 步驟1 telegram 示例改 recipe(gmail 留 TODO)
PR review 抓出 gmail_send 假綠已擋下,只併對的 telegram 三處。
自動派工首次共用框架 PR 閉環:subagent 診斷→改→獨立 review→拆併。
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
|
2026-06-28 15:47:01 +08:00 |
|
uncle6me-web
|
a234201235
|
修正示例 yaml:telegram 改用 recipe canonical_id;gmail 讀取留 TODO(issue #13 步驟1)
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
|
2026-06-28 15:45:50 +08:00 |
|
uncle6me-web
|
f21906ca6a
|
chore(wiki): 本 session capture(薄殼防複發/歷史債卡 + mistakes #19-21 + status)
兩次 /wiki-capture 累積的知識落盤:
- cards/decisions/ 新卡:薄殼防複發-能力對照表加smoke、薄殼規則晚於實作-MCP漂移是歷史債
(+ 00-INDEX 編入,決策桶現 15 張)
- mistakes #19 死端點假綠(grep route/smoke 驗端點存在)
- mistakes #20 gitignored 檔無 git 史(時間靠檔內註記)
- mistakes #21 wrangler.toml services=[...] inline 在 [vars] 後被吸成 vars.services(issue #12)
- decisions-summary:薄殼防複發機制、workflow description 由操盤 CC 據實生成
- status:本 session #8/#11/#12 進度 + merge 結果
純記憶/文檔,無 code。
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
|
2026-06-28 01:43:26 +08:00 |
|
uncle6me-web
|
222a382d49
|
fix(#12): MCP service binding 用 [[services]] array-of-tables(修 self-hosted CYPHER_EXECUTOR 缺失)
根因(非總管原假設的 strip 誤清):mcp/wrangler.toml 用 inline `services = [...]` 且在
[vars] table 之後 → TOML 把它吸成 `vars.services`(普通 env var 陣列)而非頂層 service
bindings → wrangler 看不到 CYPHER_EXECUTOR/KBDB/COMPONENT_REGISTRY binding。
self-hosted 部署 injectMultiTenant 往 [vars] 注入 MULTI_TENANT 後此問題暴露
(MCP 報 "CYPHER_EXECUTOR service binding not configured")。
修法:inline → [[services]] array-of-tables(獨立頂層 table,不受 [vars] 影響,
對齊官方 cypher-executor/wrangler.toml 慣例)。
本地驗證(wrangler deploy --dry-run,模擬 self-hosted 注入 MULTI_TENANT):
- 修法後:env.CYPHER_EXECUTOR/COMPONENT_REGISTRY/KBDB 三 binding 都在 ✅
- 對照舊 inline:binding 全消失、變成 env.services(一個 JSON env var)❌ 坐實根因
⚠️ 端到端待 leo21c acr update 重部 MCP(CC 跑不了 leo21c 部署)。修好後
MCP validate/recipe_search 不再報 binding not configured;連帶解鎖 #11 self-hosted
u6u_list/search_workflows + mira #6 門鈴 + acr push 端到端。#12 留 open 待端到端。
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
|
2026-06-27 23:32:16 +08:00 |
|
uncle6me-web
|
5d38b599fd
|
feat(#11): CLI/MCP 薄殼對齊 — P0 run 死端點修 + P1 list 同源 + R4 防複發機制
P0 CLI run 改打 /webhooks/named/:name/trigger 真端點(原打 /webhooks/<name> 死端點 404)。
P1 CLI/MCP list 收斂到 GET /webhooks/named(KV 同源):
- CLI list 停 CfKvClient 直連 KV,順手修 key 前綴 bug(原讀 workflow: 對不上部署的 {apiKey}:wf:)
+ self-hosted 不再需 CF API token。
- MCP u6u_list_workflows 從讀 KBDB record 改讀 GET /webhooks/named(registry 簽名加 partnerToken)。
R4 防複發機制:
- cli-mcp-capability-matrix.md(13 能力對照,docs/ gitignored 不進此 commit,僅本機)
- thin-shell-smoke.sh(對真端點斷言非 404,本機手動跑非 CI/cron)
- 機制自驗:注入故意死端點當場攔下、exit 1。
依賴關係:本批依賴 #8(webhooks-named GET 補 description/created_at 欄位、search/backfill 端點),
故疊在 feat/issue-8 branch 上、作獨立 commit。
⚠️ tsc 綠 = code done 非完成。端到端待 leo21c(CLI/MCP 真打通 200 非 404、smoke 對已部署 prod
全綠——目前 smoke 揭 #8 search/backfill 在 prod 仍 404=未部署)。P2 validate 收斂待 #10、
tag resource_id 語意債待方向①。#11 留 open。
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
|
2026-06-27 19:36:58 +08:00 |
|
uncle6me-web
|
558e80b4da
|
chore(wiki): wiki-init 補骨架 + system-dev-template 安裝/更新腳本
wiki 已初始化過(push 檔活躍維護),本次補從沒建的 pull 層 + arcrun 化範本:
- cards/decisions/ 14 張決策原子卡(含 gloss/實體/typed-edge 三元組):
從 decisions-summary 全量改寫 13 + 新增「薄殼規則晚於實作-MCP漂移是歷史債」1
- TAXONOMY 從 PKM 範本換成 arcrun 軸(子系統 零件架構/cypher/credential/recipe/kbdb/
薄殼/部署/平台原則 + 形態 架構決策/踩坑/機制說明/禁令/案例經驗)
- principles 填 13 條跨全局原則(從 rules/ + mindset 蒸餾)
- INDEX 真實視圖(子系統角度 + 決策角度,指向 cards)
- system-dev/scripts/ + scripts/ install/update 安裝腳本(template 接入)
純基建/文檔,無業務 code(功能 code 見前一 commit)。
raw source(docs/)0 異動、wiki 卡際連結無斷鏈。
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
|
2026-06-27 17:53:37 +08:00 |
|
uncle6me-web
|
934b9265d9
|
feat: KBDB self-hosted 查詢 + embed 模組 + thin-shell 收窄 + search_workflow(code done 待端到端)
按 issue 分段標明(檔 #5/#8 改動交疊處無法乾淨拆檔,故併一個 commit):
#4 thin-shell §3.1 自力救濟階梯 + code-node 規則(純文檔/規則,code-node 零件未實作)
#5 KBDB source filter(json_extract metadata_json 零建表)+ 能力對照;documents 聚合與
DELETE proxy 部分擱置等頂層 T8
#7 base embed 模組(kbdb/src/embed.ts)+ vectorize 開關(deploy/config/wrangler.toml 註解範本)
+ 語義查詢降級閉環(mode=semantic 未開→LIKE+capability_hint)
#8 部分(workflow-discovery):
- KBDB /entries/search 加 base 通用 entry_type filter(entry-crud/embed/route/kbdb-proxy 透傳)
- /webhooks/named 強制 description(空→400,訊息要求操盤 AI 據實寫一句)
- 部署雙寫 entry_type=workflow embeddable entry(waitUntil 非阻塞,供 search)
- cypher GET /workflows/search + MCP u6u_search_workflows(優先語意、降級 hint)
- cypher POST /workflows/backfill-search-entries(無 desc 列出不編造)
- GET /webhooks/named 補回 description/created_at 欄位(為 list 來源收斂備)
⚠️ tsc 綠 = code done,非完成(mindset §7 禁假綠):
- #7/#8 端到端待 leo21c 部署驗(Vectorize 需官方憑證、CC 跑不了)
- #8 ①-a(MCP deploy 改打 /webhooks/named)未做、MCP deploy 那半仍 404
- #8 端到端(強制填擋空/語義命中/租戶隔離/降級 hint)未驗
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
|
2026-06-27 17:52:52 +08:00 |
|
uncle6me-web
|
013b55e97e
|
chore(gitignore): 排除 D1 備份/匯出 *.sql(含整庫全量資料=機敏,防誤 commit)
issue #3 官方庫誤寫清理時 wrangler d1 export 出 45MB 整庫快照,
發現 .gitignore 沒排除 .sql → 隱患:D1 匯出含全量資料若忘刪可能誤 commit。
補 *.sql / backup-*.sql 規則防患。
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
|
2026-06-25 19:42:05 +08:00 |
|
uncle6me-web
|
b090695414
|
chore(release): cli 1.3.13(npm publish issue #2 KBDB_BASE_URL 注入修復)
deploy 不只 git——self-hosted 用戶裝 npm 套件,修復要 publish 才到用戶手上。
自動 patch bump 1.3.12→1.3.13 + CHANGELOG 記錄(同 local-deploy.sh §6 邏輯)。
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
|
2026-06-24 12:35:50 +08:00 |
|
uncle6me-web
|
ba00b98038
|
Merge: fix self-hosted KBDB_BASE_URL injection (issue #2)
self-hosted cypher 不再 fallback 到官方 kbdb;注入用戶自己帳號的 arcrun-kbdb。
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
|
2026-06-24 12:28:00 +08:00 |
|
uncle6me-web
|
9c4333defb
|
fix(cli): self-hosted 注入 cypher KBDB_BASE_URL 指向用戶自己的 kbdb(issue #2)
injectWranglerConfig 的 self-hosted 分支原本只注 database_id / MULTI_TENANT,
漏了 KBDB_BASE_URL → cypher /kbdb/* 一律指向官方 arcrun-kbdb.uncle6-me,
self-hosted 用戶資料默默寫進官方庫(隔離破損)。
比照既有注入模式,用 ctx.workerSubdomain 把 KBDB_BASE_URL 就地改寫成
arcrun-kbdb.<subdomain>.workers.dev。init 與 update 共用此注入點,一處修兩條路。
驗證:tsc --noEmit 通過;真實 cypher toml 注入 subdomain=leo21c →
KBDB_BASE_URL = "https://arcrun-kbdb.leo21c.workers.dev"。
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
|
2026-06-24 12:26:36 +08:00 |
|
uncle6me-web
|
4d6e77ff2d
|
chore(release): cli 1.3.12(local-deploy 自動 bump,含 block.md 三盲點重寫)
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
|
2026-06-15 13:20:29 +08:00 |
|
uncle6me-web
|
b1e302b3b5
|
fix(kbdb): cypher proxy 補 /kbdb/entries CRUD + report_feedback 改打 /entries
kbdb-base Phase 9.6/9.7(HANDOFF §2 缺口① + §3b 連帶):
- 9.6 cypher kbdb-proxy 補 /kbdb/entries CRUD(POST/GET list/GET :id/PATCH :id)
純轉發到 KBDB 基本盤 /entries,解鎖 mira _kbdb_client.py 主線遷移。
租戶隔離同 9.5:寫入注入 owner_id、list 強制本租戶過濾、PATCH 剝 owner_id。
刻意不開 DELETE(基本盤 delete 無 owner 檢查 → 跨租戶刪除風險)。
- 9.7 arcrun_report_feedback 從死 route /blocks 改打基本盤 /entries
(entry_type=agent-feedback)。9.4 漏網的同類修;基本盤無 /blocks → 原本 404 假紅。
順帶(HANDOFF §6 harness 表達優化):
- 重寫 cli/harness/CLAUDE.block.md 補三盲點(recipe 是公共投稿 / 缺能力補 API 不拼裝 /
自製零件退場路徑),目標 Haiku 級 CC 讀懂。
- README 零件 vs recipe 段對齊同三點。
cypher + mcp tsc exit 0。端到端 smoke test 隨後。
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
|
2026-06-15 13:06:58 +08:00 |
|
uncle6me-web
|
8f4c5dbe59
|
chore(release): cli 1.3.11 版本檔同步(含 MULTI_TENANT 注入修法)
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
|
2026-06-14 22:46:49 +08:00 |
|
uncle6me-web
|
642b61dc9f
|
fix(cli): deploy 注入 MULTI_TENANT=false 到 self-hosted worker(修 MCP 401 注入缺口)
根因(非 code bug):partner-auth.ts MULTI_TENANT 分支邏輯對,但部署沒注入
→ worker c.env.MULTI_TENANT===undefined → 走 partner-key → self-hosted 401。
mcp/wrangler.toml 的 MULTI_TENANT 原是註解掉的,injectWranglerConfig 注了
KV/WORKER_SUBDOMAIN/D1 卻漏 MULTI_TENANT。只取消註解不夠(只修手動 fork,
沒修 acr update 自動部署這條 mira 走的路)。
修法(方案①,注 vars 非 secret,self-hosted 零填寫):
- deploy.ts:DeployContext 加 selfHosted;新增 injectMultiTenant(active/註解/無行三態
→ 加進 [vars]);injectWranglerConfig 在 selfHosted 時呼叫。
- init.ts:deployCtx selfHosted:true(本就是 --self-hosted 分支)。
- update.ts:ctx selfHosted = mode==='self-hosted' || multi_tenant===false(mira 走這條)。
- mcp/wrangler.toml:# [vars] 改 active [vars](官方不含 MULTI_TENANT=多租戶;
注入加行在 [vars] 下,結構正確)。
本地驗注入(真實 export 函式 dry-run):mcp/cypher 注入後各 1 行 active
MULTI_TENANT="false" 在 active [vars] 下 → PASS。cli tsc exit 0。
端到端交棒 mira:leo21c 重跑 acr update → curl Bearer leo /mcp 應 200。
SDD: mcp-account-source.md §5.5.1。
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
|
2026-06-14 22:45:48 +08:00 |
|
uncle6me-web
|
b932d96a88
|
chore(release): cli 1.3.10 版本檔同步(deploy 腳本自動 bump)
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
|
2026-06-14 22:18:39 +08:00 |
|
uncle6me-web
|
eeafd5c094
|
fix(kbdb): searchByTemplate 真按 owner_id 過濾(修租戶隔離洩漏)
煙霧測試發現 searchByTemplate 的 `if (rec && (!owner_id || true))` 是 stub,
`|| true` 讓 owner_id 過濾失效 → 任何租戶查同 template 看得到別人的 record。
改:給 owner_id 時 JOIN entries 在 SQL 限定 e.owner_id(record 歸屬存底層
entries.owner_id,createRecord 寫入時帶);沒給才不限(內部/全域查詢)。
cypher KBDB proxy 強制注入 owner_id,故端到端隔離靠這條 SQL 落地。
searchEntries 早已正確按 owner_id 過濾,無此 bug。kbdb tsc exit 0。
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
|
2026-06-14 22:18:17 +08:00 |
|
uncle6me-web
|
a410af0b6c
|
fix(cypher): KBDB proxy 指向現役 arcrun-kbdb(舊 fallback kbdb.finally.click 已死)
煙霧測試發現 proxy fallback 寫死舊的 kbdb.finally.click(inkstone 遺留、
回 Missing token),非現役 KBDB。改:
- kbdb-proxy.ts fallback → arcrun-kbdb.uncle6-me.workers.dev(現役、無 auth)
- cypher wrangler.toml [vars] KBDB_BASE_URL 明設現役 URL(self-host fork 覆蓋自己的)
現役 arcrun-kbdb 無 auth middleware,不需 KBDB_INTERNAL_TOKEN。
cli 版本檔 1.3.8→1.3.9(deploy 腳本自動 bump,含 acr kbdb 命令)。
cypher tsc exit 0。
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
|
2026-06-14 22:16:18 +08:00 |
|
uncle6me-web
|
886a8e31d0
|
feat(kbdb,mcp): KBDB 資料層薄殼 + self-hosted MCP 認證 + cypher KBDB proxy
三件一條鏈(HANDOFF §2/§3b,kbdb-base Phase 9):
A. KBDB MCP 薄殼(9.1):mcp/src/tools/kbdb_data.ts 6 工具
template/record/query/search,調基本盤 API。鐵律:不給建表/SQL,只 template+slot。
B. MCP self-hosted 認證 401(mcp-account-source §5.5):
- partner-auth.ts:MULTI_TENANT=false 時 Bearer 明碼直接當 org_namespace,
繞 KBDB partner 驗證(對齊 cypher 的 opaque-key 模型)。官方 SaaS 行為不變、共用同碼。
- mcp-setup.ts:把 namespace/api_key 寫進 .mcp.json headers.Authorization。
- 新增 self-hosted vs SaaS 分支單測(9 tests 綠)。
C. cypher KBDB proxy(9.5)+ CLI 薄殼(9.2):
- routes/kbdb-proxy.ts 純轉發 /kbdb/* → KBDB 基本盤(KBDB_BASE_URL HTTP fetch,
不新增 service binding)。讓 CLI(只認證到 cypher)能達獨立 KBDB worker。
- 租戶隔離:X-Arcrun-API-Key 自動當 owner_id 注入 records/entries(強制覆寫防跨租戶);
templates 全域共享(虛擬表定義是 schema 非資料)。
- cli/src/commands/kbdb.ts:acr kbdb template/record/query/search,與 MCP kbdb_* 同能力。
- kbdb base:entries 加 page_name 過濾(9.3)。
cypher + cli + mcp tsc exit 0。未驗收:端到端需 deploy + KBDB_BASE_URL 可達後實測。
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
|
2026-06-14 22:12:32 +08:00 |
|
uncle6me-web
|
b9bf3ec3d5
|
fix(mcp,kbdb): LI M3 skills/examples 改打基本盤 /entries(修死 route 假綠)
skills/examples 整條從舊 v3 /blocks /search 改打 KBDB 基本盤 /entries
(entry_type 對應)。5 個已上線 MCP 工具原本對死 route 回 404(假綠),
現修正;sync-registry-to-kbdb.py 改打 /entries idempotent upsert。
誠實降級:基本盤無語義 search → LIKE 關鍵字(embed 模組上線再換回語義)。
順手 gitignore scripts/__pycache__/。
對應 kbdb-base tasks 9.4 / llm-interface M3.2/M3.4。mcp + kbdb tsc exit 0。
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
|
2026-06-14 22:12:11 +08:00 |
|
uncle6me-web
|
ef1f789525
|
docs(readme): acr update 補 --force flag + 未變動跳過說明(CLI 1.3.7/1.3.8)
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
|
2026-06-13 16:02:05 +08:00 |
|
uncle6me-web
|
e5b1ce5420
|
chore(release): cli 1.3.8 版本檔同步
|
2026-06-13 14:55:08 +08:00 |
|
uncle6me-web
|
b778086f4a
|
perf(self-hosted): acr update 共享一次 install 取代 23 個 worker 各裝 324MB
壓測 2026-06-12 真因:每個 worker 各 pnpm install ~324MB node_modules(23× 重複,
全是 hono+wrangler)→ 好幾分鐘。改成 tarball root 裝一次(hono+wrangler+tier2 額外
zod/mcp-sdk/yaml),各 worker 靠 node 往上 resolve(dry-run 驗證 tier1+tier2 都 bundle 成功)。
207MB×1 取代 324MB×23。疊加 manifest 跳過 → 第二次 update 近乎瞬間。
共享失敗自動退回各 worker 自裝(不破壞既有路徑)。
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
|
2026-06-13 14:45:30 +08:00 |
|
uncle6me-web
|
f336fb2fca
|
chore(release): cli 1.3.7 版本檔同步
|
2026-06-13 13:40:34 +08:00 |
|
uncle6me-web
|
b44adda6d2
|
feat(self-hosted): acr update 內容指紋跳過未變動 worker(22 個沒變的不再白跑)+ --force 強制全部重部
壓測 2026-06-12:22/23 成功後重跑仍全部 pnpm install + wrangler deploy。
manifest 存 ~/.arcrun/deploy-manifest.json,指紋含注入後內容+accountId(換帳號/KV 自動重部),
只在成功後記錄(失敗者下次必重試)。
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
|
2026-06-13 13:35:15 +08:00 |
|
uncle6me-web
|
5a8d27673b
|
chore(release): cli 1.3.6 版本檔同步
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
|
2026-06-12 23:30:25 +08:00 |
|
uncle6me-web
|
6e92ca0372
|
fix(self-hosted): acr update 10/23 部署失敗根因——pnpm 目錄補 commit pnpm-workspace.yaml(ERR_PNPM_IGNORED_BUILDS)+ CLI 失敗帶 stderr 尾段
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
|
2026-06-12 23:25:46 +08:00 |
|
uncle6me-web
|
38a3cccbee
|
chore(release): cli package-lock 1.3.5 版本同步
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
|
2026-06-12 21:45:39 +08:00 |
|
uncle6me-web
|
b17d0080ee
|
chore(release): cli 1.3.5 + local-deploy.sh 全形字緊鄰 $VAR 的 set -u crash 修復(同 8346596 根因)
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
|
2026-06-12 20:19:52 +08:00 |
|
uncle6me-web
|
35cdda7061
|
fix(cli): acr update 假綠與沉默修復——部署部分失敗必須印出、deploy 迴圈逐 worker 進度、migrate 錯誤印 server 回應
- update.ts: result.message 含失敗清單時不再被「✓ 部署完成」蓋掉(404 重跑 3 次找不到根因的元兇)
- update.ts: migrate-cron-index 非 2xx 印 response body 前 200 字 + 404/500 含義提示
- deploy.ts: downloadAndDeploy 逐 worker 印 [i/N] 進度(原本 20+ worker 靜默部署像當機)
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
|
2026-06-11 08:04:22 +08:00 |
|
uncle6me-web
|
1af7655ac6
|
fix(mcp-self-hosted): KBDB binding 指向不存在的 service + kbdb worker 未部署
self-hosted MCP failed 根因(壓測 2026-06-10):
1. mcp/wrangler.toml: KBDB service binding 綁 'inkstone-kbdb-api'(全 repo 僅此一處,
不存在的舊名)→ 改成實際 worker 名 'arcrun-kbdb'(官方+self-hosted 共用)。
2. deploy.ts: self-hosted 部署清單漏了 kbdb worker(只有 cypher/registry/mcp)→
D1 arcrun-kbdb 有建但 worker 本體沒部署 → KBDB binding 指向不存在 service →
partnerAuthMiddleware 每個 MCP 認證請求都 throw。加 'kbdb' 進部署清單。
D1 id 注入已涵蓋(injectWranglerConfig 跑 tier2,kbdb 現在在 tier2)。
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
|
2026-06-11 00:08:25 +08:00 |
|
uncle6me-web
|
eba87b9ea9
|
fix(deploy): release-check 全形括號 set-u crash + pnpm allowBuilds 範本未填
- check-release.sh: 5 處 $VAR( → ${VAR}(,修 set -u unbound var crash
(全形括號 U+FF09 緊貼變數名被 bash 併入變數名 → 非零退出 → 誤判 git 未同步擋 deploy)
- cypher-executor/ + auth_static_key/ pnpm-workspace.yaml: allowBuilds 改真布林
(原 'set this to true or false' 範本 → pnpm install 拒絕 → deploy 掛)
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
|
2026-06-10 23:14:57 +08:00 |
|
uncle6me-web
|
8346596ceb
|
fix(release-check): brace-delimit $VAR before full-width parens (set -u unbound var crash)
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
|
2026-06-10 17:31:28 +08:00 |
|
uncle6me-web
|
2ff51f00ca
|
chore(cli): acr update 下載/解壓進度提示(chalk gray)
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
|
2026-06-10 16:46:58 +08:00 |
|
uncle6me-web
|
da84425d25
|
feat(credential-injection): {{credential.X}} 用戶面語法(credential-primitives §8)
壓測 401 根因:{{credential.X}} 系統沒實裝,三條 template 展開路徑都不認
credential. namespace → 注入空值 → 目標 API 401(test_arcrun/5 Haiku 實證)。
修法(design §8,richblack 確認方向 B「讓 {{credential.X}} 真的能用」):
- auth_static_key 加 resolve_credentials action:給 names → WASM 內 kv_get +
crypto_decrypt → 回明文 map(不查 recipe、缺則誠實報錯)
- auth-dispatcher 加 resolveCredentialRefs:遞迴偵測 {{credential.X}} → 交 WASM
解密 → 回填(無 ref 則零開銷不打 WASM)
- graph-executor 在 node.data interpolate 後呼叫,不碰 ENCRYPTION_KEY(rule 02 §2.2)
解密全程在 WASM,TS 只偵測+回填。tinygo build OK + tsc 0 + §2.2 自檢綠。
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
|
2026-06-10 13:55:31 +08:00 |
|
uncle6me-web
|
465c505000
|
fix(execution-truth): 修系統對 401 假綠根因 + acr run self-hosted + D1-in-update
Haiku 自主壓測(test_arcrun/5)暴露的真 bug,逐一修復:
1. 假綠根因:http_request host function 丟掉 HTTP status code(main.go:112 架構債)
→ 非 2xx(如 Notion 401)被判 success → 引擎自己對失敗報成功。
修:host fn 非 2xx 回 {error,status,body} envelope,既有判定鏈正確識別。
http_request/claude_api/kbdb_upsert_block/km_writer 已修(4 worker deploy);
auth_service_account 自有 OAuth 判定不套。
2. acr run self-hosted:原一律走 /webhooks/<name>(需先 push)→ 沒 push 回 404 純文字
→ res.json() 爆假錯誤。修:本機有 YAML 走玩法一 /cypher/execute 直接執行(三模式一致)
+ res.ok 擋非 2xx + findWorkflowYaml 容忍 .yaml 副檔名。
3. D1-in-update:D1 只在 init 建一次,update 漏建 → token 補權限後無冪等補建路徑。
修:update 也 ensureD1Database(已驗證 D1 建起 count:1)。
4. CF token 教學漏 D1:llms.txt/.env.example 加「Account/D1/Edit」必勾 + init/preflight
訊息指明 token 缺 D1 權限的修法。
CLI 1.3.4 publish。Haiku 壓測結論:onboarding 治好(裝+init 沒跳過、建 recipe 不建零件),
但仍會假綠(curl 繞過/D1 沒建謊報)→ 印證執行真相要系統能驗、不信 AI 自報。
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
|
2026-06-09 22:12:09 +08:00 |
|
uncle6me-web
|
c152f5fc1d
|
feat(onboarding+kbdb): 8.P0 cron 止血 + §7.8 onboarding + .env.example 範本
kbdb-base 8.P0:scheduled.ts cron 每分鐘 KV list → 單一 key get(lib/cron-index.ts);
webhooks-named 維護單 key + 一次性 migrate-cron-index;acr update 自動遷移。1440 list/日 → 0。
self-hosted-init §7.8 onboarding:
P0 init 偵測+裝完驗收(lib/preflight.ts,pip 式,冪等)
P1 acr whoami(+--json)+ MCP arcrun_whoami(AI 不繞 CLI 猜帳號)
P2 mcp-setup 寫完印「請重啟 client」
P3(部分)repo .env.example 範本(每格白話說明、值留空)+ llms.txt 教 AI 幫用戶 cp 建 .env
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
|
2026-06-09 19:15:51 +08:00 |
|
uncle6me-web
|
c5d8924fb2
|
feat(harness): 冷啟動環境強制檢查(exit 2 擋住)
- pre-cold-startup-check.sh:5 項環境檢查(config / api_key / .mcp.json / acr / D1)
- init.ts:init 末尾調用 hook,失敗直接 exit 2
- 機制強制,不靠提醒 — 環境檢查失敗用戶必須修復後重跑 acr init
解決 Haiku 假綠問題(mistakes.md §11 對應修復)
Co-Authored-By: Claude Haiku 4.5 <noreply@anthropic.com>
|
2026-06-08 15:40:04 +08:00 |
|
uncle6me-web
|
9438d1f351
|
chore: 完整 wiki 系統 + docs 文件遷移 + test_arcrun/4 任務框架
- docs/ 6 層分類結構建立(vision/architecture/specs/guides/records/user)
- .agents/specs/ 遷移到 docs/3-specs/,已清空原位置
- .claude/wiki/ 核心文檔:mistakes.md / decisions-summary.md / status.md / INDEX.md
- CLAUDE.md 更新:SDD 路徑改為 docs/3-specs/,加 wiki 讀取順序表
- test_arcrun/4/ 新建任務框架(TASK/PROMPT/異常記錄模板)
- 長期記憶系統就緒,防止 LLM 遺忘決策和重複錯誤
Co-Authored-By: Claude Haiku 4.5 <noreply@anthropic.com>
|
2026-06-08 15:36:22 +08:00 |
|
uncle6me-web
|
d617793325
|
chore(cli): bump 1.3.3 (MCP self-hosted discovery)
|
2026-06-08 13:45:05 +08:00 |
|
uncle6me-web
|
d84d6fc0ec
|
fix(mcp): POST /mcp route (not /mcp/mcp)
basePath = '/mcp' + app.post("/") = POST /mcp
之前是 app.post("/mcp") 導致 /mcp/mcp 雙層,發請求到 /mcp 只得 404。
Co-Authored-By: Claude Haiku 4.5 <noreply@anthropic.com>
|
2026-06-08 13:44:33 +08:00 |
|
uncle6me-web
|
2b46bea764
|
fix(cli): MCP self-hosted discovery + config setup
- deploy.ts: discoverWorkerDirs 掃 mcp worker + 回傳 mcpUrl(對內 /mcp 端點)
- init.ts: initSelfHosted 寫入 config.mcp_url + 重跑 cmdMcpSetup
- config.ts: DEFAULT_MCP_URL 補 /mcp 後綴
Fixes mcp-account-source §3:self-hosted .mcp.json 必須指自己的 mcp worker,避免連官方失敗。
Co-Authored-By: Claude Haiku 4.5 <noreply@anthropic.com>
|
2026-06-08 13:23:02 +08:00 |
|
uncle6me-web
|
5daeede45f
|
chore(cli): package-lock 版本同步 1.3.2
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
|
2026-06-07 16:34:51 +08:00 |
|
uncle6me-web
|
36d7492464
|
fix(kbdb): 填官方 prod D1 database_id(arcrun-kbdb)+ cli bump 1.3.2
kbdb/wrangler.toml placeholder → 官方 D1 id(self-hosted deploy.ts 注入會覆蓋,安全)。
deploy --all 時 cli 自動 bump 1.3.1→1.3.2 + CHANGELOG。
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
|
2026-06-07 16:34:30 +08:00 |
|
uncle6me-web
|
ad5a83d3d8
|
merge: kbdb recipe 公庫/私庫雙向機制 + UUID 身份(壓測前)
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
|
2026-06-07 16:21:01 +08:00 |
|
uncle6me-web
|
6a75117ba3
|
feat(kbdb): recipe 公庫/私庫雙向機制 + UUID 身份 + KBDB Base + 市場數據
kbdb-base SDD §7.5(公庫/私庫雙向機制,richblack 2026-06-07 拍板)。
## KBDB Base worker(新)
- kbdb/:D1-only 核心三表(entries/templates/entry_values)+ CRUD + LIKE search
+ recipe-stats 端點(市場數據)+ 0001_base.sql migration(含 recipe_stat seed)
## Phase 2.3:init 建 D1 + 套 migration
- cli cf-api.ts 加 listD1Databases/ensureD1Database;init 建 arcrun-kbdb D1
- deploy.ts 部署後對 D1 套 0001_base.sql(CF /d1/query API,idempotent)+ 注入 database_id
## Phase 5.1:recipe 成功記錄(市場數據來源)
- GraphExecutor 收集本次用到的 recipe uuid(usedRecipeKeys)
- executeWebhookGraph 執行結束一次性記 per-uuid 成功/失敗到 KBDB(fire-and-forget)
## Phase 7.5:recipe UUID 身份 + app-store 模型
- recipe 領 uuid=唯一身份;canonical_id/author/公私=屬性(§7.5.5)
- recipe:{uuid} + idx:canonical/installed/hash;resolveRecipe 向後相容不破執行鏈
- POST /recipes/submit=領新 uuid 新增作者版本(非覆蓋,app-store)
- GET /public-recipes 搜尋(多作者+per-uuid 市場星數)/ :id pull(選市場最佳)
- 落空→found:false 創作引導(§7.5.6 閉環)
- POST /recipes/migrate-uuid 一次性轉舊 key(增量寫不刪舊、冪等)
- init-seed 用 UUID(author=system)
## 薄殼(rule 07 §5:CLI + MCP 覆蓋同組能力)
- CLI: acr recipe search/pull/submit-p(config 加 DEFAULT_PUBLIC_LIBRARY_URL)
- MCP: arcrun_recipe_search/pull/submit_p/push/list/delete(補齊漂移)
## 壓測修正
- api-recipe-seeds: google_sheets_append PUT→POST(:append 正確動詞,階段12)
四 worker tsc 全綠(cypher/cli/kbdb/mcp)。
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
|
2026-06-07 16:18:10 +08:00 |
|
uncle6me-web
|
95a1462b65
|
fix(cypher): 改用 global_fetch_strictly_public flag 解 same-zone 1042(revert service binding)
richblack 拍板:service binding(前一 commit)靜態、加/改要重 deploy cypher,廢。
改用 global_fetch_strictly_public compatibility flag——cypher wrangler.toml 加一行,
讓 fetch() 走公網前門,self-hosted 的 same-zone fetch(cypher 與 auth 同在
{sub}.workers.dev zone)也能通。
- wrangler.toml:compatibility_flags 加 global_fetch_strictly_public(移除 SVC_AUTH_*)
- auth-dispatcher.ts / types.ts:還原到 service binding 之前(單純 fetch workers.dev)
- 安全(官方 docs):唯一副作用 self-loop 僅在 fetch 自己 hostname;cypher 不 self-loop
- 官方/self-host 共用同一份 toml:官方本就跨 zone 行為不變,self-host 被修好
- 規範還原:rule 02/03/CLAUDE.md/pre-bash-guard 的 service binding 禁令維持原狀
SDD: credential-primitives-wasm Phase 7(A→廢→B)。tsc exit 0。
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
|
2026-06-06 21:44:13 +08:00 |
|