version history

Notable changes per ACE release, newest first. Canonical source: ace-rs/ace releases.

nextplanned

Candidate work past the v0.8.1 tag. Under design — not yet on a tagged release.

planned / under design

  • ace connect A2A bridge — a local agent-to-agent bridge over unix sockets, to be folded into the ace binary; currently ships as a school skill.
  • School-instructions catalog & tabular-output alignment — captured in design notes as candidate follow-ups.

v0.8.12026-06-10

  • Gitlink import fix — skill imports rooted at a repo's top level no longer leak .git into the school repo as an accidental submodule. Import copies skip VCS metadata; ace school pull warns and skips already-broken gitlink entries, and project-side ace pull warns on skill-tree integrity problems.
  • Space-separated school specifiers — ace setup prod9 school now works — both as two CLI args and interactively — alongside the existing prod9/school form.
  • ace.toml direct-edit hint — ace setup points out that small skill-set changes are quicker via a direct ace.toml edit than re-running the picker.

v0.8.02026-06-08

  • Reworked skill engine — ground-up rearchitecture of the core skill model. A typestate lifecycle (discovered → validated → vetted) makes it impossible for an unvalidated skill to reach a backend, and a path-based Locator identity replaces stringly-typed skill IDs. The imports resolver keeps first-wins semantics with collision warnings. Foundation for the admission and validation changes below.
  • Skill-name admission policy — skill names are admitted by a fail-closed Unicode-whitelist predicate at the discovery boundary, replacing emit-time sanitization. Admission is orthogonal to selection: a name outside the allowed set is rejected and warned, never mutated on disk — self-healing on the next setup/pull. Import hard-refuses the offending skill and exits non-zero.
  • Validation surfaced as warnings — invalid glob patterns in skill selection and structural discovery prunes now warn-and-skip instead of failing silently, so a malformed pattern or a bad skill directory is visible rather than swallowed.
  • Capability-driven backend emit — nested-skill emit gated on a per-backend FEATURE_NESTED_SKILLS capability bit rather than backend name, with hardened flatten link names and a 2-stage skill-discovery cascade.
  • Scriptable exit codes — a semantic ExitCode enum on CmdError replaces the blanket exit(1): Usage (1), Unavailable (2), Operational (3), Cancelled (130). Scripts wrapping ace can branch on $? to distinguish bad input from a failed operation.
  • Toolchain pinned to stable 1.96 — a rust-toolchain.toml pins the build to stable 1.96 — affects contributors building from source; cargo fmt is now deterministic.

v0.7.12026-05-20

  • MCP exclusion — bare ace honors exclude_mcp; added per-entry MCP prompts and ace mcp register <name> to register individual servers, with OAuth instructions printed for OAuth-only entries.
  • School resolution hardened — schools resolve exclusively via the ace.toml specifier; ace school init dogfoods its own ace.toml and writes a backend-aware instructions file.
  • Session prompt — excluded-skill names are appended to the session prompt; school-level session_prompt documented as an authoring affordance.
  • Gitignore managed block — project and school gitignore flows unified into one managed block; refresh moved into the Prepare phase so pull is a pure fetch.
  • Symlink correctness — link_skills now canonicalizes the predicate for symlinked school roots.

v0.7.02026-05-10

  • OpenCode backend — added (PROD9-17), including a --opencode shortcut flag and {{ ... }} placeholder rendering in [[backends]] cmd and env.
  • ace school validate — typo-checks backend placeholders, with an ace school check alias and a clean-validation success message.
  • ace link — added to re-link school skill symlinks.
  • ace upgrade — now reads the latest version from ace-rs.dev/latest; ace version subcommand added.
  • ace-school externalized — imported from ace-rs/school instead of being bundled in the binary.
  • Homebrew tap — formula added, with self-update guarded for brew installs.
  • Fixes — import merge switched to last-wins; ace learn always includes the hardcoded ace/ace-* skills.

v0.6.02026-05-08

  • ace learn — added — studies a project and narrows the skills filter.
  • Custom backends — via [[backends]] documented and supported, including an exec_one_shot transport for non-interactive launches, split from the interactive Session intent.
  • Org/domain migration — project migrated to the ace-rs org and the ace-rs.dev domain.
  • School error variants split — Missing became NoSpecifier (run ace setup) and NotInitialized (run ace school init) for clearer guidance.
  • Fix — overlapping import sources are now de-duplicated during pull-imports.