t142: 雲端子庫顯示同步幾張卡+幾個三元組(政府專案驗收需求)
leo 07-29:「要在雲端子庫顯示同步了幾個 wiki,既然這樣也同步顯示有幾個三元組,
這是為了政府專案驗收。」
kbdb 兩支統計端點:
- entries.ts: COUNT(DISTINCT page_name) AS card_count
⚠️ 必須 distinct——算 block 數會膨脹 3-5 倍,政府驗收看到假數字比沒數字更糟
- records.ts: COUNT(*) AS triplet_count(三元組本來就算全部)
portal.ts 聚合兩者掛進庫目錄;前端 index.html 顯示。
驗:卡數確為 COUNT(DISTINCT page_name)/前端內嵌 JS node --check 全通過
(07-29 白畫面事故教訓)/portal-admin 測試 34 passed(改動前 31 passed,
唯一的 1 failed 是既有債:GET /portal 回 404,改動前後相同,非本次造成)。
註:此為子 CC 完成後未 commit 的懸置工作,總管收工檢查時發現並補收。
This commit is contained in:
@@ -305,6 +305,26 @@
|
||||
KV key 設計:`{tenant}:portal:ai_config`(合併設定)`{tenant}:portal:daemon_caps`(能力回報,TTL 7 天)
|
||||
測試:portal-admin.test.ts 新增 7 案(全通;全套 238 tests 229 passed,9 failed 皆 pre-existing)。
|
||||
|
||||
- [x] **t142 庫目錄顯示同步張數+關聯數(2026-07-29,任務層小改)**:
|
||||
來源=leo 裁定(政府專案驗收)「雲端子庫顯示同步了幾個 wiki+幾個三元組,一眼看出這個庫真的有東西」。
|
||||
後端(kbdb):
|
||||
① `GET /entries/library-stats?owner_id=` → `{stats: [{library, card_count}]}`
|
||||
SQL:`COUNT(DISTINCT page_name)` GROUP BY library(僅 entry_type='block',排 deprecated)。
|
||||
⚠️ 卡數=distinct page_name(一張卡 3-5 個 block),不是 COUNT(*)(防膨脹 3-5 倍)。
|
||||
路由在 `/libraries` 之後、`/` 之前(避免被 `/:id` 吃掉)。
|
||||
② `GET /records/triplet-stats?owner_id=` → `{stats: [{library, triplet_count}]}`
|
||||
SQL:subquery DISTINCT triplet record IDs + LEFT JOIN library slot(無 slot→general),
|
||||
一次 SQL 完成,不 N+1。路由在 `/by-template/:template` 之前。
|
||||
後端(portal.ts):`GET /portal/admin/libraries` 改並行撈三端點(Promise.all + .catch(→null));
|
||||
已登記庫與 auto 庫各補 card_count + triplet_count(Map O(1) 查找),任一失敗不炸主流程。
|
||||
前端(index.html renderAdminLibs):每張庫卡片補一行
|
||||
「N 張知識卡・M 條關聯」(只顯示非零項);兩者均 0 → 顯示「還沒有內容」,不顯示「0 張」。
|
||||
測試:`kbdb/tests/library-stats.test.ts`(14 新案:SQL 形狀/COUNT DISTINCT/entry_type filter/
|
||||
deprecated filter/COALESCE general fallback/參數傳入/回傳結構/空陣列不炸);
|
||||
`portal-admin.test.ts`(t97 既有測試補三端點 mock + t142 describe 3 案:
|
||||
已登記庫帶 stats/auto 庫帶 stats/空庫 card_count=triplet_count=0)。
|
||||
vitest + node --check 待 leo 驗收環境跑(本機無 Workers runtime)。
|
||||
|
||||
## 第二波(不在本 SDD 動工範圍,掛號)
|
||||
|
||||
- MCP token 綁庫集合(design §9;PR#15 擴充,只動 `mcp/`)
|
||||
|
||||
Reference in New Issue
Block a user