Skip to content

v0.5.0

Choose a tag to compare

@marcelocantos marcelocantos released this 12 Apr 00:42
· 43 commits to master since this release
67b8868

Major architectural simplification and feature expansion for doit's MCP server.

Added

  • Work sessions — doit_session_start/_end/_status let an agent declare the scope of a chunk of work. L3 evaluations inside the session reuse the scope for faster, more contextual decisions. Sessions auto-expire.
  • Two-tier L3 cascade — fast triage on sonnet with fall-through to opus for genuinely ambiguous cases. Most commands resolve at the fast tier; opus is reserved for the hard ones. Configured via policy.level3_fast_model and policy.level3_model.
  • L2 policy management — doit_policy_list, doit_policy_delete, doit_policy_review for inspecting and curating learned policy entries.
  • doit_self_audit — detects L1/L2 contradictions, stale entries (90+ days), orphaned Starlark rule IDs, and duplicate L2 coverage.
  • doit_repo_read — allowlisted read-only access to project metadata files (go.mod, Makefile, CLAUDE.md, etc.) for L3 claim verification.
  • doit_check_config — verifies the MCP-first deployment (Bash denied, doit registered) so misconfigurations surface immediately.
  • L3 enabled by default — new installs get the live LLM policy tier out of the box.

Changed

  • Pipeline parser removed — doit no longer tokenises commands into segments at the engine level. The shell handles all composition (&&, |, ;, redirects); commands pass through sh -c unchanged. Segment analysis, where it still happens, is an internal detail of individual policy layers.
  • EvalResult — Segments and Tiers fields removed. The dry-run output no longer displays them.
  • Engine.RecordDecision — signature simplified to (command, decision); cap/subcmd match criteria are derived from the command string directly.
  • L3 rebuilt on claude -p — the persistent claudia Session integration is gone. Every L3 call is now a stateless one-shot claude -p invocation, fixing a hang caused by Claude Code's /clear rolling the session ID.
  • Stderr logging suppressed — doit discards its own log output so MCP clients don't interpret informational messages as errors.

Fixed

  • L3 init race: the engine now constructs L3 synchronously in New, so doit_session_start can no longer fire before L3 is ready.
  • claude -p no longer leaves PTY wrappers or JSONL tailers lying around after a broken session.

Docs

  • STABILITY.md refreshed to a v0.5.0 snapshot covering all 16 MCP tools, session APIs, and the L3 cascade.
  • CLAUDE.md architecture map updated (removed internal/pipeline/, added internal/context/).
  • README and agents-guide.md tool tables completed.