Skip to content

docs: comprehensive README rewrite#423

Open
dimakis wants to merge 4 commits into
mainfrom
session/2026-07-01-ddabbfc0de39
Open

docs: comprehensive README rewrite#423
dimakis wants to merge 4 commits into
mainfrom
session/2026-07-01-ddabbfc0de39

Conversation

@dimakis

@dimakis dimakis commented Jul 1, 2026

Copy link
Copy Markdown
Owner

Summary

  • Expanded README from ~270 to ~640 lines with full coverage of all major Mitzo features
  • Added 15 new sections: prerequisites, installation, skills system, session isolation, task board, voice integration, iOS app, push notifications, MCP integration, observability, security, deployment, API reference, design docs index, troubleshooting
  • Added table of contents, tech stack table, and project structure tree
  • Preserved and extended existing architecture file tables
  • Added REST endpoint and WebSocket message type reference tables

Test plan

  • Verify all internal links resolve (design docs, onboarding, SECURITY.md)
  • Verify code blocks render correctly on GitHub
  • Spot-check environment variable table against .env.example
  • Confirm table of contents anchors work

🤖 Generated with Claude Code

@dimakis dimakis left a comment

Copy link
Copy Markdown
Owner Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Centaur Review

Found 2 issue(s) (1 warning).

server/__tests__/workload-routes.test.ts

The promote fallback logic in app.ts is correct (proper sourceType/type distinction, guarded broadcasts, right response shapes). The main issue is an ineffective broadcast test that passes vacuously, and the README references several nonexistent design docs.

  • 🟡 missing_tests (L548): The 'fallback does not broadcast workload update' test is a no-op. It intercepts (app as any)._workloadBroadcast, but the actual broadcast callback is a module-scoped closure variable (onWorkloadBroadcast) set via setWorkloadBroadcast(), which is never called in this test file's setup. The assertion passes trivially because onWorkloadBroadcast is null (so no broadcast ever fires regardless of the guard logic), not because the if (updatedItem) guard works correctly. To test this properly, call setWorkloadBroadcast(captureFn) before the request and verify the capture array stays empty. [fixable]

README.md

The promote fallback logic in app.ts is correct (proper sourceType/type distinction, guarded broadcasts, right response shapes). The main issue is an ineffective broadcast test that passes vacuously, and the README references several nonexistent design docs.

  • 🔵 style: The Design docs table references 5 documents that don't exist in the repository: task-board-phase3-plan.md, session-isolation-worktrees.md, session-isolation-enforcement.md, session-isolation-multi-repo.md, workflow-templates.md. The actual session isolation docs are session-isolation-overhaul.md, session-isolation-counter-proposal.md, and session-isolation-phase2-handoff.md. There is no phase 3 task board doc (only phase 1 and 2). [fixable]

expect(res.body.item).toBeUndefined();
});

it('POST /api/workload/items/:id/promote — fallback does not broadcast workload update', async () => {

Copy link
Copy Markdown
Owner Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

🟡 missing_tests: The 'fallback does not broadcast workload update' test is a no-op. It intercepts (app as any)._workloadBroadcast, but the actual broadcast callback is a module-scoped closure variable (onWorkloadBroadcast) set via setWorkloadBroadcast(), which is never called in this test file's setup. The assertion passes trivially because onWorkloadBroadcast is null (so no broadcast ever fires regardless of the guard logic), not because the if (updatedItem) guard works correctly. To test this properly, call setWorkloadBroadcast(captureFn) before the request and verify the capture array stays empty. [fixable]

dimakis and others added 4 commits July 2, 2026 02:47
Telos items from the Python script were never ingested into workloadStore,
so the promote endpoint always returned 404. The frontend now sends item
data (title, contextHints, sources) as fallback fields in the promote
request body, and the endpoint uses them when workloadStore.get() misses.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
- Remove misleading `as string` cast on taskHint, use nullish coalescing
- Make sources author/snippet optional in schema for real-world data
- Omit `item` from response when not in workloadStore (cleaner contract)
- Remove comment coupling schema to specific caller
- Add tests for fallback promote path and no-broadcast behavior

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Expand from ~270 to ~640 lines with full coverage of all major features.
New sections: prerequisites, installation guide, skills system, session
isolation, task board, voice integration, iOS app, push notifications,
MCP integration, observability stack, security model, deployment,
REST/WS API reference, design docs index, troubleshooting, and tech
stack table. Existing architecture tables preserved and extended.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
- Fix workload broadcast test: use setWorkloadBroadcast() to wire the
  capture callback into the module-scoped closure instead of patching a
  nonexistent app property (test was passing vacuously)
- Fix design docs table: replace 5 nonexistent doc references with
  actual filenames (session-isolation-overhaul, counter-proposal,
  phase2-handoff, task-board-phase1-plan; remove workflow-templates)

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
@dimakis dimakis force-pushed the session/2026-07-01-ddabbfc0de39 branch from c8ce6f1 to d505bbd Compare July 2, 2026 01:47
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant