docs(palace): update roadmap — mark all phases complete with commit hashes + test counts
This commit is contained in:
parent
e6a0e7e85c
commit
f2d03d01fc
@ -864,12 +864,12 @@ export async function getPalaceStats(): Promise<PalaceStats>;
|
||||
| Phase | Description | Days | Tests | Depends On |
|
||||
|-------|-------------|------|-------|------------|
|
||||
| **N0** | `@bytelyst/palace` shared package in common-plat (types, cosine, dedup, decay, extraction, KG, wakeup) — d1c6cf4 | 3-4 | 91 ✅ | — |
|
||||
| **N1** | Palace Core (Cosmos containers, repository, extraction, dedup, encryption) — consumes `@bytelyst/palace` | 4-5 | ~30 | N0 |
|
||||
| **N2** | Wake-Up Context (L0/L1/L2 at ~600 tokens) | 3 | ~12 | N1 |
|
||||
| **N3** | Knowledge Graph (temporal entity triples) | 4 | ~16 | N1 |
|
||||
| **N4** | Auto-Save Hooks (note create/update/agent action triggers) | 3 | ~10 | N1 |
|
||||
| **N5** | Palace API Routes (REST endpoints + Zod validation) | 3 | ~14 | N1, N2, N3 |
|
||||
| **N6** | MCP Memory Tools (6 `mempalace_*` tools) | 2 | ~10 | N1, N5 |
|
||||
| **N1** | Palace Core (Cosmos containers, repository, extraction, dedup, encryption) — 38006af…632b5df | 4-5 | 31 ✅ | N0 |
|
||||
| **N2** | Wake-Up Context (L0/L1/L2 at ~600 tokens) — a5dbeac | 3 | 9 ✅ | N1 |
|
||||
| **N3** | Knowledge Graph (temporal entity triples) — 31bdb0a | 4 | 10 ✅ | N1 |
|
||||
| **N4** | Auto-Save Hooks (note create/update/agent action triggers) — 0af5f87 | 3 | 7 ✅ | N1 |
|
||||
| **N5** | Palace API Routes (REST endpoints + Zod validation) — be2f4ff | 3 | 9 ✅ | N1, N2, N3 |
|
||||
| **N6** | MCP Memory Tools (6 `mempalace_*` tools) — c7c1eba | 2 | 7 ✅ | N1, N5 |
|
||||
| **N7** | Web UI (palace panel, KG view, timeline, stats) — e6dacbe | 4 | 21 ✅ | N5 |
|
||||
| **Total** | | **27-32 days** | **~125** | |
|
||||
|
||||
@ -960,11 +960,11 @@ This gives auto-saving memories on note create/update after N1+N4 (~9 days), wit
|
||||
|
||||
Every phase must satisfy these checks before merging:
|
||||
|
||||
- [ ] **Every new Cosmos container** uses `/userId` as partition key
|
||||
- [ ] **Every repository function** takes `userId` as first parameter
|
||||
- [ ] **Every query filter** includes `userId` — no exceptions
|
||||
- [ ] **Every route handler** extracts userId via `getUserId(req)` — never from request body/params
|
||||
- [ ] **Every test file** includes at least one cross-user isolation test
|
||||
- [ ] **No endpoint** accepts userId as a URL parameter or request body field
|
||||
- [ ] **Field encryption** uses `userId` in encryption context
|
||||
- [ ] **MCP tools** use `requireUserId(req)` guard (from existing pattern)
|
||||
- [x] **Every new Cosmos container** uses `/userId` as partition key — all 6 containers
|
||||
- [x] **Every repository function** takes `userId` as first parameter
|
||||
- [x] **Every query filter** includes `userId` — no exceptions
|
||||
- [x] **Every route handler** extracts userId via `getUserId(req)` — never from request body/params
|
||||
- [x] **Every test file** includes at least one cross-user isolation test
|
||||
- [x] **No endpoint** accepts userId as a URL parameter or request body field
|
||||
- [x] **Field encryption** uses `userId` in encryption context
|
||||
- [x] **MCP tools** use `requireUserId(req)` guard (from existing pattern)
|
||||
|
||||
Loading…
Reference in New Issue
Block a user