v2.5.0
The navigation picker now draws two headings, Local and Remote. The Pinned section that hoisted the default branch and perch.keep entries above them is gone, and so are the inert absent rows it drew for kept branches that existed nowhere.
perch.keep keeps its one documented job: holding a branch back from the merged-branch cleanup sweep. The config key, its layering, the upstream-deletion guards and perch stale are all unchanged.
Note that br rm no longer greys out a kept branch or the default branch — only a branch some worktree holds stays disabled, so main can now be ticked in the picker. It was always removable by name; pinning bought a confirmation step rather than safety. Only the local ref goes: origin/main keeps the commits and the branch reappears under Remote, where checking it out recreates a local main tracking it. A plain git fetch won't bring it back, since fetch writes refs/remotes and never recreates a deleted refs/heads/main.
The reasoning is recorded in ADR 0011, which supersedes the relevant consequences of ADRs 0008 and 0009.
What's changed
Full changelog: v2.4.0...v2.5.0