{
  "version": "0.5.0-beta.16",
  "description": "Compatibility patch for template hash portability, task archive inputs, and Claude Code statusLine upgrades. Template hashes now use POSIX keys and LF-normalized content, `task.py archive` accepts the same task directory inputs as the other task commands, and existing Claude Code statusLine installs are preserved during `trellis update`. No migration actions are required.",
  "breaking": false,
  "recommendMigrate": false,
  "changelog": "**Bug Fixes:**\n- fix(cli): Normalize `.trellis/.template-hashes.json` keys to POSIX paths and compute template hashes from LF-normalized content. The hash file now uses a `{ \"__version\": 2, \"hashes\": { ... } }` envelope; legacy flat-format hash files are discarded and regenerated from installed templates.\n- fix(scripts): Align `task.py archive` with other task-directory subcommands. `archive` now accepts a bare task name, `.trellis/tasks/<slug>` relative path, or absolute task path.\n- fix(claude): Preserve existing Claude Code statusLine installs during update. `trellis update` no longer safe-deletes `.claude/hooks/statusline.py`, and if `.claude/settings.json` already has a top-level `statusLine` entry, the updated settings template carries that entry forward.\n\n**Behavior:**\n- New Trellis installs still do not create `.claude/hooks/statusline.py` and do not add `statusLine` to `.claude/settings.json`.\n- Non-Claude orphan `statusline.py` files remain hash-verified safe-delete cleanup targets because those platforms have no `statusLine` event.\n- No `--migrate` gate is required for this patch; the hash file is derived state and is regenerated by normal init/update hashing.",
  "migrations": [],
  "notes": "Run `trellis update` to receive the compatibility fixes. Legacy `.trellis/.template-hashes.json` files are regenerated under schema v2, `task.py archive` accepts task names or task paths, and existing Claude Code statusLine files/settings are preserved. No manual migration is required."
}
