Repository navigation
v7.3.1
What's changed in v7.3.1
Highlights
The landing hold stays where you left it. Under merge: manual, the base branch and the merge
mode are pinned at each prompt, so neither can be switched mid-turn to let a landing through. On
Claude, a release now asks first, including behind gh -R or sh -c.
Scripts behave the same on Windows. Every value a script reads through jq drops a stray
carriage return, and a new .specnaut/.gitattributes checks the .specnaut/ tree out with LF line
ends on every platform, so a CRLF checkout no longer breaks its scripts or makes upgrade read
every file as customised.
Clearer failures. An unreadable .specnaut/backlog-config.yml stops gate and spec with the
reason instead of a crash, and the local add.sh refuses labels it cannot record.
On Codex, trust the hooks again with /hooks after upgrading: until you do, none of Specnaut's
hooks run. See UPGRADING.md.
Bug fixes
- Declare .specnaut/.gitattributes as Specnaut's, and smoke-check the split-out script
- Read every jq value through one CR-safe helper per family
- Local add.sh refuses a labels argument it cannot record
- Measure every changed file under its byte-exact name
- Ask before a release on Claude, behind gh -R and one sh -c (#699)
- An unreadable backlog-config.yml exits 1 with the reason
- The home comparison falls back only when HOME is unreachable
- Pin the base and the merge mode at each prompt so the landing hold cannot be moved (#718)
Internal / chores
18 internal changes
- Hold the gen-hooks and jq_lf tests to what Windows can show
- Extract template resolution out of common.sh
- Test and structure follow-ups from the #679 review (#700)
- Use a neutral placeholder host in the cloud fixtures
- Write the backlog-config stub through a store adapter
- Keep the domain pure — credential and config ports, injected env
- One managed-section filter, renderSummary split, init under 500
- Gather a context link's evidence once, for diff and upgrade
- Split UpgradeProjectUseCase.execute into named steps
- WalkLinkText on Windows is recorded as unverified
- Count unwritable layouts, vary the hops of a chain
- Three cli#686 tests now prove what their names claim
- One tagged answer instead of two error vocabularies
- Resolution walks live beside the link-text walk
- Link tests refuse to run under -A, one symlinkTest for all
- The upgrade smoke checks the context link, and runs before the tag
- State what the merge: manual landing hold guards against
- Stop tracking the agent status ledger
Full changelog: v7.3.0...v7.3.1