Releases: TokenBrice/cmcs
Releases · TokenBrice/cmcs
v0.3.2 — Audit hardening fixes
Fixed
- Runner: exit-0 without
done: truenow records correctivefailedevent (prevents infinite re-execution loop) - Runner: auto-commit failure records warning event instead of silent
except Exception: pass - Runner:
stop_worker()extracted as shared helper with SIGTERM→SIGKILL escalation (used by CLI + dashboard) - Config: reject invalid types — non-list
codex.args, string port numbers coerced to int, empty string model names - Dashboard: pagination pushed into SQL (
Database.paginated_runs()) instead of Python-side slicing - Clean command: now removes old logs from registered worktrees, not just main repo
- Database:
purge_archived_worktrees()method replaces inline SQL in CLI clean command
Test count: 131 (was 119 at v0.3.0)
v0.3.0 — Auto-commit, fallback retry, model selection guide
Operational improvements from Pharos codebase audit learnings: auto-commit, fallback retry, model guidance consolidation. Test count 106 → 119.
Added
codex.auto_commitconfig option — auto-commits worktree after successful ticket (default:true)codex.fallback_modelconfig option — retries failed tickets with fallback model on context/output-token limit errorscmcs ticket validatewarns when spark model is assigned to tickets referencing 8+ filesdocs/model-selection.md— consolidated model selection guide with catalog, heuristics, and failure modes
Fixed
- Dashboard log boxes not scrollable (added
max-height+overflow: auto)
Changed
- Replaced duplicated model selection tables in 6 files with references to
docs/model-selection.md
v0.2.1 — Fix dashboard template packaging
Fixed
- Include dashboard HTML template in package data (caused
FileNotFoundErroroncmcs dashboardfrom pipx install)
v0.2.0 — Systematic self-improvement
Systematic self-improvement: 46 tickets across 9 phases, executed via cmcs itself. Test count 46 → 106.
Added
cmcs versioncommandcmcs status --activeand--latestfilterscmcs wait --timeoutoption for time-bounded pollingcmcs logs --linesand--followoptions for flexible log tailingcmcs run --dry-runflag to preview pending ticketscmcs ticket validatesubcommand for checking ticket YAMLcmcs cleancommand to remove old logs and archived worktrees- Agent field filtering: non-codex tickets are skipped during runs
- Configurable worker command via
codex.commandconfig - JSON structured logging per ticket (timing, exit code, log paths)
- Dashboard: stop action and log viewing modal
- Dashboard: inline events in runs API (eliminates N+1 fetch)
- Dashboard: pagination for
/api/runsendpoint - Dashboard: orphan recovery and 404 handling
- Colored status output in CLI (run status, worktree list)
- Aligned fixed-width columns in
statusandworktree list - PEP 561
py.typedmarker and mypy configuration from __future__ import annotationsacross all source files- 60 new tests (46 → 106)
Fixed
- Auto-register worktree path before creating run (crash fix)
- Log path resolution for worktree runs
- YAML parsing crash on malformed frontmatter
donefield coercion for unknown string values- XSS vulnerability: replaced all
innerHTMLwith safe DOM APIs - Database double-finish guard (prevents status corruption)
- SQLite busy timeout for concurrent access
_tail_textUTF-8 boundary handling- Stop command: verify process termination with SIGKILL escalation
- Orphan run recovery called consistently across all commands
- Safe branch delete in worktree cleanup (prevents unmerged data loss)
- Subprocess PID recording for reliable process management
- Dashboard database lifecycle (proper open/close)
- Configurable subprocess timeout (was hardcoded)
Changed
- Config validation: reject invalid types, warn on unknown keys
- Ticket frontmatter: handle malformed YAML gracefully with warnings
- Error messages include actionable guidance
- Documentation accuracy: command count, config defaults, isolation claims
Optional[X]→X | Nonetype annotations throughout_repo_root()cached per process for performance- Removed trivial
list_worktreeswrapper fromworktree.py - Deduplicated test fixtures via shared conftest
v0.1.0 — Initial release
Initial release of cmcs — Claude Master Codex Slave orchestration CLI.
Added
- 12 CLI commands via Typer:
init,config show,worktree create/list/cleanup,run,status,wait,stop,logs,dashboard - Git worktree management for parallel agent workspaces
- Codex subprocess orchestration (
runner.py) - Ticket parsing and discovery with YAML frontmatter support
- Per-ticket
reasoning_effortoverride and defaultxhighsetting - SQLite state tracking for runs, events, and worktrees
- Web dashboard (FastAPI + self-contained HTML)
- Configuration loading with sensible defaults
- CLAUDE.md orchestrator instructions for Claude Code integration
- Claude Code skill for structured two-stage review workflow
- 35 tests (unit + integration)
- Documentation: architecture guide, orchestration playbook, configuration reference, full ticket example
- Project logo (SVG and PNG)