Repository navigation
Releases: phmatray/tagout
Releases · phmatray/tagout
Release list
v4.1.0
4.1.0 (2026-10-28)
Features
- implement-issue: the ready-flip refuses without a recorded review (#729) (7b7f0c0)
- merge-pr: a draft is flipped ready only through guarded-ready, after a review if none is recorded (#732) (31fbadd)
- review-sessions: a failure that recurs after a prose-only fix files for a barrier (#726) (b4e7f54)
- review-sessions: harvest the owner's corrections as a user-correction signal (#723) (#727) (7589fac)
- review-sessions: report which skill references transcripts ever read (#730) (00b3111)
Bug Fixes
v4.0.0
4.0.0 (2026-10-10)
⚠ BREAKING CHANGES
Features
- implement-issue: review a one-way-door diff at high and hold it from auto-dev (#694) (#696) (02f2e1a)
- init: an init skill runs profile, plan, apply and refresh in one command (#701) (#704) (640c9a3)
- init: profile-repo and setup-repo merge into init (#703) (#709) (9485205)
- init: the profile and setup scripts live under skills/init, every consumer reads the new home (#707) (7178022)
- tracker: the dispatcher hands a backend the profile detail it already resolved (#705) (02a5281)
Bug Fixes
- deps: update non-major dependencies (#665) (7a4c1b7)
- evals: bare init is not the kit's init (#712) (#714) (74786d5)
- evals: the bench counts the bare init it stages; a foreign plugin's init still does not (#715) (#716) (3742a85)
- hooks: roseline-gate denial is actionable and fails open on .slnx-only repos (#699) (#706) (e806983)
- renovate: manage the generated plugin copies so source and copies bump in one PR (#711) (4e14ec6)
v3.2.0
3.2.0 (2026-09-26)
Features
- create-pr: take a debug-issue fix off the default branch into a pull request (#636) (#684) (f1d668c)
- plugin: the README, the site and the host table lead with Tagout and install both plugins (#612) (#681) (a1ba0b2)
- tracker: a GitLab backend for create-issue (#508) (#692) (8bad0d1)
- tracker: an Azure DevOps backend for create-issue (#509) (#690) (1475e96)
Bug Fixes
- create-issue: wire-edges.sh resolves the tracker once and relays the backend's own dry-run format (#603) (#686) (8002bb1)
- git-write-gate: share the substitution-span walk between quote states (#602) (#685) (d645a69)
- implement-issue: branch worktrees off the remote default branch, not a hardcoded local main (#678) (#682) (b39f85e)
- methodology: docs/methodology.md matches recap.md's current create-pr/debug-issue behaviour (#689) (#691) (2b9c344)
v3.1.1
3.1.1 (2026-09-21)
Bug Fixes
- hooks: namespace the roseline gate's one-shot marker (#671) (c6a8f30), closes #666
- implement-issue: a backticked command in a Files field is prose, not a path (#670) (17d729b), closes #654
- review-sessions: count a hook-deny only for the kit's own gates (#672) (dc02450), closes #667
- scripts: host-adapters skips gitignored junk in every tree walk (#676) (3c1aeee), closes #653
- scripts: one spelling for the repository argument, and a usage line under the refusal (#668) (#673) (c577d6d)
v3.1.0
3.1.0 (2026-09-16)
Features
- create-pr: open a pull request for a finished branch through one shared recipe (#635) (#638) (b1ca260)
Bug Fixes
- auto-dev: pin the nesting-guarantee wording and add a landed-edit self-check (#656) (#663) (e9fd277)
- evals: stage skills by copy so the eval runner starts on a Windows checkout (#624) (#633) (aeb216f)
- hooks: the write-gate honours GIT_GATE=off only from the main thread (#643) (#646) (3fb74ac)
- hooks: the write-gate judges a shell's -c string and eval's argument (#658) (#662) (0219a9f)
- implement-issue: filter a rename's pending target through looks_like_path (#599) (#626) (108bedb)
- implement-issue: let the liveness guard follow a branch into the worktree that holds it (#644) (#657) (9f2479f)
- implement-issue: name the code-review dispatch's write risk and require a post-review diff check (#578) (#629) (e3411e5)
- implement-issue: post-review-check.sh proves whether a code-review dispatch wrote past its own report (#659) (#664) (485f0be)
- implement-issue: read a path an earlier task creates as SKIP, not MISSING (#640) (#651) (df474c7)
- implement-issue: resolve every review diff range against a fetched origin/main (#601) (#627) (d782842)
- implement-issue: resolve plan paths through cat-file stdin so Git Bash cannot rewrite them (#647) (#660) (7d0313f)
- merge-pr: name needs-approval in the post-merge base-run report (#586) (#632) (244012b)
- merge-pr: recognise this repo's own release automation so approve-runs can land the release PR (#622) (#628) (aa9d41b)
- review-sessions: harvest.py counts a signal only when the kit was invoked, not merely mentioned (#645) (#655) (6faad13)
- scripts: refuse a missing .NET 6 runtime as a prerequisite instead of failing run-all-tests' LegacyShop gate (#642) (#661) (d4e710c)
- scripts: resolve bash through which() so decision-check reaches a verdict on Windows (#623) (#625) (4c3ce7e)
- tests: check-shared-refs.py prints its refusal on a non-UTF-8 stdout (#648) (#649) (56669bd)
- tests: run-all-tests' drift guard fails a coincidental first-line match instead of passing on it (#579) (#631) (5ac1f42)
- tracker: repoint a stale origin so issue and PR searches stop returning empty (#637) (#650) (5318d89)
v3.0.1
v3.0.0
3.0.0 (2026-09-15)
⚠ BREAKING CHANGES
Features
- plugin: rename the kit to Tagout — every shipped identifier, one major (#611) (#614) (a9bc0b6)
- plugin: two disjoint plugins, tagout and tagout-migrate, from one tree (#607) (#617) (ccc644b)
- site: redesign the docs site on its own Jekyll layouts, the lock-out tag world (#604) (1151d2e)
Bug Fixes
- plugin: keep an ai-migration-kit entry in both marketplaces so installs made before the rename still load (#618) (f12e52c)
- site: drop the rail drawn through the hasp's locks (#609) (55a65c2)
- site: point the three migrated-app links at the renamed repos (#613) (d26a026)
- site: serve the docs site from /tagout, where the renamed repo now publishes it (#615) (b18d75e)
- site: the hasp's locks open around their left leg and the minute rules sit on one line (#608) (29da975)
- site: thirty visual defects found in the browser, from the record header to the print sheet (#606) (23fcee1)
v2.7.0
2.7.0 (2026-09-13)
Features
v2.6.0
2.6.0 (2026-09-13)
Features
- implement-issue: send lifecycle hand-offs to a fresh session and shrink inline runs to one task (#523) (#584) (a85c0d3)
- profile-repo: name GitLab and Azure DevOps trackers in the profile (#504) (#568) (265b0e4)
- skills: close GHE host-resolution gaps left after #514 (#530) (#581) (9388358)
- tracker: one tracker contract, and a capable verdict at Step 1 (#505) (#583) (6336d9b)
Bug Fixes
- auto-dev: fail open when a credential's literal '@' makes the userinfo unparseable (#546) (#564) (dfba5cc)
- auto-dev: retro-taxonomy steering category no longer claims the kit ships no AGENTS.md (#557) (#563) (3cf9e0b)
- ci: the plugin-manifest JSON check covers every manifest host-adapters.py knows about, not a shorter hand-typed list (#556) (#576) (87d5adf)
- deps: update non-major dependencies (#577) (c191c9f)
- hooks: deny a named-path checkout that would discard an uncommitted edit (#560) (#569) (92ab8ee)
- hooks: handle launcher option forms in write-gate unwrapping (#562) (#582) (d7eec49)
- hooks: recognize command substitution inside double-quoted write-gate arguments (#559) (#588) (dba0395)
- hooks: the auto-dev stop gate allows a stop while the supervisor is actively cycling (#548) (#574) (15fe040)
- merge-pr: every guarded-pr-merge.sh call site points at the invocation fallback (#414) (#571) (7356234)
- merge-pr: one bounded follow-up lookup on a timeout-reasoned base verdict (#561) (#572) (518df1c)
- merge-pr: treat a run awaiting approval as needs-approval, not failed (#495) (#580) (83b721c)
- scripts: host-adapters.py check refuses RULE_COPIES with no host adapter (#558) (#585) (4a31099)
- scripts: host-adapters.py's $1 guard and replace share one token boundary, so $10+ can't be mistaken for $1 (#555) (#573) (b8f63e8)
v2.5.0
2.5.0 (2026-09-12)
Features
- hosts: AGENTS.md becomes the one home of the routing table, with rule copies for six hosts (#525) (#528) (621a477)
- hosts: the kit installs as a plugin on Codex, Copilot CLI, Gemini CLI, Antigravity and pi (#526) (#537) (41fa428)
- merge-pr: wait for CI in one wait-ci.sh call, then re-derive once (#521) (#543) (95d36a3)
Bug Fixes
- auto-dev: bound the supervisor's context through the harness, not a prescribed /compact (#522) (#550) (ba31dd6)
- auto-dev: release a retired worker's PR branch before any re-dispatch onto it (#510) (#517) (922e38a)
- auto-dev: stop-gate parses a credentialed origin URL's token as the user (#532) (#541) (8c535c9)
- hooks: close write-gate bypass shapes in judge() (#533) (#540) (bb7f33b)
- hooks: the write-gate denies a raw gh pr merge and names each guard by absolute path (#512) (#518) (a30064b)
- implement-issue: finish-task.sh stages only the task's own files, never the whole worktree (#536) (#553) (49c5583)
- implement-issue: name the code-review level on every Step 7 call (#520) (#549) (333e815)
- implement-issue: plan-freshness.sh strips asides innermost-first (#519) (#542) (9265f3c)
- review-sessions: harvest.py's harness and guard rules match the text the harness and guards actually print (#513) (#544) (207f98c)
- skills: every kit script reaches the repository's own gh host (#514) (#516) (7bd8cc1)
- skills: update stale comment about userinfo-colon parsing in _gh-host.sh (#554) (f9a2d24)