Monorepo support, unified commands, and Python scripts refactoring.
This is a breaking change release. Run trellis update to migrate. Customized command files will be preserved — only unmodified files are auto-deleted.
Enhancements
- Monorepo auto-detection —
trellis init detects pnpm/npm/Cargo/Go/uv workspaces and git submodules, generates per-package spec directories and config.yaml with packages list
- Unified commands —
before-backend-dev + before-frontend-dev merged into before-dev; check-backend + check-frontend merged into check (all 9 platforms)
- Safe file delete — New migration type that auto-removes deprecated files only when content hash matches (user-modified files are never deleted)
- Protected paths —
PROTECTED_PATHS prevents migrations from touching user data (.trellis/workspace, spec, tasks)
- Update skip paths —
config.yaml update.skip to exclude paths from safe-file-delete and template updates
- Worktree submodule awareness — Worktree agents auto-initialize git submodules for task packages
- Monorepo script support — Session-start hook supports
spec_scope filtering; task.py and add_session.py support --package
- Migration task auto-creation — Breaking change updates automatically create a
.trellis/tasks/ migration task with guide and AI instructions
Bug Fixes
- Update: protected path compat — Allow rename/rename-dir migrations to target protected paths (0.2.0 compat)
- Update: config parse warning — Warn when
config.yaml parse fails instead of silently disabling update.skip
- Scripts: submodule status — Preserve git submodule status prefix character (
.strip → .rstrip)
Internal
- Python scripts refactoring — Shared
io/log/git modules, TaskInfo TypedDict type safety, god modules (task.py, git_context.py, status.py) split into focused modules. All entry paths unchanged.
Migration
Run trellis update to sync new unified commands. Old before-backend-dev, before-frontend-dev, check-backend, check-frontend files will be auto-deleted if unmodified. If you customized these files, merge your changes into the new before-dev / check files and delete the old ones manually.