# Changelog All notable changes to this project are documented in this file. The format follows [Keep a Changelog](https://keepachangelog.com/en/1.1.0/), and this project uses [semantic versioning](https://semver.org/spec/v2.0.0.html). ## [0.1.1] - 2026-08-21 ### Changed - Comments in the source and the workflows, so each one states why the code is there. ## [0.1.0] - 2026-08-21 ### Added - One `herdr_worktree` tool with `list`, `create`, `open`, and `remove`, each with preconditions and postconditions that check the repository before and after Herdr runs. - Session detection that requires a Herdr-managed pane, Herdr 0.8.2 or newer, and a Git work tree, cached in memory only because the session is not a property of the repository. - A system prompt note in a Herdr session, telling the model to use the `herdr_worktree` tool for worktrees, including work that runs several agents in parallel. The host's `before_agent_start` event adds it once per prompt, only where detection succeeds. A pane without `HERDR_ENV` starts no child process, and a failed detection is cached for five minutes. - Deterministic test suites and an integration suite that runs real Git worktree work behind a Herdr CLI stub. One response per operation, recorded from a real Herdr session, is kept under `test/fixtures/` and parsed by the tests, so a renamed field in a later Herdr shows up as a failing test rather than a failure in production. - Operations, safety, and development documentation under `docs/`. - Commands described as an action plus option-and-value pairs, where each option accepts only the one branded parsed type it belongs to, so unparsed text cannot reach a spawned command and a value cannot travel under the wrong option. - Parsers that return what Git resolved: branch names come back expanded, so shorthand such as `@{-1}` is checked and used as the branch it names, and a `base` carries the commit it pointed at so a ref that moves before the create is reported. - Rejection of control characters and bidirectional marks in every value, and a NUL separated `git worktree list`, so a checkout path cannot forge a line of Git output. Needs Git 2.36 or newer. - Checks on a caller-chosen `create` path: outside every worktree of the repository and its Git directory, and either absent or an empty directory. Such a create also asks the user first. The tool may run from a linked worktree, where the main checkout is not the root Git reports, so every registered checkout is checked. - A non-zero Herdr exit that carries no error field is reported as an unreadable response instead of a success. - A `workspace_id` schema that advertises the exact range the parser accepts, so the tool does not invite a value it then rejects. - Request parsing into a null-prototype record, so an inherited value cannot be read as a request field, and single-line truncated approval values, so a value cannot forge the lines around it. - Oh My Pi marketplace catalog at `.omp-plugin/marketplace.json`. - Release workflow publishing through npm trusted publishing (OIDC), with no long-lived token, and Dependabot updates for GitHub Actions and development dependencies.