Skip to main content

Breaking Changes

  • Sub-agents renamed: implement / check / researchtrellis-implement / trellis-check / trellis-research across all 10 platforms (claude, cursor, opencode, codex, kiro, gemini, qoder, codebuddy, copilot, droid). The old generic names were colliding with user-defined agents and, on some platforms, getting matched by the main agent’s description heuristics. Prefixing with trellis- makes them unambiguously Trellis sub-agents that only fire when you explicitly want them. workflow.md, the copilot start prompt, shared-hooks/inject-subagent-context.py constants, and the configurator’s pull-based prelude detection are all updated. If you wrote a custom command or script that calls Task(subagent_type: "implement", ...), you need to change it to trellis-implement yourself.

Bug Fixes

  • Dropped model: opus from all agent frontmatters. This was a real money bug for Cursor users. All 18 markdown agent templates shipped with model: opus hardcoded in frontmatter, plus three Task() examples in copilot/prompts/start.prompt.md that said model: "opus". The effect per platform:
    • Claude Code: silently overrode the user’s selected model for every sub-agent run (all work pinned to Opus regardless of preference).
    • Cursor: mapped opus to Claude Opus billing — ~5× Sonnet pricing. One tester reported “差点给我跑破产” (“almost went bankrupt on me”) before noticing.
    • Gemini / Droid / Codebuddy / Qoder: opus isn’t a valid model identifier for these platforms — at best ignored, at worst broke.
    Agents now inherit whatever model the user’s platform session is configured to use. This matches user expectation: if you set Sonnet in Cursor, sub-agents run on Sonnet.

Upgrade

trellis update --migrate
  • Unmodified agent files: auto-renamed via hash check (30 rename entries across 10 platforms).
  • Customized agent files: you’ll see the standard Modified by you confirm prompt with diff. Pick [1] Overwrite to adopt the new name, or [3] Skip if you want to keep your custom agent — but then you must also update workflow.md, skill prompts, and hook constants yourself to point at whatever name you kept.
update.skip is bypassed for this release (breaking + recommendMigrate both true when invoked with --migrate) to prevent a half-migrated state where workflow.md references trellis-implement but your .claude/agents/ still contains the old implement.md. Install: npm install -g @mindfoldhq/trellis@beta