Skip to content

Releases: TokenBrice/cmcs

v0.3.2 — Audit hardening fixes

09 Mar 19:52

Choose a tag to compare

Fixed

  • Runner: exit-0 without done: true now records corrective failed event (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

09 Mar 16:55

Choose a tag to compare

Operational improvements from Pharos codebase audit learnings: auto-commit, fallback retry, model guidance consolidation. Test count 106 → 119.

Added

  • codex.auto_commit config option — auto-commits worktree after successful ticket (default: true)
  • codex.fallback_model config option — retries failed tickets with fallback model on context/output-token limit errors
  • cmcs ticket validate warns when spark model is assigned to tickets referencing 8+ files
  • docs/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

09 Mar 15:12

Choose a tag to compare

Fixed

  • Include dashboard HTML template in package data (caused FileNotFoundError on cmcs dashboard from pipx install)

v0.2.0 — Systematic self-improvement

09 Mar 13:06

Choose a tag to compare

Systematic self-improvement: 46 tickets across 9 phases, executed via cmcs itself. Test count 46 → 106.

Added

  • cmcs version command
  • cmcs status --active and --latest filters
  • cmcs wait --timeout option for time-bounded polling
  • cmcs logs --lines and --follow options for flexible log tailing
  • cmcs run --dry-run flag to preview pending tickets
  • cmcs ticket validate subcommand for checking ticket YAML
  • cmcs clean command to remove old logs and archived worktrees
  • Agent field filtering: non-codex tickets are skipped during runs
  • Configurable worker command via codex.command config
  • 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/runs endpoint
  • Dashboard: orphan recovery and 404 handling
  • Colored status output in CLI (run status, worktree list)
  • Aligned fixed-width columns in status and worktree list
  • PEP 561 py.typed marker and mypy configuration
  • from __future__ import annotations across 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
  • done field coercion for unknown string values
  • XSS vulnerability: replaced all innerHTML with safe DOM APIs
  • Database double-finish guard (prevents status corruption)
  • SQLite busy timeout for concurrent access
  • _tail_text UTF-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 | None type annotations throughout
  • _repo_root() cached per process for performance
  • Removed trivial list_worktrees wrapper from worktree.py
  • Deduplicated test fixtures via shared conftest

v0.1.0 — Initial release

09 Mar 09:32

Choose a tag to compare

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_effort override and default xhigh setting
  • 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)