Index of task specs and their state. Each row points at a docs/tasks/<slug>.md task file (when one exists) or describes what needs to be created.
| # | Slug | Status | Description |
|---|---|---|---|
| 1 | lethe-server |
Verified | Backend skeleton: SQLite ingest, sessions list/detail, forward-auth, RFC 7807, deployable on phoebe behind Authelia. Shipped over 9 phases. |
| 2 | lethe-collector-claude-code |
Designed (deferred) | Per-host systemd-user collector that tails ~/.claude/projects/*.jsonl and POSTs normalized turns to ingest. Blocks #8 and #9. |
| 3 | lethe-search-and-opencode |
Designed (deferred) | Adds GET /api/v1/search (FTS5) and an opencode collector. Blocks #7. |
| 4 | lethe-web-ui-foundation |
Reviewed | Vite/React/TS SPA, embed pipeline, shell + Home + Session views, palette skeleton, 5 stub routes. Plus /sessions aggregate fields. |
| 5 | lethe-web-ui-aggregates |
Reviewed | Backend /projects + /stats endpoints, Projects index + Project detail + Stats screen. Replaces 3 of #4's stubs. |
| 6 | lethe-web-ui-palette-savedsearch |
Not started | Full ⌘K palette (PROJECT/SESSION items), saved-searches table + UI, palette pulls from it. Small backend (1 table) + Settings → Saved searches. |
| 7 | lethe-web-ui-search |
Blocked on #3 | Search route: turn-level results, FTS <mark> highlighting, save-search action. |
| 8 | lethe-web-ui-settings-display |
Not started | Settings → Display: theme toggle (light/dark/system), density toggle, "show tool calls" toggle, persisted to localStorage. |
| 9 | lethe-web-ui-health-sources |
Blocked on #2 (and ideally #3) | Settings → Sources (per-host-per-tool config table) + /health route (collector ingestion table, status pills, footer strip with backfill progress and last-error). |
| 10 | lethe-oidc-stub |
Not started | Promote the in-test oidcTestServer (internal/server/auth/oidctestserver_test.go) to an exported internal/testutil/oidcstub/ package, optionally wrap as cmd/oidc-stub. Unblocks real-browser smoke for #5 (the deferred verify item) and any future SPA route work without standing up Authelia locally. JWT-based by design — see ~/data/home/second-brain/wiki/jwt-for-sessions.md: lethe is the OIDC verifier, JWT is the only legal wire format here. |
lethe-web-ui-foundationThese were captured in lethe-web-ui-foundation.md Conclusion → Future work / Deferred. Pulled here so they're visible across tasks.
SessionsTable Link passes the full composite as params.id, producing URLs like /session/T/H/T%2FH%2FID. Fix in web/src/features/home/SessionsTable.tsx to pass the bare session_id.GET /sessions/{tool}/{host}/{id}: the new summary/turn_count/tokens_*_total fields appear as zero values on the Get path because the Get SQL is unchanged (Plan 1.2 said so). UI doesn't read them, but a future API consumer would. Fix is either extending the Get SQL or adding ,omitempty to the four numeric tags.Turn TS interface from foundation Plan 6.1 omitted timestamp; meta line shows # seq · model · tokens-in→tokens-out only. Add timestamp to the interface + render.go test ./... walks web/node_modules/flatted/golang/pkg/flatted: stray Go package shipped inside an npm dep. Switch CI to go test ./internal/... or gitignore the path..github/workflows/ nor .sourcecraft/ci.yml exists. Pick one (sourcecraft.dev native preferred for personal repos) and wire npm ci && npm run lint && npm run typecheck && npm test && npm run build plus the existing Go job.Cross-cutting tooling polish that doesn't warrant a full task file each. Track here so they don't get lost.
just air → just dev — match the gabin convention; rename the recipe in Justfile and update the README quickstart line.air → go tool air — add tool github.com/air-verse/air to go.mod (Go 1.24+); the dev: recipe runs go tool air so contributors don't need a separate go install. .air.toml is unchanged.go fix ./... to just fmt — runs after goimports; mostly a no-op today but standardizes future API-rewrite migrations into the existing just fmt flow.migrate → go tool migrate — go get -tool github.com/golang-migrate/migrate/v4/cmd/migrate@latest; rewrite the three migrate-* recipes; drop the now-stale brew install golang-migrate comment block.Tracked outside the task workflow because they're user-driven, not engineering work.
~/data/home/lethe has no remote configured; per global preference all ~/data/home/* projects mirror to sourcecraft.dev. sc init / sc push when you want it visible / backed up./projects, /project/<encoded cwd>, /stats?range=… were verified by tsc + vitest + Go handler tests, but never walked in a real browser. Blocked on having an OIDC bearer + populated DB locally; task #10 (OIDC stub) closes both halves of that.docs/tasks/<slug>.md yet — invoking /up:udesign <slug> creates one.commit.gpgsign=true).