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>
This commit is contained in:
2026-06-14 20:59:41 +08:00
commit efe8e165cf
62 changed files with 7671 additions and 0 deletions
+50
View File
@@ -0,0 +1,50 @@
# /wiki-update — Session 結束,更新狀態
每次 session 結束時執行。更新 status.md,確保下次 session 能無縫接上。
---
## 執行流程
### 第一步:整理這次 session 的結果
從對話中提取:
- 完成了哪些 tasks(標記為 [x])
- 進行中但未完成的(標記為 [🔄]
- 遇到什麼問題或阻擋
- 下次應該從哪裡開始
### 第二步:更新 tasks.md
把對應 SDD 的 tasks.md 狀態更新(如果這次有動到的話)。
### 第三步:更新 status.md
用以下格式覆蓋 status.md
```markdown
# 當前狀態
> 更新時間:[YYYY-MM-DD]
## 正在做
- [🔄] [task 描述] — 阻擋點:[如果有]
## 下次 session 第一件事
[具體的第一個動作,越具體越好]
## 待負責人確認
- [描述] — 等待:[什麼決定]
## 已知問題
| 問題 | 優先級 | 狀態 |
|------|--------|------|
| [問題] | 🔴/🟡/⚪ | [狀態] |
```
### 第四步:如果有新的誤解或決策
順帶執行 `/wiki-capture` 的邏輯,把這次的誤解和決策也存進去。
### 第五步:確認
告知 status.md 更新完成,下次 session 從哪裡開始。