Skip to content

v0.2.0

Choose a tag to compare

@marcelocantos marcelocantos released this 08 Apr 13:32
· 61 commits to master since this release

Added

  • MCP server (doit-mcp): stdio-transport MCP server as primary agent interface with 4 tools (execute, dry_run, policy_status, approve)
  • Three-level policy engine: L1 deterministic rules → L2 learned patterns → L3 live LLM evaluation
  • Starlark L1 rules: sandboxed, deterministic rule language with embedded test cases and L3→L1 promotion (internal/starlark/)
  • Per-project policy: .doit/config.yaml with tighten-only merge semantics — projects can add rules and restrict tiers but not loosen global policy
  • sh -c execution model: commands execute via shell instead of per-capability runners
  • CI workflow: automated build, vet, and test on push/PR to master
  • Comprehensive test coverage: all core packages tested (internal/cap/, internal/cap/builtin/, internal/cli/, internal/config/, cmd/doit/)

Changed

  • engine/ package is now the primary public API for command evaluation and execution
  • Audit logger enforces max_size_mb config limit (warns and stops writing when exceeded)
  • doit-mcp binary now included in release artifacts alongside doit
  • hasAnyFlag deduplicated (exported from internal/rules/, shared by policy engine)
  • Malformed audit log entries now produce warnings in Tail instead of being silently dropped
  • Token store purges expired tokens on each Validate() call
  • SPDX Apache-2.0 license headers added to all Go source files

Removed

  • Legacy daemon/client/IPC code (~2,454 lines): internal/daemon/, internal/client/, internal/ipc/
  • Pipeline execution engine (internal/pipeline/executor.go); parser retained for policy evaluation
  • DaemonConfig and --daemon CLI subcommand
  • Dead resolveError function and --approved CLI documentation (approval handled by MCP server)