{
  "version": "0.4.0",
  "description": "v0.4.0 stable — Monorepo-native Trellis (per-package specs + generic before-dev/check)",
  "breaking": false,
  "recommendMigrate": true,
  "changelog": "**v0.4.0 stable.** Promoted from rc.1 with zero src/ changes — stable release of everything shipped across 11 betas and 2 RCs.\n\n## Headline: monorepo-native Trellis\n\n0.4.0's defining change is structural — Trellis now thinks in packages, not projects. Two closely-linked refactors make this work:\n\n**1. Monorepo support + per-package spec infrastructure.** `trellis init` detects monorepos and creates per-package spec directories instead of a single project-wide one. `task.py` / `add_session.py` / `create_bootstrap.py` gained `--package` flags. start / parallel / workflow / agents templates honor per-package scope. Mental model shifts from 'one project, one set of specs' to 'one project, N sets of specs, sliced by package'.\n\n**2. Generic before-dev / check commands.** Per-package specs alone would have exploded the command matrix into N_packages × {backend, frontend}. So across 9 platforms, type-specific before-backend-dev / before-frontend-dev / check-backend / check-frontend were merged into single before-dev / check. A new `safe-file-delete` migration type was added to land this safely — it only removes files whose hash matches a known-unmodified state, preserving local edits. beta.1 shipped 36 such entries.\n\nWithout the command merge, per-package is unusable. Without per-package, the merge is just cleanup. Together they are the 0.4.0 architecture shift.\n\n## Ecosystem: Shared Agent Skills layer\n\nCodex now writes to `.agents/skills/` (the agentskills.io standard directory), automatically read by Cursor, Gemini CLI, GitHub Copilot, Amp, and Kimi Code. One checkbox, multiple clients.\n\n## New platforms (5)\n\nGitHub Copilot (full), Windsurf (workflow), Qoder (skills), Kimi Code (via shared layer), Factory Droid (commands-only).\n\n## Notable improvements\n\n- Custom spec template registry: `trellis init -r <source>` pulls spec templates from a custom git repo (GitHub / GitLab / Bitbucket, incl. self-hosted GitLab via HTTPS/SSH) instead of the default marketplace\n- Multi-agent worktree + PR awareness\n- Re-init fast path: `trellis init --codex` / `-u name` / bare menu\n- Branch-aware sessions and journals\n- Statusline integration for Claude Code\n- Marketplace extracted to standalone submodule (#117)\n- Python scripts refactor — shared io/log/git modules, TaskInfo dataclass, god-module split\n- OpenCode plugin v1 API, fixes non-persistent context injection\n\n## Biggest bug fix\n\n**SessionStart additionalContext** reduced from ~29 KB to ~7 KB, under Claude Code's ~20 KB truncation threshold. Task state was being silently lost on most projects before rc.0.\n\n## Windows fixes\n\n- statusline.py GBK encoding crash (UTF-8 stdout/stderr wrap)\n- {{PYTHON_CMD}} placeholder resolution in Codex hooks.json (#132)\n- isManagedPath path normalization (\\ → /)\n\n## Other fixes\n\n- fix(update): rename migrations allowed to target protected paths\n- fix(update): parse name from .developer when creating migration task\n- fix(hooks): normalize .current-task path refs (#130)\n- fix(hooks): SubagentStop event field names in ralph-loop (#152)\n- fix(opencode): dispatch waits for child tasks (#147)\n- fix(init): strip npm scope prefix from monorepo package directory names\n- fix(init): rename 'empty templates' to 'from scratch' in template picker\n- fix(scripts): preserve submodule status prefix in start.py",
  "migrations": [],
  "notes": "Stable promotion of v0.4.0-rc.1 — no new src/ changes since rc.1, no new migrations in this manifest. Users on 0.3.x: run `trellis update` to apply the full 0.4.0 cycle (36 file deletions for the merged before-dev/check commands are handled automatically via safe-file-delete with hash verification — your local edits are preserved). Users on any 0.4.0 prerelease: `trellis update` is a clean version bump. Install: `npm install -g @mindfoldhq/trellis`."
}
