Repository navigation
v3.10.0
What's new
Bundled agents stop being pinned to a Systematic-chosen model — they inherit whatever model invoked them, closing out a six-unit removal plan alongside a documentation drop on two release-pipeline traps discovered while shipping it.
Features
Systematic no longer picks a provider/model pair for bundled agents on the user's behalf. SOURCE_CATEGORY_MODEL_DEFAULTS used to map five agent categories to ordered provider chains, resolved against discovered availability before user overlays applied — and when nothing matched, it fell back to returning the first provider's first model anyway, so a user on a provider Systematic didn't enumerate could get pinned to a model chosen for someone else (an anthropic-only user invoking a design agent landed on vercel/v0-1.5-md). That table encoded the August 2026 model market as package policy, in tension with a harness whose thesis is "get better as models get better."
The table, its schema, resolver, docs formatter, and the src/lib/model-availability.ts availability subsystem it depended on are all deleted. The config hook now performs no network call and no model-cache filesystem read, and agent resolution begins at category overlays with no source layer beneath them — category and exact-agent overlays, precedence between them, model: null restoring inheritance, and permission reconstruction all behave identically to before. This is a removal for plain npm consumers specifically: OCX/OMO installers keep curated category routing through their registry profile, while plain npm users lose category-aware routing unless they opt in. docs/src/content/docs/guides/model-defaults-migration.mdx records all five former provider chains (with variants) so any prior pin can be reproduced in explicit config.
A new model-inheritance eval case gates the behavior against regression, grading all 37 bundled agents across all 5 categories rather than a sample, and checking both model and variant together after an initial version of the gate proved less than its commit message claimed — it observed model but not variant, so a regression reintroducing variant pinning without a model would have passed clean. Agent identifiers from the eval manifest are now validated fail-closed against the live bundled inventory before being persisted.
Documentation
Two traps surfaced while shipping the bootstrap catalog deletion, both quiet enough to reach main unnoticed, are now captured as solution docs. The first: this repository's PR title decides whether a change publishes at all — squash merges are the only merge mode, squash_merge_commit_title is COMMIT_OR_PR_TITLE, and @semantic-release/commit-analyzer reads that header. refactor looks like a releasing type in presetConfig.types but isn't one; a user-visible payload reduction nearly merged under refactor: and would have published nothing. The second: evidence collected against a pinned external runtime expires when the pin moves. The host-pin drift guard fired when main bumped OpenCode to 1.18.18, and the correct response was to move the pins and re-run the real-host eval suite rather than bump constants to silence the guard.
The existing gh heredoc doc now also covers git commit -m, since the backtick trap that mangles commit bodies (and the release notes they carry) is a shell rule, not a gh-specific one. The bootstrap catalog deletion and local eval foundation plans are marked complete.
Also in this release
- deps: update
fro-bot/agentto v0.100.0 (#789)