From d9d0cffc8d29a70aed9d4b8130f4cb09cb4e7ed3 Mon Sep 17 00:00:00 2001 From: saravanakumardb1 Date: Fri, 10 Apr 2026 01:20:08 -0700 Subject: [PATCH] docs(palace): mark Phase N1 complete in roadmap --- docs/MEMPALACE_INTEGRATION_ROADMAP.md | 58 +++++++++++++-------------- 1 file changed, 29 insertions(+), 29 deletions(-) diff --git a/docs/MEMPALACE_INTEGRATION_ROADMAP.md b/docs/MEMPALACE_INTEGRATION_ROADMAP.md index 0763768..6951fe5 100644 --- a/docs/MEMPALACE_INTEGRATION_ROADMAP.md +++ b/docs/MEMPALACE_INTEGRATION_ROADMAP.md @@ -359,22 +359,22 @@ import type { BasePalaceMemoryDoc } from '@bytelyst/palace'; All methods require `userId` + `productId` as first two params: -- [ ] `ensureWing(userId, productId, workspaceId, name)` — upsert wing from workspace -- [ ] `getWing(userId, productId, wingId)` → `PalaceWingDoc | null` -- [ ] `listWings(userId, productId)` → `PalaceWingDoc[]` -- [ ] `deleteWing(userId, productId, wingId)` — cascade delete rooms, memories, tunnels, KG -- [ ] `ensureRoom(userId, productId, wingId, name, description?)` — upsert room -- [ ] `listRooms(userId, productId, wingId)` → `PalaceRoomDoc[]` -- [ ] `storeMemory(userId, productId, wingId, roomId, hall, content, sourceNoteId?, embedding?)` — create + dedup -- [ ] `searchSemantic(userId, productId, query, embedding, wingId?, limit)` → ranked memories -- [ ] `searchText(userId, productId, query, wingId?, limit)` → text-matched memories -- [ ] `searchHybrid(userId, productId, query, embedding, wingId?, limit)` → text candidates re-ranked by cosine -- [ ] `getWingSummary(userId, productId, wingId)` → rooms + memory counts -- [ ] `isNearDuplicate(userId, productId, roomId, hall, content, embedding, threshold)` → boolean -- [ ] `pruneOldMemories(userId, productId, wingId, olderThanDays, minRelevance)` → count deleted -- [ ] `decayRelevance(userId, productId, halfLifeDays)` → count updated -- [ ] `backfillEmbeddings(userId, productId)` → count embedded -- [ ] `healthCheck()` → `{ cosmos: boolean, llm: boolean }` +- [x] 44d8867 `ensureWing(userId, productId, workspaceId, name)` — upsert wing from workspace +- [x] 44d8867 `getWing(userId, productId, wingId)` → `PalaceWingDoc | null` +- [x] 44d8867 `listWings(userId, productId)` → `PalaceWingDoc[]` +- [x] 44d8867 `deleteWing(userId, productId, wingId)` — cascade delete rooms, memories, tunnels, KG +- [x] 44d8867 `ensureRoom(userId, productId, wingId, name, description?)` — upsert room +- [x] 44d8867 `listRooms(userId, productId, wingId)` → `PalaceRoomDoc[]` +- [x] 44d8867 `storeMemory(userId, productId, wingId, roomId, hall, content, sourceNoteId?, embedding?)` — create + dedup +- [x] 44d8867 `searchSemantic(userId, productId, query, embedding, wingId?, limit)` → ranked memories +- [x] 44d8867 `searchText(userId, productId, query, wingId?, limit)` → text-matched memories +- [x] 44d8867 `searchHybrid(userId, productId, query, embedding, wingId?, limit)` → text candidates re-ranked by cosine +- [x] 44d8867 `getWingSummary(userId, productId, wingId)` → rooms + memory counts +- [x] 44d8867 `isNearDuplicate(userId, productId, roomId, hall, content, embedding, threshold)` → boolean +- [x] 44d8867 `pruneOldMemories(userId, productId, wingId, olderThanDays, minRelevance)` → count deleted +- [x] 44d8867 `decayRelevance(userId, productId, halfLifeDays)` → count updated +- [x] 44d8867 `backfillEmbeddings(userId, productId)` → count embedded +- [x] 44d8867 `healthCheck()` → `{ cosmos: boolean, llm: boolean }` **User isolation enforcement:** ```typescript @@ -504,19 +504,19 @@ async function encryptMemoryContent(doc: PalaceMemoryDoc): Promise