Files
Arcrun/system-dev/wiki/status.md
T
uncle6me-web 1db8a13a3a fix(console): leo 實測三回饋——深淺主題預設淺色/登入頁置中/fetch 斷網韌性 (Arcrun#3 console 系)
1. 深/淺主題切換+預設淺色(leo 明示):CSS custom properties 兩份色板
   一套結構——:root=淺色紙感(宣紙米白紙紋+墨色文字+琥珀調深 #8a5f1e,
   WCAG 對比實算正文 12.2:1/琥珀 4.82/ok 4.58/err 5.17 全過 AA),
   :root[data-theme=dark]=原定稿暖黑 2a 原值不動。選擇存 localStorage
   (arcrun_console_theme),head 預載腳本防閃色。切換入口:登入/首次
   設定頁小鈕、桌面側欄項、設定頁正式開關;/console/dashboard 免登入頁
   同步支援(pagehead 小圖示)。金琥珀例外兩版刻意不變(btn 漸層/狀態球/
   toast/gcenter)。
2. 登入/首次設定頁置中:根因=.view.on{display:block} 蓋掉 .authwrap 的
   flex → 內容靠左;補一行 .authwrap.view.on{display:flex} 水平垂直置中。
3. fetch 斷網韌性:friendlyErr() 把裸 Failed to fetch/Load failed 轉
   「連線中斷」誠實文案(非斷網錯誤原樣保留);駕駛艙與 dashboard 的
   60 秒定時器常駐、錯誤文案標明自動重試,網路恢復自動刷回。

驗證:tsc --noEmit exit 0;vitest 26/27(1 失敗=pre-existing 基準);
三層跳脫驗證(mistakes #24:template 求值→node --check→行為斷言)全綠。
不部署,總管接手。
2026-07-04 18:30:30 +08:00

218 lines
31 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
---
name: status
description: 當前進度、進行中 Phase、已知問題、下一步(動態文件,每 session 更新)
metadata:
type: project
last_updated: 2026-07-02
---
# 當前進度(動態)
> **更新頻率**:每次 session 結束時更新此檔。
> **新對話開始時讀此檔第一段**(3 分鐘概覽)。
---
## 📍 當前位置
> **2026-07-04 本 sessionMira Console 完整版 UIArcrun#3 console 系,總管派工)**
> - **實作(commit f9e44ab**`/console` 依 claude design 定稿(紙感暖黑「2a」,`system-dev/docs/6-user/Mira Console 設計規劃/` 於頂層 repo)+ brief 8 頁資訊架構全面重寫成單檔 SPA(hash routing、零外部資源、手機優先+≥1024px 側欄+底部五 tab)。`/console/dashboard` 免登入獨立頁同步換視覺(呼吸球「安/趕/滯」)。
> - **後端小補(全唯讀/薄殼)**:① `GET /credentials/catalog`D1 目錄 metadata list,絕不回密文,D19)② `GET /console/inbox-data`inbox 清單,session 鎖——訊息原文屬機敏,計數才免登入)③ `GET /kbdb/graph/neighbors/:name`cypher 代轉 kbdb-graph-plugintoken 只在 server 側;plugin base = `KBDB_GRAPH_URL` 或 `kbdb-graph-plugin.<subdomain>.workers.dev` 現算)④ types 加 `KBDB_GRAPH_URL?`。
> - **誠實分層**:語意搜尋未啟用→banner 讀 search 降級訊號(不假結果);搜尋 chips 用 entry_typeKBDB 真能篩的欄位,不編造「電腦筆記/手機筆記」分類);憑證「刪除」標即將開通(DELETE 仍舊 KV 路徑,接了會假綠,見 mistakes #24);設定頁 vectorize「開關」標即將開通(需部署端 kbdb_embed);關聯查無 triplet →「尚無關聯資料」。v0 零件/recipes 查詢區收進工作流頁折疊區(不砍功能)。
> - **驗證(本機,未部署)**tsc exit 0vitest 26/271 失敗 stash 複驗=pre-existing「不存在的零件回傳失敗」);`wrangler deploy --dry-run` 打包過;inline JS 求值後 `node --check` + 純函式行為測試全過(XSS escape/時間容錯,驗證法固化 mistakes #24)。
> - **✅ 已部署 leo21c2026-07-04 總管親跑,leo 明示「部署」)**:手工注入(live worker settings API 拉真實 binding 對齊)→ dry-run 核對 7KV/D1/13SVC/6vars 與 live 一致 → wrangler deployVersion 13b86bda)→ toml 已還原乾淨。**驗收全綠**/console 200+新視覺(title=Mira Console);/console/dashboard 200dashboard-data 真資料(green light/progress-guard beat);/kbdb/search 401auth by-design 非迴歸;/credentials/catalog 401 誠實要 key(非 404,端點在);/console/inbox-data 401 session 鎖生效。
> - **部署注意(留總管)**:不跑 acr updatemistakes #23 codeload 陷阱),走 leo21c wrangler 直推 cypher-executor 單 worker;關聯視圖需 leo21c 有部署 kbdb-graph-plugin(沒部署→前端誠實顯示不可達,不擋其他頁);`CONSOLE_TENANT`/`WORKER_SUBDOMAIN` 沿既有注入。SDD 缺口沿 07-02 未解(search-console SDD 未建,rule 4.3 需 richblack 確認,本次照派工先實作、誠實記錄)。
> - **二輪(leo 實測三回饋,本機已修未部署)**:① 深/淺主題切換+**預設淺色**CSS custom properties 兩份色板:淺=宣紙米白紙紋+墨字、琥珀調深 #8a5f1e 過 AA;深=原定稿原值不動;localStorage `arcrun_console_theme`head 預載防閃色;入口=登入/setup 小鈕+側欄項+設定頁開關,dashboard 頁同步支援)② 登入/首次設定置中(根因 `.view.on{display:block}` 蓋掉 authwrap flex → 補 `.authwrap.view.on{display:flex}`)③ fetch 斷網裸「Failed to fetch」→ `friendlyErr()` 誠實文案「連線中斷」+駕駛艙/dashboard 60 秒定時器常駐自動重試。驗證:tsc 0、vitest 26/27(同 pre-existing)、三層跳脫驗證全綠(#24 手法)、淺色板 WCAG 對比實算(正文 12.2:1/琥珀 4.82ok 4.58err 5.17)。金琥珀例外(按鈕漸層/狀態球/toast/gcenter)兩版刻意不變。
>
> **2026-07-02 上個 session(雲端工人 T-loop1dArcrun#3 搜尋/控制台頁 v0,跨多 repo 第二次壓測)**:
> - **實作**`cypher-executor/src/routes/console.ts`GET /console,單檔 HTML+原生 JS 薄殼)+ `index.ts` 掛載。三查詢區全打既有端點:`/kbdb/search`、`/workflows/search`(同源,X-Arcrun-API-Key)、components 打「同帳號」`arcrun-registry.<subdomain>.workers.dev`WORKER_SUBDOMAIN 現算,不硬打官方 registry.arcrun.dev)、recipes 打 `/public-recipes`(公庫免 auth)。vectorize 狀態直接讀 KBDB search 回應的 `mode`/`capability_hint`,沒開新端點。tsc/vitest 綠(既有 1 個無關失敗,`不存在的零件回傳失敗` 測試,stash 驗證 pre-existing)。commit `981dc25` 已 push Gitea main。
> - **框架級發現(mistakes #23**`acr update` 部署源永遠是 GitHub codeload tarball`uncle6me-web/Arcrun` main),跟本地/Gitea checkout 完全脫鉤——雲端工人只能碰 Gitea(D20),照 issue 字面指示跑 `acr update` 會部署到蓋掉自己剛做的改動的舊版,回報成功卻是假綠。本次改用手工複刻 `injectWranglerConfig` 注入邏輯(CF API 查真實 KV id 對齊 dry-run)、直接 `wrangler deploy` 單一 workercypher-executor),避免碰 GitHub 又讓改動真的上線;部署後立刻 restore `wrangler.toml`,不留帳號 id 進 git。**此路只適合單 worker 小改動**;牽動多 worker 時的正解懸而未決,留 leo 裁(部署繞開 GitHub 鐵律 vs acr CLI 硬綁 codeload.github.com 的結構性衝突)。
> - **端到端驗證(leo21ccurl 證據)**`GET /console` 200`GET /kbdb/search?mode=semantic` 200(誠實降級 keyword + capability_hint,該帳號 KBDB 目前 0 entries,真實狀態非 bug);`GET /workflows/search` 2000 筆,該帳號無 named workflow);`GET /public-recipes?q=telegram` 200 真回 `telegram_send` 紀錄;`GET arcrun-registry.leo21c.workers.dev/components/search` 200。Playwright 瀏覽器點擊測試因沙盒 outbound proxy policy 擋 registry.arcrun.dev/workers.dev 連線未能跑通(環境限制,非部署問題),改以 curl 逐端點驗證 + 手動覆閱 JS 邏輯替代。
> - **SDD 缺口**issue 要求新 SDD 目錄 `docs/3-specs/arcrun/search-console/` + 改 pre-write-guard `KNOWN_SDDS` 白名單——但本 repo 整個 `docs/` 與 `.claude/` 都在 `.gitignore`(只存在 leo 本機),Gitea clone 拿不到,也無法確認 SDD 白名單機制實際路徑。未落地此步驟,回報 issue,等本機 CC 或 leo 補。
> - Arcrun#3 issue comment 已回報(署名 `[cloud-worker]`),sprint 表 T-loop1d 已勾。
> **2026-06-28 上個 sessionissue #13 零件退役殘留收尾,步驟1+2 done)**:
> - **issue #13 步驟1merge caa8e10**3 個示例 yaml 的 `component: telegram` → recipe canonical_id `telegram_send`commit a234201)。
> - **issue #13 步驟2merge 764f657**:清 `cli/src/commands/parts.ts` 降級零件殘留——telegram/gmail/sheets/line 改 recipe canonical_id、移除已刪的 ai_transform_compile/runcommit 225aa9f)。
> - **關鍵發現①(gmail 假綠避免)**gmail **讀取**`fetch_unread` / `action: list`**無對應 recipe**,硬塞 `gmail_send`(寄信)=語意不符的假綠 → **留 TODO 待 seed 補 `gmail_list`**,不硬塞。
> - **關鍵發現②(第三污染源是設計非殘留)**:#13 提的「offline validate 不檢查零件」是 by designoffline 刻意跳過遠端查),**不當 bug 修,留 issue**。
> - **教訓沉澱**parts.ts 是手寫常駐清單必 stale → **退役 SOP 要同步清「AI 搜尋零件的三個源」**(示例 yaml / parts.ts / validate)。已記 mistakes #22 + card [[零件退役要清三源]]。
> - **未 push/merge 由總管統一處理**(本 session 只 wiki-capture)。issue #13 步驟1+2 donevalidate 缺口留 issue。
>
> **2026-06-27 上個 sessionissue #8 地基1 + wiki-init 補骨架)**
> - **wiki-init 補骨架**wiki 已初始化過(push 檔活躍),補了從沒建的 pull 層——`cards/decisions/` 13 張決策原子卡(Haiku 改寫 11+範本 2,含 gloss/實體/typed-edge)、TAXONOMY 換成 arcrun 軸(子系統/形態)、principles 填 13 條、INDEX 真實視圖。raw source 0 異動,無真斷鏈。
> - **issue #8[地基1] workflow description slot + search_workflow,北極星入口)**:新開 SDD `docs/3-specs/workflow-discovery/`(白名單已加)。leo 拍板 4 點(方案C雙寫/Q2 description 由操盤CC據實生成用戶可改/提示式回填/base通用entry_type filter+ 方向①(MCP 改打 /webhooks/named)。
> - ✅ **已實作 tsc 全綠**1.1 `/webhooks/named` 強制 description2.2+Q4 KBDB base 通用 entry_type filter(改4處:searchEntries/semanticSearch/route/proxy)|2.1 部署雙寫 embeddable entry(注意 KBDB 用 metadata_json 字串)|3.1 cypher `/workflows/search`3.2 MCP `u6u_search_workflows`4.1 `/workflows/backfill-search-entries`1.3b `GET /webhooks/named` 補 description/created_at 欄位。
> - ⏸ **卡待總管定**Phase 1.2/1.3MCP deploy 改打 /webhooks/named)卡在 ①-a/b/c——實作期發現 /webhooks/named 吃 graph 非 YAMLYAML→graph 編排寫在 CLI push.ts 介面層,MCP 複製=違 rule 07。①-c(先通債另開 issue)我推薦,待總管定。
> - **完成標準**:tsc 綠≠完成,框架級待 leo21c 端到端實證(強制填擋空/搜尋命中/租戶隔離/降級 hint/MCP 不再 404)。issue open。
> - **已 merge 進 main**fast-forward3 commit934b926 #4/5/7/8 功能 / 558e80b wiki-init / 5d38b59 #11 薄殼對齊)+ push origin main。repo Actions `enabled:false`leo 關),merge **未觸發部署**。**merge≠部署**#5/#7/#8/#11 端到端待 leo21c wrangler 直推(Mira 線)。
> - **issue #11 全做**P0 run 死端點/P1 list 同源/R4 防複發機制:對照清單+smoke+自驗能攔);P2 validate 依賴 #10、tag resource_id 語意債待方向①。
> - **issue #12self-hosted MCP 缺 CYPHER_EXECUTOR binding)✅ 修+merge maincommit 222a382**:根因非總管假設的 strip 誤清,是 **TOML 坑——mcp toml `services=[...]` inline 在 [vars] 後被吸成 vars.services**binding 消失);修法 inline→`[[services]]` array-of-tables(對齊官方 cypher)。wrangler --dry-run 雙向驗(修法後 binding 在/舊版變 env.services)。**端到端待 leo21c acr update 重部 MCP**;連帶解鎖 #11 self-hosted MCP + mira #6 門鈴 + acr push。見 mistakes #21。
> - 署名鐵律:跨 repo comment 開頭 `[arcrun CC]`#12 issue 慣例,非本次 bug)。
>
> **2026-06-26 上個 sessionissue #4/#5/#6/#7 一批)**
> - **#6**base `PATCH /records/:id`):✅ updateRecord + route,三表 append-only 不破。tsc 綠,端到端待 leo21c。issue open。
> - **#4**07-thin-shell §3.1 自力救濟階梯 + code-node 規則):✅ 兩份 07 同步 + 02-forbidden §5.2 連動。§3.5 階梯(自家API→補API/第三方→workflow/code-node 補丁/純計算→code-node)。**code-node 只定規則未實作零件**wishlist C1,另案)。純文檔。
> - **#5**KBDB 查詢缺口,普世視角):source 過濾 ✅(json_extract metadata_json,零建表)+ cypher proxy 透傳;documents 聚合 ❌不做(走 graph MCP);DELETE proxy ⏸擱置(依賴頂層 T8);embed-on-write →併#7;能力對照文件 ✅ `docs/4-guides/kbdb-capabilities.md`。
> - **#7**vectorize 全包,從零):✅ base embed 模組 `kbdb/src/embed.ts`(精耕只 embed `metadata.embed:true`+ entries route 接 embed-on-write/semantic search/capability_hint + kbdb_embed 開關(config/deploy ensureVectorizeIndex REST/init 問)+ MCP kbdb_search mode:semantic。**抓修 deploy 順序 bug**embed 注入要在 stripOfficialOnlyBindings 之後,否則 [ai] 被清)。kbdb/cypher/cli/mcp tsc 全綠,**端到端待 leo21c 部署開 Vectorize index**。
> - SDDkbdb-base tasks Phase 10#6/11#5/12#7)。4 issue 各 comment 回報、**全留 open**(待端到端/頂層)。**未 commit**(待人決定)。
| 項目 | 狀態 |
|------|------|
| **Phase** | Credential Primitives TS → WASM(§0.1-0.5 完成,0.6-1 進行中) |
| **主線** | kbdb-base §7.5 已上線(公庫/私庫雙向、UUID 身份、市場數據) |
| **近期完成** | MCP self-hosted bug 三修(2026-06-08 |
| **已部署(2026-06-09 上午)** | §8 P0 cron 止血;§7.8 onboarding P0/P1/P2CLI 1.3.3 publish |
| **已部署(2026-06-09 下午,Haiku 壓測暴露)** | **http_request+claude_api+kbdb_upsert_block+km_writer 假綠根因修復**(非 2xx 回 error envelope4 worker 已 deploy);**acr run self-hosted 修復**(本機 YAML 直接走 /cypher/execute 不需先 push + res.ok 擋 + .yaml 容忍);**D1-in-update 修復**update 漏建 D1 → 補 ensureD1DatabaseD1 已建 count:1);**CLI 1.3.4 publish**llms.txt/.env.example 加 D1 Edit 權限 |
| **Haiku 自主壓測(test_arcrun/5)結論** | onboarding 治好(兩輪都裝+init 沒跳過、走對路建 recipe 不建零件);但暴露 4 真 bug(見下);Haiku 仍會假綠(curl 繞過說成 arcrun 成功、D1 沒建謊報成功)→ 印證「執行真相要系統能驗,不能信 AI 嘴巴」 |
| **已驗證(2026-06-13 壓測 leo21c** | **401 假綠根治全鏈驗證**host fn error envelope → 零件 parsed["error"] → cypher isFailure()leo21c 實測 401 回 `success:false`(真紅);**`{{credential.notion_token}}` 注入實證打通**:真讀到 Notion Recipes 資料(「蕃茄蘑菇燉雞」+ iCook 連結),§8 credential 機制生效;**acr update 部署系統一輪修完**CLI 1.3.5 部署假綠露出、pnpm-workspace 缺檔補齊 23/23 全綠、1.3.6 失敗帶 stderr、1.3.7 manifest 跳過、1.3.8 共享 install 治本);check-release.sh + local-deploy.sh 全形括號 set-u crash 修復 |
| **已完成(2026-06-14matrix 重整交棒)** | **① SDD 遷移收尾**.agents/specs → docs/3-specs 全改(hooks5/rules5/CLAUDE.md/wiki + 2-architecture 鏡像/README/HANDOFF/4-guides),.agents 刪除,pre-write-guard 白名單刷成 10 個實存 SDDSessionStart + rule4.3 已驗)。**② KBDB 資料層 MCP 薄殼**kbdb-base Phase 9.1):mcp/src/tools/kbdb_data.ts 6 工具(template/record/query/search),守鐵律不給建表/SQLmcp tsc exit 0CLI(9.2)後補。**③ 修 LI M3 斷鏈**(見 mistakes #15):skills/examples 5 工具 + sync 從 v3 /blocks /search 改打基本盤 /entriesbase 加 page_name 過濾,search 誠實降級 LIKEmcp+kbdb tsc exit 0 |
| **已完成(2026-06-14 晚,HANDOFF §3b** | **修 MCP self-hosted 認證 401**mcp-account-source.md §5.5):根因=MCP partner-auth 把 Bearer 拿去 KBDB 驗證 partnernamespace 明碼非註冊 partner→401cypher 端 X-Arcrun-API-Key 不驗證直接當分區 key→CLI 通。修法①+②:① `MULTI_TENANT=false` 時 partner-auth 把 Bearer 明碼直接當 org_namespacetypes/middleware/wrangler,官方 SaaS 行為不變共用同碼);② mcp-setup 把 api_key/namespace 寫進 .mcp.json `headers.Authorization`(裸檔不送 header 是次因)。mcp+cli tsc exit 0、partner-auth 9 tests 綠 |
| **已處理(2026-06-25issue #3 官方庫誤寫善後)** | **① 清理 SOP runbook 備妥**`docs/5-records/2026-06-24-official-kbdb-cleanup-leo-misdelete.md`):14-E 遷移期 mira 誤寫 ~11 萬 `owner_id=leo` 進官方 prod `arcrun-kbdb`database_id `0c580910…`)。三道防誤刪閘(備份先行 d1 export → 核實 entry_type+時間範圍確認範圍乾淨 → 刪後驗證 count=0+孤兒 entry_values=0+其餘不受影響)。**補關聯刪除範圍**:`entry_values`slot-link,外鍵指 entries)先刪孤兒、`templates.created_by=leo` 單獨核實勿盲刪。**DELETE 不由 CC 跑**(不可逆+官方憑證+需人類明示,mindset §7)→ runbook 由 leo(官方運營方)親自執行。**【2026-06-25 已端到端執行完畢】** chaperone 模式逐步跑:核實誤寫 **111,368 筆**value 93,790/note 13,671/block 3,907,全 06-15~06-24 遷移期、孤兒=0、無 leo template)→ 45MB 備份 → leo 點頭後 `DELETE FROM entries WHERE owner_id='leo'`changes=111368)→ 驗證 leo 殘留=0/孤兒=0/官方庫其餘只剩 smoke_ns_1×2+null×13 筆烟霧殘留,非 leo)。備份已刪、`.gitignore``*.sql` 防誤 commit、gh issue #3 已回報客觀證據可關閉。**② 願景 acr migrate 雙向遷移記 BACKLOG.md**(對齊 wishlist C7,牽動 cli+cypher+kbdb,未來方向)。已 gh issue #3 comment 回報,**暫不 close 待 leo 跑完清理回報 count 歸零**。**③ 順手消 status 矛盾**credential 401 真實狀態=**已端到端實證打通**2026-06-13 Notion `{{credential.notion_token}}` 真讀到資料),tasks.md 8.5 原標 `[ ]`OpenAI 路徑沒走)已補 `[x]`(Notion 達同等證據,機制與服務無關)。**純文檔/runbook,無 code 變動** |
| **已修+merge prod2026-06-24issue #2 框架 bug** | **self-hosted cypher KBDB_BASE_URL 注入缺口修復**(總管經 GitHub issue #2 交辦):根因=`injectWranglerConfig` self-hosted 分支只注 database_id/MULTI_TENANT**漏注 KBDB_BASE_URL** → cypher `/kbdb/*` fallback 到官方 `arcrun-kbdb.uncle6-me`self-hosted 資料寫進官方庫、隔離破損)。修:deploy.ts self-hosted 分支加 `KBDB_BASE_URL` 改寫成 `arcrun-kbdb.<ctx.workerSubdomain>.workers.dev`,比照既有注入模式;init/update 共用此注入點一處修兩條路。驗:tsc exit 0、真實 cypher toml 注入 subdomain=leo21c → `arcrun-kbdb.leo21c.workers.dev`comment 行不動)。**已 merge main+push**commit 9c4333d、merge ba00b98)、**CLI npm publish 1.3.13**(修的是 CLI 注入邏輯 → self-hosted 用戶裝 npm 套件才到手,光 git 不生效;local-deploy.sh §6 自動 bump+publishrelease-check 全綠)、**issue #2 已關閉**。**端到端落庫實證歸 mira dogfooding 帳號**(需 leo21c token 跑 acr update + wrangler d1 execute 收綠燈,不卡本框架修復)。⚠️ 與 issue 描述出入:cypher toml **本就有** KBDB_BASE_URL(寫死官方),比「沒有」更糟(`??` fallback 根本不觸發)→ 修法是就地改寫而非新增。**慣例落地**:總管↔arcrun 交辦走本 repo GitHub issue(已寫進 CLAUDE.md|
| **已部署+端到端驗收(2026-06-15,總管交棒 3 件)** | **① CLAUDE.block.md 重寫**HANDOFF §6Haiku 能懂):補三盲點=recipe 是公共投稿非私人腳本/缺能力補 API 不准 recipe-工作流拼裝(附口訣)/自製零件退場路徑(claude_api 刪、kbdb 走 acr kbdb 薄殼、假零件改 recipe);README 零件vsrecipe 段同步對齊。**② cypher proxy 補 /kbdb/entries CRUD**kbdb-base 9.6,解鎖 mira _kbdb_client.py 主線):POST/GET list/GET :id/PATCH :id 純轉發基本盤;租戶隔離同 9.5(寫入注 owner_id、list 強制本租戶、PATCH 剝 owner_id、刻意不開 DELETE)。**③ arcrun_report_feedback 改打 /entries**kbdb-base 9.79.4 漏網):舊 POST /blocks 是死 route(404 假紅)→改 entry_type=agent-feedback。**端到端 prod 驗收全綠**:無key→401、跨租戶 list count=0、owner_id hijack 被剝、page_name lookup 通、/blocks→404 確認、agent-feedback 寫入經 proxy 讀回 count=1。cypher+mcp tsc exit 0、已部署官方 58309bb9、CLI npm 1.3.12、smoke 資料已清。**交棒 mira**leo21c 改 _kbdb_client.py 打 cypher /kbdb/entries 即可遷移 |
| **已部署+自驗(2026-06-15HANDOFF §6b 部署斷層解決)** | **leo21c cypher 落後 → 已重部,`/kbdb/entries` 回 200**(解鎖 mira 14-A 主線遷移)。**根因不是 GitHub lag**origin/main==本地,含 entries route):① `acr update` 的 content-hash manifestdeploy.ts:198-225)把 cypher 當未變動跳過 → `--force` 清空 manifest 全部重部;② **更深陷阱**repo `.env` line 3 active `CLOUDFLARE_ACCOUNT_ID=58309bb9`(官方)被 CLI 載入覆蓋 config.yaml 的 leo21c `51a01bfa`env>configconfig.ts:174)→ leo21c token 對官方帳號認證 → KV「Authentication error」中止 → 解:部署時 `CLOUDFLARE_ACCOUNT_ID=51a01bfa… acr update --force`(記憶 [[selfhosted-deploy-account-override-trap]])。**部署 23/23 全綠**(含 cypher/kbdb/mcp+ seed(10 API+23 auth)+cron migrate。**自驗**`/kbdb/entries?limit=1`→200 真 body(非假綠)、`/kbdb/templates`→200、`/kbdb/records?limit=1`→404**非回歸,proxy 本就無 bare list route,只有 POST + by-template/:t + :id**);缺口② MCP initialize(Bearer leo)→200MULTI_TENANT 注入生效、KBDB binding 隨 mcp 上線)。全域 acr 已升 1.3.12(npm 本就有,非重發)。**純部署無 code 變動** |
| **已部署(2026-06-15MCP self-hosted 401 注入缺口修補)** | **根因=部署沒注入 MULTI_TENANT**(非 code bug):partner-auth.ts MULTI_TENANT 分支對,但 mcp toml 該行原是註解、injectWranglerConfig 注 KV/subdomain 卻漏注 MULTI_TENANT → worker env undefined → 走 partner-key → self-hosted 401。修:deploy.ts 加 injectMultiTenantDeployContext.selfHostedinit/update 帶旗標;mcp toml 改 active [vars])。本地驗注入真實函式 PASSmcp/cypher 各 1 行 active MULTI_TENANT=false 在 [vars] 下);官方 MCP partner 路徑回歸 401(不變)。CLI npm 1.3.11。**端到端交棒 mira**leo21c 重跑 acr updateCLI≥1.3.11)→ curl Bearer leo /mcp 應 200。SDD §5.5.1 |
| **已部署+端到端驗證(2026-06-14 晚)** | **KBDB CLI 薄殼解卡(9.5+9.2)已上 prod**cypher `routes/kbdb-proxy.ts` 純轉發 + CLI `commands/kbdb.ts`(acr kbdb)。**端到端煙霧測試全綠**curl cypher.arcrun.dev/kbdb/*):無key→401、建template→200(created_by=租戶)、租戶隔離 query+search 都 0 筆跨租戶。CLI npm 1.3.10。**煙霧測試抓到 2 真 bug 並修**:①proxy fallback 寫死舊死的 kbdb.finally.click→改現役 arcrun-kbdb + cypher [vars] KBDB_BASE_URL;②kbdb searchByTemplate `\|\| true` stub 讓 owner_id 過濾失效(跨租戶洩漏)→改 SQL JOIN entries 真過濾。三 worker(cypher/mcp/kbdb)都已 deploy 官方帳號。**self-hosted MCP 那條未測**(官方不設 MULTI_TENANT,待 leo21c 部署 HANDOFF §3)。⚠️ prod 留了 smoke_contact 測試 template(掛 smoke_ns_1,不污染真租戶,template 無 delete API |
| **待處理** | §8 P1/P2 recipe/workflow list 遷 D1(需 D1 先穩,現已可建);4 份 inline host fn 抽共用 helper deduparcrun.dev/llms.txt servemcp worker 偶發 fetch failed(網路抖動,重跑即過,非 bug);**LI M3 實環境驗收**(需 KBDB_BASE_URL 跑 sync + 叫工具,目前只驗 tsc+dry-run);**mira 波次2 主線遷移**arcrun 端 cypher 已部 leo21c、/kbdb/entries 實測 200**已交棒待 mira CC 改 _kbdb_client.py**)|~~KBDB /kbdb/entries 缺口~~✅~~MCP report_feedback 死 route~~✅~~self-hosted MCP 端到端實測~~✅(2026-06-15 leo21c initialize 200,見上)~~leo21c cypher 落後/部署斷層~~✅(2026-06-15 §6b 解)~~self-hosted cypher KBDB_BASE_URL 漏注入(issue #2 隔離破損)~~✅(2026-06-24 merge prod,端到端待 mira 帳號驗) |
---
## 🔄 進行中的 Task
### credential-primitives-wasm
- [x] Phase 0.1-0.5:核心合併、21 個零件 contract 完成、CREDENTIALS_KV binding 確認
- [x] Phase 0.6wasi-shim 新增 host functionskv_get / crypto_decrypt / crypto_sign_rs256
- 決策:host function 實作位置 = cypher-executor/src/lib/wasi-shim.ts
- 待驗:component-loader 能否正確呼叫 WASM runner
- [ ] Phase 0.7component-loader WASM runner 路徑(依賴 0.6
- [ ] Phase 1.1-1.8auth_static_key WASM 零件(TinyGo
- [ ] Phase 2.1-2.6auth_service_account WASM 零件(JWT signing
- [ ] Phase 3.1-3.5:清除 cypher-executor 三套違規 TScredential-injector.ts / jwt-signer.ts / BUILTIN_*)
### kbdb-base
- [x] §7.5:公庫/私庫雙向、UUID 身份、市場數據(2026-06-07 deploy
- [x] §8 P0cron 止血(2026-06-09)。scheduled.ts 每分鐘 list → 單一 key `cron-idx:_all` get(新增 lib/cron-index.tswebhooks-named push/delete 維護;migrate-cron-index 一次性遷舊)。1440 list/日 → 0。cypher tsc exit 0
- [ ] §8 P1/P2recipe/workflow list 遷 D1(透過 kbdb worker /entries HTTP API 雙寫,**不加 binding**,用 cypher binding 狗糧)。另開 session 做(大、易出錯,需專注+壓測)
- **狀態**:架構拍板(richblack 2026-06-09:用 kbdb /entries HTTPservice binding 才需問),未動 code
### onboardingself-hosted-init §7.82026-06-09 交付)
- [x] P0acr init 偵測先於動作 + 裝完驗收(cli/src/lib/preflight.ts)。冪等。
- [x] P1acr whoami+--json+ MCP arcrun_whoamiAI 別自己 curl 猜帳號)
- [x] P2mcp-setup 寫完印「請重啟 client」(D3)
- [~] P3(部分,2026-06-09 push c152f5f):repo 加 `.env.example` 範本(每格白話說明、值留空,
`.gitignore` `!.env.example` 放行)+ llms.txt 教 AI「先 cp .env.example .env、帶用戶填值」。
已 push main → 公開 repo 生效(raw 200 已驗)。仍待:arcrun.dev/llms.txt servelanding/public 缺檔)。
### LLM Wiki 建設
- [x] 階段一:目錄結構建立、分類規則表、檔案掃描(101 個 .md)
- [x] 階段二:mistakes.md + decisions-summary.md + INDEX.md + status.md(本檔)
- [x] 階段三:文件遷移執行(2026-06-14 完成)— SDD 實體已在 `docs/3-specs/`hooks(5)/rules(5)/CLAUDE.md/wiki
全部從舊 `.agents/specs/` 改指 `docs/3-specs/``.agents/steerings/tech.md`(已與 `docs/3-specs/tech.md` 同步)
連同空 `.agents/` 刪除。SessionStart hook 與 pre-write-guard 白名單(10 個 SDD 目錄全對齊)已驗證。
另收尾活指針:docs/2-architecture/ 鏡像、docs READMEs / HANDOFF / 4-guides 的 arcrun-local 指針一併改新路徑。
刻意保留:docs/5-records 歷史 incident/migration 記錄、跨 repopolaris/mira、matrix/kbdb)路徑、
docs/3-specs/** SDD 內文(改 SDD 內文=change,需另確認)、README 遷移對照表。
- 🟡 待補:modules/ cypher-executor、wasi-shim、recipe-system 等)
---
## ⚠️ 已知問題 / 待處理
> 2026-06-09 更新:已解項標 ✅;🔴/🟡 為仍待處理。本次 Haiku 壓測新發現的 bug 加在表內。
| 問題 | 優先級 | 狀態 | 備註 |
|------|--------|------|------|
| ~~**credential 注入 401**~~ | ✅ 已解 | **8.1-8.5 全完成(2026-06-25 確認)** | 機制(auth_static_key `resolve_credentials` + graph-executor `resolveCredentialRefs`)已端到端實證:2026-06-13 Notion `{{credential.notion_token}}` 真讀到資料(同等於 8.5 OpenAI 驗收,機制與服務無關)。tasks.md 8.5 已補 `[x]` |
| §8 P1/P2 recipe/workflow list 遷 D1 | 🔴 高 | 架構已拍板未動 code | 走 kbdb /entries HTTP 雙寫不加 binding;依賴 D1(現已可建)。另開 session 做 |
| 4 份 inline http_request host fn 抽共用 helper | 🟡 中 | 待 dedup | http_request/claude_api/kbdb_upsert_block/km_writer 各自複製貼上同段(這次假綠修也是逐份改) |
| `arcrun.dev/llms.txt` 404 | 🟡 中 | 未 serve | landing/public 缺檔;GitHub repo 內正常(test/5 走 GitHub 不阻擋) |
| MCP account-source | 🟡 中 | 記錄中 | self-hosted MCP 指官方不指自己(§5.2 已知) |
| ENCRYPTION_KEY 冪等性 | 🟡 中 | 設計中 | init 多跑生成新 key,無法複用舊 key |
| recipe submitted 後沒有 uuid | 🟡 中 | 待驗 | submit-p 應回 uuidCLI 拿不到 |
| ~~KV list 爆量~~ | ✅ 已解 | §8 P0 部署 | cron list→單 key get1440/日→02026-06-09 |
| ~~onboarding 缺陷(4 項)~~ | ✅ 已解 | §7.8 P0/P1/P2 + P3 部分 | CLI 1.3.4Haiku 壓測證實裝+init 不跳過 |
| ~~D1 建不起來~~ | ✅ 已解 | update 補 ensureD1Database + token 加 D1 權限 | 2026-06-09D1 已建 count:1 |
| ~~http_request 401 假綠~~ | ✅ 已解 | host fn 非 2xx 回 error envelope | 4 worker deployauth_sa 不套 |
| ~~acr run self-hosted 404 爆~~ | ✅ 已解 | 本機 YAML 走 /cypher/execute + res.ok 擋 | CLI 1.3.4 |
| ~~npm publish~~ | ✅ 已解 | token 在 .env NPM_API_TOKEN | 走 local-deploy.sh step 6,別手動繞 |
---
## 🧪 測試進度
### 壓測 2026-06-08Haiku 乾淨重測)
- **目標**kbdb-base §7.5 公庫/私庫 + UUID 驗收
- **對象**:Haiku(全程自主操作)
- **測試檔**`/test_arcrun/3/test_to_haiku.md`9 個步驟)
- **撞牆記錄**`/test_arcrun/撞牆記錄.md`
- **狀態**:準備妥當,awaiting Haiku run
### 前次壓測(2026-06-07
- ✅ kbdb-base §7.5 上線前驗收(16 項通過)
- 📋 發現 onboarding 四缺陷(Cold.1-8
---
## 🚫 封測狀態
**推遲**richblack 2026-04-19 決定,後延至 2026-06-08 依舊推遲)
**原因**
- Phase 1-3auth WASM + 清除違規 TS)未完
- 待 credential-primitives-wasm 完整交付
**啟動條件**Phase 1-3 完成 + 壓測 Haiku 自癒能力驗證
---
## 📋 下一步(優先級)— 2026-06-25 更新
### 🔴 最優先
1. [x] ~~**credential 注入 401 修復**~~**已端到端實證打通**2026-06-13 Notion `{{credential.notion_token}}` 真讀到資料;tasks.md 8.5 已補 `[x]`)。機制完成,非阻擋。
2. [ ] **§8 P1/P2 recipe/workflow list 遷 D1**D1 現已可建(依賴解除)。走 kbdb /entries HTTP 雙寫不加 binding。
大、易出錯,另開乾淨 session + 壓測。**← 現在的真.最優先未做項。**
### 🟡 本周
3. [ ] credential-primitives-wasm Phase 0.6-0.7host function + WASM runner)→ Phase 1-2auth WASM 零件)
4. [ ] 4 份 inline http_request host fn 抽共用 helperdedup;這次假綠修是逐份改的)
5. [ ] 清除 cypher-executor 違規 TSPhase 3credential-injector.ts / jwt-signer.ts / BUILTIN_*
### ⚪ 未來
6. [ ] `arcrun.dev/llms.txt` servelanding/public 補檔)
7. [ ] 補 wiki modules/(文件遷移階段一~三已於 2026-06-14 完成)
8. [ ] ENCRYPTION_KEY 冪等性、MCP account-source、recipe submit uuid 回傳
---
## 🔗 相關資源
| 資源 | 位置 | 用途 |
|------|------|------|
| 總進度 | `docs/3-specs/arcrun/arcrun.md` | 全景進度表 |
| 當前 Phase SDD | `docs/3-specs/arcrun/credential-primitives-wasm/` | design + tasks |
| 壓測 case | `/test_arcrun/2/test_case.md` / `3/test_to_haiku.md` | 功能驗收 |
| 事件復盤 | `/docs/incidents/` | 歷史踩坑 |
| 常犯錯誤 | `.claude/wiki/mistakes.md` | 自檢清單 |
| 架構決策 | `.claude/wiki/decisions-summary.md` | 設計參考 |
---
## 版本日誌
| 日期 | 變動 |
|------|------|
| 2026-06-08 | 初建。MCP bug 修正完成、wiki 系統搭建、壓測 Haiku 進行中 |
| 2026-06-08(補) | Haiku 壓測發現 Cold 驗證缺陷:init 無強制檢查點 → 假綠風險。記入 mistakes.md §11 |