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.