feat(console): library-map M5 — 總庫搜尋頁藏書地圖首頁區塊(R4)

library-map SDD M5(Arcrun#39):console 首頁從空白搜尋框變全館地圖。

落點裁定:console 是 hash-routing 單頁殼,home 隨 profile(full=駕駛艙、
rag=總庫搜尋)——地圖放總庫搜尋頁搜尋框上方:rag profile 該頁即首頁;
full profile 它是全館入口,「點庫卡片→進該庫搜尋」動線同頁最短,一份實作
兩 profile 全吃。

- console.ts:藏書地圖區塊(lm-section)——每庫一張卡(庫名+narrative+
  top entities 前 5 帶 degree+triplet_count+commit_hash/updated 更新時間感)、
  跨庫 bridges 有資料才列一小區;兩段式渲染(全館列表先出卡,逐庫詳圖補
  degree/bridges,詳圖失敗維持名字版不擋);點庫卡片=設 library filter
  (/kbdb/search 既有 library 參數,不新造)進庫搜尋,附清除鈕搜回全館;
  /map 空陣列或錯誤=誠實空狀態(指引 POST /map/recompute backfill),
  不擋搜尋等其他功能。品牌沿 CONSOLE_BRAND 變數(#21),零外部庫。
- kbdb-proxy.ts:GET /kbdb/map+/kbdb/map/:library 純轉發(rule 07,聚合真身
  在 kbdb base M2)。owner_id 不強制注入只選擇性透傳(同 M4 MCP kbdb_get_map
  語意;現行 backfill map block owner=NULL,強制注入租戶=首頁永遠假空狀態);
  仍要求 X-Arcrun-API-Key 同閘;KBDB 不可達誠實 502。
- 測試:kbdb-map-proxy.test.ts 9 測(租戶閘/轉發/owner 透傳/空陣列/404/502)+
  console-library-map-page.test.ts 6 測(route 200/區塊在搜尋框上方/資料源接線/
  library 參數/誠實空狀態文案/品牌變數)——15/15 過。
- 誠實回報:tsc 16 行 ExecutionContext.tracing 錯誤與 executor.test 1 失敗=
  main 基線既有(git stash 對照實證),非本分支引入。

merge 後需 gated redeploy cypher-executor(leo 閘)。關聯 #39。

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01JUmjwkHLVBHM3ydhT1WSW3
This commit is contained in:
Claude
2026-07-19 09:34:28 +00:00
parent 289cd495b4
commit 10dda9e6f5
5 changed files with 369 additions and 3 deletions
+11
View File
@@ -15,6 +15,17 @@ metadata:
## 📍 當前位置
> **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 它是全館入口——駕駛艙是
> 狀態面不是庫導覽面,地圖跟搜尋同頁「點庫卡片→帶 library filter 進庫搜尋」動線最短、一份實作
> 兩 profile 全吃)。兩段式渲染:GET /kbdb/map 先出庫卡片(narrativetop entitiestriplet 數+
> 更新時間),逐庫 GET /kbdb/map/:library 補 degree/跨庫 bridgescommit_hash(詳圖失敗維持名字
> 版不擋渲染);proxy 端(kbdb-proxy.tsowner_id **不強制注入只透傳**(同 M4 MCP 語意——現行
> backfill map block owner=NULL,強制注入=首頁永遠假空狀態);/map 空/錯誤=誠實空狀態(指引
> recompute backfill)不擋搜尋。測試:proxy 9 新測+console 頁 6 新測全過;tsc 16 行既有
> ExecutionContext.tracing 錯誤與 executor.test 1 失敗=main 基線就有(stash 對照實證),非本分支引入。
>
> **2026-07-19#39 藏書地圖 M4,分支 `feat/mcp-library-map-inject`****library-map SDD M4 PR 已開,
> 等審+gated 部署(merge 後需 leo 閘 redeploy arcrun-mcp**。兩件(design §4):
> ① MCP tool `kbdb_get_map`(無參數=全館每庫一行;帶 library=詳圖,slot JSON 字串容錯 parse 成