From 1e2ef6806a2e145de2b772f2c867b6eae890fe55 Mon Sep 17 00:00:00 2001 From: uncle6me-web Date: Fri, 7 Aug 2026 18:52:30 +0800 Subject: [PATCH] =?UTF-8?q?wiki:=20=E8=90=BD=E5=B8=B3=E6=AA=A2=E4=BF=AE?= =?UTF-8?q?=E5=AD=94=E7=AC=AC=E4=B8=80=E7=89=88=EF=BC=88embed=20selftest?= =?UTF-8?q?=20+=20diagnostics=20=E7=AB=AF=E9=BB=9E=20+=20=E5=8C=AF?= =?UTF-8?q?=E5=87=BA=E6=8C=89=E9=88=95=EF=BC=89?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 記錄 2026-08-07 三個 commit(9344562/83aa1f6/5388f40)的狀態、端到端實測方式、 測試結果,以及未完成項(未 push GitHub 待 D20/Oscar 需自行按「立即更新」)。 一併誠實記錄收工時發現本機既有背景機制會把 commit 鏡到 Gitea(非本次操作觸發)。 --- system-dev/wiki/status.md | 41 ++++++++++++++++++++++++++++++++++++++- 1 file changed, 40 insertions(+), 1 deletion(-) diff --git a/system-dev/wiki/status.md b/system-dev/wiki/status.md index 70b5624..d46b352 100644 --- a/system-dev/wiki/status.md +++ b/system-dev/wiki/status.md @@ -3,7 +3,7 @@ name: status description: 當前進度、進行中 Phase、已知問題、下一步(動態文件,每 session 更新) metadata: type: project - last_updated: 2026-07-19 + last_updated: 2026-08-07 --- # 當前進度(動態) @@ -15,6 +15,45 @@ metadata: ## 📍 當前位置 +> **2026-08-07 晚(檢修孔第一版,local commit 未 push,main)**:leo 直接指令「先把檢修孔做出來 +> 發版,不必先知道 Oscar 的病是什麼」——解掉「查不出封測者的病,因為拿不到他那邊資料;拿不到 +> 資料是因為沒有檢修孔」的死結。**規格中途被 leo 簡化過一次**:從「免授權層/同意後才交」兩層 +> 機制,收斂成「設定頁一顆按鈕、按下去下載一個 JSON 檔、用戶自己把檔案傳出去」(同意天然內建 +> 在「他自己按、自己傳」這個動作裡)。 +> +> **已完成(3 個 local commit,`matrix/arcrun`,sha `9344562`→`83aa1f6`→`5388f40`)**: +> 1. `kbdb/src/embed.ts` `embedSelfTest()` + `GET /embed/selftest?owner_id=`——挑一筆已標記 +> 「已嵌入」的卡片拿自己的內容查自己,只回 `{enabled,tested,passed,note}`(不回內容/id)。 +> 這是唯一能分辨「從沒嵌過」vs「嵌了但 index 查不到自己」(Arcrun#11 那種故障)的方法, +> 單看 backfillStatus 的 pending/embedded 計數看不出後者。 +> 2. `cypher-executor/src/routes/portal-data.ts` `GET /portal/data/diagnostics`——聚合 +> embed 健康狀態+`library_count`/`triplet_count`(只讀 `/map` 回應的數字,`narrative`/ +> `top_entities` 讀完即丟)+`bundle_version`+`instance_url`。沿用既有 `requirePortalUser`。 +> 3. `console-ui/public/portal/index.html` 設定頁「疑難排解」panel+「匯出診斷檔給我們看」按鈕。 +> +> **端到端實測方式**(真跑不是模擬):本地起兩個真 `wrangler dev`(kbdb:18787/ +> cypher-executor:18788,local D1+KV,真的跑過 migrations),HTTP API 種一個 portal_user +> +一筆 triplet_count=67 的 library_map;瀏覽器工具**真的登入、真的點按鈕**,Network 面板 +> 看到 `GET /portal/data/diagnostics → 200`,頁面狀態列顯示「已下載」。兩種故障情境(module +> 未開/embedded=0;module 開了但 self_test.found_itself=false)都各自產出可判讀的 JSON, +> 貼給 leo 核對過。 +> +> **測試**:kbdb 12 新測試+既有 110 全綠;cypher-executor 3 新測試綠(既有 1 個 `/portal` +> HTML 殼 404 失敗案用 `git stash` 驗證是既有問題非本次造成);console-ui 既有輕量測試 +> 18/18 綠。隱私紅線有機械測試守(斷言回應 JSON 不含卡片內容/entity 名/entry id)。 +> +> **⏸ 未完成/待人**:**尚未 push GitHub**(D20 閘,需 leo 跑 `scripts/github-arm.sh`)→ +> push 後版本要走 `products/arcrun-rag/installer/scripts/release.mjs` 注版號 → Oscar 在他 +> 自己實例的設定頁按「立即更新」重跑安裝才會真的拿到這顆按鈕(self-hosted,不會自動生效)。 +> **這件事沒有 SDD**(leo 直接指令的臨時檢修孔,非任何 active SDD 的 task;`workflow-discovery` +> 是目前唯一 active SDD,本次改動與它無關,屬於「有人閘直接授權」的例外路徑,未走 pending-changes +> 提案流程——如需要補一份小 SDD 記錄,下個 session 可以評估)。 +> +> **收工時意外發現**(誠實記錄):本機有既有背景機制會把 local commit 自動鏡到 Gitea +> (`gitea/main` 在最後一次 commit 後幾秒就更新到同一個 sha,`git reflog` 時間戳對得上), +> 全程沒有手動下過 `git push`。與 CLAUDE.md 記載的「Gitea 永 private,只有 GitHub 走 D20」 +> 模型一致,非本次操作觸發,僅供下個 session 知悉。 + > **2026-07-28(t95+t96 搜尋缺陷修復,main)**:portal 搜尋兩缺陷修復——t95 CJK/ASCII > 邊界自動補空白(`normalizeCjkQuery`,查詢端,不動索引);t96 graph 節點精確 0 鄰居 > → fuzzy fallback(`findBestNodeMatch`/`fuzzyFindNode`,contains 比對+最短名優先)。