fix(t95+t96): 查詢 CJK 邊界自動補空白+圖譜節點模糊命中

leo 07-28 實測:「AI協作」(無空白)搜不到;圖譜搜「AI 協作」0 鄰居但總圖有
「AI 協作規範書」節點(「這個搜尋詞來自 Graph View 的一部分,居然搜不到?」)。
- normalizeCjkQuery:CJK↔ASCII 邊界插空白,search q 與 graph 節點名都過
- fuzzyFindNode:精確 0 鄰居時 fallback contains 比對(取最短命中)重查
測試 +18 全綠(vitest 197 passed;9 個既有紅=console HTML 搬遷陳舊測試,與本案無關,
stash 基線對照確認)。B5 分支衝突面已查:僅 line 274 一行。
(實作=子 CC;驗證+commit=總管)
This commit is contained in:
uncle6me-web
2026-07-28 15:06:07 +08:00
parent ba92d10a3f
commit e36cd2d990
4 changed files with 266 additions and 6 deletions
@@ -161,6 +161,23 @@
頁尾連 00-MAP.md#39「人機共用同一份地圖」的文字版)。
#39 本體(library_map Template/ingest 重算/MCP instructions+get_map)不在本次範圍,仍歸 #39 SDD。
- [x] **t95 搜尋 CJK 正規化(2026-07-28,任務層小改)**
來源=leo 實測 geek6688 實例「搜『AI協作』(無空白)0 結果,搜『AI 協作』有結果,中文習慣不是每個人都會加空白」。
修:`portal-data.ts` 新增 `normalizeCjkQuery()`(CJK/ASCII 邊界自動插空白,純函式可 export 單測);
`/portal/data/search` 路由的 `q` 參數先過正規化再查 KBDB;只動查詢端不動索引端。
驗證:pure function 6 案(純 CJK/ASCII 不動、邊界插空白、已有空白不重複、全形符號不觸發)+
integration 2 案(`AI%E5%8D%94%E4%BD%9C` → KBDB 收到 `AI 協作`)。
- [x] **t96 圖譜節點模糊比對 fuzzy fallback2026-07-28,任務層小改)**
來源=leo 實測「graph 模式搜『AI 協作』回鄰居 0 關聯 0,但總圖上明明有節點『AI 協作規範書』—精確比對太嚴」。
修:`portal-data.ts` 新增 `findBestNodeMatch()`(contains 比對+最短名優先,純函式)+
`fuzzyFindNode()`(查 KBDB triplet records 找最佳節點名);
graph neighbors 路由 plugin fallback 路徑(②):精確命中 0 鄰居+0 邊 → 以 fuzzyFindNode 找最佳節點名重查;
工作流路徑(①)套 CJK 正規化但不加 fuzzy fallbackworkflow 自管節點解析)。
B5 分支(work/b5-graph-library-filter-0726)只動同一行的 `libraries` 欄位,衝突面最小。
驗證:findBestNodeMatch 6 案(空清單/無命中/精確子字串/多命中取最短/CJK 未正規化/大小寫)+
integration 4 案(有鄰居直接回、0 鄰居 fuzzy 命中、0 鄰居 fuzzy 無命中誠實回 0、t95+t96 連動)。
## 第二波(不在本 SDD 動工範圍,掛號)
- MCP token 綁庫集合(design §9PR#15 擴充,只動 `mcp/`
+7
View File
@@ -15,6 +15,13 @@ metadata:
## 📍 當前位置
> **2026-07-28t95+t96 搜尋缺陷修復,main)**portal 搜尋兩缺陷修復——t95 CJK/ASCII
> 邊界自動補空白(`normalizeCjkQuery`,查詢端,不動索引);t96 graph 節點精確 0 鄰居
> → fuzzy fallback`findBestNodeMatch`/`fuzzyFindNode`contains 比對+最短名優先)。
> 純函式 + integration 各 6/2/4 案,tasks.md Bugfix 已標 [x]。
> B5 分支衝突面:同一行 `libraries` 欄位(可一行解)。待 leo 本機跑 vitest 驗收
>sandbox symlink 封鎖,靜態分析確認邏輯正確)+ commit+部署。
>
> **2026-07-19#39 藏書地圖 M5,分支 `feat/console-library-map-home`****library-map SDD M5GUI
> 首頁)PR 已開,等審+gated 部署(merge 後需 leo 閘 redeploy cypher-executor**。R4 落點裁定=
> console **總庫搜尋頁搜尋框上方**rag profile 該頁即首頁;full profile 它是全館入口——駕駛艙是