{ "planPath": "docs/plans/2026-04-26-v1-phase1-implementation.md", "tasks": [ {"id": 0, "subject": "T0: Project skeleton with health endpoint", "status": "pending"}, {"id": 1, "subject": "T1: Config loading (toml + env override)", "status": "pending", "blockedBy": [0]}, {"id": 2, "subject": "T2: SQLite migration runner with meta version", "status": "pending", "blockedBy": [0]}, {"id": 3, "subject": "T3: LLMClient protocol + Featherless + Mock", "status": "pending", "blockedBy": [1]}, {"id": 4, "subject": "T4: Classifier wrapper with retry/timeout/fallback", "status": "pending", "blockedBy": [2, 3]}, {"id": 5, "subject": "T5: Append-only event log with projector skeleton", "status": "pending", "blockedBy": [2]}, {"id": 6, "subject": "T6: Bot + You entity schemas and events", "status": "pending", "blockedBy": [5]}, {"id": 7, "subject": "T7: Edges schema with per-turn delta projector", "status": "pending", "blockedBy": [5, 6]}, {"id": 8, "subject": "T8: Memory schema with witness flags + FTS5 index", "status": "pending", "blockedBy": [5, 6]}, {"id": 9, "subject": "T9: Chats, chat_state, containers, scenes, activity tables", "status": "pending", "blockedBy": [5, 6]}, {"id": 10, "subject": "T10: Kickoff prose parser via classifier", "status": "pending", "blockedBy": [4, 9]}, {"id": 11, "subject": "T11: Bot authoring page with bot_authored event", "status": "pending", "blockedBy": [6]}, {"id": 12, "subject": "T12: Settings page with you-entity authoring", "status": "pending", "blockedBy": [6]}, {"id": 13, "subject": "T13: Kickoff parse-and-confirm flow", "status": "pending", "blockedBy": [10, 11, 9]}, {"id": 14, "subject": "T14: Top-level nav and chat list view", "status": "pending", "blockedBy": [9, 11]}, {"id": 15, "subject": "T15: Chat shell page rendering", "status": "pending", "blockedBy": [14]}, {"id": 16, "subject": "T16: Per-chat SSE channel and pub/sub", "status": "pending", "blockedBy": [15]}, {"id": 17, "subject": "T17: Turn input parser (dialogue/action/ooc)", "status": "pending", "blockedBy": [4]}, {"id": 18, "subject": "T18: Prompt assembly with must/should/nice trim tiers", "status": "pending", "blockedBy": [8, 7, 9]}, {"id": 19, "subject": "T19: Narrative streaming via SSE with assistant_turn event", "status": "pending", "blockedBy": [3, 16, 17, 18, 5]}, {"id": 20, "subject": "T20: Post-turn state-update pass per present entity", "status": "pending", "blockedBy": [4, 7, 19]}, {"id": 21, "subject": "T21: Per-turn memory writes with witness flags", "status": "pending", "blockedBy": [8, 19]}, {"id": 22, "subject": "T22: Async significance pass with auto-pin on score 3", "status": "pending", "blockedBy": [4, 8, 21]}, {"id": 23, "subject": "T23: FTS5 memory retrieval with witness filter and ranking", "status": "pending", "blockedBy": [8, 18]}, {"id": 24, "subject": "T24: Read-only drawer with scene, activity, edges, memories", "status": "pending", "blockedBy": [15, 9, 7, 8]}, {"id": 25, "subject": "T25: Drawer edits with manual_edit event capture", "status": "pending", "blockedBy": [24, 5]}, {"id": 26, "subject": "T26: Scene close on hard signals with manual override", "status": "pending", "blockedBy": [9, 17, 24]}, {"id": 27, "subject": "T27: Per-POV summary and edge summary update on scene close", "status": "pending", "blockedBy": [4, 8, 7, 26]}, {"id": 28, "subject": "T28: Rewind with impact preview, snapshot, undo toast", "status": "pending", "blockedBy": [5, 9, 8]}, {"id": 29, "subject": "T29: Regenerate with edit-then-regenerate inline UX", "status": "pending", "blockedBy": [19]}, {"id": 30, "subject": "T30: Bot reset with hard confirm and event-driven purge", "status": "pending", "blockedBy": [6, 8, 7, 9]}, {"id": 31, "subject": "T31: Periodic snapshots with retention and cold-load fast-path", "status": "pending", "blockedBy": [28]}, {"id": 32, "subject": "T32: Nightly DB backups with 14-day retention", "status": "pending", "blockedBy": [2]}, {"id": 33, "subject": "T33: Transcript display formatting (markdown, italic, OOC)", "status": "pending", "blockedBy": [19]}, {"id": 34, "subject": "T34: Streaming UX with Stop, disconnect handling, send-lock", "status": "pending", "blockedBy": [19, 16]}, {"id": 35, "subject": "T35: Error banners and first-run navigation flow", "status": "pending", "blockedBy": [19, 12, 11, 13]} ], "lastUpdated": "2026-04-26T00:00:00Z" }