Files
kbdb-graph-plugin/docs/3-specs/kbdb-graph-extraction/tasks.md
T
Leo efe8e165cf feat: KBDB-graph 插件獨立 — 全面改寫成走基本盤 API(API-as-Wall)
按 leo 鐵律(2026-06-14)把插件從「直接 SQL 操作基本盤表」改寫成
「只透過基本盤 arcrun/kbdb HTTP API 讀寫」。零建表、零 migration、零 SQL。

- 新增 src/lib/kbdb-client.ts:唯一對外通道,封裝 entries/templates/records API
- 新增 src/lib/templates.ts:triplet/entity template 定義(替代建表)
- 改寫 21 個違規 action(triplet/graph/entity/search)→ 走 client,圖在插件層記憶體組裝
- 移除所有 migrations、D1/Vectorize/AI 綁定;embedding/語意搜尋歸基本盤 optional 模組
- index.ts 只掛 triplets/graph/entities/search 路由;基本盤路由歸 arcrun/kbdb
- 測試改走 mock client(純 node);裁剪 CLAUDE.md 只留 graph 插件 + 鐵律
- 修正 SDD design.md「讀現狀推翻鐵律」的錯誤判斷(共用 D1 → API-as-Wall)

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-06-14 20:59:41 +08:00

61 lines
4.4 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.
# KBDB-graph 抽出 — Tasks
> 唯一進度來源,不靠對話記憶。完成即時更新。
> 狀態:[ ] 未開始 [🔄] 進行中 [x] 完成 [⏸] 卡住/待確認
---
## R-EXT-1 確認邊界
- [x] 1.1 inventory:列出現有 actions/routes/migrations/contracts2026-06-14 完成,見 design.md
- [x] 1.2 初步分類:插件 / 基本盤 / 灰色地帶(2026-06-14,見 design.md 邊界分類表)
- [x] 1.3 灰色地帶 grep 調查:證實插件 action 層零耦合、耦合只在 DB 層;逐檔附證據歸屬(2026-06-14,見 design.md 灰色地帶結論)。⚠️ 0005/0007 歸屬與 HANDOFF 有出入,仍需與 arcrun 對齊(屬 1.4
- [x] 1.4a 讀 arcrun 端真身對齊(2026-06-14):**發現 arcrun/kbdb 還是 v2entries,無 blocks/0005/0007/block-crud),且兩 repo 是不同 D1 庫**。v3 基本盤真身其實在本目錄。見 design.md「全局核對發現」
- [x] 1.4b 前置議題**總管已答覆**leo 2026-06-14):→ `InkStoneCo/docs/3-specs/matrix-rearrange/DECISION-kbdb-v3-baseplane.md`。三問消解:基本盤已在 arcrun/kbdb 且設計正確、掛載走 API(非共用 D1)、插件零 migration。**阻擋解除。**
- [x] 1.4c 不需移交/升級 arcrun——基本盤已正確。插件改寫成走 API 即可(見 R-EXT-4
- [ ] 1.5 裁剪 CLAUDE.md:移除基本盤規範,只留 graph 插件相關
- [ ] 1.6 清掉殘留:`blocks.ts.bak`、誤入 repo 的 `ruvector.db`(根 + src/routes/ 各一份)、`finally.click` 空檔、`.swarm`
## R-EXT-3 定義掛載介面(已定案 2026-06-14
- [x] 3.1 確認基本盤 API 契約(讀 arcrun/kbdb src,見 design.md「基本盤 API 契約」表)
- [x] 3.2 掛載方式定案:**API-as-Wall**HTTP API,非共用 D1、非 VIEW、非附加表)。圖在插件層記憶體組裝
- [x] 3.3 寫進 design.md 定稿(「掛載介面 = 基本盤 API」節)
## R-EXT-4 改寫成走 API(核心,2026-06-14 新增)
> 鐵律:插件零建表、零 migration、零 SQL,只用 API/CLI/MCP。
- [ ] 4.1 寫 `src/lib/kbdb-client.ts`:封裝基本盤 HTTP APIentries/templates/records),指向 `KBDB_BASE_URL` env var。零 `.prepare`
- [ ] 4.2 wrangler.toml:移除 D1/Vectorize 綁定(插件不碰 DB),加 `KBDB_BASE_URL` var(先留空)
- [ ] 4.3 改寫 `triplet-crud`(拆 < 100 行):create/query/get/update/delete/stats → API
- [ ] 4.4 改寫 `triplet-extract`/`triplet-entities`/`triplet-stats`/`triplet-update` → API
- [ ] 4.5 改寫 `graph-{nodes,path,traverse}`:取 triplet records → 插件層組圖
- [ ] 4.6 改寫 `entity-{crud,normalize,graph-embed}`template='entity' + records API;無 vectorize 時降級 exact
- [ ] 4.7 改寫 `search-query`/`search-*``GET /entries/search`(keyword);語意搜尋標記待 embed 模組
- [ ] 4.8 刪違規 migrations0001/0002/0005/0007 等含 CREATE TABLE+ 清基本盤 action/routeblock-*/entry-crud/record-crud/tag/profile/admin/...
- [ ] 4.9 改測試走 mock client;標記 base 缺口(PUT/DELETE record、vectorize)為 `[→arcrun]`
## R-EXT-2 獨立成 repo(最後做,依賴 1.4/1.5 完成)
- [x] 2.1 GitHub 帳號 + repo 名:**leo 拍板 = 新 repo `uncle6me-web/kbdb-graph-plugin`**2026-06-14
- [ ] 2.2 `git init` + `.gitignore`(排除 ruvector.db、.env、node_modules、.wrangler、*.bak
- [ ] 2.3 設 remote、首次 commit、推 GitHub(本 CC 自己推,不經總管)
- [ ] 2.4 部署驗證:wrangler 直推 CF,確認不開 Actions
---
## 阻擋項彙整(更新 2026-06-14
1. ✅ repo 已定:`uncle6me-web/kbdb-graph-plugin`(解除 2.1
2. ✅ 灰色地帶已 grep 調查完,附證據建議(解除 1.3)
3.**前置議題(讀 arcrun 後升級為主阻擋)**arcrun/kbdb 還是 v2、與插件不同 D1 庫。三問待 leo/arcrun 定案:
- (1) v3 基本盤(blocks/0005/0007/block-crud)由誰、怎麼進 arcrun?(arcrun 升 v3 vs 本目錄整理好再交)
- (2) 掛載形態:共用同一 D1(需合庫)還是插件透過基本盤 **API** 取 block(不共用 D1)?
- (3) `0005_universal_table` 歸基本盤(它定義 entry_values)——與 HANDOFF 列為插件矛盾,需 arcrun 確認。
## 注意
- arcrun 端對應交棒:`arcrun docs/HANDOFF-matrix-rearrange.md §2`,移交基本盤前先與其對齊。
- 在 2.2 git init 前,本目錄無版控 → 搬檔用 `mv` 不是 `git mv`