8d8b01d240
leo 2026-07-21 明令封存:卷已完成,留主目錄會讓未來 session 誤以為進行中。
最後一項 T10(廢除自管加密金鑰)已於 20c7610 完成(移除約 2500 行)。
- git mv 整卷 → system-dev/docs/3-specs/archive/credential-primitives-wasm/
design.md status: closed;superseded_by 留空(據實:非被另一卷取代,是機制整個換掉)
- 卷首補「封存時仍未完成的項目」——逐條查 code 核實,不當作完成:
真缺口=auth_mtls 從未實作、7.6 self-hosted auth 鏈端到端從未驗;
另有勾選過期(auth_oauth2 其實已完成)與驗收條件已作廢(與現行 rule 07 牴觸)者
- 修好 14 處引用(原盤點 10 處,實際更多):session-start-load-sdd.sh 內容嚴重過期
(把已完成 Phase 寫成進行中)→ 改為以 frontmatter 為判準;四份 rules、CLAUDE.md、
BACKLOG、3-specs/README、deploy.ts、credentials.ts、wrangler.toml 逐一按性質處理
- 額外:system-dev/docs/2-architecture/ 有四個規則檔重複副本(06-08 遷移遺留)
→ 同步修好,否則留一份過期真相(今日第三次撞到「同一資訊兩份副本」的債)
- 02-forbidden.md §2.1 列的三個「待刪違規 TS」其實早已不存在
→ 改標刪除線+禁止重新引入(過期文件同時製造假待辦與假進行中)
驗證:sdd-active-check exit 0(active 仍恰一份=portal-auth);
session-start-load-sdd.sh exit 0;cypher-executor 與 cli typecheck 全綠;
測試 187/188(唯一 fail 為 pre-existing,stash 覆驗相同)。
未動:pre-write-guard.sh 的 KNOWN_SDDS 白名單不含 archive 路徑
(放寬 guardrail 需明確授權,留待決定)。
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
76 lines
3.7 KiB
Markdown
76 lines
3.7 KiB
Markdown
# 當前進度(SessionStart 會注入此檔重點)
|
||
|
||
> 更新時間:2026-07-21
|
||
> **權威來源=design.md frontmatter `status: active`**(機器可查),不是本檔。
|
||
> 查法:`bash system-dev/scripts/sdd-active-check.sh`
|
||
> 本檔只是索引,任何與 frontmatter 衝突之處以 frontmatter 為準。
|
||
|
||
---
|
||
|
||
## 現行 active SDD
|
||
|
||
**RAG Portal 多人授權** — `system-dev/docs/3-specs/portal-auth/`
|
||
|
||
依 SDD 生命週期鐵律(D35,全文 `system-dev/docs/3-specs/SDD-LIFECYCLE.md`):
|
||
任何時刻整個 repo 只允許**一份** `status: active`。所有開發任務必須對應它的 tasks,
|
||
找不到對應 → 停下來問,不准直接做。
|
||
|
||
**session 開場請回報三個數字**:現行規格名稱 + 未完成任務數 + `pending-changes.md` 待裁決 proposal 數。
|
||
|
||
---
|
||
|
||
## 已封存(closed,勿當進行中)
|
||
|
||
### Credential Primitives TS → WASM
|
||
|
||
`system-dev/docs/3-specs/archive/credential-primitives-wasm/`(2026-07-21 封存)
|
||
|
||
**主線已達成**:cypher-executor TS 不再實作任何 credential / auth 業務邏輯。
|
||
`credential-injector.ts`、`jwt-signer.ts`、`BUILTIN_API_RECIPES` / `BUILTIN_CREDENTIALS_MAP`
|
||
全數移除(最後一項 T10 於 2026-07-20 commit `20c7610` 完成)。
|
||
|
||
**credential 現行做法**(非被另一卷 supersede,是機制整個換掉):
|
||
- 密文 → **CF Workers per-script Secrets**(`CRED_{NAME}_{hash}`),arcrun 讀不回明文
|
||
- 目錄 → **D1** `credentials` 表(name / service / secret_ref,不含值)
|
||
- **arcrun 不自管任何加密金鑰**;`crypto_decrypt` host function 已成永遠回失敗的 stub
|
||
- 完整規範:`.claude/rules/01-tech-stack.md`「Credential 儲存規範」
|
||
|
||
⚠️ **封存 ≠ 全部做完**。真實殘留缺口(要做需另立新 SDD,不得掛回已封存的卷):
|
||
- **`auth_mtls` 從未實作**(`registry/components/auth_mtls/` 不存在,mTLS 認證不支援)
|
||
- **7.6 self-hosted auth 鏈端到端未驗**(`global_fetch_strictly_public` flag 是否真解
|
||
same-zone 1042,在自架帳號上從未實測)
|
||
- 數項端到端測試(1.7/1.8/2.6/3.5/3.6/5.1)無驗證記錄
|
||
|
||
逐條核實見該卷 `tasks.md` 的「封存時仍未完成的項目」段。
|
||
|
||
---
|
||
|
||
## SDD 索引
|
||
|
||
> 「進行中」與否一律以 frontmatter 為準,下表僅路徑速查。
|
||
|
||
| 子系統 | SDD |
|
||
|--------|-----|
|
||
| **現行 active** RAG Portal 多人授權 | `system-dev/docs/3-specs/portal-auth/` |
|
||
| ~~Credential Primitives WASM~~(closed) | `system-dev/docs/3-specs/archive/credential-primitives-wasm/` |
|
||
| LLM Interface(AI 操盤手使用體驗) | `system-dev/docs/3-specs/llm-interface/` |
|
||
| arcrun 總進度 | `system-dev/docs/3-specs/arcrun/arcrun.md` |
|
||
| Auth Recipe 系統(schema、預建服務) | `system-dev/docs/3-specs/arcrun/auth-recipe.md` |
|
||
| SDK + Website | `system-dev/docs/3-specs/arcrun/sdk-and-website/` |
|
||
| arcrun MVP 整體 | `system-dev/docs/3-specs/arcrun-core-mvp/` |
|
||
| Platform Evolution | `system-dev/docs/3-specs/arcrun-platform-evolution/` |
|
||
| Tech Stack 詳細 | `system-dev/docs/3-specs/tech.md` |
|
||
| 生命週期鐵律 | `system-dev/docs/3-specs/SDD-LIFECYCLE.md` |
|
||
| 待裁決 proposal | `system-dev/docs/3-specs/pending-changes.md` |
|
||
|
||
---
|
||
|
||
## 技術備註(CC 常搞錯的點)
|
||
|
||
1. **每個 WASM 零件 = 獨立 Worker = 獨立 URL**。不是從 R2 動態讀。
|
||
2. **Cypher binding = YAML 裡寫 URL 清單**。不是 Cloudflare service binding。
|
||
3. **cypher-executor 只做 routing + host functions**。業務邏輯全在 WASM 零件。
|
||
4. **TinyGo 有限制**:`crypto/rsa` 支援不全 → 用 host function `crypto_sign_rs256` 讓 Worker 代簽。
|
||
5. **credential 不自管金鑰**:走 `secret_get(ref)` 讀 CF Workers Secrets,`crypto_decrypt` 是 stub。
|
||
6. 詳見 `.claude/rules/03-component-architecture.md` 與 `01-tech-stack.md`。
|