You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
{{ message }}
Repository navigation
Todo Panel — Read-only categories from JSON persistence #46
Server-side persistence layer reading/writing ~/.t3code/todos.json plus a pure state machine. The web app loads categories from the server and renders them as colored, collapsible section headers.
State machine (todoStore): Pure functions operating on { categories: TodoCategory[], items: TodoItem[] }. At this slice: load from JSON, toggle category collapse (UI-only state, not persisted), reorder categories (in-memory, persisted later).
Persistence (todoPersistence): Reads ~/.t3code/todos.json on startup, writes via atomic write (write to temp file, rename over target). Returns the full state.
WebSocket:todo.load NativeApi method returns the current state to the client.
UI: Categories render as collapsible sections with the category color tinting the header background. Clicking a header toggles collapse/expand. Items are not yet supported — to verify visually, the persistence layer can seed initial data from the JSON file.
Acceptance criteria
todoStore module in packages/shared with loadTodos, toggleCategory (collapse), reorderCategories functions
todoPersistence in apps/server reads/writes ~/.t3code/todos.json atomically
todo.load WebSocket NativeApi method wired in apps/server/src/wsServer.ts
useTodos hook in apps/web loads state via WebSocket on mount
Categories render as colored, collapsible section headers in the sidebar
Category collapse state is not persisted (local UI state)
Unit tests for todoStore: basic load, toggle collapse, reorder categories
Integration test for todoPersistence: round-trip read/write, atomic write integrity
Activity
feat: Todo Panel read-only categories from JSON persistence (#46) (#57)
harrryyd commentedon Jun 8, 2026
Implemented and merged to main.
[codex] sync v0.0.27 retained features (#131)