<!-- SPDX-License-Identifier: MIT -->
<!-- SPDX-FileCopyrightText: 2025-2026 Marcus Quinn -->

# Changelog

All notable changes to this project will be documented in this file.

The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.1.0/),
and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).

## [Unreleased]

## [3.17.19] - 2026-05-21

### Changed

- Version bump and maintenance updates


## [3.17.18] - 2026-05-21

### Fixed

- archive terminal cleanup worktrees

## [3.17.17] - 2026-05-21

### Fixed

- audit local-only worktree skips

## [3.17.16] - 2026-05-21

### Changed

- Maintenance: update simplification state registry

### Fixed

- log age-ineligible worktree skips

## [3.17.15] - 2026-05-21

### Fixed

- strip HTML comments before parsing TODO.md tasks (GH#17804) (#23904)

## [3.17.14] - 2026-05-21

### Fixed

- archive stale local PR worktrees

## [3.17.13] - 2026-05-21

### Fixed

- migrate worktree owner registry on reads

## [3.17.12] - 2026-05-20

### Fixed

- expire stale reused worktree owners

## [3.17.11] - 2026-05-20

### Changed

- Documentation: clean up changelog duplicates (#23900)

### Fixed

- preserve closed issue unproven cleanup branches
- reduce triage dispatch complexity (#23899)

## [3.17.10] - 2026-05-20

### Fixed

- archive closed issue worktrees early

## [3.17.9] - 2026-05-20

### Fixed

- fail closed on unknown worktree cleanup PR proof

## [3.17.8] - 2026-05-20

### Changed

- Maintenance: update simplification state registry

### Fixed

- pass repo to worktree cleanup PR lookups

## [3.17.7] - 2026-05-20

### Fixed

- classify merged PR worktrees after ancestry mismatch

## [3.17.6] - 2026-05-20

### Fixed

- preserve stale local worktree branches

## [3.17.5] - 2026-05-20

### Fixed

- keep triage prelaunch failures retryable (#23882)

## [3.17.4] - 2026-05-20

### Changed

- Version bump and maintenance updates

## [3.17.3] - 2026-05-20

### Fixed

- fix: PR salvage test temp cleanup (#23877)
- fix: preserve PR salvage test temp cleanup (#23873)

## [3.17.2] - 2026-05-20

### Changed

- Maintenance: update simplification state registry
- fix: simplify framework routing dedup check (#23866)

### Fixed

- address xurl review followup (#23869)
- simplify pulse multiplier fallback (#23867)
- handle empty issue search dedup (#23853)

## [3.17.1] - 2026-05-20

### Fixed

- add pulse account multiplier config fallback (#23852)

## [3.17.0] - 2026-05-20

### Added

- add ObscuraVPN agent (#23849)

## [3.16.0] - 2026-05-20

### Added

- add xurl X API capability (#23844)

## [3.15.69] - 2026-05-20

### Changed

- Maintenance: bump idna in the pip group across 1 directory (#23842)

### Fixed

- preserve merged PR state in REST fallback (#23843)

## [3.15.68] - 2026-05-19

### Changed

- Maintenance: update simplification state registry
- Documentation: clarify timeout fallback marker guidance (#23839)
- fix secure PR salvage test temp file (#23835)
- fix: harden body-file signature repair (#23834)

### Fixed

- harden worktree cleanup PR branch matching (#23838)
- harden body-file signature repair (#23836)

## [3.15.67] - 2026-05-19

### Fixed

- handle no-newline PR list output (#23823)

## [3.15.66] - 2026-05-19

### Changed

- Maintenance: update simplification state registry
- Maintenance: update simplification state registry
- Documentation: clarify person-stats timeout brief (#23815)
- Exempt machine protocols from signature repair (#23811)
- Maintenance: update simplification state registry

### Fixed

- prioritize PR state in cleanup classifier (#23822)
- simplify blocked-by parser regex (#23819)
- support exact PR salvage scans (#23797)
- no-op repair for signed dynamic gh bodies (#23796)

## [3.15.65] - 2026-05-19

### Changed

- Exempt machine protocols from signature repair (#23811)
- Maintenance: update simplification state registry

### Fixed

- support exact PR salvage scans (#23797)
- no-op repair for signed dynamic gh bodies (#23796)

## [3.15.64] - 2026-05-19

### Changed

- Maintenance: update simplification state registry

### Fixed

- allow squash-merged worktree cleanup (#23795)

## [3.15.63] - 2026-05-18

### Changed

- Maintenance: update simplification state registry

### Fixed

- extract timeout mock helper (#23792)
- harden supply-chain test cleanup guard (#23790)

## [3.15.62] - 2026-05-18

### Changed

- Maintenance: update simplification state registry
- Tests: isolate complexity gate test outputs (#23596)
- Maintenance: update simplification state registry
- Documentation: categorize changelog fix entry (#23781)
- Tests: include cp and jq in no-node path (#23777)
- Maintenance: update simplification state registry
- Maintenance: mark t3591 complete (pr:#23764 completed:2026-05-18) [skip ci]

### Fixed

- parse compact blocked-by dispatch refs (#23786)
- salvage labelless PR fixture cleanup (#23538)
- name person stats partial exit (#23783)
- bound person stats GitHub calls (#23764)

## [3.15.61] - 2026-05-18

### Changed

- Maintenance: update simplification state registry
- Maintenance: mark t3591 complete (pr:#23764 completed:2026-05-18) [skip ci]

### Fixed

- bound person stats GitHub calls (#23764)

## [3.15.60] - 2026-05-18

### Changed

- Maintenance: sync ref:GH#23761 to TODO.md [skip ci]
- Maintenance: update simplification state registry

### Fixed

- quote planning next-id assignments (#23762)

## [3.15.59] - 2026-05-17

### Changed

- Tests: isolate dispatch tests from gh REST fallback env (#23741)
- Maintenance: update simplification state registry
- fix: harden profile AI stats source selection (#23740)

### Fixed

- consolidate dispatch hold label semantics
- guard supply-chain test cleanup helper (#23754)
- simplify pulse lifecycle pipe handling (#23753)
- deduplicate supply-chain test cleanup (#23752)
- guard issue create status label args (#23742)

## [3.15.58] - 2026-05-17

### Changed

- Maintenance: update simplification state registry

### Fixed

- suppress pulse PID broken pipe noise (#23719)
- reuse resolved claim runner in repo state guard (#23735)
- harden pulse PR cache cleanup (#23733)
- document FOSS label parsing behavior (#23731)

## [3.15.57] - 2026-05-17

### Fixed

- keep profile AI stats source-consistent
- block external repo claim spam (#23710)

## [3.15.56] - 2026-05-16

### Fixed

- reduce full-loop gate complexity
- split maintainer hold and review gates

## [3.15.55] - 2026-05-16

### Changed

- Maintenance: update simplification state registry
- Documentation: normalize changelog spelling (#23703)
- tighten supply-chain self-reference path matching (#23702)
- Maintenance: update simplification state registry
- Refactor: centralize framework issue flag parsing (#23674)
- Tests: exercise worktree owner registration (#23667)
- Documentation: normalize changelog spelling (#23668)

### Fixed

- preserve dirty worktrees and reflog-only WIP (#23677) (#23678)
- report supply-chain test setup failures (#23707)
- harden label invariant jq labels handling (#23708)
- harden dispatch test mocks (#23701)
- harden pulse PR cache cleanup (#23699)
- simplify non-task label jq detection (#23698)
- respect FOSS disclosure opt-out (#23700)
- preserve model selection failure status (#23696)
- use pathlib as_uri in headless canary test (#23697)
- harden blocker candidate handling (#23694)
- harden benign ledger parent creation (#23693)
- pass FOSS worker issue context (#23680)
- use portable grep alternation in pulse test (#23676)
- use portable canary grep (#23675)
- export benign ledger in dispatch max (#23673)
- simplify benign ledger parent handling (#23672)
- reuse extracted task line for blocker checks (#23671)
- use python URL quoting in headless canary test (#23670)
- align headless runtime local declarations (#23669)
- expose dispatch worktree registration failures (#23666)
- harden GitHub cooldown state writes (#23665)
- extend pulse PR metadata cache (#23663)
- correct non-task label detection (#23664)
- harden supply-chain advisory scan filtering (#23662)
- preserve FOSS label arrays during dispatch (#23659)
- make FOSS dispatch try all configured labels and expand repo paths (#23644)

## [3.15.54] - 2026-05-15

### Fixed

- skip orphan recovery comments on closed issues (#23642)

## [3.15.53] - 2026-05-15

### Fixed

- ignore scanner self-reference IOCs (#23641)

## [3.15.52] - 2026-05-15

### Added

- prioritize low-complexity pulse dispatch (#23612)
- prioritize solvable pulse dispatch candidates (#23610)

### Changed

- harden headless canary review follow-up (#23632)
- Tests: isolate USERPROFILE in pool auth startup test (#23631)
- fix: export dispatch benign block ledger (#23628)
- Maintenance: bump the pip group across 1 directory with 7 updates
- support auto-dispatch framework issue labels (#23607)
- Maintenance: update simplification state registry

### Fixed

- register manual dispatch worktrees (#23639)
- add shared GitHub secondary-rate-limit cooldown (#23638)
- dedupe pulse PR view cache reads (#23637)
- harden tier metadata refresh checks (#23633)
- simplify OAuth pool token empty check (#23630)
- robustly extract task lines for evidence (#23634)
- ignore routine telemetry in label invariant triage (#23623)
- refresh external pulse benign ledgers (#23627)
- preserve worker headless export overrides (#23624)
- make framework auto-dispatch issues dispatchable (#23629)
- normalize pulse dispatch labels (#23626)
- tolerate review gate status permission errors (#23608)

## [3.15.51] - 2026-05-15

### Added

- prioritize low-complexity pulse dispatch (#23612)
- prioritize solvable pulse dispatch candidates (#23610)

### Changed

- Tests: isolate USERPROFILE in pool auth startup test (#23631)
- fix: export dispatch benign block ledger (#23628)
- Maintenance: bump the pip group across 1 directory with 7 updates
- support auto-dispatch framework issue labels (#23607)
- Maintenance: update simplification state registry

### Fixed

- harden tier metadata refresh checks (#23633)
- simplify OAuth pool token empty check (#23630)
- robustly extract task lines for evidence (#23634)
- ignore routine telemetry in label invariant triage (#23623)
- refresh external pulse benign ledgers (#23627)
- preserve worker headless export overrides (#23624)
- make framework auto-dispatch issues dispatchable (#23629)
- normalize pulse dispatch labels (#23626)
- tolerate review gate status permission errors (#23608)

## [3.15.50] - 2026-05-14

### Fixed

- refresh tier metadata after validator (#23603)

## [3.15.49] - 2026-05-14

### Fixed

- canary works on OAuth-only hosts (drop --pure, load plugin, headless flag, benign probe) (#23599)

## [3.15.48] - 2026-05-14

### Fixed

- stop seeding pending pool auth (#23600)

## [3.15.47] - 2026-05-14

### Changed

- Tests: guard phase parent mock JSON (#23585)
- Tests: cover missing pulse upstream refs (#23583)
- fix phase parent jq assignment quoting (#23569)
- Documentation: replace Python body-file examples with heredocs (#23565)
- parse systemd worker properties once (#23563)
- Tests: cover Homebrew OpenCode early return (#23539)

### Fixed

- use OAuth pool as 4th Anthropic credential source in ai-research-helper.sh + key auth-error off rc=2 (#23595)
- align oauth pool fallback schema (#23593)
- scope close state checks to task line (#23592)
- preserve dispatch benign block ledger across refills (#23591)
- preserve external pulse benign ledger (#23590)
- handle unterminated systemd PID properties (#23589)
- respect TODO-derived issue status labels (#23586)
- centralize pulse merge PR fields (#23587)
- localize worker headless exports (#23588)
- validate contribution watch prerequisites before scan jq (#23584)
- harden phase parent metadata parsing (#23582)
- respect no-auto-dispatch in phase sequencing (#23568)
- align worker origin detection (#23567)
- preserve diagnostics in optional helpers (#23566)
- consolidate phase parent metadata parsing (#23564)
- optimize systemd pid property parsing (#23562)
- scope benign dispatch block ledger to cycle (#23561)
- clarify pulse upstream verification failures (#23560)
- harden canonical sweep cwd change (#23559)
- skip unsafe pulse repo refreshes (#23546)
- run canonical worktree sweeps from repo cwd (#23545)
- treat active claim dispatch blocks as benign (#23547)
- skip unconfigured optional pulse routines (#23544)

## [3.15.46] - 2026-05-14

### Changed

- Tests: cover Homebrew OpenCode early return (#23539)

### Fixed

- skip unsafe pulse repo refreshes (#23546)
- run canonical worktree sweeps from repo cwd (#23545)
- treat active claim dispatch blocks as benign (#23547)
- skip unconfigured optional pulse routines (#23544)

## [3.15.45] - 2026-05-14

### Changed

- Maintenance: mark t3590 complete (pr:#23537 completed:2026-05-14) [skip ci]

### Fixed

- skip closed parent phase auto-filing

## [3.15.44] - 2026-05-14

### Changed

- Maintenance: mark t17994 complete (pr:#23536 completed:2026-05-14) [skip ci]

### Fixed

- resolve systemd worker pid handoff (#23535)
- skip closed parent phase auto-filing (#23534)

## [3.15.43] - 2026-05-14

### Changed

- Documentation: align gh body examples with signature gate (#23533)
- Maintenance: mark t3589 complete (pr:#23532 completed:2026-05-14) [skip ci]

### Fixed

- propagate worker origin through sandbox (#23532)

## [3.15.42] - 2026-05-14

### Fixed

- skip draft PRs before pulse merge writes (#23531)

## [3.15.41] - 2026-05-14

### Fixed

- avoid issue body blocker false positives (#23530)

## [3.15.40] - 2026-05-14

### Changed

- Version bump and maintenance updates

## [3.15.39] - 2026-05-14

### Changed

- Maintenance: update simplification state registry
- Performance: consolidate dispatch readiness grep (#23502)
- Documentation: clarify React Doctor read-only scope (#23514)
- Documentation: clarify hotfix commit staging (#23503)
- Performance: reuse pulse PR labels during routing (#23498)
- Documentation: clarify React Doctor workflow (#23494)
- Maintenance: update simplification state registry
- Documentation: add React Doctor guidance (#23483)

### Fixed

- add OpenCode plugin tool args schemas (#23527)
- default issue create status labels (#23523)
- normalize backfill status issue counts (#23518)
- reject hyphen-leading stats fallback identity
- normalize CLI help alias formatting (#23515)
- count supply-chain scan findings consistently (#23513)
- simplify OpenCode memory limit fallback (#23504)
- initialize pulse PR metadata locals (#23501)
- isolate handover log tests (#23499)
- address worktree CLI review followup (#23497)
- harden supply-chain advisory scanner (#23496)
- address routine systemd review followups (#23495)

## [3.15.38] - 2026-05-12

### Added

- add npm supply-chain advisory scanner (#23480)

## [3.15.37] - 2026-05-12

### Fixed

- avoid misleading OpenCode npm install hint (#23479)

## [3.15.36] - 2026-05-12

### Changed

- Version bump and maintenance updates

## [3.15.35] - 2026-05-12

### Changed

- Maintenance: update simplification state registry
- Performance: reduce stale interactive PR lookup overhead (#23473)
- Tests: update handover staleness seconds labels (#23471)

### Fixed

- correct routine systemd daily timers (#23476)
- bound Tabby profile repair blocks (#23474)
- propagate fix-the-fixer mtime failures (#23461)
- optimize stale handover activity checks (#23472)
- document stats fallback identity validation (#23470)
- address gh setup review followups (#23458)
- harden pulse PR view cache lifecycle (#23463)
- propagate gh slurp upgrade status (#23462)
- reuse linked issue during conflict routing (#23460)
- harden stats runner identity fallback (#23459)
- deduplicate gh slurp prerequisite guidance (#23457)
- preserve empty FOSS issue selections (#23456)
- filter pulse dispatch candidates to issues (#23443)

## [3.15.34] - 2026-05-12

### Fixed

- complete gh slurp prerequisite guidance

## [3.15.33] - 2026-05-12

### Changed

- Maintenance: mark t3588 complete (pr:#23440 completed:2026-05-12) [skip ci]
- surface gh upgrade remediation (#23440)
- Maintenance: sync ref:GH#23435 to TODO.md [skip ci]
- Maintenance: sync ref:GH#23428 to TODO.md [skip ci]

### Fixed

- reduce duplicate pulse PR metadata polling (#23438)
- back off fix-the-fixer auth failures (#23434)
- validate stats runner identity (#23436)
- detect unsupported gh slurp prerequisite (#23429)

## [3.15.32] - 2026-05-12

### Changed

- Maintenance: update simplification state registry

### Fixed

- allow stale interactive merge handover

## [3.15.31] - 2026-05-11

### Fixed

- preserve custom Tabby profiles (#23424)

## [3.15.30] - 2026-05-11

### Added

- expose worktree helper in CLI (#23417)
- correlate issue retry attempts (#23369)

### Changed

- Documentation: clarify hotfix worktree safety (#23418)
- Tests: cover pulse dispatch rc adapter (#23415)
- Documentation: refine Swift workflow discovery patterns (#23413)
- Documentation: refine Swift Xcode workflow discovery (#23411)
- address worker sampling review feedback (#23410)
- Maintenance: update simplification state registry
- Documentation: clarify hotfix rollback worktree base (#23407)
- Maintenance: update simplification state registry
- Maintenance: update simplification state registry
- Documentation: clarify task worktree helper path (#23389)
- Refactor: keep dispatch candidate under complexity gate (#23378)
- Maintenance: update simplification state registry
- Validate OpenCode memory tool payloads (#23367)
- Documentation: sample mission worker failures (#23368)

### Fixed

- unblock stale interactive PR takeover
- classify PR dispatch targets as benign (#23420)
- normalize OpenCode memory recall limit (#23416)
- address pulse diagnose review followup (#23414)
- isolate function spacing test output (#23412)
- preserve pulse dispatch block exit codes (#23408)
- harden skills helper count cleanup (#23405)
- isolate pulse dashboards by operator label (#23403)
- skip protected conflicting PR close metadata fetch (#23402)
- clarify generated worktree helper path (#23388)
- classify interactive review holds as benign (#23377)
- prevent non-git worktree cleanup noise (#23376)
- suppress empty claim release warnings (#23375)

## [3.15.29] - 2026-05-10

### Changed

- prescribe linked worktree guidance (#23365)

## [3.15.28] - 2026-05-10

### Changed

- Maintenance: update simplification state registry

### Fixed

- pin postflight secretlint to repo version

## [3.15.27] - 2026-05-10

### Changed

- Documentation: address Swift workflow review refinements (#23361)

## [3.15.26] - 2026-05-10

### Changed

- Tests: cover function complexity name normalization (#23362)
- Documentation: refine Swift Xcode workflow examples (#23360)
- Documentation: address self-improvement review feedback (#23355)
- validate screenshot output paths (#23354)
- Tests: cover Tabby OpenCode repair edge cases (#23353)
- Tests: cover terminal title control range (#23350)
- Performance: cache dashboard slug candidates (#23351)
- cover sanitized Tabby title sequences (#23349)
- collapse terminal title control runs (#23347)
- Refactor: simplify terminal title sanitization (#23346)
- Documentation: harden onboarding video asset path guidance (#23345)
- Documentation: align QuickFile MCP placeholder paths (#23342)
- Maintenance: update simplification state registry

### Fixed

- tighten skills helper temp cleanup (#23359)
- clarify gh body-file cleanup ownership (#23358)
- harden video-use skill guidance (#23357)
- harden body-file signature test assertion (#23356)
- satisfy biome for terminal title sanitizer (#23348)
- harden Tabby OpenCode profile repair (#23344)
- harden canonical guard default branch detection (#23343)
- align quickfile MCP template paths (#23341)
- improve skills search matching (#23340)
- harden body-file auto-signature test (#23337)
- normalize function complexity names (#23334)
- clean up signed gh body-file temp copies (#23326)

## [3.15.25] - 2026-05-10

### Fixed

- keep Tabby profiles on direct split launch (#23308)

## [3.15.24] - 2026-05-10

### Changed

- Maintenance: update simplification state registry
- Maintenance: update simplification state registry

### Fixed

- make local complexity gate changed-file aware (#23307)
- sign gh body-file temp copies (#23305)

## [3.15.23] - 2026-05-10

### Changed

- Documentation: add Swift Xcode agent workflow (#23299)

### Fixed

- improve capability discovery catalogue (#23301)
- ignore closed stale dashboards (#23298)

## [3.15.22] - 2026-05-10

### Fixed

- clean up Tabby title lint (#23297)

## [3.15.21] - 2026-05-10

### Fixed

- sync Tabby title on session rename (#23296)
- preserve profile README worker counts (#23295)

## [3.15.20] - 2026-05-10

### Changed

- Documentation: document grouped ecosystem repo paths (#23294)

## [3.15.19] - 2026-05-10

### Added

- add video editor skill workflow (#23293)

### Changed

- Maintenance: update simplification state registry

## [3.15.18] - 2026-05-10

### Fixed

- restore canonical checkout after branch switches (#23291)

## [3.15.17] - 2026-05-09

### Added

- add branded screenshot video agents (#23289)

## [3.15.16] - 2026-05-09

### Fixed

- keep nested skill resources under agents dir (#23288)
- avoid text-only read-before-edit TTSR false positives (#23287)

## [3.15.15] - 2026-05-09

### Changed

- Documentation: capture session learning guidance (#23286)
- Maintenance: sync ref:GH#23285 to TODO.md [skip ci]

## [3.15.14] - 2026-05-09

### Fixed

- use Tabby command field for OpenCode launch (#23283)

## [3.15.13] - 2026-05-09

### Fixed

- restore direct Tabby OpenCode launch (#23280)

## [3.15.12] - 2026-05-09

### Changed

- Documentation: organize ecosystem repo paths (#23278)

## [3.15.11] - 2026-05-09

### Added

- add RTK adoption reporting (#23277)

## [3.15.10] - 2026-05-09

### Added

- consolidate duplicate worker PR siblings (#23232)
- add pulse current-state dispatch guardrails (#23233)
- add structured worker failure diagnostics (#23229)

### Changed

- Maintenance: update simplification state registry
- Refactor: normalize worker exit metrics (#23248)
- Performance: consolidate duplicate PR merge jq parsing (#23249)
- Maintenance: update simplification state registry
- recover missing-context blockers (#23227)
- Maintenance: update simplification state registry

### Fixed

- clarify interactive PR throughput policy (#23273)
- skip claim lifecycle on external repos (#23274)
- harden coderabbit init yaml edge cases (#23272)
- refresh pulse current-state telemetry (#23270)
- normalize duplicate PR mergeable scoring (#23271)
- tighten dispatch sibling issue matching (#23269)
- preserve duplicate PR consolidation scoring (#23268)
- use label constants in feedback backfill (#23267)
- avoid HEAD fallback in default branch resolver (#23266)
- harden rtk helper cleanup followup (#23265)
- harden CodeRabbit init YAML updates (#23254)
- preserve feedback lifecycle labels (#23251)
- guard failure recovery on default branch (#23250)
- harden rtk helper temp cleanup (#23253)
- refresh pulse guardrail telemetry (#23252)
- refine dispatch PR sibling matching (#23247)
- dedupe healthy sibling dispatch PRs (#23230)

## [3.15.9] - 2026-05-08

### Changed

- Maintenance: mark t3584 complete (pr:#23223 completed:2026-05-08) [skip ci]
- fix worker output recovery after runtime kills (#23223)

## [3.15.8] - 2026-05-08

### Added

- add RTK output comparison diagnostics (#23222)

### Changed

- Maintenance: sync ref:GH#23224 to TODO.md [skip ci]

## [3.15.7] - 2026-05-08

### Changed

- add CodeRabbit post-merge init option (#23221)

### Fixed

- harden opencode PATH construction (#23170)

## [3.15.6] - 2026-05-08

### Changed

- fix consolidated label predicate (#23219)
- Maintenance: mark t3583 complete (pr:#23218 completed:2026-05-08) [skip ci]
- fix worker recovery follow-through (#23218)

## [3.15.5] - 2026-05-08

### Changed

- Maintenance: update simplification state registry
- Maintenance: sync ref:GH#23217 to TODO.md [skip ci]

### Fixed

- initialize pulse capacity locals (#23062)

## [3.15.4] - 2026-05-08

### Changed

- Maintenance: mark t3582 complete (pr:#23216 completed:2026-05-08) [skip ci]
- fix pulse self-healing blockers (#23216)
- Maintenance: sync ref:GH#23215 to TODO.md [skip ci]
- Documentation: clarify RTK adaptive fallback (#23213)
- Maintenance: mark t3581 complete (pr:#23214 completed:2026-05-08) [skip ci]

## [3.15.3] - 2026-05-08

### Added

- add scoped setup deploy commands (#23145)

### Changed

- docs: document pragmatic CI gate policy (#23214)
- Maintenance: sync ref:GH#23211 to TODO.md [skip ci]
- Maintenance: update simplification state registry
- Maintenance: mark t3566 complete (#23210)
- Tests: cover review-feedback version path preservation (#23209)
- Tests: cover cached dashboard identity aliases (#23207)
- Tests: cover pulse merge conflict label safety (#23202)
- Tests: cover dashboard freshness JSON fallback (#23204)
- Tests: cover git checkout dash canonical guard (#23203)
- Performance: reuse prepared review gate status contexts (#23201)
- Tests: cover scheduler crontab I/O reuse (#23200)
- Tests: cover pulse stuck null author parsing (#23188)
- Documentation: update native auto-merge return docs (#23183)
- Performance: cache privacy script reference allowlist (#23180)
- Maintenance: update simplification state registry
- Performance: consolidate review gate list jq lookups (#23173)
- Documentation: clarify automation safety invariants (#23169)
- Tests: simplify git safety guard mock setup (#23168)

### Fixed

- reconcile missing task counter files (#23208)
- refine required-check terminal classification (#23205)
- block consolidated issue redispatch (#23189)
- preserve explicit prelaunch failure reasons (#23185)
- consolidate dispatch circuit comment parsing (#23184)
- handle protected counter reconciliation pushes (#23182)
- localize dashboard alias parsing variables (#23181)
- cache review gate success contexts (#23177)
- streamline linux scheduler cron reconciliation (#23179)
- cache dashboard identity aliases for migration
- reduce CI check polling for merge feedback (#23176)
- guard pulse duplicate issue label lookup (#23175)
- paginate dashboard freshness issue listing (#23174)
- harden opencode setup validation (#23171)
- tighten review-feedback supersession matching (#23172)
- guard git switch dash in canonical checkout (#23167)

## [3.15.1] - 2026-05-08

### Changed

- Maintenance: update simplification state registry

### Fixed

- wrap explicit rtk commands (#23144)

## [3.15.0] - 2026-05-08

### Added

- add SQLite output sandbox helper (#23143)

### Changed

- Maintenance: mark t3578 complete (pr:#23143 completed:2026-05-08) [skip ci]
- Maintenance: update simplification state registry

## [3.14.100] - 2026-05-08

### Changed

- Maintenance: mark t3579 complete (pr:#23141 completed:2026-05-08) [skip ci]
- fix: classify timed-out CI logs as infra blockers (#23141)
- Maintenance: sync ref:GH#23142 to TODO.md [skip ci]

## [3.14.99] - 2026-05-08

### Changed

- Maintenance: sync ref:GH#23140 to TODO.md [skip ci]
- Documentation: explain auto-browse in README (#23139)
- Maintenance: update simplification state registry

## [3.14.98] - 2026-05-08

### Added

- default RTK token optimization setup (#23138)

### Changed

- Maintenance: mark t3576 complete (pr:#23133 completed:2026-05-08) [skip ci]
- Maintenance: mark t3577 complete (pr:#23138 completed:2026-05-08) [skip ci]
- fix: avoid redispatch for CI infra-only blockers (#23133)
- Maintenance: mark t3574 complete (pr:#23131 completed:2026-05-08) [skip ci]
- add auto-browse workflow guidance (#23131)
- Maintenance: sync ref:GH#23136 to TODO.md [skip ci]
- Maintenance: sync ref:GH#23134 to TODO.md [skip ci]
- Maintenance: sync ref:GH#23132 to TODO.md [skip ci]

### Fixed

- guard health dashboard dedup targets (#23129)

## [3.14.97] - 2026-05-08

### Changed

- Maintenance: sync ref:GH#23128 to TODO.md [skip ci]

### Fixed

- retry breaker-held issues after aidevops upgrades (#23127)

## [3.14.96] - 2026-05-08

### Changed

- add opt-in strict review gate completion (#23125)

## [3.14.95] - 2026-05-08

### Fixed

- keep dashboard freshness dedup compatible (#23124)

## [3.14.94] - 2026-05-07

### Added

- dedupe review-feedback dispatch against merged PRs (#23122)
- close superseded pulse duplicate PRs (#23117)

### Changed

- treat pending required checks as non-terminal (#23119)
- deduplicate health dashboards by identity aliases (#23121)
- Maintenance: mark t3571 complete (pr:#23117 completed:2026-05-07) [skip ci]
- Maintenance: mark t3572 complete (pr:#23115 completed:2026-05-07) [skip ci]
- Documentation: add automation safety invariants (#23115)
- Maintenance: update simplification state registry
- Maintenance: mark t3573 complete (pr:#23113 completed:2026-05-07) [skip ci]
- Maintenance: mark t3568 complete (pr:#23112 completed:2026-05-07) [skip ci]

### Fixed

- deduplicate linux scheduler backends (#23123)
- anchor JS credential scrub pattern (#23120)
- recover task counter desync (#23114)
- block unrequested canonical branch switches (#23113)
- require terminal CI failures for repair feedback (#23112)

## [3.14.93] - 2026-05-07

### Changed

- Maintenance: mark t3570 complete (pr:#23111 completed:2026-05-07) [skip ci]
- Maintenance: sync ref:GH#23109 to TODO.md [skip ci]
- Maintenance: sync ref:GH#23106 to TODO.md [skip ci]
- Maintenance: sync ref:GH#23105 to TODO.md [skip ci]
- Maintenance: sync ref:GH#23101 to TODO.md [skip ci]
- Maintenance: sync ref:GH#23100 to TODO.md [skip ci]
- Maintenance: sync ref:GH#23099 to TODO.md [skip ci]

### Fixed

- heal invalid OpenCode stable shim (#23108)
- pause transient rate-limit release storms (#23111)

## [3.14.92] - 2026-05-07

### Changed

- respect repository rulesets during pulse merge (#23090)
- Maintenance: update simplification state registry

### Fixed

- reject qwen opencode shim candidates (#23096)
- reject invalid duplicate issue numbers (#23094)
- allow aidevops script references in privacy scanner (#23095)
- harden pulse stuck author parsing (#23093)
- preserve prelaunch worker failure reasons (#23088)
- restore OpenCode memory tool args schema (#23084)
- handle protected counter branch allocation (#23083)

## [3.14.91] - 2026-05-07

### Fixed

- isolate systemd pulse workers from cgroup (#23082)
- protect owned worktrees from branch-merged cleanup (#23081)
- protect worker worktrees during cleanup (#23075)

## [3.14.90] - 2026-05-07

### Fixed

- transfer precreated worker worktree ownership (#23072)

## [3.14.89] - 2026-05-07

### Fixed

- use repo default branch in merge-stuck guidance (#23069)

## [3.14.88] - 2026-05-07

### Fixed

- strip OpenCode session env for headless runs (#23068)

## [3.14.87] - 2026-05-07

### Changed

- Maintenance: update simplification state registry
- flatten paginated NMR timeline events (#23059)
- Tests: guard dashboard freshness alert refactor (#23056)

### Fixed

- count fast rate limits in dispatch backoff (#23067)
- cap worker dispatch by provider capacity and load (#23061)
- log dashboard freshness issue-list errors (#23060)
- harden worktree owner pid SQL binding (#23058)
- harden opencode daemon path construction (#23057)
- preserve service interruption diagnostics (#23055)
- harden gh issue label parsing (#23054)
- match ruleset branch globs in merge gate (#23053)
- skip fresh claim orphan issue fetch (#23052)

## [3.14.86] - 2026-05-07

### Added

- add service interruption continuation budget (#23041)

## [3.14.85] - 2026-05-07

### Fixed

- separate worker interruptions from rate limits (#23040)

## [3.14.84] - 2026-05-07

### Changed

- Maintenance: update simplification state registry

### Fixed

- close recovered merge-stuck meta issues (#23039)
- reduce dashboard freshness issue list calls (#23034)
- simplify stale brief rewrite requeue labels (#23033)
- recover mismatched dashboard freshness alerts (#23030)

## [3.14.83] - 2026-05-06

### Changed

- Documentation: clarify task intent routing (#23027)

## [3.14.82] - 2026-05-06

### Fixed

- quarantine dead worktree owners (#23026)

## [3.14.81] - 2026-05-06

### Fixed

- preserve peer-runner circuit breakers (#23025)
- keep pulse OpenCode resolver product-strict (#23023)

## [3.14.80] - 2026-05-06

### Changed

- Maintenance: update simplification state registry

### Fixed

- release claim-only dispatch markers (#23021)
- enforce ruleset required checks in pulse merge gate (#23022)

## [3.14.79] - 2026-05-06

### Changed

- Maintenance: mark t3565 complete (pr:#23020 completed:2026-05-06) [skip ci]
- Maintenance: sync ref:GH#23018 to TODO.md [skip ci]
- Maintenance: update simplification state registry

### Fixed

- normalize interactive tracking issue labels (#23020)

## [3.14.78] - 2026-05-06

### Fixed

- avoid dispatch claims before canary passes (#23015)

## [3.14.77] - 2026-05-06

### Fixed

- requeue available brief-rewrite holds (#23017)
- generate daemon-safe opencode shim (#23014)

## [3.14.76] - 2026-05-06

### Changed

- Documentation: clarify approved release main workflow (#23013)
- Maintenance: update simplification state registry
- Maintenance: update simplification state registry
- Tests: guard dashboard freshness jq filtering (#23003)
- Documentation: add changelog traceability reference (#23002)
- Maintenance: update simplification state registry
- Documentation: remove duplicate changelog entry (#22984)
- Maintenance: update simplification state registry
- Maintenance: update simplification state registry

### Fixed

- initialize reconcile helper locals (#23011)
- recover stuck pulse dispatch issues (#23010)
- share dispatch zero-output comment metrics (#23009)
- harden pulse retry reset and reuse evidence metrics (#23008)
- preserve zero-output state count parsing (#23007)
- fail closed when reclaiming worker worktrees (#23006)
- count no-work zero-output comments (#23005)
- tighten PR salvage recovery matching (#23004)
- resolve worker worktree paths outside Git roots (#22989)
- reuse dispatch comment metrics (#22991)
- paginate dashboard freshness alert lookup (#22990)
- align PR salvage recovery test mock (#22988)
- reduce PR salvage recovery issue lookups (#22987)
- align pulse fast-fail header (#22985)
- close original issues for superseding PR merges (#22975)
- preserve origin provenance on dispatch (#22973)
- preserve dirty worker worktrees on exit (#22974)
- let auto-dispatch clear interactive active claims (#22971)

## [3.14.75] - 2026-05-06

### Changed

- Maintenance: update simplification state registry
- Maintenance: update simplification state registry

### Fixed

- close original issues for superseding PR merges (#22975)
- preserve origin provenance on dispatch (#22973)
- preserve dirty worker worktrees on exit (#22974)
- let auto-dispatch clear interactive active claims (#22971)

## [3.14.73] - 2026-05-06

### Changed

- Maintenance: update simplification state registry

### Fixed

- allow auto-dispatch interactive handoff (#22967)
- ignore local case alarm config (#22966)

## [3.14.72] - 2026-05-05

### Changed

- Maintenance: update simplification state registry

### Fixed

- block dispatch of interactive PR targets (#22963)
- reclaim stale worker worktree owners (#22958)
- block dispatch against pull request targets (#22961)

## [3.14.71] - 2026-05-05

### Changed

- Documentation: remove duplicate 3.14.70 changelog entry (#22960)

### Fixed

- reclaim stale worker worktree owners (#22958)
- block dispatch against pull request targets (#22961)

## [3.14.70] - 2026-05-05

### Changed

- Documentation: prepare 3.14.70 changelog

### Fixed

- qualify Anthropic OAuth requests for plan usage (#22956)

## [3.14.69] - 2026-05-05

### Changed

- Maintenance: update simplification state registry

### Fixed

- let clean-room issues bypass zero-output hold (#22954)

## [3.14.68] - 2026-05-05

### Fixed

- clean-room prompts for bloated issues (#22950)

## [3.14.67] - 2026-05-05

### Changed

- Maintenance: update simplification state registry

### Fixed

- initialize release retry locals (#22940)

## [3.14.66] - 2026-05-05

### Fixed

- retry failures after recovery releases (#22946)
- suppress completed PR salvage recoveries (#22945)

## [3.14.65] - 2026-05-05

### Changed

- Maintenance: update simplification state registry

### Fixed

- dedup dashboard freshness alerts (#22943)
- suppress completed PR salvage recoveries (#22942)
- retry failures after recovery releases (#22941)

## [3.14.64] - 2026-05-05

### Changed

- Maintenance: update simplification state registry

### Fixed

- recover OpenAI overload interruptions

## [3.14.63] - 2026-05-05

### Fixed

- fallback after zero-output worker launches (#22936)

## [3.14.62] - 2026-05-05

### Changed

- Maintenance: update simplification state registry
- Tests: guard full-loop behavior spelling (#22929)
- Maintenance: update simplification state registry

### Fixed

- initialize fast-fail age-out locals (#22931)
- recover stale pulse dispatch blockers (#22930)
- narrow pulse zero-progress candidates (#22926)

## [3.14.61] - 2026-05-05

### Changed

- Documentation: standardize full-loop behavior spelling (#22921)
- Maintenance: update simplification state registry

### Fixed

- bound pulse final dispatch wait (#22925)
- preserve helper output when printing bash32 scan logs (#22924)
- harden REST mergeable jq normalization (#22923)
- support older git in bash32 gate test (#22922)
- normalize FOSS issue selection fallback (#22920)

## [3.14.60] - 2026-05-05

### Changed

- Maintenance: update simplification state registry
- Documentation: align auto-dispatch followup guidance (#22916)
- Tests: cover contributor insight review followup (#22915)
- Tests: guard reachable CI test failure guidance (#22912)
- Documentation: consolidate auto-dispatch readiness criteria (#22910)
- Documentation: align plans auto-dispatch gate (#22911)
- Documentation: clarify auto-dispatch placeholders (#22870)
- Documentation: align auto-dispatch quality gate (#22904)
- Documentation: clarify plans auto-dispatch guidance
- reset idle merge zero-progress streak (#22884)
- streamline zombie reaper ledger parsing (#22879)
- Performance: avoid mergeable normalization subshells (#22880)
- Documentation: align auto-dispatch exclusions (#22882)
- Tests: align stale recovery mock repo slug (#22867)

### Fixed

- unblock review cleanup dispatch
- optimize pulse gauge status (#22914)
- harden gh pr list state parsing (#22877)
- include OpenAI retry missing body status (#22883)
- require lint warning cleanup dependency (#22903)
- surface stale PR activity lookup errors (#22909)
- improve setup lock diagnostics (#22907)
- include OpenAI retry missing body status (#22908)
- cover watchdog thrash advisory (#22900)
- streamline contributor insight error composition (#22902)
- release worker worktree on retry finish (#22899)
- remove duplicate CI test failure patterns (#22901)
- close recovered dashboard freshness alerts (#22873)
- improve ratchet timeout diagnostics (#22898)
- preserve log novelty evidence backslashes (#22897)
- resolve SonarCloud quality gate blockers (#22886)
- classify review bot notices in one pass (#22866)
- preserve audit filenames in evidence tables (#22875)
- simplify stale open PR activity guard (#22872)

## [3.14.59] - 2026-05-05

### Fixed

- recover startup-stalled workers
- unlock issues on worker release (#22860)
- allow interactive self-claim for unassigned issues (#22857)
- order dispatch lifecycle comments (#22858)
- harden lint warning temp cleanup (#22852)
- classify review bot notice categories (#22853)

## [3.14.58] - 2026-05-05

### Fixed

- reduce full-loop context blockers (#22851)

## [3.14.57] - 2026-05-05

### Changed

- Documentation: clarify auto-dispatch readiness exclusions (#22847)

### Fixed

- expose pulse merge gauges (#22845)

## [3.14.56] - 2026-05-05

### Fixed

- preserve OpenAI retry failure signals (#22843)

## [3.14.55] - 2026-05-05

### Changed

- Documentation: restore auto-dispatch default guidance (#22820)

### Fixed

- respect worker liveness events (#22819)

## [3.14.54] - 2026-05-05

### Changed

- Documentation: restore auto-dispatch default guidance (#22817)

## [3.14.53] - 2026-05-04

### Fixed

- classify bash workdir access failures (#22813)

## [3.14.52] - 2026-05-04

### Changed

- Maintenance: update simplification state registry

### Fixed

- preserve active worker worktrees (#22811)

## [3.14.51] - 2026-05-04

### Fixed

- flag actionable ESLint warnings (#22809)

## [3.14.50] - 2026-05-04

### Added

- diagnose hermetic pnpm Vitest test failures (#22810)

### Changed

- require merge evidence before reconcile close (#22807)

### Fixed

- harden OpenCode security-validation denies (#22808)

## [3.14.49] - 2026-05-04

### Fixed

- keep failed review bots blocking (#22806)
- bound local bash32 linter gate (#22796)

## [3.14.48] - 2026-05-04

### Fixed

- retry OpenAI overloaded streams in OpenCode plugin (#22792)
- normalize pulse mergeable states (#22801)

## [3.14.46] - 2026-05-04

### Changed

- Documentation: restore core AGENTS progress guidance (#22797)

## [3.14.45] - 2026-05-04

### Changed

- Version bump and maintenance updates

## [3.14.44] - 2026-05-04

### Changed

- Version bump and maintenance updates

## [3.14.43] - 2026-05-04

### Changed

- Maintenance: update simplification state registry

### Fixed

- stabilize FOSS dispatch regression test (#22795)
- guard FOSS dispatch issue selection (#22790)
- normalize REST PR mergeable state (#22787)

## [3.14.42] - 2026-05-04

### Fixed

- optimize pulse dispatch diagnostics and PR reads (#22785)

## [3.14.40] - 2026-05-04

### Changed

- Refactor: clarify ops comment body construction (#22770)
- Tests: lock startup greeting prompt wording (#22772)
- Performance: harden TODO sync recovery (#22771)
- Tests: cover lowercase dispatch claim release markers (#22767)
- Documentation: align quality gate reference wording (#22766)
- Refactor: reduce agent source nesting debt (#22750)
- Refactor: split case alarm tick complexity (#22748)

### Fixed

- reduce bash compatibility baseline debt (#22781)
- bind zombie reaper to worker ledger repo (#22776)
- skip launch preflight fast-fail accrual (#22773)
- skip launch preflight fast-fail accrual (#22775)
- trim fallback greeting version (#22769)
- honor skipped OpenAI OAuth account (#22768)
- skip no_work NMR for prelaunch skips (#22754)
- align git safety hook branch self-test (#22753)
- normalize health dashboard issue states (#22751)
- count no_work markers across comment pages (#22747)
- reduce bash 3.2 compatibility violations (#22749)
- improve worker reliability controls (#22745)

## [3.14.39] - 2026-05-04

### Changed

- preserve signed NMR approvals (#22743)

## [3.14.38] - 2026-05-04

### Changed

- fix worker throughput guards (#22738)

### Fixed

- route circuit breaker meta issues to framework source (#22740)

## [3.14.37] - 2026-05-04

### Added

- add Open Design peripheral workflow (#22735)

### Changed

- Tests: cover disabled pulse REST dispatch fallback (#22734)

## [3.14.36] - 2026-05-04

### Changed

- fix pulse REST dispatch fallback (#22732)

## [3.14.35] - 2026-05-04

### Changed

- fix headless GraphQL fallback guidance (#22729)

### Fixed

- reset failed worker claims to available (#22724)

## [3.14.34] - 2026-05-04

### Changed

- Documentation: clarify quality gate override justification (#22721)
- Documentation: preserve error prevention guidance (#22720)
- Maintenance: align package version with 3.14.33 (#22694)

### Fixed

- align skill frontmatter names (#22728)
- respect false runtime markers in signature session mode (#22718)
- correct goals mission routing (#22722)
- route no_work meta briefs to stale recovery (#22719)
- harden self assignment cleanup (#22717)
- match dispatch claim markers literally (#22715)
- simplify claim release comment construction (#22714)
- sustain OpenAI worker dispatch (#22709)
- clarify OpenCode startup greeting guidance (#22712)
- harden pulse TODO sync recovery (#22711)
- propagate consolidation comment API failures (#22708)
- preserve comment fetch API errors (#22707)
- slurp stale assignment comments (#22695)
- add cost breaker approval command (#22693)
- bound Claude MCP registration listing (#22690)

## [3.14.32] - 2026-05-03

### Fixed

- dedupe circuit breaker comments (#22688)
- repo-qualify all approval prompts (#22686)
- include repo slug in sudo approval prompts (#22683)
- paginate stale assignment comments (#22682)

## [3.14.31] - 2026-05-03

### Fixed

- preserve self dispatch claims (#22681)

## [3.14.30] - 2026-05-03

### Changed

- Maintenance: update simplification state registry

### Fixed

- sync default branch after remote cleanup (#22680)
- report runtime versions in automation messages

## [3.14.29] - 2026-05-03

### Changed

- Maintenance: update simplification state registry

### Fixed

- dedupe TODO auto-mark completions (#22676)

## [3.14.28] - 2026-05-03

### Fixed

- dedupe consolidation dispatch on long threads (#22673)

## [3.14.27] - 2026-05-03

### Fixed

- preserve OpenAI startup OAuth account (#22674)

## [3.14.26] - 2026-05-03

### Fixed

- keep startup advisories out of chat (#22671)
- avoid TODO sync stashes during canonical recovery (#22670)

## [3.14.25] - 2026-05-03

### Fixed

- correct signature footer session mode (#22669)
- paginate dispatch claim comment fetch (#22668)

## [3.14.24] - 2026-05-03

### Changed

- Maintenance: sync ref:GH#22664 to TODO.md [skip ci]

### Fixed

- preserve startup greeting advisories (#22666)
- preserve gpt-5.5 compaction boundary (#22663)

## [3.14.23] - 2026-05-03

### Fixed

- wrap operational GitHub comments (#22662)

## [3.14.22] - 2026-05-03

### Changed

- Documentation: add AGENTS size ratchet (#22661)
- Maintenance: sync ref:GH#22660 to TODO.md [skip ci]
- Maintenance: update simplification state registry

## [3.14.21] - 2026-05-03

### Changed

- fix dispatch dedup for ops-wrapped comments
- Documentation: extract quality gate pattern references (#22658)
- Maintenance: update simplification state registry

## [3.14.20] - 2026-05-03

### Changed

- Documentation: extract worker discipline guidance (#22653)

## [3.14.19] - 2026-05-03

### Changed

- Maintenance: mark t3560 complete (pr:#22650 completed:2026-05-03) [skip ci]
- add /goals mission command

## [3.14.18] - 2026-05-03

### Changed

- Documentation: extract gh command discipline reference (#22651)
- Maintenance: sync ref:GH#22649 to TODO.md [skip ci]
- align OpenAI availability auth precedence (#22638)
- Maintenance: update simplification state registry
- Maintenance: mark t3558 complete (pr:#22639 completed:2026-05-03) [skip ci]
- preserve current OpenAI OAuth account (#22646)

## [3.14.17] - 2026-05-03

### Changed

- prevent duplicate phase auto-filing (#22642)
- Maintenance: mark t3557 complete (pr:#22641 completed:2026-05-03) [skip ci]
- trigger phase autofile after REST fallback merge (#22635)
- Maintenance: sync ref:GH#22640 to TODO.md [skip ci]

### Fixed

- remove CPU-based canary throttling (#22639)
- reset pulse blockers when work is available (#22641)

## [3.14.16] - 2026-05-03

### Changed

- extract Git Workflow body to workflow reference (#22632)
- Maintenance: sync ref:GH#22631 to TODO.md
- Maintenance: mark t3554 complete (pr:#22628 completed:2026-05-03) [skip ci]
- Maintenance: sync ref:GH#22631 to TODO.md [skip ci]

### Fixed

- clamp oauth pool retry-after cooldowns (#22633)

## [3.14.15] - 2026-05-03

### Changed

- Maintenance: sync TODO issue refs
- Maintenance: sync ref:GH#22629 to TODO.md [skip ci]
- Maintenance: sync ref:GH#22627 to TODO.md [skip ci]

### Fixed

- rotate OpenAI OAuth pool on usage limits (#22630)

## [3.14.14] - 2026-05-03

### Changed

- Documentation: extract task lifecycle rules to reference file (#22625)
- Maintenance: update simplification state registry
- extract diagnostics-discipline to reference (Phase 1 of #22616) (#22620)
- register parent task for AGENTS.md progressive disclosure (#22618)

## [3.14.13] - 2026-05-03

### Changed

- replace load-based canary overload gate with CPU saturation classifier (#22617)
- Maintenance: update simplification state registry
- Maintenance: sync ref:GH#22619 to TODO.md [skip ci]
- Maintenance: sync ref:GH#22615 to TODO.md [skip ci]

## [3.14.12] - 2026-05-03

### Changed

- Maintenance: update simplification state registry
- classify zero-commit branches as empty-branch, not merged (#22612)
- Maintenance: sync ref:GH#22610 to TODO.md [skip ci]
- address Gemini review of PR #22605 — vacuous-close + count derivation (#22609)
- Maintenance: sync ref:GH#22607 to TODO.md [skip ci]
- parent-task auto-close fires on single-filed-child parents (#22605)
- Maintenance: sync ref:GH#22606 to TODO.md [skip ci]
- Maintenance: sync ref:GH#22604 to TODO.md [skip ci]
- make gh timeout function detection zsh-compatible (#22601)
- Documentation: clarify dispatch-path tier guidance (#22599)
- Documentation: add campaign asset safety checks (#22582)
- Documentation: add feedback retention policy (#22573)
- fix task-id guard cache follow-up (#22581)
- Performance: filter maintainer comments by since (#22579)
- Documentation: address t2893 brief review feedback (#22577)
- Documentation: clarify self-modifying full-loop merge path (#22572)
- Maintenance: sync ref:GH#22571 to TODO.md [skip ci]
- add REST fallback for GraphQL-limited full-loop merges (#22569)
- Maintenance: sync ref:GH#22538 to TODO.md [skip ci]
- Define _performance KPI result schema
- prevent active worktree cleanup during verification
- Fix phase-only parent auto-filing (#22555)
- Fix interactive issue origin labels
- Define _projects directory contract (#22554)
- document feedback promotion paths (#22551)
- define feedback capture contract
- Fix setup noninteractive stale-lock false reclaim (#22540)
- Maintenance: sync ref:GH#22525 to TODO.md [skip ci]
- clarify setup postflight advisory noise (#22546)
- route failing verification badges to tasks (#22543)
- Maintenance: sync ref:GH#22539 to TODO.md [skip ci]
- Limit broad log searches in interactive diagnostics (#22541)

### Fixed

- re-checkout framework after caller checkout in sync-on-pr-merge (#22614)
- initialize multi-var locals in _compose_unfiled_phases_note (#22611)
- guard NMR timestamp jq parsing (#22603)
- verify pulse merge label fetch behavior (#22602)
- extract all release completion task IDs (#22600)
- tolerate missing preflight log matches (#22597)
- reuse worker activity summary timestamp (#22596)
- allow ESLint flat configs in root allowlist (#22595)
- harden opencode install validation (#22584)
- tighten external content spam detector followups (#22580)
- align full-loop gate parity test with split helper (#22578)
- harden fast_cp portability (#22576)
- add REST fallback for GraphQL-limited full-loop merge (#22568)

## [3.14.11] - 2026-05-03

### Changed

- Maintenance: sync ref:GH#22537 to TODO.md [skip ci]
- Maintenance: sync ref:GH#22534 to TODO.md [skip ci]
- feedback plane Phase 3 mining workflow (#22532)

## [3.14.10] - 2026-05-03

### Changed

- release dispatch claims on pre-launch aborts
- feedback plane Phase 5 CLI and routines design
- Maintenance: sync ref:GH#22527 to TODO.md [skip ci]

### Fixed

- restore validator cwd before amend

## [3.14.9] - 2026-05-03

### Changed

- Maintenance: sync ref:GH#22525 to TODO.md [skip ci]

## [3.14.8] - 2026-05-03

### Changed

- Documentation: verify projects parent planning state (#22516)
- Maintenance: sync ref:GH#22515 to TODO.md [skip ci]

## [3.14.7] - 2026-05-03

### Changed

- Maintenance: decompose feedback plane parent (#22520)

### Fixed

- address review feedback for setup and model probes (#22509)

## [3.14.6] - 2026-05-03

### Changed

- gate compaction advisory (#22497)
- remove duplicate performance TODO entry (#22514)
- Maintenance: sync ref:GH#22510 to TODO.md [skip ci]

## [3.14.5] - 2026-05-03

### Changed

- fix GPT-5.5 compaction input limit (#22508)
- reduce setup postflight degradation noise (#22505)
- Maintenance: sync ref:GH#22507 to TODO.md [skip ci]
- Maintenance: sync ref:GH#22506 to TODO.md [skip ci]
- Maintenance: sync ref:GH#22481 to TODO.md [skip ci]
- add conditional pulse prefetch caching (#22494)

## [3.14.4] - 2026-05-03

### Changed

- reduce launchd xpcproxy setup warnings
- prevent non-maintainer upstream-watch issue spam
- cost circuit breaker diagnostics and 800K budget
- Maintenance: sync ref:GH#22478 to TODO.md [skip ci]
- prioritize GraphQL budget for pulse stages (#22492)

## [3.14.3] - 2026-05-03

### Changed

- Documentation: clarify launch-worker repo default (#22491)

### Fixed

- reduce GraphQL read pressure during pulse cycles (#22493)

## [3.14.2] - 2026-05-03

### Fixed

- prioritize security quality-debt dispatch (#22487)
- scope contributor insights to repo sessions (#22490)

## [3.14.1] - 2026-05-03

### Fixed

- use REST-first PR readiness checks (#22488)

## [3.14.0] - 2026-05-02

### Changed

- reason-code dispatch candidate pre-launch failures (#22485)
- Maintenance: sync ref:GH#22482 to TODO.md [skip ci]
- Maintenance: sync ref:GH#22481 to TODO.md [skip ci]
- Maintenance: sync ref:GH#22480 to TODO.md [skip ci]
- Maintenance: sync ref:GH#22479 to TODO.md [skip ci]
- Maintenance: sync ref:GH#22472 to TODO.md [skip ci]
- add PR repair loop for blocked checks (#22475)
- Maintenance: sync ref:GH#22474 to TODO.md [skip ci]
- Maintenance: sync ref:GH#22473 to TODO.md [skip ci]
- Maintenance: sync ref:GH#22472 to TODO.md [skip ci]
- Maintenance: sync ref:GH#22471 to TODO.md [skip ci]
- add auto-reason subjective refinement workflow (#22470)
- Fix commit-and-pr REST fallback PR-number stdout (#22468)
- Maintenance: sync ref:GH#22458 to TODO.md [skip ci]
- update upstream skill review docs (#22464)
- suppress postflight scrubber fixture false positive
- remove volatile Sonar quality gate badge (#22447)
- Make issue-sync TODO pushes conflict-safe
- Maintenance: sync ref:GH#22442 to TODO.md [skip ci]
- Maintenance: sync ref:GH#22441 to TODO.md [skip ci]
- clean up root shell script layout (#22440)
- Maintenance: sync ref:GH#22436 to TODO.md [skip ci]
- Maintenance: sync ref:GH#22434 to TODO.md [skip ci]
- Maintenance: sync ref:GH#22433 to TODO.md [skip ci]
- Maintenance: sync ref:GH#22432 to TODO.md [skip ci]
- Maintenance: mark t3492 complete (pr:#22431 completed:2026-05-02) [skip ci]
- Maintenance: sync ref:GH#22428 to TODO.md [skip ci]

### Fixed

- prevent duplicate manual worker launches (#22486)
- suppress available feedback issue assignments (#22483)
- sync canonical labels during repo init (#22469)
- guard issue workers missing worktree env (#22467)
- reduce workflow cancellation noise (#22466)
- isolate setup worktree preservation test fixtures (#22465)
- harden code review auto-fix pushes (#22443)
- make release creation idempotent (#22444)
- redact session miner instruction candidate snippets (#22439)
- route issue list json reads through REST fallback (#22435)
- stop warning on empty Anthropic API key (#22431)
- make verified worktree cleanup remove permanently (#22426)

## [3.13.95] - 2026-05-02

### Changed

- Maintenance: mark t3489 complete (pr:#22421 completed:2026-05-02) [skip ci]
- Maintenance: mark t3491 complete (pr:#22422 completed:2026-05-02) [skip ci]
- automate safe remote branch cleanup (#22421)
- Maintenance: mark t3488 complete (pr:#22424 completed:2026-05-02) [skip ci]
- ensure release deploy starts pulse (#22422)
- Maintenance: mark t3474 complete (pr:#22423 completed:2026-05-02) [skip ci]
- Documentation: align research command names (#22423)
- Maintenance: sync ref:GH#22418 to TODO.md [skip ci]
- Maintenance: sync ref:GH#22417 to TODO.md [skip ci]
- Maintenance: update simplification state registry
- guard pulse wrapper bash-only sourcing (#22402)
- Maintenance: mark t3482 complete (pr:#22412 completed:2026-05-02) [skip ci]
- Maintenance: mark t3468 complete (pr:#22410 completed:2026-05-02) [skip ci]

### Fixed

- harden launchd xpcproxy recovery (#22427)
- add REST fallback for PR comments (#22424)

## [3.13.94] - 2026-05-02

### Added

- close worker failure feedback loop (#22384)
- file memory audit opportunities (#22383)

### Changed

- Maintenance: update simplification state registry
- Add user-owned GitHub App auth and API routing
- Relax worker timing recovery gates (#22392)
- Maintenance: mark t3467 complete (pr:#22383 completed:2026-05-02) [skip ci]
- Maintenance: mark t3429 complete (pr:#22382 completed:2026-05-02) [skip ci]
- tolerate scalar thread fields (#22375)
- Maintenance: sync ref:GH#22370 to TODO.md [skip ci]
- Maintenance: mark t3475 complete (pr:#22377 completed:2026-05-02) [skip ci]
- Maintenance: sync ref:GH#22373 to TODO.md [skip ci]
- Maintenance: sync ref:GH#22372 to TODO.md [skip ci]
- Maintenance: sync ref:GH#22371 to TODO.md [skip ci]
- Maintenance: sync ref:GH#22370 to TODO.md [skip ci]
- Maintenance: sync ref:GH#22369 to TODO.md [skip ci]
- Maintenance: mark t3448 complete (pr:#22353 completed:2026-05-02) [skip ci]
- restore agents backups atomically (#22362)
- reduce pulse GraphQL read pressure (#22353)
- document seeded draft PR workflow
- Maintenance: mark t3435 complete (pr:#22342 completed:2026-05-02) [skip ci]
- route gh list view calls through wrappers (#22352)
- Maintenance: mark t3460 complete (pr:#22335 completed:2026-05-02) [skip ci]
- route solved label edits through gh timeout wrapper (#22359)
- Maintenance: mark t3440 complete (pr:#22341 completed:2026-05-02) [skip ci]
- Maintenance: mark t3432 complete (pr:#22343 completed:2026-05-02) [skip ci]
- Maintenance: mark t3442 complete (pr:#22336 completed:2026-05-02) [skip ci]
- Maintenance: sync ref:GH#22320 to TODO.md [skip ci]
- add inbox correction learning
- Maintenance: mark t3428 complete (pr:#22329 completed:2026-05-02) [skip ci]
- avoid reloading active profile README jobs
- measure pulse and worker resources (#22342)
- route gh read call sites through wrappers
- mark pulse prefetch audit complete
- Maintenance: mark t3441 complete (pr:#22326 completed:2026-05-02) [skip ci]
- improve pulse API call attribution
- reduce headless prompt argv size
- seed managed agent source repos
- reduce shell forks in dispatch hot paths

### Fixed

- use BSD-compatible awk for efficiency speed collection (#22374)
- make origin label ceremony REST-backed (#22391)
- exclude future worker metric timestamps (#22377)
- paginate orphan loop comments (#22361)
- remove redundant NMR timestamp jq guard (#22358)
- enforce task ID boundary in release extraction (#22357)
- harden worker canary soft-failure handling (#22340)

## [3.13.93] - 2026-05-02

### Added

- add rich inbox preview extraction (#22330)

### Changed

- Add data-flow contracts and privacy tiers to agent packs
- route eligible GitHub reads through REST proactively
- Maintenance: mark t3455 complete (pr:#22323 completed:2026-05-02) [skip ci]
- Maintenance: sync ref:GH#22324 to TODO.md [skip ci]
- Maintenance: repair stale TODO completions for data-plane tasks (#22325)
- Maintenance: mark t3457 complete (pr:#22319 completed:2026-05-02) [skip ci]
- normalize escaped newlines in issue bodies (#22319)
- Maintenance: mark t3458 complete (pr:#22318 completed:2026-05-02) [skip ci]
- Maintenance: sync ref:GH#22317 to TODO.md [skip ci]
- Maintenance: sync ref:GH#22316 to TODO.md [skip ci]
- Maintenance: mark t3436 complete (pr:#22315 completed:2026-05-02) [skip ci]
- Maintenance: sync ref:GH#22314 to TODO.md [skip ci]
- Maintenance: sync ref:GH#22311 to TODO.md [skip ci]

### Fixed

- harden profile README session stats (#22331)
- route campaign status provisioning (#22329)
- enforce active worker minimum floor (#22327)
- make shared constants source cleanly from zsh (#22323)

## [3.13.92] - 2026-05-02

### Fixed

- use app usage fallback for sparse backlit stream (#22309)

## [3.13.91] - 2026-05-02

### Added

- prioritize PR backlog before dispatch (#22307)
- improve worker telemetry (#22278)

### Changed

- Maintenance: sync ref:GH#22308 to TODO.md [skip ci]
- Maintenance: sync ref:GH#22306 to TODO.md [skip ci]
- Maintenance: sync ref:GH#22305 to TODO.md [skip ci]
- Maintenance: sync ref:GH#22304 to TODO.md [skip ci]
- Maintenance: sync ref:GH#22303 to TODO.md [skip ci]
- Maintenance: sync ref:GH#22301 to TODO.md [skip ci]
- Maintenance: sync ref:GH#22300 to TODO.md [skip ci]
- Maintenance: mark t3445 complete (pr:#22298 completed:2026-05-02) [skip ci]
- Maintenance: sync ref:GH#22299 to TODO.md [skip ci]
- Maintenance: sync ref:GH#22297 to TODO.md [skip ci]
- Maintenance: sync ref:GH#22296 to TODO.md [skip ci]
- Maintenance: sync ref:GH#22293 to TODO.md [skip ci]
- Maintenance: sync ref:GH#22292 to TODO.md [skip ci]
- Maintenance: sync ref:GH#22291 to TODO.md [skip ci]
- Maintenance: sync ref:GH#22290 to TODO.md [skip ci]
- Maintenance: sync ref:GH#22288 to TODO.md [skip ci]
- Maintenance: sync ref:GH#22287 to TODO.md [skip ci]
- Maintenance: sync ref:GH#22286 to TODO.md [skip ci]
- Maintenance: sync ref:GH#22285 to TODO.md [skip ci]
- Maintenance: sync ref:GH#22267 to TODO.md [skip ci]
- Maintenance: mark t3421 complete (pr:#22278 completed:2026-05-02) [skip ci]
- Maintenance: mark t3427 complete (pr:#22275 completed:2026-05-02) [skip ci]
- normalize feedback redispatch ownership (#22279)
- Maintenance: sync ref:GH#22274 to TODO.md [skip ci]
- integrate plugin namespaces into subagent discovery (#22275)
- Maintenance: sync ref:GH#22271 to TODO.md [skip ci]
- add manual worker launcher (#22269)
- Fix dispatch-single issue state casing (#22266)
- reduce GraphQL budget usage in diagnostics
- Performance: scope headless startup provider state (#22261)
- add minimum worker concurrency floor
- Maintenance: mark t3417 complete (pr:#22252 completed:2026-05-01) [skip ci]
- support glob-compressed subagent allowlists (#22252)
- Maintenance: mark t3416 complete (pr:#22258 completed:2026-05-01) [skip ci]

### Fixed

- ignore generated Beads export state (#22298)
- harden opencode maintenance-window cleanup (#22283)
- use portable token advisory temp paths (#22277)
- scope pulse merge routine scheduler test (#22276)
- skip orphan loop check for fresh worker branches (#22273)
- guard attribution printf hyphen output (#22272)

## [3.13.90] - 2026-05-02

### Added

- add per-function GraphQL instrumentation to 14 public gh CLI wrappers (#22242)

### Changed

- Fix headless canary default agent regression
- Maintenance: sync ref:GH#22251 to TODO.md [skip ci]
- Maintenance: sync ref:GH#22250 to TODO.md [skip ci]
- Maintenance: mark t3415 complete (pr:#22249 completed:2026-05-01) [skip ci]
- Maintenance: sync ref:GH#22248 to TODO.md [skip ci]
- Maintenance: update simplification state registry
- Maintenance: mark t3414 complete (pr:#22244 completed:2026-05-01) [skip ci]
- Maintenance: sync ref:GH#22243 to TODO.md [skip ci]
- Maintenance: mark t3411 complete (pr:#22239 completed:2026-05-01) [skip ci]
- Fix routines setup push retry (#22239)
- Maintenance: sync ref:GH#22238 to TODO.md [skip ci]
- Maintenance: sync ref:GH#22235 to TODO.md [skip ci]

### Fixed

- address worktree registry review feedback (#22246)
- select latest dispatch cooldown marker (#22245)
- cap dispatch timing and node_modules restore fanout

## [3.13.89] - 2026-05-01

### Changed

- Version bump and maintenance updates

## [3.13.88] - 2026-05-01

### Changed

- Maintenance: mark t3410 complete (pr:#22223 completed:2026-05-01) [skip ci]
- Maintenance: mark t3409 complete (pr:#22217 completed:2026-05-01) [skip ci]
- Make release creation resilient to GitHub GraphQL exhaustion (#22217)

### Fixed

- include worktree path in stale claim reports (#22227)

## [3.13.87] - 2026-05-01

### Fixed

- harden pulse merge routine test checks (#22215)

## [3.13.86] - 2026-05-01

### Changed

- Version bump and maintenance updates

## [3.13.85] - 2026-05-01

### Changed

- Maintenance: mark t3407 complete (pr:#22211 completed:2026-05-01) [skip ci]
- add remote branch cleanup command (#22211)

## [3.13.84] - 2026-05-01

### Changed

- Maintenance: mark t3408 complete (pr:#22206 completed:2026-05-01) [skip ci]
- Maintenance: mark t3404 complete (pr:#22200 completed:2026-05-01) [skip ci]
- enforce public repo PR gating (#22200)

### Fixed

- abort routines sync rebase conflicts (#22206)

## [3.13.83] - 2026-05-01

### Changed

- Maintenance: mark t3405 complete (pr:#22204 completed:2026-05-01) [skip ci]
- Maintenance: mark t3406 complete (pr:#22203 completed:2026-05-01) [skip ci]

### Fixed

- suppress missing agent source find errors (#22204)

## [3.13.82] - 2026-05-01

### Changed

- Maintenance: sync ref:GH#22202 to TODO.md [skip ci]

### Fixed

- handle routines repo remote-ahead pushes (#22203)

## [3.13.81] - 2026-05-01

### Changed

- Maintenance: mark t3402 complete (pr:#22201 completed:2026-05-01) [skip ci]
- Maintenance: sync ref:GH#22199 to TODO.md [skip ci]
- Maintenance: sync ref:GH#22197 to TODO.md [skip ci]
- Maintenance: mark t3403 complete (pr:#22196 completed:2026-05-01) [skip ci]
- fix quality gate cancellation false failures (#22196)
- Maintenance: mark t3400 complete (pr:#22193 completed:2026-05-01) [skip ci]
- add helper scripts for AGENTS token efficiency (#22193)
- prevent setup removing current worktree (#22190)
- Maintenance: sync ref:GH#22086 to TODO.md [skip ci]
- Maintenance: mark t3370 complete (pr:#22189 completed:2026-05-01) [skip ci]

### Fixed

- sanitize launchd PATH generation (#22201)
- guard snap opencode candidate on non-linux (#22198)

## [3.13.80] - 2026-05-01

### Changed

- Version bump and maintenance updates

## [3.13.79] - 2026-05-01

### Changed

- Maintenance: sync ref:GH#22174 to TODO.md [skip ci]
- Maintenance: mark t3395 complete (pr:#22182 completed:2026-05-01) [skip ci]

## [3.13.78] - 2026-05-01

### Changed

- harden setup noninteractive cleanup (#22185)
- Maintenance: sync ref:GH#22183 to TODO.md [skip ci]
- Maintenance: sync ref:GH#22178 to TODO.md [skip ci]
- Maintenance: mark t3397 complete (pr:#22181 completed:2026-05-01) [skip ci]
- Maintenance: mark t3384 complete (pr:#22170) (#22179)

## [3.13.77] - 2026-05-01

### Changed

- split aidevops CLI helper libraries

## [3.13.76] - 2026-05-01

### Changed

- fix task-complete merged PR detection (#22181)
- Maintenance: mark t3391 complete (pr:#22172 completed:2026-05-01) [skip ci]
- Maintenance: record task-complete follow-up
- Maintenance: mark t3369 complete (pr:#22177 testing:runtime-verified)
- Maintenance: mark t3392 complete (pr:#22169 completed:2026-05-01) [skip ci]
- Maintenance: sync ref:GH#22146 to TODO.md [skip ci]
- Maintenance: mark t3386 complete (pr:#22152 completed:2026-05-01) [skip ci]

## [3.13.75] - 2026-05-01

### Changed

- Maintenance: record setup follow-up tasks
- bound serialized setup wait on stale setup process (#22177)

## [3.13.74] - 2026-05-01

### Changed

- treat runtime deployment timeout as warning (#22172)

## [3.13.73] - 2026-05-01

### Changed

- Maintenance: add t3394 setup timeout cleanup follow-up
- Maintenance: mark t3388 complete (pr:#22162 completed:2026-05-01) [skip ci]
- Maintenance: mark t3389 complete (pr:#22159 completed:2026-05-01) [skip ci]
- Maintenance: mark t3383 complete (pr:#22144 completed:2026-05-01) [skip ci]
- docs(README): recommend OpenCode with OpenAI models (#22169)
- Maintenance: ratchet QLTY_SMELL_THRESHOLD 40→39 (-1) [skip ci]
- Maintenance: mark t3390 complete (pr:#22163)
- add B'5 regression test for gh_create_issue empty argv (#22141)

### Fixed

- optimize skill generator timeout (#22170)

## [3.13.72] - 2026-05-01

### Changed

- Maintenance: sync ref:GH#22153 to TODO.md [skip ci]

### Fixed

- verify approval lifecycle REST fallback (#22152)

## [3.13.71] - 2026-05-01

### Changed

- Version bump and maintenance updates

## [3.13.70] - 2026-05-01

### Changed

- Version bump and maintenance updates

## [3.13.69] - 2026-05-01

### Changed

- Fix linters-local worktree deletion (#22161)

## [3.13.68] - 2026-05-01

### Changed

- harden setup noninteractive lock cleanup (#22162)

## [3.13.67] - 2026-05-01

### Changed

- fix verify-issue-close-helper merged PR file parsing
- Maintenance: mark t3381 complete (pr:#22142 completed:2026-05-01) [skip ci]
- Maintenance: restore t3389 TODO entry
- Maintenance: add t3390 follow-up task
- Maintenance: mark t3387 complete (pr:#22156 testing:self-assessed)

## [3.13.66] - 2026-05-01

### Changed

- optimize pulse auto-merge state parsing
- Maintenance: remove duplicate t3385 TODO entry (#22156)
- Maintenance: record t3388 follow-up

## [3.13.65] - 2026-05-01

### Changed

- Maintenance: mark t3385 complete (pr:#22150)
- accept REST merged evidence in task completion (#22150)
- Maintenance: sync ref:GH#22076 to TODO.md [skip ci]
- Maintenance: mark t3376 complete (pr:#22130 completed:2026-05-01) [skip ci]
- Maintenance: mark t3227 complete (pr:#22139 completed:2026-05-01) [skip ci]

### Fixed

- harden claim task issue extraction (#22129)

## [3.13.64] - 2026-05-01

### Changed

- Fix merge LaunchAgent stuck in xpcproxy before exec
- Maintenance: mark t3216 complete (pr:#22128 completed:2026-05-01) [skip ci]

## [3.13.63] - 2026-05-01

### Changed

- release stale claims by PID liveness (#22148)
- Maintenance: mark t3372 complete (pr:#22101 completed:2026-05-01) [skip ci]
- update stale pre-check comment in _attempt_orphan_recovery_pr (#22125)

## [3.13.62] - 2026-05-01

### Changed

- fix pre-edit worktree auto-create detection
- Maintenance: sync t3385 follow-up task

### Fixed

- stub _rest_append_sig in REST fallback test to prevent hang (#22107)

## [3.13.61] - 2026-05-01

### Changed

- Maintenance: mark t3380 complete (pr:#22137 testing:runtime-verified)

## [3.13.60] - 2026-05-01

### Changed

- speed up worktree registry prune for large stale backlogs
- Maintenance: mark t3258 complete (pr:#22097 completed:2026-05-01) [skip ci]
- track solved-by actor labels (#22130)

### Fixed

- check paginated dispatch cooldown comments (#22132)

## [3.13.59] - 2026-05-01

### Fixed

- harden agent deploy against concurrent races (#22139)

## [3.13.58] - 2026-05-01

### Changed

- Refactor: derive Claude proxy models from registry (#22128)
- Maintenance: mark t3257 complete (pr:#22102 completed:2026-05-01) [skip ci]
- Maintenance: mark t3379 complete (pr:#22124 completed:2026-05-01) [skip ci]

## [3.13.57] - 2026-05-01

### Changed

- Maintenance: add t3382 follow-up task
- Maintenance: sync ref:GH#22119 to TODO.md [skip ci]
- add issue-body structural lint before publication (#22096)
- add pulse-diagnose-helper.sh issue subcommand for issue-level worker/PR timelines (#22097)
- exclude ChatGPT OAuth unsupported pro models from routing (#22103)
- reconstruct PR #21876 worker-loop timeline (#22102)
- bound opencode --version in validate_opencode_config (#22104)
- enrich setup noninteractive lock contention diagnostics (#22124)

### Fixed

- reduce stale-recovery NMR query overhead (#22134)
- add include guard to prevent repeated sourcing hang (GH#22091) (#22101)
- verify_pr_merged passes when state=closed but mergedAt is set (GH#22075) (#22098)

## [3.13.56] - 2026-05-01

### Fixed

- reuse preflight timing helper (#22126)
- support variable-width release task IDs (#22127)

## [3.13.55] - 2026-05-01

### Changed

- Maintenance: mark t3378 complete (pr:#22122 completed:2026-05-01) [skip ci]
- fix pulse merge dry-run and scheduler (#22122)
- Maintenance: mark t3371 complete (pr:#22109 completed:2026-05-01) [skip ci]
- Maintenance: sync ref:GH#22123 to TODO.md [skip ci]
- Maintenance: sync ref:GH#22121 to TODO.md [skip ci]
- expose OpenCode DB maintenance command and notice (#22120)
- Maintenance: sync ref:GH#22119 to TODO.md [skip ci]

### Fixed

- portable timeout + Pattern 2 subprocess elimination in generate_agent_skills (#22099)
- bound deploy_agents_to_runtimes stage in non-interactive setup (#22109)
- avoid empty gh_create_issue label arg when no TODO labels derived (GH#22056) (#22110)

## [3.13.54] - 2026-05-01

### Changed

- Maintenance: mark t3375 complete (pr:#22116 completed:2026-05-01) [skip ci]
- Maintenance: sync ref:GH#22117 to TODO.md [skip ci]

### Fixed

- raise token advisory threshold (#22116)

## [3.13.53] - 2026-05-01

### Changed

- Maintenance: mark t3239 complete (pr:#22114 completed:2026-05-01) [skip ci]
- finish OpenCode DB WAL and maintenance-window handling (#22114)
- Maintenance: sync ref:GH#22115 to TODO.md [skip ci]
- Maintenance: mark t3259 complete (pr:#22113 completed:2026-05-01) [skip ci]
- add branch-orphan loop hold (#22113)
- Maintenance: sync ref:GH#22093 to TODO.md [skip ci]
- remove Augment and Auggie MCP (#22089)
- Maintenance: mark t3361 complete (pr:#22080 completed:2026-05-01) [skip ci]

## [3.13.52] - 2026-05-01

### Changed

- Maintenance: mark t3253 complete (pr:#22078 completed:2026-05-01) [skip ci]
- Maintenance: remove duplicate t3364 TODO entry (#22090)
- Maintenance: mark t3256 complete (pr:#22082 completed:2026-05-01) [skip ci]
- Maintenance: record t3372 dry-run hang task
- Maintenance: mark t3240 complete (pr:#22073 completed:2026-05-01) [skip ci]

### Fixed

- declare setup tool update prompt state (#22094)
- bound setup skill generation (#22088)

## [3.13.51] - 2026-05-01

### Added

- add maintainer PR drain helper (#22083)

### Fixed

- use unique agent deploy staging paths (#22080)

## [3.13.50] - 2026-05-01

### Changed

- Version bump and maintenance updates

## [3.13.49] - 2026-05-01

### Changed

- Maintenance: sync ref:GH#22065 to TODO.md [skip ci]
- Maintenance: mark t3362 complete (pr:#22067 completed:2026-05-01) [skip ci]

### Fixed

- bound legacy OpenCode setup path (#22085)

## [3.13.48] - 2026-05-01

### Changed

- Make linters-local string literal gate ratchet-based (#22082)

## [3.13.47] - 2026-05-01

### Changed

- Maintenance: mark t3201 complete (pr:#22053)
- Maintenance: mark t3229 complete (pr:#22025 completed:2026-05-01) [skip ci]
- Maintenance: mark t3248 complete (pr:#22030 completed:2026-05-01) [skip ci]
- Maintenance: record t3367 setup hang task
- Maintenance: mark t3221 complete (pr:#22027 completed:2026-05-01) [skip ci]
- Maintenance: mark t3249 complete (pr:#22033 completed:2026-05-01) [skip ci]
- Maintenance: mark t3252 complete (pr:#22043 completed:2026-05-01) [skip ci]

## [3.13.46] - 2026-05-01

### Fixed

- serialize noninteractive deployments (#22072)
- make stash cleanup non-blocking (#22073)

## [3.13.45] - 2026-05-01

### Changed

- Maintenance: mark t3218 complete (pr:#22047)
- Maintenance: mark t3250 complete (pr:#22036 completed:2026-05-01) [skip ci]
- Maintenance: sync ref:GH#21985 to TODO.md [skip ci]
- Maintenance: mark t3231 complete (pr:#22044 completed:2026-05-01) [skip ci]
- Refactor: split headless runtime worker helpers (#22055)

## [3.13.44] - 2026-05-01

### Changed

- Maintenance: mark t3238 complete (pr:#22051 completed:2026-05-01) [skip ci]

### Fixed

- resolve worktree default branch from repo metadata (#22060)

## [3.13.43] - 2026-05-01

### Changed

- Performance: setup.sh steady-state under 60s — rsync drift check, SHA-skip backup, async pulse, migration sentinels (t3221) (#22027)

### Fixed

- guard atomic swap mv ops in agent-deploy against set -e suppression (#22033)

## [3.13.42] - 2026-05-01

### Fixed

- avoid empty gh_create_pr origin label arg (#22043)

## [3.13.41] - 2026-05-01

### Changed

- Version bump and maintenance updates

## [3.13.40] - 2026-05-01

### Changed

- Maintenance: offline claim t3360..t3360 [offline]
- rollback failed release mutations (#22062)
- add maintainer-gate required-check alias (#22036)

### Fixed

- retry empty mergeable states (#22047)

## [3.13.39] - 2026-05-01

### Changed

- Maintenance: mark t3226 complete (pr:#22046 completed:2026-05-01) [skip ci]

## [3.13.38] - 2026-05-01

### Changed

- Maintenance: decompose parent task GH#21901 (#22061)
- Maintenance: sync ref:GH#22045 to TODO.md [skip ci]

### Fixed

- bound optional CodeRabbit pre-push review (#22044)

## [3.13.37] - 2026-05-01

### Changed

- Maintenance: record follow-up tasks for PR 21876 investigation (#22053)
- add memory truth-maintenance workflow (#22051)

## [3.13.36] - 2026-05-01

### Changed

- Maintenance: mark t3241 complete (pr:#22040 completed:2026-05-01) [skip ci]

### Fixed

- warn when pulse credentials lack Anthropic key (#22046)

## [3.13.35] - 2026-05-01

### Changed

- tolerate array pulse_hours in pulse iterators (#22042)
- Maintenance: sync ref:GH#22039 to TODO.md [skip ci]

## [3.13.34] - 2026-05-01

### Fixed

- keep dedup dry-run count machine-readable (#22040)

## [3.13.33] - 2026-05-01

### Changed

- skip node validators for shell-only commits (#22032)

## [3.13.32] - 2026-05-01

### Changed

- Version bump and maintenance updates

## [3.13.31] - 2026-05-01

### Changed

- omit GPT-5.5 sonnet worker variant (#22031)
- Maintenance: mark t3247 complete (pr:#22019 completed:2026-05-01) [skip ci]
- restore OpenAI headless worker recovery (#22019)

## [3.13.30] - 2026-05-01

### Changed

- Maintenance: mark t3217 complete (pr:#22029 completed:2026-05-01) [skip ci]
- fix orphan recovery existing PR probe (#22029)
- Maintenance: mark t3246 complete (pr:#22013 completed:2026-05-01) [skip ci]
- Maintenance: mark t3220 complete (pr:#22020 completed:2026-05-01) [skip ci]

## [3.13.29] - 2026-05-01

### Changed

- Maintenance: sync ref:GH#22022 to TODO.md [skip ci]
- add prompt-to-hook migration loop (#22013)
- Maintenance: mark t3251 complete (pr:#22018 completed:2026-05-01) [skip ci]
- fast-fail worker dispatch before expensive startup (#22018)
- Maintenance: mark t3242 complete (pr:#22006 completed:2026-05-01) [skip ci]
- tighten AGENTS progressive disclosure and routing references (#22006)
- Maintenance: sync ref:GH#22017 to TODO.md [skip ci]

### Fixed

- block unsafe pre-edit target paths (#22020)
- stream worker activity metrics aggregation (#22021)

## [3.13.28] - 2026-05-01

### Changed

- Maintenance: mark t3234 complete (pr:#22015 completed:2026-05-01) [skip ci]
- Maintenance: sync ref:GH#22016 to TODO.md [skip ci]
- Maintenance: sync ref:GH#22014 to TODO.md [skip ci]
- Maintenance: sync ref:GH#22012 to TODO.md [skip ci]
- Maintenance: sync ref:GH#22012 to TODO.md [skip ci]
- Maintenance: sync ref:GH#22011 to TODO.md [skip ci]

## [3.13.27] - 2026-05-01

### Changed

- Maintenance: mark t3245 complete (pr:#22010 completed:2026-05-01) [skip ci]
- Enforce brief workflow in issue creation harness (#22010)

## [3.13.26] - 2026-05-01

### Changed

- Maintenance: sync ref:GH#22009 to TODO.md [skip ci]
- Maintenance: sync ref:GH#22008 to TODO.md [skip ci]
- Maintenance: mark t3233 complete (pr:#22005 completed:2026-05-01) [skip ci]
- make model override labels availability-aware (#22005)

## [3.13.25] - 2026-05-01

### Fixed

- harden JSON version updates (#22002)

## [3.13.24] - 2026-05-01

### Changed

- Maintenance: sync ref:GH#21994 to TODO.md [skip ci]
- Maintenance: mark t3237 complete (pr:#22000 completed:2026-05-01) [skip ci]
- standardize session title prefixes (#22000)

## [3.13.23] - 2026-05-01

### Changed

- Maintenance: sync ref:GH#22001 to TODO.md [skip ci]
- Maintenance: sync ref:GH#21999 to TODO.md [skip ci]
- Maintenance: sync ref:GH#21997 to TODO.md [skip ci]
- Maintenance: sync ref:GH#21996 to TODO.md [skip ci]
- Maintenance: sync ref:GH#21995 to TODO.md [skip ci]
- Maintenance: sync ref:GH#21994 to TODO.md [skip ci]
- Maintenance: mark t3232 complete (pr:#21992 completed:2026-04-30) [skip ci]
- fix OpenCode DB archive schema drift (#21992)
- Maintenance: sync ref:GH#21981 to TODO.md [skip ci]

## [3.13.22] - 2026-05-01

### Changed

- Maintenance: mark t3228 complete (pr:#21986 completed:2026-04-30) [skip ci]
- Maintenance: mark t3210 complete (pr:#21937 completed:2026-04-30) [skip ci]
- refactor conflict-pattern classifier below function-complexity gate (#21986)
- pre-canary system overload check (root cause #21919 + sibling trips) (#21937)
- Maintenance: sync ref:GH#21990 to TODO.md [skip ci]
- Maintenance: sync ref:GH#21988 to TODO.md [skip ci]
- Maintenance: sync ref:GH#21987 to TODO.md [skip ci]
- Maintenance: sync ref:GH#21985 to TODO.md [skip ci]

## [3.13.21] - 2026-05-01

### Changed

- Maintenance: sync ref:GH#21984 to TODO.md [skip ci]
- Maintenance: sync ref:GH#21983 to TODO.md [skip ci]

## [3.13.20] - 2026-05-01

### Changed

- Maintenance: mark t3208 complete (pr:#21979 completed:2026-04-30) [skip ci]
- file investigation task on circuit-breaker trips (#21979)
- Maintenance: sync ref:GH#21981 to TODO.md [skip ci]

### Fixed

- drop awk END block emitting empty 'with:' at EOF (#21980)
- add SSH fallback for claim task counter pushes (#21982)

## [3.13.19] - 2026-04-30

### Added

- classify add/add conflicts as ADD_ADD_NEW_FILE for pattern-aware brief (#21976)

### Changed

- detect runner-only drift in CURRENT/CALLER workflows (#21977)
- Maintenance: mark t3088 complete (pr:#21914 completed:2026-04-30) [skip ci]
- eliminate dual origin label on worker-dispatched PRs (Resolves #21862) (#21914)
- ci-feedback workers prioritize format/lint auto-fix before generic re-implementation (#21978)
- Maintenance: mark t3199 complete (pr:#21976 completed:2026-04-30) [skip ci]
- Maintenance: sync ref:GH#21973 to TODO.md [skip ci]
- Maintenance: sync ref:GH#21972 to TODO.md [skip ci]
- repo-aware pre-push verify hook auto-runs project format/lint/typecheck (#21971)
- Maintenance: mark t3222 complete (pr:#21969 completed:2026-04-30) [skip ci]
- detector summary distinguishes classified vs LLM-skipped (#21970)
- harness rule — productivity questions are current-state queries (#21969)
- Maintenance: sync ref:GH#21968 to TODO.md [skip ci]
- Maintenance: sync ref:GH#21967 to TODO.md [skip ci]
- Maintenance: sync ref:GH#21966 to TODO.md [skip ci]
- Maintenance: sync ref:GH#21965 to TODO.md [skip ci]
- Maintenance: mark t3211 complete (pr:#21959 completed:2026-04-30) [skip ci]
- detect & escalate Actions runner queue saturation in stuck-merge detector (#21959)
- shared proxy-lifecycle helper for cursor + google + claude (#21962)
- Maintenance: sync ref:GH#21964 to TODO.md [skip ci]

### Fixed

- allowlist .aidevops.json and .gitattributes in pre-commit-hook (#21974)
- drop invalid --cwd flag from claude CLI invocation (GH#21886) (#21975)

## [3.13.18] - 2026-04-30

### Added

- classify add/add conflicts as ADD_ADD_NEW_FILE for pattern-aware brief (#21976)

### Changed

- detect runner-only drift in CURRENT/CALLER workflows (#21977)
- Maintenance: mark t3088 complete (pr:#21914 completed:2026-04-30) [skip ci]
- eliminate dual origin label on worker-dispatched PRs (Resolves #21862) (#21914)
- ci-feedback workers prioritize format/lint auto-fix before generic re-implementation (#21978)
- Maintenance: mark t3199 complete (pr:#21976 completed:2026-04-30) [skip ci]
- Maintenance: sync ref:GH#21973 to TODO.md [skip ci]
- Maintenance: sync ref:GH#21972 to TODO.md [skip ci]
- repo-aware pre-push verify hook auto-runs project format/lint/typecheck (#21971)
- Maintenance: mark t3222 complete (pr:#21969 completed:2026-04-30) [skip ci]
- detector summary distinguishes classified vs LLM-skipped (#21970)
- harness rule — productivity questions are current-state queries (#21969)
- Maintenance: sync ref:GH#21968 to TODO.md [skip ci]
- Maintenance: sync ref:GH#21967 to TODO.md [skip ci]
- Maintenance: sync ref:GH#21966 to TODO.md [skip ci]
- Maintenance: sync ref:GH#21965 to TODO.md [skip ci]
- Maintenance: mark t3211 complete (pr:#21959 completed:2026-04-30) [skip ci]
- detect & escalate Actions runner queue saturation in stuck-merge detector (#21959)
- shared proxy-lifecycle helper for cursor + google + claude (#21962)
- Maintenance: sync ref:GH#21964 to TODO.md [skip ci]

### Fixed

- allowlist .aidevops.json and .gitattributes in pre-commit-hook (#21974)
- drop invalid --cwd flag from claude CLI invocation (GH#21886) (#21975)

## [3.13.17] - 2026-04-30

### Added

- t3193 stuck-merge detector + zero-progress circuit breaker (#21915)

### Changed

- Maintenance: add TODO entry for t3220 (ref:GH#21963) [skip ci]
- Maintenance: sync ref:GH#21963 to TODO.md [skip ci]
- Maintenance: mark t3206 complete (pr:#21955 completed:2026-04-30) [skip ci]
- Tests: align harness with t3209 fix and add intra-branch reversal coverage (t3206) (#21955)
- Maintenance: mark t3215 complete (pr:#21956 completed:2026-04-30) [skip ci]
- Maintenance: sync ref:GH#21961 to TODO.md [skip ci]
- add worker-activity-helper.sh canonical-source summary (#21956)
- Maintenance: sync ref:GH#21960 to TODO.md [skip ci]
- Maintenance: sync ref:GH#21958 to TODO.md [skip ci]
- Maintenance: mark t3204 complete (pr:#21918 completed:2026-04-30) [skip ci]
- Maintenance: mark t3200 complete (pr:#21938 completed:2026-04-30) [skip ci]
- Maintenance: mark t3196 complete (pr:#21939 completed:2026-04-30) [skip ci]
- detect shallow clone before rebase to avoid add/add conflict cascade (#21938)
- stale-stamp-aware takeover for DIRTY origin:interactive PRs (#21939)
- Maintenance: mark t3209 complete (pr:#21940 completed:2026-04-30) [skip ci]
- fix pulse-unbound-var-check.yml diff-scoping double-counts replaced lines (#21940)
- Unify REST fallback function namespace to _rest_* (#21946)
- Maintenance: mark t3213 complete (pr:#21950 completed:2026-04-30) [skip ci]
- lazy-start Claude CLI proxy + skip in headless + EADDRINUSE adopt (#21951)
- Maintenance: sync ref:GH#21952 to TODO.md [skip ci]
- Maintenance: sync ref:GH#21949 to TODO.md [skip ci]
- Maintenance: mark t3194 complete (pr:#21941 completed:2026-04-30) [skip ci]
- cross-runner peer quarantine helper (#21941)
- Maintenance: sync ref:GH#21948 to TODO.md [skip ci]
- Maintenance: sync ref:GH#21947 to TODO.md [skip ci]
- Maintenance: mark t3193 complete (pr:#21915 completed:2026-04-30) [skip ci]
- Maintenance: sync ref:GH#21944 to TODO.md [skip ci]
- Maintenance: mark t3198 complete (pr:#21908 completed:2026-04-30) [skip ci]
- Maintenance: sync ref:GH#21942 to TODO.md [skip ci]
- add pulse-runner-health-helper diagnose subcommand (#21908)
- Maintenance: mark t3207 complete (pr:#21932 completed:2026-04-30) [skip ci]

### Fixed

- restore signature footer on auto-close path (t3204) (#21918)
- switch check-pr concurrency to cancel-in-progress: true
- extend WORKER_PROCESS_PATTERN with bash for test bash-runner liveness (#21932)

## [3.13.16] - 2026-04-30

### Changed

- pulse: filter sidecar plists from main-pulse PILE-UP threshold (#21917)
- Maintenance: sync ref:GH#21923 to TODO.md [skip ci]
- Maintenance: sync ref:GH#21921 to TODO.md [skip ci]

### Fixed

- default auto-release ON for AI agent interactive sessions (t3205) (#21920)

## [3.13.15] - 2026-04-30

### Changed

- status: threshold-based PILE-UP detection (#21911)
- Maintenance: sync ref:GH#21913 to TODO.md [skip ci]
- Maintenance: mark t3202 complete (pr:#21909 completed:2026-04-30) [skip ci]
- Maintenance: sync ref:GH#21910 to TODO.md [skip ci]
- Maintenance: mark t3197 complete (pr:#21907 completed:2026-04-30) [skip ci]
- add per-issue dispatch cooldown after no-worker-process launch failures (#21907)

### Fixed

- make _update_json_version_field race-resistant (#21909)

## [3.13.14] - 2026-04-30

### Added

- t3192 stuck auto_merge fallback to --admin direct merge (#21906)

### Changed

- Maintenance: mark t3192 complete (pr:#21906 completed:2026-04-30) [skip ci]
- Maintenance: sync ref:GH#21905 to TODO.md [skip ci]
- Maintenance: mark t3195 complete (pr:#21902 completed:2026-04-30) [skip ci]
- fix worker output classification using --head not --search (#21902)

## [3.13.13] - 2026-04-30

### Changed

- Maintenance: update simplification state registry
- Maintenance: mark t3086 complete (pr:#21898 completed:2026-04-30) [skip ci]
- Maintenance: sync ref:GH#21901 to TODO.md [skip ci]
- Maintenance: sync ref:GH#21900 to TODO.md [skip ci]
- Maintenance: sync ref:GH#21895 to TODO.md [skip ci]
- Maintenance: sync ref:GH#21889 to TODO.md [skip ci]
- Maintenance: sync ref:GH#21888 to TODO.md [skip ci]
- add configurable runner label to reusable workflows via repos.json (#21879)
- Maintenance: mark t3090 complete (pr:#21884 completed:2026-04-30) [skip ci]
- fix 4 pre-existing test failures in test-pulse-wrapper-worker-count.sh
- Maintenance: offline claim t3191..t3191 [offline]

### Fixed

- parent-side lifecycle observer emits worker_exited for detached workers (#21885)

## [3.13.12] - 2026-04-30

### Added

- t3063 extend crypto-approval bypass to deterministic merge cascade (#21827)

### Changed

- Maintenance: mark t3077 complete (pr:#21878 completed:2026-04-30) [skip ci]
- LLM-driven fix-the-fixer detector + worker observability (#21878)
- Maintenance: sync ref:GH#21873 to TODO.md [skip ci]
- Maintenance: mark t3084 complete (pr:#21872 completed:2026-04-30) [skip ci]
- Maintenance: mark t3089 complete (pr:#21869 completed:2026-04-30) [skip ci]
- route progress/idle-resume markers from PULSE_WATCHDOG_LOG to LIFECYCLE_LOG (#21869)
- Maintenance: mark t3071 complete (pr:#21867 completed:2026-04-30) [skip ci]
- Maintenance: mark t3015 complete (pr:#21871 completed:2026-04-30) [skip ci]
- codify watchdog self-write anti-pattern in shell style guide (#21867)
- rename dispatch_floor / dispatch_max + back-compat env aliases (#21871)
- Maintenance: mark t3076 complete (pr:#21863 completed:2026-04-30) [skip ci]
- auto-file root-cause meta-issues on circuit-breaker trips (#21863)
- Maintenance: sync ref:GH#21868 to TODO.md [skip ci]
- Instrument all gh shim exec paths for full GraphQL budget visibility (#21866)
- Add multi-account gopass secret template for Meta Ads CLI
- Maintenance: mark t3085 complete (pr:#21864 completed:2026-04-30) [skip ci]
- init pre-existing local-var declarations in pulse-wrapper.sh + bootstrap (#21864)
- Maintenance: mark t3080 complete (pr:#21859 completed:2026-04-30) [skip ci]
- cross-link meta-ads-tooling-cli.md from ABO and metrics docs (#21859)
- Maintenance: mark t3075 complete (pr:#21835 completed:2026-04-30) [skip ci]
- Maintenance: mark t3074 complete (pr:#21834 completed:2026-04-30) [skip ci]
- Maintenance: sync ref:GH#21844 to TODO.md [skip ci]
- Maintenance: mark t3078 complete (pr:#21845 completed:2026-04-30) [skip ci]
- claim-task-id dedup searches open issues in addition to PRs (#21835)
- fix duplicate Code Audit Routines dashboard issues — fail-closed dedup + title-prefix fallback + self-healing sweep (#21834)
- add Meta Ads CLI tooling doc to meta-ads agent (#21845)
- Maintenance: mark t3081 complete (pr:#21851 completed:2026-04-30) [skip ci]
- fix: worker exit classifier propagates SIGTERM/zero-session via wait_status sentinel + NMR escalation (#21825)
- document multi-account naming convention for secrets (#21851)
- Maintenance: mark t3068 complete (pr:#21854 completed:2026-04-30) [skip ci]
- kick pulse-merge after sudo aidevops approve (#21854)
- Maintenance: mark t3067 complete (pr:#21833 completed:2026-04-30) [skip ci]
- Maintenance: mark t3082 complete (pr:#21852 completed:2026-04-30) [skip ci]
- skip status:available on closed issues in release command (#21833)
- Maintenance: sync ref:GH#21855 to TODO.md [skip ci]
- Maintenance: sync ref:GH#21853 to TODO.md [skip ci]
- guard PyYAML import; fix BSD sed non-greedy regex in localdev/loop helpers (#21839)
- Maintenance: sync ref:GH#21849 to TODO.md [skip ci]
- add image size guard to prevent session-crashing 5MB uploads
- Maintenance: sync ref:GH#21841 to TODO.md [skip ci]
- Maintenance: sync ref:GH#21840 to TODO.md [skip ci]
- Maintenance: mark t3072 complete (pr:#21829 completed:2026-04-30) [skip ci]
- split headless-runtime-helper.sh into focused sub-modules
- runtime-health-audit routine surfaces operational regressions in interactive sessions
- Maintenance: sync ref:GH#21831 to TODO.md [skip ci]
- Maintenance: sync ref:GH#21830 to TODO.md [skip ci]
- Maintenance: mark t3050 complete (pr:#21816 completed:2026-04-30) [skip ci]
- skip consolidation when parent already resolved (#21816)
- Maintenance: mark t3073 complete (pr:#21823 completed:2026-04-29) [skip ci]
- restore +x on worktree-helper.sh orchestrator (#21823)
- enforce canonical-workspace protection for Edit|Write across all default-branch names (#21824)

### Fixed

- use merge-base for pulse-unbound-var-check diff extraction (#21872)
- route informational writes away from monitored LOGFILE (#21850)
- bash 3.2 heredoc apostrophe in counter-trend-delta.sh (#21852)

## [3.13.11] - 2026-04-30

### Added

- add stat portability CI gate (GH#21746) (#21777)
- add runaway-log self-healing detector (GH#21756) (#21766)
- split headless-runtime-helper.sh into focused sub-modules (#21728)
- add portable-stat.sh with capability detection, wire into shared-constants.sh (#21642)
- webhook-driven pulse-merge for sub-30s latency (t3038) (#21657)
- split code-audit-helper.sh into orchestrator + 3 sub-libraries (#21722)
- split email-agent-helper.sh into focused sub-modules (#21725)
- split site-crawler-helper.sh into orchestrator + 3 sub-libraries (#21719)
- t3043 per-sub-stage timing + parallel API calls in dedup_check (#21662)
- extend gh PATH shim with GraphQL→REST read routing (t3037) (#21648)
- split keyword-research-helper.sh into orchestrator + 3 sub-libraries (#21684)
- split ip-reputation-helper.sh into orchestrator + 4 sub-libraries (#21688)
- extend worktree exclusions to Linux indexers (tracker3, baloo) (#21702)
- t2916 honor interactive-session claim stamps in worktree sweep (GH#21074) (#21705)
- add _resolve_log_dir to shared-constants.sh, replace hardcoded log paths in runners (#21701)
- split memory-embeddings-helper.sh into orchestrator + 2 sub-libraries (#21686)

### Changed

- Maintenance: sync ref:GH#21820 to TODO.md [skip ci]
- split pulse-dispatch-engine.sh into orchestrator + sub-libraries (recovery) (#21815)
- split worktree-helper.sh into focused sub-modules (#21741)
- Maintenance: mark t3070 complete (pr:#21812 completed:2026-04-29) [skip ci]
- Native GitHub auto-merge fast-track for sub-30s green-to-merged latency (#21812)
- Maintenance: sync ref:GH#21811 to TODO.md [skip ci]
- Maintenance: mark t3064 complete (pr:#21800 completed:2026-04-29) [skip ci]
- Maintenance: mark t3065 complete (pr:#21802 completed:2026-04-29) [skip ci]
- Maintenance: mark t3062 complete (pr:#21804 completed:2026-04-29) [skip ci]
- add trusted-issue-author allowlist to bypass t2449 gate for peer-runner-filed issues (#21804)
- Maintenance: sync ref:GH#21807 to TODO.md [skip ci]
- Maintenance: mark t3059 complete (pr:#21796 testing:runtime-verified)
- walk full process-tree (BFS) in _watchdog_tree_cpu (#21796)
- Maintenance: add TODO entries for t3066/t3068/t3069 (lost to t3069 bug) (#21808)
- Maintenance: mark t3060 complete (pr:#21794 completed:2026-04-29) [skip ci]
- enum-prefix kill_reason for deterministic classification (#21794)
- Maintenance: mark t3063 complete (pr:#21795 completed:2026-04-29) [skip ci]
- Maintenance: sync ref:GH#21801 to TODO.md [skip ci]
- add kill_reason field to worker_exited lifecycle line (#21795)
- Maintenance: mark t3058 complete (pr:#21797 testing:runtime-verified)
- Maintenance: sync ref:GH#21798 to TODO.md [skip ci]
- Maintenance: mark t3052 complete (pr:#21767 completed:2026-04-29) [skip ci]
- extend t2449 worker-briefed auto-merge gate to honor cryptographic approval as OWNER/MEMBER bypass (#21767)
- fix jq ARG_MAX overflow — pass checks_json via stdin instead of --argjson (#21778)
- Maintenance: mark t3057 complete (pr:#21792 completed:2026-04-29) [skip ci]
- replace lifetime-avg CPU with interval-sampled delta in _watchdog_tree_cpu (#21792)
- Maintenance: sync ref:GH#21789 to TODO.md [skip ci]
- Maintenance: sync ref:GH#21787 to TODO.md [skip ci]
- Maintenance: sync ref:GH#21786 to TODO.md [skip ci]
- Maintenance: sync ref:GH#21785 to TODO.md [skip ci]
- Maintenance: sync ref:GH#21781 to TODO.md [skip ci]
- fix(pulse): stop OpenCode JSON event stream from contaminating pulse.log (#21780)
- Maintenance: mark t3046 complete (pr:#21777 completed:2026-04-29) [skip ci]
- Maintenance: mark t3044 complete (pr:#21775 completed:2026-04-29) [skip ci]
- add server-side issue dedup to issue-sync-reusable.yml (#21775)
- Maintenance: mark t3049 complete (pr:#21768 completed:2026-04-29) [skip ci]
- Maintenance: mark t3054 complete (pr:#21769 completed:2026-04-29) [skip ci]
- auto-notify stale-recovery NMR when subsequent worker produces approved PR (#21768)
- clean up stale stat comments, add pre-commit gate for raw stat usage (#21759)
- Maintenance: sync ref:GH#21763 to TODO.md [skip ci]
- Maintenance: sync ref:GH#21762 to TODO.md [skip ci]
- Maintenance: sync ref:GH#21761 to TODO.md [skip ci]
- Maintenance: sync ref:GH#21755 to TODO.md [skip ci]
- portable-stat: add _stat_batch, refactor wrappers, fix generate-skills.sh Linux crash (#21743)
- surface workflow template drift on aidevops update (#21749)
- Maintenance: sync ref:GH#21754 to TODO.md [skip ci]
- Maintenance: sync ref:GH#21753 to TODO.md [skip ci]
- Maintenance: sync ref:GH#21752 to TODO.md [skip ci]
- Maintenance: sync ref:GH#21748 to TODO.md [skip ci]
- Maintenance: sync ref:GH#21747 to TODO.md [skip ci]
- Maintenance: sync ref:GH#21746 to TODO.md [skip ci]
- Maintenance: sync ref:GH#21745 to TODO.md [skip ci]
- Maintenance: sync ref:GH#21744 to TODO.md [skip ci]
- Maintenance: mark t2982 complete (pr:#21727 completed:2026-04-29) [skip ci]
- fix worker output classification to follow worker (Mode B/C) (#21727)
- Maintenance: mark t3038 complete (pr:#21657 completed:2026-04-29) [skip ci]
- Refactor: split generate-opencode-commands.sh into orchestrator + 6 sub-libraries (#21721)
- Refactor: split test-encryption-git-roundtrip.sh into orchestrator + 4 sub-libraries (#21724)
- Refactor: split self-evolution-helper.sh into 6 focused sub-modules (#21726)
- harden anti-detect helpers against code injection (#21720)
- reconcile pulse lock-file paths, improve subshell filter and status message (#21661)
- Maintenance: mark t2880 complete (pr:#21664 completed:2026-04-29) [skip ci]
- feat(setup-debt): detect cross-account secrets:inherit in issue-sync.yml (#21664)
- harden knowledge search find pipelines under pipefail (#21706)
- Refactor: split pulse-issue-reconcile.sh into focused sub-modules (1718->1162 lines) (#21710)
- Maintenance: mark t3041 complete (pr:#21711 completed:2026-04-29) [skip ci]
- add timeout ceiling to pulse-merge-routine (Bug 3 of GH#21616) (#21711)
- pulse: split merge pass into dedicated 60s launchd plist via --merge-only (#21712)
- Refactor: split stats-health-dashboard.sh into orchestrator + 2 sub-libraries (#21713)
- Maintenance: mark t3022 complete (pr:#21715 completed:2026-04-29) [skip ci]
- cap concurrent opus-4-6 dispatches to prevent rate-limit cascade (#21715)
- Maintenance: mark t3037 complete (pr:#21648 completed:2026-04-29) [skip ci]
- Maintenance: mark t3039 complete (pr:#21655 completed:2026-04-29) [skip ci]
- REST-aware issue creation in claim-task-id.sh and issue-sync-helper-push.sh (#21655)
- Maintenance: mark t3030 complete (pr:#21663 completed:2026-04-29) [skip ci]
- fix 7 pulse-merge regression tests broken by sub-module split (#21663)
- consistent commit-body style in sync-workflows-helper (#21691)
- fix source_pdf fallback for empty strings and content_hash for headingless docs (#21693)
- pre-compute _canon_norm once per workflow type in _process_rows (#21694)
- fix blocked-by:GH#NNN regex, treat failed auto-create as validation error (#21695)
- Maintenance: mark t2993 complete (pr:#21703 completed:2026-04-29) [skip ci]
- fix(task-id-guard): word-boundary regex to avoid false positives on subagent names like context7 (#21703)
- Maintenance: mark t2916 complete (pr:#21705 completed:2026-04-29) [skip ci]
- add stale-UU recovery branch to pulse-canonical-recovery (#21704)
- Performance: use bash parameter expansion instead of tr in _dt_json_field numeric path (#21698)
- Maintenance: mark t2917 complete (pr:#21701 completed:2026-04-29) [skip ci]
- replace inline stat -f/-c patterns with portable functions across 58 scripts (#21689)
- fix(claim-task-id): update fallback to (no title), remove dead LONG_DESC
- split document-creation-helper.sh into focused sub-modules (#21683)
- split gh-signature-helper.sh into focused sub-modules (#21687)
- fix conversation-helper review followup — JSON empty guard, query elim, sed combine (#21678)
- Refactor: split auto-update-helper.sh into focused sub-modules (#21685)
- Refactor: split browser-qa-helper.sh (1600 lines) into orchestrator + 3 sub-libraries (#21682)
- replace timeout with timeout_sec in pulse canary check (#21673)
- use project cleanup pattern for mktemp in transport_matrix_send (#21676)
- Refactor: split email-health-check-helper.sh into orchestrator + 3 sub-libraries (#21681)
- harden campaign-helper.sh per gemini review feedback (#21675)
- fix review-bot-gate commit status posting to restore branch protection contract (#21674)
- feat: per-worktree preview subdomains via local proxy (#21666)

### Fixed

- skill freshness writes to canonical AGENTS_DIR, not cwd; pass --name on update; fix systemd WorkingDirectory (#21696)
- GH#21717 normalize issue state to uppercase before dispatch check (#21718)
- add sleep guard and stale-PID purge to _dff_dispatch_loop_parallel wait -n loop (#21764)
- extract issue num via URL pattern, immune to stderr log lines (GH#21770) (#21771)
- use gh_issue_edit_safe in remaining hot-path body updates (GH#21798) (#21800)
- use gh_issue_edit_safe for body updates (#21733)
- t3058: route worker stall defer marker to LIFECYCLE_LOG (not OUTPUT_FILE) (#21797)
- remove redundant group timeout from preflight_early_dispatch (t3054) (#21769)
- use _resolve_worktree_owner_pid in is_worktree_owned_by_others (#21772)
- skip sudo-requiring tool updates with manual instructions (GH#21734) (#21773)
- add is_registered_canonical guard + audit log on ephemeral worktree cleanup (#21716)
- replace jq-in-loop with single jq --slurp pass in _collect_excerpts_via_search (#21739)
- source portable-stat.sh before pre-jitter fast-fail in pulse-wrapper.sh (#21732)
- strip tNNN: prefix in TODO line to prevent doubling (GH#21723) (#21731)
- relax brew category gate so brew-origin tools check on Linux (#21709)
- address gemini review feedback on upstream-watch-helper-issues.sh (#21667)
- wrap script_path in escaped double quotes in systemd ExecStart for space-safe paths (#21672)
- apply optional operator to nested jq fields in gh-status-helper (#21690)
- guard NextElapse grep against systemd 255 rename (#21700)
- guard log_worktree_removal_event stub with command -v check (#21677)
- campaign-asset-helper.sh jq robustness and asset_id uniqueness (#21680)

## [3.13.10] - 2026-04-29

### Changed

- Maintenance: mark t3043 complete (pr:#21660 completed:2026-04-29) [skip ci]
- raise per-candidate timeout floor 360s -> 600s (#21660)
- Maintenance: sync ref:GH#21658 to TODO.md [skip ci]
- Maintenance: sync ref:GH#21656 to TODO.md [skip ci]
- fix pulse-merge-routine bootstrap (Bug 1+2) (#21643)
- Refactor: split issue-sync-helper.sh (1839 lines) into orchestrator + 5 sub-modules (#21639)

## [3.13.9] - 2026-04-29

### Added

- orphan worker reaper for workers whose parent pulse died (#21624)

### Changed

- Maintenance: mark t3040 complete (pr:#21638 completed:2026-04-29) [skip ci]
- drop t2955 already-committed cache from dispatch hot path (#21638)
- Maintenance: sync ref:GH#21629 to TODO.md [skip ci]
- add screenshot-import-helper.sh for macOS U+202F filename bug
- Maintenance: mark t3033 complete (pr:#21619 completed:2026-04-29) [skip ci]
- pulse-wrapper self-respawn on source mtime change (#21619)
- Maintenance: mark t3034 complete (pr:#21620 completed:2026-04-29) [skip ci]
- add per-stage ceremony timing instrumentation for dispatch pipeline (#21620)
- Maintenance: mark t3013 complete (pr:#21612 completed:2026-04-29) [skip ci]
- Maintenance: mark t3031 complete (pr:#21610 completed:2026-04-29) [skip ci]
- fix _pulse_pids false positive — filter pgrep to non-pulse-parent processes (#21612)
- seal _dff_dispatch_loop_parallel subshell stdout to fix dispatch counter (#21610)
- Maintenance: sync ref:GH#21616 to TODO.md [skip ci]
- Maintenance: mark t3032 complete (pr:#21614 completed:2026-04-29) [skip ci]
- reconcile pulse-health.json workers_active with dispatch ledger (#21614)
- Maintenance: mark t3021 complete (pr:#21615 completed:2026-04-29) [skip ci]
- detect Anthropic 429 within first 30s, exit cleanly (GH#21578) (#21615)
- Maintenance: mark t3020 complete (pr:#21613 completed:2026-04-29) [skip ci]
- add brief-filename-guard pre-commit hook to block unclaimed t-IDs in brief filenames (#21613)

### Fixed

- stat -f Linux compat in pulse-wrapper-cycle.sh (GH#21618) (#21621)

## [3.13.8] - 2026-04-29

### Added

- split full-loop-helper.sh into orchestrator + 3 sub-libraries (#21594)
- split smartlead-helper.sh into focused sub-modules (#21590)
- split security-posture-helper.sh into orchestrator + 2 sub-libraries (#21592)

### Changed

- Maintenance: update simplification state registry
- support multiple heading variants for completion section
- route gh issue view through wrapper + top-of-cycle GraphQL skip (#21606)
- Maintenance: mark t3027 complete (pr:#21596 completed:2026-04-29) [skip ci]
- idle backoff + budget-aware throttle + telemetry fixes for pulse cycle (#21596)
- Maintenance: sync ref:GH#21608 to TODO.md [skip ci]
- split generate-runtime-config.sh into focused sub-modules (#21591)
- Refactor: split pulse-merge.sh into focused sub-modules (GH#21301) (#21595)
- Refactor: split pulse-simplification.sh into focused sub-modules (GH#21306) (#21593)
- Refactor: split contest-helper.sh (1639 lines) into orchestrator + 5 sub-libraries (#21589)
- Maintenance: mark t3028 complete (pr:#21588 completed:2026-04-28) [skip ci]
- Maintenance: mark t3025 complete (pr:#21587 completed:2026-04-28) [skip ci]
- Maintenance: sync ref:GH#21586 to TODO.md [skip ci]
- Maintenance: sync ref:GH#21583 to TODO.md [skip ci]
- Maintenance: sync ref:GH#21581 to TODO.md [skip ci]
- Maintenance: sync ref:GH#21580 to TODO.md [skip ci]
- Maintenance: sync ref:GH#21579 to TODO.md [skip ci]
- Maintenance: sync ref:GH#21578 to TODO.md [skip ci]
- Maintenance: mark t2830 complete (pr:#21577 completed:2026-04-28) [skip ci]
- pulse: L1 events-ETag tickle layer above batch prefetch (#21577)
- Maintenance: sync ref:GH#21576 to TODO.md [skip ci]
- Maintenance: sync ref:GH#21575 to TODO.md [skip ci]

### Fixed

- guard jq startswith() against null inputs (t3025) (#21597)
- repoint approve_collaborator_pr extract to pulse-merge-gates.sh (#21609)
- make SCRIPT_DIR resolution unconditional in schedulers.sh (#21588)
- floor per-candidate fill_floor timeout at 360s to unblock dispatch (#21585)

## [3.13.7] - 2026-04-28

### Added

- split add-skill-helper.sh into orchestrator + 3 sub-libraries (#21565)
- split memory/maintenance.sh into focused sub-modules (GH#21332) (#21564)
- split stats-quality-sweep.sh into focused sub-modules (#21562)

### Changed

- Maintenance: mark t3018 complete (pr:#21572 completed:2026-04-28) [skip ci]
- self-heal stale rate-limit stamp when no live pulse lock holder (#21572)
- split contributor-activity-helper.sh into focused sub-modules (#21574)
- split shared-gh-wrappers.sh into focused sub-modules (#21561)
- Maintenance: mark t3017 complete (pr:#21569 completed:2026-04-28) [skip ci]
- add aidevops circuit-breaker CLI subcommand (#21569)
- Maintenance: sync ref:GH#21570 to TODO.md [skip ci]
- Maintenance: sync ref:GH#21567 to TODO.md [skip ci]
- Maintenance: mark t3014 complete (pr:#21554 completed:2026-04-28) [skip ci]
- default fill-floor parallelism to effective_slots (#21554)
- Refactor: split pulse-triage.sh into orchestrator + 3 sub-libraries (#21558)
- Refactor: split interactive-session-helper.sh into orchestrator + 4 sub-libraries (GH#21320) (#21559)
- Maintenance: sync ref:GH#21557 to TODO.md [skip ci]
- Maintenance: sync ref:GH#21555 to TODO.md [skip ci]
- split pulse-wrapper.sh into bootstrap+cycle sub-libraries (#21553)
- Refactor: split issue-sync-lib.sh (1645 lines) into orchestrator + 3 sub-modules (#21552)
- Maintenance: sync ref:GH#21551 to TODO.md [skip ci]
- Maintenance: mark t3012 complete (pr:#21550 completed:2026-04-28) [skip ci]
- fix bash 3.2 violations in compare-models-scoring-lib + document-creation-helper (#21550)
- Maintenance: sync ref:GH#21549 to TODO.md [skip ci]
- Maintenance: sync ref:GH#21540 to TODO.md [skip ci]

### Fixed

- evaluate source check at top-level + seed canary test config (#21566)
- correct t2980 typo to t2983 in fatal error message (#21548)
- GH#21505 clear _VALIDATE_OC_VERSION on early return, reuse cached version in canary failure path (#21545)

## [3.13.6] - 2026-04-28

### Added

- split mail-helper.sh into orchestrator + 3 sub-libraries (#21529)
- t2965 _campaigns/ P4 — asset binary integration (30MB routing + thumbnail previews) (#21523)

### Changed

- Refactor: split upstream-watch-helper.sh into focused sub-modules (#21530)
- Refactor: split anti-detect-helper.sh into focused sub-modules (#21528)
- Performance: batch jq/grep invocations in knowledge search helpers (#21539)
- strip framework task IDs from consumer-repo commit/PR bodies in sync-workflows-helper and badges-sync-helper (#21534)
- add fallback guards for audit-worktree-removal-helper sourcing (#21532)
- split conversation-helper.sh into focused sub-modules (#21526)
- split linters-local.sh into focused sub-modules (#21527)
- Maintenance: mark t2976 complete (pr:#21521 completed:2026-04-28) [skip ci]
- document intentional scope of worktree-removal audit tests (#21521)
- Maintenance: mark t3011 complete (pr:#21524 completed:2026-04-28) [skip ci]
- fix bash 3.2 compat — convert local -n namerefs in compare-models libs (#21524)

### Fixed

- use jq optional operator .incidents[]? to handle null/missing key (#21533)
- use grep -oE in _dt_json_field to avoid greedy-prefix matching (#21538)
- drop broken TSV transport in _resolve_wf_canonical, add classifier regression tests (#21537)
- add fallback stubs before audit-worktree-removal-helper.sh source to guard set -u (#21525)
- use title not description in _ensure_todo_entry_written (#21535)
- auto-create blocked-by:tNNN labels in pre-flight validation (GH#21474) (#21536)
- pass source_pdf to build_headingless_result and simplify redundant conditional (#21531)

## [3.13.5] - 2026-04-28

### Changed

- Maintenance: mark t3003 complete (pr:#21435 completed:2026-04-28) [skip ci]
- adaptive per-candidate dispatch timeout (#21435)
- Maintenance: sync ref:GH#21434 to TODO.md [skip ci]

## [3.13.4] - 2026-04-28

### Changed

- Documentation: changelog v3.13.4 — t2999/t3000/t3001 trilogy + t2995/t2996/t2997 [skip ci]
- Maintenance: mark t3001 complete (pr:#21432 completed:2026-04-27) [skip ci]
- Maintenance: mark t3000 complete (pr:#21430 completed:2026-04-27) [skip ci]
- Maintenance: mark t2999 complete (pr:#21428 completed:2026-04-27) [skip ci]
- gh-status-helper for incident detection + recovery runbook (#21432)
- dispatch-single-issue-helper: apply pulse-parity ceremony pre-launch (#21430)
- dispatch-ledger-helper stale-lock recovery (#21428)
- Maintenance: sync ref:GH#21433 to TODO.md [skip ci]
- Maintenance: sync ref:GH#21431 to TODO.md [skip ci]
- Maintenance: sync ref:GH#21429 to TODO.md [skip ci]
- Maintenance: sync ref:GH#21427 to TODO.md [skip ci]
- Maintenance: mark t2996 complete (pr:#21410 completed:2026-04-27) [skip ci]
- perf: t2996 reduce dispatch_with_dedup gh-call count from 10-15 to 1-3 (#21410)
- Maintenance: mark t2997 complete (pr:#21421 completed:2026-04-27) [skip ci]
- fix BSD-incompatible mktemp templates (XXXXXX before .ext) (#21421)
- Maintenance: mark t2995 complete (pr:#21424 completed:2026-04-27) [skip ci]
- Maintenance: sync ref:GH#21408 to TODO.md [skip ci]
- Maintenance: sync ref:GH#21407 to TODO.md [skip ci]
- Maintenance: sync ref:GH#21406 to TODO.md [skip ci]

### Fixed

- distinguish file-size-debt dedup lookup-failure from no-match (#21424)

## [3.13.4] - 2026-04-27

### Fixed

- t2999 — dispatch-ledger-helper stale-lock recovery: 24-day-old lock dir was silently disabling all worker registration (`mkdir` retry loop returned rc=1 every dispatch). Replaces busy-wait with stale-detection (PID-alive + age-threshold force-reclaim, mirroring `pulse-instance-lock.sh` pattern). All workers now visible to ledger. (#21428)
- t3000 — dispatch-single-issue-helper: apply pulse-parity ceremony pre-launch. Manual workers now receive `status:in-progress` label transition (replacing `status:queued`), claim stamp via `interactive-session-helper.sh write-stamp`, and dispatch-ledger registration before the worker process starts. Closes the dispatch-double-launch race window where the pulse could spawn a duplicate worker on top of a manually-launched one. `--no-ceremony` opt-out preserved for smoke-testing. (#21430)
- t2996 — perf: reduce `dispatch_with_dedup` gh-call count from 10-15 to 1-3 by passing already-loaded metadata through downstream gates. Eliminates the t2989 30s per-candidate timeout cliff (37 timeout events / 24h pre-fix → near-zero). (#21410)
- t2997 — fix BSD-incompatible mktemp templates (`XXXXXX` placed before file extension): ~17 production callsites + new CI lint gate. macOS `mktemp` returned the literal template name on the first call, then failed `mkstemp: File exists` on subsequent calls — silently breaking `update_repo_tier_check_timestamp`, browser-qa screenshots, codacy collectors, and pulse-stats persistence. (#21421)
- t2995 — distinguish file-size-debt dedup lookup-failure from no-match. The large-file-simplification-gate scanner was creating duplicate `file-size-debt:` issues when `gh_issue_list` timed out silently and returned empty. Now treats timeout/error as "abort dedup, do not file" rather than "no match, file new". (#21424)

### Added

- t3001 — `gh-status-helper.sh` for GitHub incident detection (`check`/`incidents`/`correlate` subcommands) with 60s Statuspage cache and exit-code semantic mapping (operational/degraded/outage/unknown). New incident-recovery runbook at `.agents/reference/incident-recovery-runbook.md` cross-linking pulse-lock-recovery and t2999/t3000 procedures. Filed during recovery from a real-world GitHub search-degradation incident that exposed the dispatch-helper gaps the rest of this release fixes. (#21432)

## [3.13.3] - 2026-04-27

### Changed

- Maintenance: mark t2991 complete (pr:#21397 completed:2026-04-27) [skip ci]
- fix subagent permission.task entries (4 broken keys + missing Product allowlist) (#21397)
- Maintenance: mark t2994 complete (pr:#21405 completed:2026-04-27) [skip ci]
- move cache priming from lifecycle-helper into pulse-wrapper main (#21405)
- Maintenance: sync ref:GH#21404 to TODO.md [skip ci]
- Maintenance: sync ref:GH#21402 to TODO.md [skip ci]

## [3.13.2] - 2026-04-27

### Added

- t2964 — add competitive sensitivity tier + _campaigns/intel/ enforcement (#21400)

### Changed

- Maintenance: mark t2989 complete (pr:#21385 completed:2026-04-27) [skip ci]
- Maintenance: mark t2962 complete (pr:#21396 completed:2026-04-27) [skip ci]
- per-candidate timeout in dispatch_deterministic_fill_floor (#21385)
- _campaigns/ directory contract + sub-folder structure (#21396)
- Maintenance: mark t2992 complete (pr:#21398 completed:2026-04-27) [skip ci]
- pre-warm pulse caches before restart to eliminate first-cycle stage cost (#21398)
- Maintenance: mark t2964 complete (pr:#21400 completed:2026-04-27) [skip ci]
- Maintenance: mark t2963 complete (pr:#21393 completed:2026-04-27) [skip ci]
- campaign CLI P2 — new/list/status/archive + campaign-id provisioning (#21393)
- Maintenance: mark t2985 complete (pr:#21392 completed:2026-04-27) [skip ci]
- batch _action_oimp_single search per-repo to eliminate per-issue gh API calls (#21392)
- Maintenance: sync ref:GH#21394 to TODO.md [skip ci]
- Maintenance: update simplification state registry
- split pulse-issue-reconcile.sh into 3 focused files (2527→1640 lines) (#21388)
- fix reconcile_issues_single_pass budget regression (540s→360s) (#21384)
- Maintenance: sync ref:GH#21383 to TODO.md [skip ci]
- Maintenance: mark t2987 complete (pr:#21382 completed:2026-04-27) [skip ci]
- add pattern-aware conflict resolution guidance to conflict-feedback brief (#21382)
- Maintenance: file t2988 P0 — t2984 regression, dedupe t2987 entry (Ref #21380)
- Maintenance: file t2987 — pattern-aware conflict resolution guidance (Ref #21379)
- Maintenance: sync ref:GH#21379 to TODO.md [skip ci]

## [3.13.1] - 2026-04-27

### Added

- make worktree pre-creation failures observable (t2981) (#21359)
- add markdoc-extract.sh — tag-stripped text + JSON tags sidecar (t2970, GH#21258) (#21358)
- add badges CLI subcommand + init hook + cross-repo drift detection (t2975) (#21340)
- convert file-size gate from absolute count to ratchet-based (t2938) (#21346)
- t2968 Markdoc schema conformance validator + pre-commit hook + CI gate (#21350)
- Ollama chat/embed/health/privacy-check + bundle + tests (#21217)
- atomic stamp on _auto_assign_issue + parent-task skip (#21207)
- case draft agent with RAG, provenance, and cross-case firewall (#21194)
- peer-productivity-monitor — observe origin:worker claims for broken-peer detection (#21193)

### Changed

- Maintenance: mark t2986 complete (pr:#21378 completed:2026-04-27) [skip ci]
- Maintenance: mark t2986 complete (pr:#21378 completed:2026-04-27) [skip ci]
- Maintenance: sync ref:GH#21377 to TODO.md [skip ci]
- Maintenance: mark t2984 complete (pr:#21374 completed:2026-04-27) [skip ci]
- time-budget early-exit for reconcile_issues_single_pass (#21374)
- Maintenance: sync ref:GH#21375 to TODO.md [skip ci]
- Maintenance: sync ref:GH#21373 to TODO.md [skip ci]
- add canonical audit logging at every worktree-removal event (#21372)
- Maintenance: mark t2983 complete (pr:#21371 completed:2026-04-27) [skip ci]
- Fix C — resolve V6 headless contract worktree contradiction (#21371)
- tighten return type hints in email_poll.py helper functions (#21368)
- Maintenance: mark t2977 complete (pr:#21366 completed:2026-04-27) [skip ci]
- t2874 Phase 6: knowledge search tag-attribute filters + case-scoped draft RAG (#21366)
- Maintenance: mark t2981 complete (pr:#21359 completed:2026-04-27) [skip ci]
- Maintenance: mark t2974 complete (pr:#21343 completed:2026-04-27) [skip ci]
- Maintenance: mark t2972 complete (pr:#21365 completed:2026-04-27) [skip ci]
- Maintenance: mark t2970 complete (pr:#21358 completed:2026-04-27) [skip ci]
- Maintenance: mark t2851 complete (pr:#21245 completed:2026-04-27) [skip ci]
- guard nohup log redirection against unwritable path (#21236)
- add ownership guards and fixture path-shape assertions at worktree-removal call sites (#21343)
- PageIndex Phase 5 — lift Markdoc tag attributes into tree node metadata (#21365)
- Maintenance: mark t2915 complete (pr:#21292 completed:2026-04-27) [skip ci]
- decompose knowledge_index_helpers.py to reduce qlty smells to 0 (#21246)
- case dossier contract + aidevops case open (#21245)
- split schedulers.sh (2754→539 lines) into 3 focused sub-libraries (#21342)
- fix line-continuation regex bug in stage-wiring test (#21292)
- Maintenance: mark t2979 complete (pr:#21360 completed:2026-04-27) [skip ci]
- Maintenance: ratchet QLTY_SMELL_THRESHOLD 37→34 (-3) [skip ci]
- decompose email_poll.py to eliminate 4 qlty smells (#21361)
- gh comment renderer — strip/annotate Markdoc tags in PR/issue output (#21360)
- Maintenance: mark t2969 complete (pr:#21351 completed:2026-04-27) [skip ci]
- _campaigns/ P6 — performance integration + learnings promotion (#21351)
- Maintenance: mark t2971 complete (pr:#21357 completed:2026-04-27) [skip ci]
- Maintenance: mark t2980 complete (pr:#21352 completed:2026-04-27) [skip ci]
- t2874 Phase 4: source.md migration tool and backwards-compat reader (#21357)
- Maintenance: mark t2938 complete (pr:#21346 completed:2026-04-27) [skip ci]
- Maintenance: mark t2968 complete (pr:#21350 completed:2026-04-27) [skip ci]
- Maintenance: mark t2831 complete (pr:#21347 completed:2026-04-27) [skip ci]
- Maintenance: sync ref:GH#20980 to TODO.md [skip ci]
- Maintenance: mark t2879 complete (pr:#21244 completed:2026-04-27) [skip ci]
- Maintenance: mark t2839 complete (pr:#21249 completed:2026-04-27) [skip ci]
- Maintenance: mark t2837 complete (pr:#21242 completed:2026-04-27) [skip ci]
- Maintenance: mark t2907 complete (pr:#21278 completed:2026-04-27) [skip ci]
- Maintenance: mark t2854 complete (pr:#21265 completed:2026-04-27) [skip ci]
- Add watchdog hard-kill threshold to bound worker_stall_continue drain (#21271)
- Maintenance: decompose #21040 — add t2980 investigation child (Resolves #21220)
- pulse: per-repo adaptive cadence (hot/warm/cold tiers)
- decompose t2874 Markdoc tag format into 7 phase children
- Maintenance: decompose t2936 into 53 file-split children (Resolves #21156)
- docs(README): add per-repo platform setup section pointing to /setup-git (#21244)
- Maintenance: mark t2961 complete (pr:#21241 completed:2026-04-27) [skip ci]
- dispatch-issue CLI status PID liveness + model inference alignment (#21249)
- fix: validator robustness — timeout guard, git add -u, mktemp portability, detection alignment
- fix batch jq delimiter, missing input redirection, and base64 portability in reconcile_issues_single_pass (#21241)
- fix generate-runtime-config.sh stat portability and redundant hash recompute (#21237)
- Maintenance: mark t2894 complete (pr:#21243 completed:2026-04-27) [skip ci]
- document BSD awk and ratchet hazards in reference docs (#21242)
- Maintenance: decompose t2907 (#21055) into 3 child phases — add t2973/t2974/t2976 to TODO.md (For #21055, Resolves #21219) (#21278)
- add .eml/.emlx ingestion handler (kind=email) for knowledge plane
- Maintenance: add t2962-t2969 _campaigns/ phase children to TODO.md (For #20929, Resolves #20963)
- Maintenance: add t2961 to TODO.md ref:GH#21166 [skip ci]
- fix review followup for t2902 instrumentation — printf builtin, slash-guard, prefetch dedup
- enumerate all dispatch-dedup blockers in /full-loop gate
- fix: use AGENTS_DIR for pulse helper path in cmd_update
- Maintenance: mark t2947 complete (pr:#21234 completed:2026-04-27) [skip ci]
- fix observability.mjs command injection and staleness robustness
- fix orphan branch exit-code fallback in _handle_worker_branch_orphan
- reduce FAST_FAIL_AGE_OUT_SECONDS default 86400→3600 (1h)
- Maintenance: mark t2952 complete (pr:#21225 completed:2026-04-27) [skip ci]
- qlty smell threshold history entry + deferred refactor follow-up issues (#21225)
- Maintenance: mark t2853 complete (pr:#21221 completed:2026-04-27) [skip ci]
- case milestone + deadline alarming routine (P4c) (#21221)
- Maintenance: mark t2858 complete (pr:#21216 completed:2026-04-27) [skip ci]
- case chase — template-only opt-in SMTP chaser for cases (#21216)
- Maintenance: mark t2843 complete (pr:#21218 completed:2026-04-27) [skip ci]
- knowledge CLI add/list/search + platform abstraction layer (#21218)
- Maintenance: mark t2849 complete (pr:#21214 completed:2026-04-27) [skip ci]
- kind-aware enrichment + structured field extraction (#21214)
- Maintenance: mark t2848 complete (pr:#21217 completed:2026-04-27) [skip ci]
- Maintenance: mark t2949 complete (pr:#21211 completed:2026-04-27) [skip ci]
- reduce parent-task advisory nudge threshold 24h→4h with env-controlled constants (#21211)
- Maintenance: mark t2943 complete (pr:#21207 completed:2026-04-27) [skip ci]
- Maintenance: mark t2948 complete (pr:#21209 completed:2026-04-27) [skip ci]
- reduce idle interactive PR handover threshold 24h→4h (IDLE_INTERACTIVE_HANDOVER_SECONDS) (#21209)
- Maintenance: mark t2950 complete (pr:#21210 completed:2026-04-27) [skip ci]
- raise MAX_WORKERS_CAP ceiling 32→64 in pulse-wrapper-config.sh (#21210)
- Maintenance: sync GitHub issue refs to TODO.md [skip ci]
- Maintenance: mark t2955 complete (pr:#21205 completed:2026-04-27) [skip ci]
- cache _is_task_committed_to_main result via dispatch-blocked label (#21205)
- Maintenance: mark t2954 complete (pr:#21204 completed:2026-04-27) [skip ci]
- Maintenance: mark t2953 complete (pr:#21203 completed:2026-04-27) [skip ci]
- fix(_ff_with_lock): detect and clear orphan lockdirs with no owner.pid (#21203)
- Maintenance: mark t2857 complete (pr:#21194 completed:2026-04-27) [skip ci]
- Maintenance: sync ref:GH#21200 to TODO.md [skip ci]
- Maintenance: sync ref:GH#21199 to TODO.md [skip ci]
- fix settings namespace divergence: read orchestration.pulse_interval_seconds with supervisor.* fallback + schema + migration (#21196)
- Maintenance: sync ref:GH#21197 to TODO.md [skip ci]
- Maintenance: mark t2946 complete (pr:#21191 completed:2026-04-27) [skip ci]
- Maintenance: mark t2951 complete (pr:#21192 completed:2026-04-27) [skip ci]
- Maintenance: scrub external account name from t2925 TODO entry (#21188)
- fix settings namespace divergence: read orchestration.pulse_interval_seconds with supervisor.* fallback + schema + migration (#21191)
- fix bounty-spam-auto-close gate — verdict-string instead of unreachable RC check (#21192)
- Maintenance: mark t2846 complete (pr:#21195 completed:2026-04-27) [skip ci]
- sensitivity classification schema + detector (#21195)
- Maintenance: sync ref:GH#21186 to TODO.md [skip ci]
- Maintenance: sync ref:GH#21181 to TODO.md [skip ci]
- Maintenance: sync ref:GH#21180 to TODO.md [skip ci]
- Maintenance: mark t2911 complete (pr:#21158 completed:2026-04-27) [skip ci]
- Maintenance: mark t2850 complete (pr:#21161 completed:2026-04-27) [skip ci]
- add per-stage timing log to setup.sh non-interactive path (#21158)
- PageIndex tree generation across corpus (#21161)
- Maintenance: mark t2942 complete (pr:#21159 completed:2026-04-27) [skip ci]
- Maintenance: mark t2937 complete (pr:#21178 completed:2026-04-27) [skip ci]
- reduce STAMPLESS_INTERACTIVE_AGE_THRESHOLD default from 24h to 1h (#21159)
- make maintainer-gate.yml reusable + wire into check/sync-workflows (#21178)
- Maintenance: mark t2944 complete (pr:#21165 completed:2026-04-27) [skip ci]
- fix bash 3.2 heredoc-in-$() in bounty-spam-detector.sh (#21165)
- Maintenance: sync ref:GH#21162 to TODO.md [skip ci]
- Maintenance: sync ref:GH#21160 to TODO.md [skip ci]
- Maintenance: sync ref:GH#21157 to TODO.md [skip ci]

### Fixed

- suppress 5 shellcheck false positives blocking release preflight (#21378)
- robust version check and reduce redundant --version I/O in canary (#21369)
- last-line read, ERE escaping, single-pass full-slug matching (#21367)
- bias age-check failure toward reclaim path in is_running short-circuit (GH#20962) (#21281)
- complexity advisory parser — one-liner and next-line brace (GH#20956) (#21282)
- canonical caller templates use explicit secret pass-through (GH#20976) (#21345)
- add mktemp -t template for BSD/macOS portability in probe functions (#21260)
- GH#20954 — use jq fallback operator and SCRIPT_DIR in framework-routing-helper (#21279)
- _pcr_sanitise_path path-boundary check prevents shared-prefix username leak (#21259)
- add issue) dispatch case and help line to aidevops.sh (#21266)
- remove stale line number ref from t2841 comment in pulse-issue-reconcile (#21262)
- address gemini review feedback on t2913 gh-wrapper timeout changes
- t2898-brief code samples — INTERVAL_MINUTES scope, arg preservation, idempotent stall check
- nvm path discovery + product validation in pulse runtime resolver
- use verdict string instead of RC in auto-close gate (#21190)
- add setup_peer_productivity_monitor to interactive flow (#21164)

## [3.13.0] - 2026-04-27

### Added

- pulse defense-in-depth restart reliability (#21155)

### Changed

- Maintenance: mark t2925 complete (pr:#21139 completed:2026-04-27) [skip ci]
- add bounty-spam-detector for templated bot PRs (#21139)
- Maintenance: mark t2929 complete (pr:#21153 completed:2026-04-27) [skip ci]
- cut preflight_cleanup_and_ledger by ~47s — async DB archive + single-pass jq ledger (#21153)
- Maintenance: mark t2931 complete (pr:#21142 completed:2026-04-27) [skip ci]
- Maintenance: mark t2940 complete (pr:#21152 completed:2026-04-27) [skip ci]
- fix 6 correctness bugs in email polling post-merge review (#21142)
- Maintenance: mark t2934 complete (pr:#21144 completed:2026-04-27) [skip ci]
- redact bad-actor identifiers from incident artifacts (#21152)
- defense-in-depth admin-merge guard for external-contributor PRs (#21144)
- Maintenance: mark t2939 complete (pr:#21155 completed:2026-04-27) [skip ci]
- Maintenance: sync ref:GH#21154 to TODO.md [skip ci]
- Maintenance: sync ref:GH#21150 to TODO.md [skip ci]
- Maintenance: sync ref:GH#21149 to TODO.md [skip ci]
- Maintenance: sync ref:GH#21148 to TODO.md [skip ci]
- Maintenance: sync ref:GH#20972 to TODO.md [skip ci]
- Maintenance: mark t2877 complete (pr:#21141 completed:2026-04-26) [skip ci]
- Maintenance: mark t2928 complete (pr:#21143 completed:2026-04-26) [skip ci]
- parse parent-task body cross-phase dep declarations into blocked-by markers (#21141)
- Maintenance: mark t2847 complete (pr:#21138 completed:2026-04-26) [skip ci]
- LLM routing helper + audit log (#21138)
- Maintenance: mark t2845 complete (pr:#21140 completed:2026-04-26) [skip ci]
- feat(t2845): knowledge review gate routine + NMR integration (#21140)
- Maintenance: mark t2933 complete (pr:#21133 completed:2026-04-26) [skip ci]
- harden approve_collaborator_pr against GH#17671 supply-chain class (#21133)
- Maintenance: sync ref:GH#21134 to TODO.md [skip ci]
- Maintenance: mark t2856 complete (pr:#21127 completed:2026-04-26) [skip ci]
- email thread reconstruction + filter→case-attach (#21127)
- Maintenance: sync ref:GH#21132 to TODO.md [skip ci]

### Fixed

- add missing icon_url_override column to archive.project schema (#21143)

## [3.12.0] - 2026-04-27

### Added

- knowledge plane directory contract + provisioning (#21107)
- decouple pulse-merge into fast standalone routine (GH#20919) (#21093)

### Changed

- Maintenance: mark t2932 complete (pr:#21128 completed:2026-04-26) [skip ci]
- peer-productivity-monitor for adaptive cross-runner coordination (#21128)
- Maintenance: sync ref:GH#21119 to TODO.md, drop duplicate t2932 [skip ci]
- add inbox digest subcommand + weekly pulse routine + advisory integration (#21124)
- Maintenance: sync ref:GH#21125 to TODO.md [skip ci]
- Maintenance: mark t2923 complete (pr:#21121 completed:2026-04-26) [skip ci]
- feat(worker): push WIP commits to origin on exit/kill (#21121)
- Maintenance: sync ref:GH#21122 to TODO.md [skip ci]
- Maintenance: mark t2855 complete (pr:#21112 completed:2026-04-26) [skip ci]
- Maintenance: mark t2922 complete (pr:#21118 completed:2026-04-26) [skip ci]
- IMAP polling routine + mailboxes.json registry (#21112)
- fix(pulse-merge): bypass phantom pending checks for owner+origin:worker auto-merge (#21118)
- Maintenance: mark t2927 complete (pr:#21117 completed:2026-04-26) [skip ci]
- Maintenance: mark t2926 complete (pr:#21115 completed:2026-04-26) [skip ci]
- setup.sh: auto-install util-linux for setsid on macOS (#21115)
- honor dispatch-override.conf 'ignore' at assignee level (#21120)
- Maintenance: mark t2863 complete (pr:#21113 completed:2026-04-26) [skip ci]
- sweep pulse-*.sh for set -u unbound variable bugs (#21113)
- Maintenance: mark t2852 complete (pr:#21114 completed:2026-04-26) [skip ci]
- case CLI surface (attach/status/close/archive/list/show/note/deadline/party/comm) (#21114)
- inbox triage routine: sensitivity gate → classification → routing (#21111)
- Maintenance: mark t2844 complete (pr:#21107 completed:2026-04-26) [skip ci]
- Maintenance: mark t2924 complete (pr:#21109 completed:2026-04-26) [skip ci]
- Maintenance: mark t2912 complete (pr:#21108 completed:2026-04-26) [skip ci]
- filter non-dispatchable management labels at candidate-build time (#21109)
- detect wedged auto-update lock holder and force-release (#21108)
- Maintenance: mark t2861 complete (pr:#21106 completed:2026-04-26) [skip ci]
- fix gh PATH shim --body-file source mutation — use temp file (#21106)
- Maintenance: sync ref:GH#21105 to TODO.md [skip ci]
- Maintenance: append t2926-t2929 systemic-fix tasks (refs:GH#21102-#21105) [skip ci]
- Maintenance: sync ref:GH#21102 to TODO.md [skip ci]
- Maintenance: sync ref:GH#21100 to TODO.md [skip ci]
- Maintenance: append t2922-t2925 systemic-fix tasks (refs:GH#21097-#21100) [skip ci]
- Maintenance: sync ref:GH#21098 to TODO.md [skip ci]
- Maintenance: sync ref:GH#21097 to TODO.md [skip ci]
- Maintenance: mark t2860 complete (pr:#21095 completed:2026-04-26) [skip ci]
- fix mv check, legacy cleanup, mktemp, empty guard in plist install (#21096)
- deregister from SQLite worktree registry on pulse-cleanup removal (#21095)
- Maintenance: mark t2862 complete (pr:#21093 completed:2026-04-26) [skip ci]
- Maintenance: mark t2921 complete (pr:#21092 completed:2026-04-26) [skip ci]
- fix worker-watchdog find_workers regex broken by t2421 alternation (#21092)
- Maintenance: sync ref:GH#21091 to TODO.md [skip ci]
- Maintenance: mark t2920 complete (pr:#21089 completed:2026-04-26) [skip ci]
- Maintenance: sync ref:GH#21086 to TODO.md [skip ci]
- Maintenance: mark t2867 complete (pr:#21085 completed:2026-04-26) [skip ci]
- inbox capture CLI + watch folder + audit log (t2866 + t2867) (#21085)
- Maintenance: mark t2919 complete (pr:#21082 completed:2026-04-26) [skip ci]
- fix(setup): install pulse plist early to survive unattended-update timeouts (#21082)
- Maintenance: mark t2918 complete (pr:#21080 completed:2026-04-26) [skip ci]
- Maintenance: sync ref:GH#21081 to TODO.md [skip ci]
- Maintenance: sync ref:GH#21079 to TODO.md [skip ci]

### Fixed

- split cmd_list to satisfy function-complexity gate (<100 lines) (#21116)
- invalidate FOOTPRINT_OVERLAP cache on issue close — reduce TTL 120s→30s (#21117)
- repair Phase 1 auto-release GitHub gap (GH#21057) (#21110)
- invert tooling/product priority boost (#21080)

## [3.11.17] - 2026-04-26

### Changed

- Maintenance: mark t2905 complete (pr:#21078 completed:2026-04-26) [skip ci]
- Maintenance: mark t2903 complete (pr:#21070 completed:2026-04-26) [skip ci]
- extract complexity_scan to standalone launchd plist (#21070)
- Maintenance: sync ref:GH#21076 to TODO.md [skip ci]
- Maintenance: mark t2904 complete (pr:#21073 completed:2026-04-26) [skip ci]
- Performance: batch per-issue jq extraction in reconcile_issues_single_pass (#21073)
- Maintenance: sync ref:GH#21074 to TODO.md [skip ci]
- Maintenance: update simplification state registry

## [3.11.16] - 2026-04-26

### Changed

- Maintenance: mark t2914 complete (pr:#21071 completed:2026-04-26) [skip ci]
- ensure pulse running after every aidevops update via idempotent start (#21071)
- Maintenance: mark t2913 complete (pr:#21068 completed:2026-04-26) [skip ci]
- move gh wall-clock timeouts into wrapper layer (#21068)
- Maintenance: sync ref:GH#21072 to TODO.md [skip ci]
- Maintenance: sync ref:GH#21069 to TODO.md [skip ci]
- Maintenance: mark t2910 complete (pr:#21064 completed:2026-04-26) [skip ci]

## [3.11.15] - 2026-04-26

### Changed

- Performance: t2910: cache generate-runtime-config.sh on input hash (saves 135s/cycle) (#21064)
- file ref:GH#21057 — auto-release leaves GitHub state stale (#21058)
- Maintenance: mark t2902 complete (pr:#21053 completed:2026-04-26) [skip ci]
- stop GraphQL exhaustion via instrumentation + proactive REST guard (#21053)
- Maintenance: mark t2906 complete (pr:#21062 completed:2026-04-26) [skip ci]
- fix 0-byte pulse plist on interrupted setup (#21062)
- Maintenance: sync ref:GH#21061 to TODO.md [skip ci]
- Maintenance: sync ref:GH#21059 to TODO.md [skip ci]
- Maintenance: sync ref:GH#21057 to TODO.md [skip ci]
- Maintenance: sync ref:GH#21056 to TODO.md [skip ci]
- implement runner-health circuit breaker and auto-update daemon verifier (#21039)

## [3.11.14] - 2026-04-26

### Changed

- Maintenance: sync ref:GH#21055 to TODO.md [skip ci]
- Maintenance: sync ref:GH#21054 to TODO.md [skip ci]

## [3.11.13] - 2026-04-26

### Changed

- Maintenance: sync ref:GH#21041 to TODO.md [skip ci]
- Maintenance: sync ref:GH#21049 to TODO.md [skip ci]
- Maintenance: sync ref:GH#21047 to TODO.md [skip ci]

## [3.11.12] - 2026-04-26

### Changed

- Maintenance: mark t2899 complete (pr:#21045 testing:runtime-verified)
- Maintenance: update simplification state registry
- Maintenance: sync ref:GH#21041 to TODO.md [skip ci]
- Maintenance: sync ref:GH#21040 to TODO.md [skip ci]
- Maintenance: update simplification state registry
- Maintenance: mark t2893 complete (pr:#21032 completed:2026-04-26) [skip ci]
- structured failure causes in gh signature-gate JS hook (#21032)
- Maintenance: mark t2895 complete (pr:#21037 completed:2026-04-26) [skip ci]
- bound task-id-guard check-pr scan range and cache subjects to prevent CI hang (#21037)
- Maintenance: surface t2892 in TODO.md (credential-scrub regex bug already filed as GH#21026)
- Maintenance: update simplification state registry

### Fixed

- guard branch_orphan classifier against default branch (t2899) (#21045)
- correct path prefix and ambiguous section ref in .agents/AGENTS.md (#21009)

## [3.11.11] - 2026-04-26

### Changed

- Maintenance: mark t2896 complete (pr:#21036 completed:2026-04-26) [skip ci]
- lower pulse GraphQL circuit-breaker threshold from 0.30 to 0.05 (#21036)
- Maintenance: mark t2873 complete (pr:#20965 completed:2026-04-26) [skip ci]
- Maintenance: sync ref:GH#21026 to TODO.md [skip ci]
- comment out OpenCode→Claude Code substitution after A/B verification (#20965)
- anchor credential-scrub regex to word boundary (#21031)
- add TODO entry for slow task-id-guard check-pr mode (#21035)
- Maintenance: mark t2891 complete (pr:#21028 completed:2026-04-26) [skip ci]

## [3.11.10] - 2026-04-26

### Changed

- add binary validator + auto-heal to active setup_opencode_cli (#21028)
- Maintenance: mark t2890 complete (pr:#21027 completed:2026-04-26) [skip ci]
- align /full-loop gate with pulse dispatch primitives (#21027)
- decompose knowledge planes MVP into 20 children + 2 peer parents (campaigns, tag format) (planning-only) (#20913)
- Maintenance: update simplification state registry
- auto-decomposer skip already-decomposed parents and recent maintainer activity (#21021)
- Maintenance: sync ref:GH#20983 to TODO.md [skip ci]

## [3.11.9] - 2026-04-26

### Changed

- Maintenance: mark t2884 complete (pr:#21022 completed:2026-04-26) [skip ci]
- add external-content-spam-detector.sh combining patterns + structural checks (#21022)
- Maintenance: sync ref:GH#21025 to TODO.md [skip ci]
- Maintenance: update simplification state registry
- Maintenance: sync ref:GH#21023 to TODO.md [skip ci]
- fix(interactive-session): auto-dispatch carve-out in _isc_cmd_claim (#20977)
- land _campaigns/ plane parent-task brief (#21020)

## [3.11.8] - 2026-04-26

### Changed

- Maintenance: mark t2888 complete (pr:#21018 completed:2026-04-26) [skip ci]
- restore setup_opencode_cli install/heal logic (#21018)
- Maintenance: update simplification state registry
- Maintenance: mark t2883 complete (pr:#21011 completed:2026-04-26) [skip ci]
- add §7c untrusted-body content directive immunity rule to AGENTS.md (#21011)
- Maintenance: sync ref:GH#21016 to TODO.md [skip ci]
- Maintenance: update simplification state registry
- Maintenance: mark t2886 complete (pr:#21015 completed:2026-04-26) [skip ci]
- extend pulse triage prefetch with evidence-verification sections (#21015)
- add permissions block to caller templates — fix startup_failure on read-only default repos (#21012)
- Maintenance: mark t2882 complete (pr:#21014 completed:2026-04-26) [skip ci]
- add unsolicited_disclosure_marketing patterns to prompt-injection-patterns.yaml (#21014)
- fix worktree path enumeration for paths with spaces
- fix worktree-exclusions setup-backblaze advice (#21002)
- Maintenance: update simplification state registry

### Fixed

- add missing labels field to t2148 test stub fixtures (#21010)

## [3.11.7] - 2026-04-26

### Changed

- Maintenance: mark t2887 complete (pr:#21001 completed:2026-04-26) [skip ci]
- canary detect wrong opencode binary, long backoff on config errors (#21001)
- Maintenance: update simplification state registry
- Maintenance: mark t2876 complete (pr:#20974 completed:2026-04-26) [skip ci]
- gh PATH shim privacy-scan layer (fail-closed on private slugs in public-repo writes) (#20974)
- consolidate prompts/build.txt into AGENTS.md Framework Rules (#20982)
- Maintenance: sync ref:GH#21000 to TODO.md [skip ci]
- Maintenance: update simplification state registry

## [3.11.6] - 2026-04-26

### Changed

- Maintenance: mark t2885 complete (pr:#20989 completed:2026-04-26) [skip ci]
- exclude worktrees from macOS Spotlight + Time Machine (#20989)
- Maintenance: sync ref:GH#20988 to TODO.md [skip ci]
- Maintenance: sync ref:GH#20987 to TODO.md [skip ci]
- Maintenance: sync ref:GH#20986 to TODO.md [skip ci]
- Maintenance: sync ref:GH#20985 to TODO.md [skip ci]
- Maintenance: sync ref:GH#20984 to TODO.md [skip ci]
- Maintenance: sync ref:GH#20983 to TODO.md [skip ci]
- Maintenance: sync ref:GH#20981 to TODO.md [skip ci]
- Maintenance: sync ref:GH#20980 to TODO.md [skip ci]
- backfill blocked-by markers on t2840 decomposition children (#20973)
- Maintenance: sync ref:GH#20975 to TODO.md [skip ci]
- Maintenance: sync ref:GH#20972 to TODO.md [skip ci]
- Maintenance: sync ref:GH#20970 to TODO.md [skip ci]
- Maintenance: update simplification state registry
- Maintenance: sync ref:GH#20966 to TODO.md [skip ci]
- Maintenance: mark t2859 complete (pr:#20915 completed:2026-04-26) [skip ci]
- inline config defaults in pulse-cleanup.sh to stop premature worktree destruction (#20915)
- reduce _detect_self_hosting_task complexity via helper extraction (#20926)
- Maintenance: sync ref:GH#20964 to TODO.md [skip ci]
- Maintenance: update simplification state registry

## [3.11.5] - 2026-04-26

### Changed

- Maintenance: update simplification state registry
- Maintenance: mark t2871 complete (pr:#20945 completed:2026-04-26) [skip ci]
- pulse-canonical-recovery: switch to local advisory channel (privacy fix) (#20945)
- Maintenance: sync ref:GH#20944 to TODO.md [skip ci]
- Maintenance: sync ref:GH#20942 to TODO.md [skip ci]

## [3.11.4] - 2026-04-26

### Changed

- Maintenance: mark t2865 complete (pr:#20928 completed:2026-04-25) [skip ci]
- pulse canonical-worktree conflict auto-recovery (#20928)
- Maintenance: sync ref:GH#20931 to TODO.md [skip ci]
- Maintenance: sync ref:GH#20929 to TODO.md [skip ci]
- reduce function complexity in upstream-watch-helper.sh (#20925)
- reduce log_framework_issue complexity by extracting dedup and creation helpers (#20927)
- Maintenance: mark t2864 complete (pr:#20924 completed:2026-04-25) [skip ci]
- pre-write bash function complexity advisory hook (#20924)
- Maintenance: add t2865 worktree-conflict recovery + blocked-by t2863 on t2862 (#20923)
- Maintenance: sync ref:GH#20919 to TODO.md [skip ci]
- Maintenance: sync ref:GH#20917 to TODO.md [skip ci]
- Maintenance: update simplification state registry
- Maintenance: sync ref:GH#20914 to TODO.md [skip ci]
- Maintenance: mark t2841 complete (pr:#20907 completed:2026-04-25) [skip ci]
- Maintenance: sync ref:GH#20912 to TODO.md [skip ci]
- Maintenance: mark t2835 complete (pr:#20887 completed:2026-04-25) [skip ci]

### Fixed

- init _b_nums to prevent unbound-variable abort (#20907)

## [3.11.3] - 2026-04-25

### Changed

- Maintenance: mark t2842 complete (pr:#20898 completed:2026-04-25) [skip ci]
- add manual single-issue dispatch CLI (#20887)
- full-loop-helper: run project validators before push (close worker-CI-failure gap) (#20898)
- Maintenance: sync ref:GH#20910 to TODO.md [skip ci]
- Maintenance: sync ref:GH#20909 to TODO.md [skip ci]
- Maintenance: sync ref:GH#20908 to TODO.md [skip ci]
- Maintenance: sync ref:GH#20906 to TODO.md [skip ci]
- Maintenance: sync ref:GH#20905 to TODO.md [skip ci]
- Maintenance: sync ref:GH#20904 to TODO.md [skip ci]
- Maintenance: sync ref:GH#20903 to TODO.md [skip ci]
- Maintenance: sync ref:GH#20902 to TODO.md [skip ci]
- Maintenance: sync ref:GH#20901 to TODO.md [skip ci]
- Maintenance: sync ref:GH#20900 to TODO.md [skip ci]
- Maintenance: sync ref:GH#20899 to TODO.md [skip ci]
- Maintenance: sync ref:GH#20897 to TODO.md [skip ci]
- Maintenance: sync ref:GH#20896 to TODO.md [skip ci]
- Maintenance: sync ref:GH#20895 to TODO.md [skip ci]
- Maintenance: mark t2838 complete (pr:#20890 completed:2026-04-25) [skip ci]
- periodic parent-task sub-issue backfill + --parent-issue flag (#20890)
- Maintenance: sync ref:GH#20894 to TODO.md [skip ci]
- Maintenance: sync ref:GH#20893 to TODO.md [skip ci]
- Maintenance: sync ref:GH#20892 to TODO.md [skip ci]
- Maintenance: sync ref:GH#20889 to TODO.md [skip ci]
- Maintenance: sync ref:GH#20888 to TODO.md [skip ci]
- Maintenance: mark t2834 complete (pr:#20883 completed:2026-04-25) [skip ci]
- add reusable LOC badge workflow + canonical README badge template (#20883)
- Maintenance: mark t2829 complete (pr:#20886 completed:2026-04-25) [skip ci]
- enforce age check in pulse is_running short-circuit (#20886)
- Maintenance: update simplification state registry

## [3.11.2] - 2026-04-25

### Changed

- Maintenance: sync ref:GH#20885 to TODO.md [skip ci]
- Maintenance: mark t2832 complete (pr:#20877 completed:2026-04-25) [skip ci]
- union (graph, body, prose) child sources for parent close
- Maintenance: sync ref:GH#20882 to TODO.md [skip ci]
- fix _parse_phases_section over-count of ### subsections
- fix(orphan-recovery) SC2215 broken line continuation silently dropped PR creation args (#20878)
- Maintenance: sync ref:GH#20879 to TODO.md [skip ci]
- Maintenance: update simplification state registry

## [3.11.1] - 2026-04-25

### Added

- dispatch-path default to #parent + no-auto-dispatch for interactive implementation (t2821) (#20854)
- add pre-dispatch self-hosting detector for dispatch-path tasks (t2819) (#20844)

### Changed

- Maintenance: sync ref:GH#20870 to TODO.md [skip ci]
- Maintenance: sync ref:GH#20868 to TODO.md [skip ci]
- Maintenance: sync ref:GH#20867 to TODO.md [skip ci]
- Maintenance: sync ref:GH#20866 to TODO.md [skip ci]
- validate PR title prefix against canonical issue mapping in _compose_pr_title (#20862)
- Maintenance: mark t2821 complete (pr:#20854 completed:2026-04-25) [skip ci]
- scope self-hosting scan to implementation sections; paginate idempotency check (#20861)
- write no-changes report to --output-md when no .sh/.py files changed (#20860)
- Maintenance: mark t2820 complete (pr:#20855 completed:2026-04-25) [skip ci]
- pulse: extend no_work reclassification to worker_failed using Phase 3 log-tail data (#20855)
- Maintenance: mark t2827 complete (pr:#20848 completed:2026-04-25) [skip ci]
- diff-scoped scan in complexity-regression-helper.sh to fix 60s pre-push timeout (#20848)
- fix no_worker_process root cause + add regression test (#20849)
- Maintenance: mark t2819 complete (pr:#20844 completed:2026-04-25) [skip ci]
- Maintenance: mark t2825 complete (pr:#20837 completed:2026-04-25) [skip ci]
- idempotent task-ID prefix in commit-and-pr (#20837)
- Maintenance: mark t2823 complete (pr:#20839 completed:2026-04-25) [skip ci]
- auto-emit blocked-by from predecessor references in claim-task-id.sh (#20839)
- Maintenance: mark t2826 complete (pr:#20841 completed:2026-04-25) [skip ci]
- retarget test-label-invariants WORKFLOW_FILE to issue-sync-reusable.yml (#20841)
- Documentation: GH-20835 Phase 1 diagnostic findings — complexity guard 98s timeout identified (#20843)
- Maintenance: sync ref:GH#20842 to TODO.md [skip ci]
- Maintenance: sync ref:GH#20840 to TODO.md [skip ci]

### Fixed

- case-insensitive extraction + normalisation in _detect_predecessor_refs (#20863)

## [3.11.0] - 2026-04-25

### Added

- extract pulse-wrapper config block into pulse-wrapper-config.sh (GH#20781) (#20786)
- migrate 12 style archetypes to DESIGN.md spec v0.1.0 format (#20783)
- upstream-watch files GitHub issues on detected updates (t2810) (#20784)
- rebase MERGEABLE PRs with CI failures before routing to fix-worker (t2805) (#20752)

### Changed

- add parent-task close gate to bash-helper _do_close path (#20838)
- Maintenance: mark t2816 complete (pr:#20814 completed:2026-04-25) [skip ci]
- Maintenance: mark t2815 complete (pr:#20815 completed:2026-04-25) [skip ci]
- Maintenance: mark t2818 complete (pr:#20833 completed:2026-04-25) [skip ci]
- add /setup-git slash command + per-repo setup debt aggregator (Phase 1) (#20814)
- prevent cascade tier escalation on infra failures (#20815)
- wire fingerprint dedup into framework-routing-helper, normalize body before hashing (#20824)
- fix(lifecycle): detect worker_branch_orphan — classify pushed-branch-without-PR and auto-recover (#20833)
- Maintenance: sync ref:GH#20836 to TODO.md [skip ci]
- fix(issue-triage-gate): remove title-prefix bypass that lets external contributors evade needs-maintainer-review (#20832)
- Maintenance: sync ref:GH#20834 to TODO.md [skip ci]
- Maintenance: sync ref:GH#20825 to TODO.md [skip ci]
- Maintenance: mark t2817 complete (pr:#20823 completed:2026-04-25) [skip ci]
- extend NOOP_RE to catch Gemini mid-sentence LGTM + zero-findings gate (#20823)
- Maintenance: sync ref:GH#20819 to TODO.md [skip ci]
- Maintenance: mark t2799 complete (pr:#20817 completed:2026-04-25) [skip ci]
- Maintenance: sync ref:GH#20818 to TODO.md [skip ci]
- split RATE_LIMIT_PATTERNS from NON_REVIEW_PATTERNS in review-bot-gate-helper (#20817)
- Maintenance: sync ref:GH#20812 to TODO.md [skip ci]
- align Complexity Impact thresholds — warning at 80-100 lines, mandatory refactor at >100 (#20805)
- simplify jq abs calculation and remove 2>/dev/null in co-temporality guard (#20806)
- fix `_usage` off-by-one and hoist `_reusable_escaped` out of per-repo loop (#20809)
- robustify release_interactive_claim_on_merge regex and add pre-guard (#20810)
- Refactor: consolidate dual gh pr view calls into single call in _attempt_pr_ci_rebase_retry (GH#20793) (#20799)
- Maintenance: mark t2808 complete (pr:#20783 completed:2026-04-24) [skip ci]
- Maintenance: mark t2810 complete (pr:#20784 completed:2026-04-24) [skip ci]
- add log_warning alias to shared-constants.sh (#20779)
- Maintenance: mark t2813 complete (pr:#20778 completed:2026-04-24) [skip ci]
- remove deprecated is_rate_limit_comment alias (#20776)
- Maintenance: mark t2812 complete (pr:#20770 completed:2026-04-24) [skip ci]
- fix stale feature-flag comment in shared-phase-filing.sh header (#20771)
- Maintenance: mark t2806 complete (pr:#20772 completed:2026-04-24) [skip ci]
- detect SYNC_PAT need under rulesets-based branch protection (#20772)
- Maintenance: mark t2786 complete (pr:#20731 completed:2026-04-24) [skip ci]
- Maintenance: mark t2803 complete (pr:#20762 completed:2026-04-24) [skip ci]
- Maintenance: mark t2804 complete (pr:#20767 completed:2026-04-24) [skip ci]
- add declared-vs-filed guard to _try_close_parent_tracker (#20731)
- add Complexity Impact brief section to prevent function-complexity gate surprises (#20762)
- Maintenance: decompose t2804 parent-task into 4 child phases (t2812-t2815) (#20767)
- Maintenance: mark t2805 complete (pr:#20752 completed:2026-04-24) [skip ci]
- Maintenance: mark t2811 complete (pr:#20760 completed:2026-04-24) [skip ci]
- release interactive claim on Ref/For planning PR merges (#20760)
- Maintenance: mark t2798 complete (pr:#20759 completed:2026-04-24) [skip ci]
- t2798: add status:available default workflow for bypass-path issue creation (#20759)
- Maintenance: sync ref:GH#20757 to TODO.md [skip ci]

### Fixed

- closing-keyword-only status:done — word-boundary regex + For/Ref veto guard (#20831)
- quote repo_slug in log_error and extract slug helper (GH#20796) (#20802)
- expand heredoc tag regex and gh write boundary anchors (GH#20798) (#20804)
- restore blank line before '### Files' header in conflict feedback (#20803)
- sanitize YAML description field and portable mktemp in prompt-guard sub-libraries (#20800)
- remove mode| from evil-twin YAML pattern to fix dark/light mode false positive (#20777)
- invert NMR check order and add co-temporality guard to prevent scanner-label ever-NMR trap (GH#20758) (#20761)

## [3.10.3] - 2026-04-24

### Changed

- Maintenance: mark t2807 complete (pr:#20749 completed:2026-04-24) [skip ci]
- align design-md agent with google-labs DESIGN.md spec v0.1.0 (#20749)
- refresh t1305 plan status — #14740 closed-stale, PR #14741 sole live ref (#20754)
- Maintenance: sync ref:GH#20755 to TODO.md [skip ci]
- migrate review-bot-gate.yml to reusable-workflow pattern (#20748)
- Maintenance: sync ref:GH#20753 to TODO.md [skip ci]
- Maintenance: mark t2802 complete (pr:#20742 completed:2026-04-24) [skip ci]
- explicit origin/`<default>` base for new worktrees + scope-leak detection in conflict-feedback (#20742)
- Maintenance: sync ref:GH#20750 to TODO.md [skip ci]
- Refactor: split prompt-guard-helper.sh into focused sub-libraries (#20746)
- Maintenance: sync ref:GH#20747 to TODO.md [skip ci]
- Maintenance: mark t2797 complete (pr:#20733 completed:2026-04-24) [skip ci]
- add backfill-status-available.sh for pre-t2789 status label heal (#20733)
- Maintenance: sync ref:GH#20734 to TODO.md [skip ci]
- Maintenance: mark t2800 complete (pr:#20744 completed:2026-04-24) [skip ci]
- claim-task-id: pre-flight label validation with exit 3 before counter advance (#20744)
- Maintenance: sync ref:GH#20743 to TODO.md [skip ci]
- Maintenance: mark t2788 complete (pr:#20736 completed:2026-04-24) [skip ci]
- Maintenance: mark t2801 complete (pr:#20739 completed:2026-04-24) [skip ci]
- extend _parse_phases_section for bold-heading form (Phase 1 of #20559) (#20736)
- Maintenance: sync ref:GH#20740 to TODO.md [skip ci]
- tighten isGhWriteCommand to eliminate heredoc/quoted-arg false positives (#20739)
- Maintenance: sync ref:GH#20738 to TODO.md [skip ci]
- Maintenance: sync ref:GH#20737 to TODO.md [skip ci]
- Maintenance: sync ref:GH#20735 to TODO.md [skip ci]
- Maintenance: sync ref:GH#20734 to TODO.md [skip ci]
- Maintenance: update simplification state registry
- Maintenance: mark t2796 complete (pr:#20726 completed:2026-04-24) [skip ci]
- Maintenance: sync ref:GH#20732 to TODO.md [skip ci]
- classify zero-output worker exit as worker_noop to trigger cascade (#20726)
- Maintenance: sync ref:GH#20730 to TODO.md [skip ci]
- Maintenance: sync ref:GH#20728 to TODO.md [skip ci]
- Maintenance: update simplification state registry
- Maintenance: mark t2789 complete (pr:#20720 completed:2026-04-24) [skip ci]
- apply status:available by default in claim-task-id.sh (#20720)
- Maintenance: mark t2762 complete (pr:#20719 completed:2026-04-24) [skip ci]
- sweep all grep -c counter-stacking violations to zero (#20719)
- Maintenance: sync ref:GH#20721 to TODO.md [skip ci]
- Maintenance: mark t2776 complete (pr:#20711 completed:2026-04-24) [skip ci]
- consolidate reconcile sub-stages into single-pass iterator (Phase 4 of #20622) (#20711)

### Fixed

- address gemini review feedback for check-workflows-helper.sh (#20724)
- use Bash parameter expansion and proper error handling in phase extractor (#20725)

## [3.10.2] - 2026-04-24

### Added

- per-issue rate_limit backoff gate in dispatch engine (#20691)

### Changed

- Maintenance: sync ref:GH#20717 to TODO.md [skip ci]
- Maintenance: sync ref:GH#20715 to TODO.md [skip ci]
- Maintenance: sync ref:GH#20714 to TODO.md [skip ci]
- Maintenance: sync ref:GH#20713 to TODO.md [skip ci]
- Maintenance: mark t2787 complete (pr:#20712 completed:2026-04-24) [skip ci]
- flip AIDEVOPS_SEQUENTIAL_PHASE_AUTOFILE default to 1 + docs sweep (#20712)
- Maintenance: mark t2780 complete (pr:#20710 completed:2026-04-24) [skip ci]
- fix sync/check-workflows for non-main default branches (#20710)
- Maintenance: sync ref:GH#20660 to TODO.md [skip ci]
- decompose parent-task #20559 into 3 phase children (#20706)
- Maintenance: mark t2775 complete (pr:#20709 completed:2026-04-24) [skip ci]
- pulse: per-repo pulse_interval throttle for contributor-role repos (#20709)
- Maintenance: sync ref:GH#20704 to TODO.md [skip ci]
- Maintenance: sync ref:GH#20703 to TODO.md [skip ci]
- Maintenance: update simplification state registry
- Maintenance: mark t2782 complete (pr:#20701 completed:2026-04-24) [skip ci]
- cap watchdog_stall_continue duration and count per session (#20701)
- Maintenance: update simplification state registry
- split worker-watchdog.sh into 5 focused sub-libraries (#20696)
- Maintenance: update simplification state registry
- fix sed escaping, checkout -B idempotency, and commit guard in sync-workflows-helper.sh (#20695)
- Maintenance: mark t2783 complete (pr:#20693 completed:2026-04-24) [skip ci]
- pulse: post remediation comment when maintainer removes NMR label without crypto approval (#20693)
- Maintenance: mark t2770 complete (pr:#20690 completed:2026-04-24) [skip ci]
- Maintenance: mark t2781 complete (pr:#20691 completed:2026-04-24) [skip ci]
- pulse: cross-issue no_work rate circuit breaker (#20690)
- Maintenance: mark t2772 complete (pr:#20692 completed:2026-04-24) [skip ci]
- route pulse-*.sh gh reads through REST-fallback wrappers (#20692)
- Maintenance: mark t2784 complete (pr:#20689 completed:2026-04-24) [skip ci]
- Maintenance: update simplification state registry

### Fixed

- address Gemini review feedback on pulse-issue-reconcile.sh (GH#20675) (#20694)
- upstream-watch cloudron-packaging-community URL (root→WanderingMonster) (#20689)
- add --paginate to gh api comments call in no_work circuit breaker (#20687)

## [3.10.1] - 2026-04-24

### Changed

- Maintenance: sync ref:GH#20682 to TODO.md [skip ci]
- Maintenance: sync ref:GH#20681 to TODO.md [skip ci]
- Maintenance: sync ref:GH#20680 to TODO.md [skip ci]
- Maintenance: mark t2773 complete (pr:#20667 completed:2026-04-24) [skip ci]
- route reconcile sub-stages through pulse-prefetch-cache (Phase 2 of #20622) (#20667)
- Maintenance: sync ref:GH#20674 to TODO.md [skip ci]
- Maintenance: update simplification state registry

## [3.10.0] - 2026-04-24

### Changed

- Maintenance: mark t2779 complete (pr:#20673 completed:2026-04-24) [skip ci]
- aidevops sync-workflows — opt-in resync (Phase 2) (#20673)
- Maintenance: mark t2771 complete (pr:#20668 completed:2026-04-24) [skip ci]
- add deterministic phase-extractor for well-formed parent-task bodies (#20668)
- Maintenance: mark t2769 complete (pr:#20669 completed:2026-04-24) [skip ci]
- per-issue no_work circuit breaker — NMR after N consecutive failures (#20669)
- Maintenance: mark t2778 complete (pr:#20666 completed:2026-04-24) [skip ci]
- aidevops check-workflows — drift detector (Phase 1) (#20666)
- Maintenance: update simplification state registry

## [3.9.0] - 2026-04-24

### Added

- decompose _dlw_nohup_launch into focused helpers (GH#20617) (#20619)

### Changed

- Maintenance: mark t2777 complete (pr:#20664 completed:2026-04-24) [skip ci]
- refactor framework workflows to reusable-workflow pattern (Phase 3) (#20664)
- Documentation: file GH#20633 decomposition brief (parent #20622, phases 2-4 filed) (#20663)
- Maintenance: mark t2768 complete (pr:#20659 completed:2026-04-24) [skip ci]
- pulse: consolidate circuit breaker threshold into single conf file (#20659)
- Maintenance: sync ref:GH#20661 to TODO.md [skip ci]
- Maintenance: sync ref:GH#20660 to TODO.md [skip ci]
- Maintenance: sync ref:GH#20658 to TODO.md [skip ci]
- align Linux/cron interval label with launchd modulo-60 logic (#20654)
- fix phase parsing — description strip order and child_ref line-end anchor (#20653)
- harden awk if-pattern in extract_block test helper (#20650)
- fix _state_json unbound variable in enrich single-task path (#20646)
- Maintenance: mark t2767 complete (pr:#20643 completed:2026-04-23) [skip ci]
- Maintenance: file 5 pulse concurrency backlog tasks (t2768-t2772) (#20644)
- Maintenance: sync ref:GH#20642 to TODO.md [skip ci]
- Maintenance: sync ref:GH#20641 to TODO.md [skip ci]
- Maintenance: sync ref:GH#20640 to TODO.md [skip ci]
- Maintenance: sync ref:GH#20639 to TODO.md [skip ci]
- Maintenance: sync ref:GH#20638 to TODO.md [skip ci]
- Maintenance: sync ref:GH#20634 to TODO.md [skip ci]
- Maintenance: mark t2763 complete (pr:#20621 completed:2026-04-23) [skip ci]
- Maintenance: update simplification state registry
- Refactor: decompose _dirty_pr_action_rebase into focused helpers (#20620)
- Maintenance: update simplification state registry

### Fixed

- use explicit empty-string guards for PGID pipeline fallbacks (#20657)
- restore stderr suppression and clear node-ID cache per repo (#20655)
- harden _handle_stale_llm_lock — portability, PID reuse guard, consistency (GH#20626) (#20651)
- parameterize fallback global_config_path in generate-runtime-config (#20652)
- add tier:standard to base label_list for NMR-path issues (#20647)
- commit-and-pr partial-success recovery t2767 (#20643)
- broaden counter-stack regex, use process substitution, harden safe_grep_count (#20645)
- invert stat probe order to GNU-first for Linux compat (GH#20615) (#20635)

## [3.8.95] - 2026-04-23

### Added

- add 'labeled' trigger to maintainer-gate.yml pull_request_target (#20502)
- add sequential phase auto-filing for parent-task issues (t2740) (#20492)

### Changed

- Maintenance: sync ref:GH#20556 to TODO.md [skip ci]
- Maintenance: sync ref:GH#20554 to TODO.md [skip ci]
- Maintenance: sync ref:GH#20553 to TODO.md [skip ci]
- auto-decomposer zero-delay thresholds + 1-day re-file interval (#20551)
- Maintenance: update simplification state registry
- migrate review-bot-gate CI to delegate to helper (t2139 settlement fix) (#20547)
- fix local variable style in rest-fallback (separate decl from assignment, hoist _tok) (#20545)
- fix pulse-batch-prefetch GraphQL exhaustion detection and add REST fallback (#20544)
- exclude review-bot logins from _count_non_nudge_comments (#20543)
- Maintenance: update simplification state registry
- Maintenance: mark t2748 complete (pr:#20533 completed:2026-04-22) [skip ci]
- fix(scanner): emit auto-dispatch + tier:standard on review-followup issues (#20533)
- fix dup-todo guard regex for indented/hierarchical IDs + rename bypass var (#20529)
- fix node-ID null guard, parent-process cache init, and rest-fallback optional arg (#20536)
- complete POSIX regex replacement doc in t2742 TODO entry (#20539)
- guard inner shift in _gh_auto_link_sub_issue arg parser against $#=0 (#20540)
- fix shared-phase-filing: description brackets, `child_ref` tail-1, dedup regex anchor, `_parent_json` guard (#20531)
- Maintenance: sync ref:GH#20530 to TODO.md [skip ci]
- add aidevops review-gate CLI for configuring rate_limit_behavior (#20527)
- harden standalone-source tests — LC_ALL=C, safer path arg, declare -f (#20528)
- Maintenance: mark t2746 complete (pr:#20525 completed:2026-04-22) [skip ci]
- preserve worker assignee on merged linked PRs for audit trail (#20525)
- Maintenance: mark t2741 complete (pr:#20526 completed:2026-04-22) [skip ci]
- add aidevops parent-status CLI helper for decomposition inspection (#20526)
- fix string-literal ratchet false positive on adjacent quoted shell args (#20522)
- Refactor: split cmd_backfill_sub_issues into focused helpers (GH#20497) (#20519)
- protect contributor PRs from auto-close on merge conflicts (#20521)
- Maintenance: sync ref:GH#20520 to TODO.md [skip ci]
- add actionlint pre-commit check for .github/workflows/*.yml (#20506)
- reduce auto_file_next_phase complexity by extracting 3 helper functions (#20503)
- Maintenance: update simplification state registry
- suppress fatal: ambiguous argument origin/main via default-branch detection (#20500)
- add standalone-source regression test for shared-gh-wrappers.sh (#20498)
- Maintenance: mark t2745 complete (pr:#20499 completed:2026-04-22) [skip ci]
- add pre-push guard to catch duplicate TODO entries from issue-sync orphan seed (#20499)
- Maintenance: update simplification state registry
- Maintenance: mark t2740 complete (pr:#20492 completed:2026-04-22) [skip ci]
- Maintenance: mark t2743 complete (pr:#20490 completed:2026-04-22) [skip ci]
- fix shared-gh-wrappers REST fallback for zsh compat (drops labels+assignees) (#20490)
- Maintenance: mark t2739 complete (pr:#20491 completed:2026-04-22) [skip ci]
- extend REST fallback to sub-issue backfill node-ID resolution (Gap B) (#20491)
- Maintenance: update simplification state registry
- Maintenance: mark t2744 complete (pr:#20483 completed:2026-04-22) [skip ci]
- raise GraphQL throttle defaults and reduce pulse/stats pressure (#20483)
- Maintenance: sync ref:GH#20484 to TODO.md [skip ci]
- Maintenance: sync ref:GH#20482 to TODO.md [skip ci]
- Maintenance: sync ref:GH#20480 to TODO.md [skip ci]
- Maintenance: mark t2738 complete (pr:#20474 completed:2026-04-22) [skip ci]
- extend _gh_auto_link_sub_issue to detect Parent: line at create-time (#20474)
- Maintenance: mark t2742 complete (pr:#20479 completed:2026-04-22) [skip ci]
- brief + TODO entry for string-literal ratchet regex false-positive fix (#20479)
- Maintenance: sync ref:GH#20477 to TODO.md [skip ci]
- Maintenance: sync ref:GH#20476 to TODO.md [skip ci]
- Maintenance: sync ref:GH#20475 to TODO.md [skip ci]
- Maintenance: sync ref:GH#20473 to TODO.md [skip ci]
- Maintenance: mark t2722 complete (pr:#20415 completed:2026-04-22) [skip ci]
- Phase 1 inventory of auto-dispatch references (#20415)

### Fixed

- export DISPATCH_REPO_SLUG before EXIT trap in _cmd_run_prepare (#20546)
- accurate interval label for non-multiples of 60 in launchd setup (#20537)

## [3.8.94] - 2026-04-22

### Added

- respect hold-for-review label in dirty-pr-sweep close decisions (#20462)
- SonarCloud S1481/S1066/S100 false-positive inventory and classification (#20460)

### Changed

- file parent task for multi-runtime version freshness in greeting (#20472)
- Maintenance: sync ref:GH#20471 to TODO.md [skip ci]
- Maintenance: update simplification state registry
- Maintenance: mark t2736 complete (pr:#20470 completed:2026-04-22) [skip ci]
- trim OpenCode first-response greeting to concise one-line (#20470)
- Maintenance: sync ref:GH#20469 to TODO.md [skip ci]
- extend rebase age window for planning-only conflicts in dirty-pr-sweep (#20468)
- extend dirty-pr-sweep close window to 14d for origin:interactive referenced PRs (#20465)
- widen _dps_consider_rebase conflict allowlist to match planning allowlist
- Maintenance: mark t2734 complete (pr:#20461 completed:2026-04-22) [skip ci]
- add SonarCloud exemption inventory (docs/sonar-exemptions.md) (#20461)
- Maintenance: mark t2732 complete (pr:#20460 completed:2026-04-22) [skip ci]
- Maintenance: mark t2733 complete (pr:#20459 completed:2026-04-22) [skip ci]
- t2733: add SonarCloud S1481/S1066/S100 config-level rule exclusions (#20459)
- decompose parent-task #20401 into SonarCloud rule-tuning children (#20456)
- Maintenance: sync ref:GH#20455 to TODO.md [skip ci]
- Maintenance: sync ref:GH#20454 to TODO.md [skip ci]
- Maintenance: sync ref:GH#20453 to TODO.md [skip ci]
- fix misleading coverage matrix comment in test-issue-sync-pull-seeds-orphans.sh (#20451)
- Maintenance: mark t2729 complete (pr:#20452 completed:2026-04-22) [skip ci]
- fire greeting update-check async so session.created handler returns immediately (#20452)
- remove 5 redundant session-rename tool schema leaks (#20435)
- Maintenance: update simplification state registry
- Maintenance: mark t2731 complete (pr:#20447 completed:2026-04-22) [skip ci]
- unfilter runtime-identity line from opencode toast (#20447)
- Maintenance: sync ref:GH#20446 to TODO.md [skip ci]
- Maintenance: mark t2730 complete (pr:#20438 completed:2026-04-22) [skip ci]
- restore runtime-identity line in generated opencode AGENTS.md (#20438)
- Maintenance: sync ref:GH#20437 to TODO.md [skip ci]
- Maintenance: update simplification state registry
- Maintenance: sync ref:GH#20436 to TODO.md [skip ci]
- Maintenance: mark t2728 complete (pr:#20434 completed:2026-04-22) [skip ci]
- toast UX polish — strip runtime-identity, add aidevops contributions subcommand, backtick commands (#20434)

## [3.8.93] - 2026-04-22

### Added

- split compare-models-helper.sh into focused sub-libraries (#20416)

### Changed

- Maintenance: sync ref:GH#20433 to TODO.md [skip ci]
- Maintenance: mark t2726 complete (pr:#20430 completed:2026-04-22) [skip ci]
- compress build.txt and AGENTS.md via progressive disclosure (#20430)
- Maintenance: mark t2727 complete (pr:#20432 completed:2026-04-22) [skip ci]
- consolidate greeting toasts into single emit (#20432)
- Maintenance: sync ref:GH#20431 to TODO.md [skip ci]
- Maintenance: update simplification state registry
- Maintenance: mark t2725 complete (pr:#20424 completed:2026-04-22) [skip ci]
- fix toast greeting update-check timeout (5s -> 15s) (#20424)
- Maintenance: sync ref:GH#20429 to TODO.md [skip ci]
- Maintenance: sync ref:GH#20423 to TODO.md [skip ci]
- Maintenance: mark t2713 complete (pr:#20422 completed:2026-04-22) [skip ci]
- large-file gate exemption for surgical briefs with line ranges (#20422)
- Maintenance: mark t2720 complete (pr:#20400 completed:2026-04-22) [skip ci]
- Maintenance: mark t2724 complete (pr:#20420 completed:2026-04-22) [skip ci]
- route session-start framework status to TUI toasts (#20420)
- reduce cmd_pr() complexity in pulse-diagnose-helper.sh (#20421)
- split auto-update-helper.sh into orchestrator + freshness sub-library (#20407)
- Refactor: split document-creation-helper.sh into 3 focused modules (#20417)
- Maintenance: sync ref:GH#20412 to TODO.md [skip ci]
- Maintenance: sync ref:GH#20410 to TODO.md [skip ci]
- Maintenance: update simplification state registry

### Fixed

- prefer tNNN over GH#N in auto-derived PR title (t2720) (#20400)

## [3.8.92] - 2026-04-22

### Added

- add pulse-diagnose-helper.sh for PR merge decision correlation (#20397)
- add pulse-level GraphQL rate-limit circuit breaker (t2690) (#20349)

### Changed

- fix third-party billing detection by redistributing system prompt (#20406)
- Maintenance: mark t2706 complete (pr:#20342 completed:2026-04-21) [skip ci]
- redeploy on .deployed-sha drift, not just VERSION/sentinel (#20342)
- Maintenance: sync ref:GH#20402 to TODO.md [skip ci]
- decompose parent #20303 into 2 children (audit + fix) (#20394)
- Maintenance: mark t2709 complete (pr:#20396 completed:2026-04-21) [skip ci]
- fix REST-fallback source path resolution for zsh (use _SC_SELF) (#20396)
- Maintenance: sync ref:GH#20395 to TODO.md [skip ci]
- Maintenance: add TODO entries for t2718 (audit) and t2719 (fix) — children of #20303
- Maintenance: update simplification state registry
- Maintenance: mark t2715 complete (pr:#20374 completed:2026-04-21) [skip ci]
- retire stale t2218 gap notes and close orphan TODO entry (#20374)
- simplify AIDEVOPS_SESSION_ORIGIN assignment in health dashboard (#20381)
- fix _worktree_resolve_abs_path double-slash and pwd vs pwd -P inconsistency (#20383)
- Maintenance: mark t2712 complete (pr:#20389 completed:2026-04-21) [skip ci]
- rename `_DIRTY_ACTION_ESCALATE` to `_DIRTY_ACTION_NOTIFY` in pulse-dirty-pr-sweep.sh (#20389)
- replace misleading 'high/critical' aggregate with per-severity inline summary (BLOCKER · CRITICAL · MAJOR · MINOR · INFO) (#20387)
- URL-encode labels and assignee in _rest_issue_list query params (#20386)
- Maintenance: sync ref:GH#20384 to TODO.md [skip ci]
- use AIDEVOPS_FRAMEWORK_REPO env var and defensive arithmetic in staleness check (#20378)
- Maintenance: sync ref:GH#20376 to TODO.md [skip ci]
- Maintenance: mark t2708 complete (pr:#20356 completed:2026-04-21) [skip ci]
- narrow pulse-dirty-pr-sweep origin-interactive rule to true orphans (#20356)
- Maintenance: sync ref:GH#20373 to TODO.md [skip ci]
- Maintenance: sync ref:GH#20372 to TODO.md [skip ci]
- Maintenance: sync ref:GH#20371 to TODO.md [skip ci]
- Maintenance: sync ref:GH#20370 to TODO.md [skip ci]
- Maintenance: sync ref:GH#20368 to TODO.md [skip ci]
- Maintenance: sync ref:GH#20361 to TODO.md [skip ci]
- Maintenance: sync ref:GH#20357 to TODO.md [skip ci]
- Maintenance: update simplification state registry
- Maintenance: sync ref:GH#20355 to TODO.md [skip ci]
- Maintenance: mark t2707 complete (pr:#20352 completed:2026-04-21) [skip ci]
- extend sig-footer enforcement to gh api POST/PATCH on issue/comment/PR endpoints (#20352)
- Maintenance: update simplification state registry
- Maintenance: sync ref:GH#20327 to TODO.md [skip ci]
- seed TODO.md entries for open orphan GitHub issues in pull (#20354)
- auto-detect --head/--base in _gh_pr_create_rest REST fallback (#20353)
- Maintenance: update simplification state registry
- fix prompt-guard staleness check to use deploy stamp mtime (#20351)
- Maintenance: update simplification state registry
- fix origin:worker stripped from health issues created by collaborator runners (#20346)
- add body-hash fingerprint dedup to /log-issue-aidevops (#20345)
- disable r912 dashboard routine (#20344)
- Maintenance: mark t2700 complete (pr:#20334 completed:2026-04-21) [skip ci]
- redirect broken routine run: fields to aidevops CLI via bin/ wrapper shims (#20334)
- block worktree creation at paths nested inside repo (#20336)
- extend REST fallback to gh issue view/list read paths (#20332)
- brief orphan TODO seeding, seed missing t2696 entry (#20329)
- bump pulse-wrapper canary test timeout from 30s to 60s (#20330)
- Maintenance: mark t2686 complete (pr:#20304 completed:2026-04-21) [skip ci]
- broaden quality-debt trust bar + extend NMR sig detector (#20304)
- Maintenance: mark t2697 complete (pr:#20328 completed:2026-04-21) [skip ci]
- auto-discover plugin .mjs files in re-export regression test (#20328)
- Maintenance: mark t2687 complete (pr:#20308 completed:2026-04-21) [skip ci]
- fix health-dashboard dedup under GraphQL rate-limit pressure (#20308)

### Fixed

- replace local -n namerefs with module-globals in setup/_tools.sh for bash 3.2/zsh compat (t2719) (#20403)
- remove jq stderr suppression and use // "" fallback in circuit breaker (#20380)
- address gemini review feedback on log-issue fingerprint dedup (#20382)
- PATH security + array dispatch for run: fields with args (#20390)
- remove redundant stderr redirect and extract helper function (#20385)
- extend gh shim api endpoint detection and field flag handling (#20379)
- address review-followup items from PR #20354 (#20377)
- strip persistent label before dedup close to prevent issue-sync reopen (#20333)
- drop unsupported headRefName from gh search prs (#20323)

## [3.8.91] - 2026-04-21

### Changed

- Maintenance: mark t2693 complete (pr:#20320)
- Maintenance: update simplification state registry
- fix re-export-only breaking local binding in plugin modules (#20320)

## [3.8.90] - 2026-04-21

### Changed

- Maintenance: mark t2692 complete (pr:#20318 completed:2026-04-21) [skip ci]
- scrub private repo references from aidevops codebase (#20318)
- Maintenance: update simplification state registry

## [3.8.89] - 2026-04-21

### Changed

- Maintenance: mark t2685 complete (pr:#20307 completed:2026-04-21) [skip ci]
- harden gh signature-footer enforcement (PATH shim + plugin hook block) (#20307)
- Maintenance: mark t2688 complete (pr:#20302 completed:2026-04-21) [skip ci]
- replace `local -n` namerefs with module-level globals for zsh/bash-3.2 compat (#20302)
- Maintenance: update simplification state registry
- Maintenance: update simplification state registry
- split aidevops.sh into 3 sub-libraries to get below 2000-line gate (#20296)
- extend REST fallback to gh_create_pr (GH#20290) (#20295)
- add Slack token allowlist to secretlintrc for test fixtures (#20293)

### Fixed

- allow t-ID prose references when claimed in repo history (GH#20291) (#20294)

## [3.8.88] - 2026-04-21

### Added

- revert t2449 false-completion + add planning-pr keyword CI guard (#20238)

### Changed

- auto-restart pulse on aidevops update and setup.sh (#20289)
- Maintenance: update simplification state registry
- Maintenance: mark t2570 complete (pr:#20285 completed:2026-04-21) [skip ci]
- add empty-compare-scanner.sh to detect derived-var comparison foot-gun (#20285)
- Maintenance: update simplification state registry
- Maintenance: mark t2449 complete (pr:#20283 completed:2026-04-21) [skip ci]
- symmetric auto-merge for maintainer-briefed origin:worker PRs (#20283)
- Maintenance: update simplification state registry
- Maintenance: mark t2564 complete (pr:#20279 completed:2026-04-21) [skip ci]
- docs(opencode): document project_id drift and /sessions session visibility recovery (#20279)
- correct Files Scope heading level to ### in brief template (#20280)
- update test-pulse-parent-nudge.sh tests 3 & 4 to match current gh api patterns (#20282)
- reduce cmd_install complexity by extracting arg-parse and hook-reject helpers (#20277)
- fix cleanup and fail-closed assertion in test-scope-guard-pre-push.sh (#20270)
- reformat daily scan stages to multi-line style in _run_preflight_stages (#20271)
- export TMP and INFO_LOG vars alongside stub functions in test-override-flags.sh (#20276)
- remove 2>/dev/null from gh api idempotency check in issue-sync-lib.sh (#20275)
- fix _decompose_issue_exists to use --paginate and jq --arg (#20274)
- fix ambiguous Muvera storage comparison language in vector-search.md (#20272)
- Documentation: condense Files Scope field entry and convert Worker-ready heuristic to list item in AGENTS.md (#20269)
- add mkdir-based local mutex around claim-task-id CAS loop (#20262)
- harden collision guard with branch-claim detection (Phase 1 of GH#20001)
- add transcript-side credential scrub (t2458 Layer 4) (#20266)
- Maintenance: update simplification state registry
- tighten auto-decomposer gating: per-parent interval + 6h fresh-parent threshold (#20264)
- Maintenance: mark t2578 complete (pr:#20263 completed:2026-04-21) [skip ci]
- fix release_instance_lock double-release removing new owner's lock (#20263)
- remove unsupported reviewDecision field from gh search prs calls (#20261)
- fix privacy-guard remote name hardcoding and HEAD fallback bypass (#20256)
- add structured audit log for CAS claims (#20257)
- Maintenance: sync t2576 from pulse + add t2577, t2578 follow-up entries
- Maintenance: update simplification state registry
- add REST fallback for GraphQL-exhausted gh issue wrappers (#20255)
- clarify Files Scope requires repository-root-relative paths with traversal risk warning (#20251)
- fix _compute_baseline — separate local, add HEAD fallback, propagate exit code (#20253)
- Maintenance: update simplification state registry
- fix gh api --slurp --jq anti-pattern causing duplicate parent-decomposition nudge comments (#20249)
- add TODO entry for opencode project_id drift docs (#20232)
- isolate CAS push/fetch stdout from pre-push hook narration (#20248)
- Maintenance: update simplification state registry
- Maintenance: file t2559 follow-ups — empty-compare scanner (t2570) + dated cleanup (t2571) (#20245)
- split claim-task-id.sh into counter and issue sub-libraries (#20247)
- Maintenance: mark t2458 complete (pr:#20210 completed:2026-04-21) [skip ci]
- prevent credential-bearing URLs in helper output (#20210)
- Maintenance: update simplification state registry

### Fixed

- fail-closed when brief exists but lacks Files Scope section (#20252)
- dispatch safety bypass + nudge loop on parent-task issues (3 factors) (#20246)

## [3.8.87] - 2026-04-21

### Changed

- Maintenance: mark t2660 complete (pr:#20218 completed:2026-04-21) [skip ci]
- route operational narration to stderr (#20218)
- fix(claim-task-id): append TODO entry after verified issue creation to prevent orphans (#20213)
- file narration-hygiene task (#20214)
- Maintenance: mark t2559 complete (pr:#20209 completed:2026-04-21) [skip ci]
- harden worktree cleanup against empty main_worktree_path (#20209)
- integrate scope guard into install-pre-push-guards.sh (#20199)
- Maintenance: mark t2450 complete (pr:#20200 completed:2026-04-21) [skip ci]
- gate labelless-backfill on authorAssociation (#20200)
- Maintenance: update simplification state registry

### Fixed

- review followup GH#20176 — pagination + word-boundary anchors (#20198)

## [3.8.86] - 2026-04-21

### Changed

- Maintenance: mark t2451 complete (pr:#20202 completed:2026-04-20) [skip ci]
- close trust-gate loop + preserve PR assignee on CLAIM_RELEASED (#20202)
- Maintenance: update simplification state registry
- gh-audit-log-helper.sh + wrapper integration + anomaly scanner (v2) (#20193)

### Fixed

- use git -c flags for http timeouts instead of ineffective env vars (#20196)
- use ref local SHA and dynamic default branch in privacy guard; expose git push stderr (#20189)

## [3.8.84] - 2026-04-20

### Changed

- decompose setup_test_env into per-fixture helpers (#20087)
- restore TODO entry to backlog + strip last rolling-4-week ref (#20085)
- fix(upgrade-planning): preserve tasks across all 6 sections (#20083)
- brief — #parent tag not synchronously mapped to parent-task label at issue creation (#20082)
- drop auto-close-as-wontfix from deferred trigger (GH#20072) (#20080)

## [3.8.83] - 2026-04-20

### Added

- add AIDEVOPS_OPUS_47_CONTEXT env var for opus-4.7 context override (t2435) (#20079)

### Changed

- Maintenance: sync VERSION to v3.8.82 tag (recover partial-release state)
- Maintenance: update simplification state registry
- Maintenance: mark t2432 complete (pr:#20075 completed:2026-04-20) [skip ci]
- brief deferred follow-up for recent-commit eligibility check (#20075)
- Maintenance: brief three t2422-spinoff gaps (t2429, t2430, t2431) (#20070)

## [3.8.80] - 2026-04-20

### Added

- cherry-pick-first guidance in conflict-feedback template (t2426) (#20056)
- batch prefetch via org-level gh search to reduce GraphQL consumption (GH#19963) (#20051)

### Changed

- Maintenance: mark t2422 complete (pr:#20054 completed:2026-04-20) [skip ci]
- structured cross-runner dispatch coordination (#20054)
- Maintenance: update simplification state registry
- fix complexity-guard baseline to use origin/HEAD not @{u} (#20052)

## [3.8.79] - 2026-04-20

### Added

- upgrade briefing agent with pre-composition checks and pre-flight validation (t2409) (#20049)
- pulse stage timing + force-reclaim stale mkdir locks (GH#20025) (#20046)
- clear active status labels on CLAIM_RELEASED (t2420) (#20038)
- auto-release interactive claim on PR merge (t2413) (#20031)
- extend _normalize_reassign_self to cover status:available feedback-routed worker issues (#19994)
- parent-side detection for umbrella-style parent-task backfill (GH#19942) (#19981)

### Changed

- add fast-fail gate to 3 cascade-vulnerable workflows (#20006)
- Maintenance: update simplification state registry
- auto-release Phase 1 dead stamps in scan-stale (#20033)
- split shared-constants.sh — extract gh wrappers into shared-gh-wrappers.sh (#20037)
- detect worker-ready issue bodies and skip redundant brief creation (#20040)
- retarget stacked PRs before base-branch merge to prevent auto-close (#20036)
- upgrade log-issue-aidevops agent for worker-ready issue/PR drafting (#20034)
- Maintenance: mark t2229 complete (pr:#20022 completed:2026-04-19) [skip ci]
- add CI workflow cascade-vulnerability linter (#20022)
- Maintenance: mark t2225 complete (pr:#20019 completed:2026-04-19) [skip ci]
- fix(gh_create_issue): skip self-assignment when auto-dispatch label present (#20017)
- fix(task-id-guard): scan PR title for invented t-IDs in check-pr mode (#20009)
- Maintenance: mark t2227 complete (pr:#20000 completed:2026-04-19) [skip ci]
- docs(agents-md): correct t2157 auto-dispatch carve-out paragraph to note claim-task-id.sh gap (#20000)
- fix(approval): source shared-constants.sh for comment wrappers (#20002)
- Maintenance: mark t2398 complete (pr:#19998 completed:2026-04-19) [skip ci]
- feat(deploy): post-release hot-deploy trigger for framework-critical script fixes (#19998)
- Maintenance: mark t2228 complete (pr:#19999 completed:2026-04-19) [skip ci]
- Add task-counter monotonic guard to pre-commit hook (#19999)
- Maintenance: mark t2401 complete (pr:#19993 completed:2026-04-19) [skip ci]
- add version field to DISPATCH_CLAIM body for version-gated filter (#19993)
- Maintenance: mark t2397 complete (pr:#19995 completed:2026-04-19) [skip ci]
- feat(fast-fail): age-out HARD STOP counter to auto-recover permanently-blocked issues (#19995)
- Maintenance: mark t2396 complete (pr:#19994 completed:2026-04-19) [skip ci]
- feat(auto-update): loginctl enable-linger guidance for Linux systemd (#19990)
- tactical override + CLAIM_RELEASED on launch failure (fixes cross-runner dispatch starvation, t2394/t2400) (#19965)
- Maintenance: mark t2395 complete (pr:#19989 completed:2026-04-19) [skip ci]
- fix ${N:-{}} bash expansion bug in pulse-prefetch and 3 helpers (#19986)
- t2350: add pulse-dirty-pr-sweep scanner for stale DIRTY PRs (#19980)
- fix(auto-update): Linux systemd status branch + help/reference doc refresh (#19984)
- Maintenance: mark t2208 complete (pr:#19979 completed:2026-04-19) [skip ci]
- restore Codacy badge (grade: A all categories) (#19979)
- split pulse-prefetch.sh into 3 focused sub-libraries (#19973)
- add pulse canonical-repo fast-forward + stale worktree sweep stage (#19974)

### Fixed

- cmd_status returns exit 0 regardless of drift state (#20020)
- extend assignee-exemption to cover source:* automation-authored issues (#19989)
- fail-closed label fetch in _interactive_pr_trigger_handover (#19972)
- use explicit PID tracking for parallel wait and add COMPLEXITY_HELPER env override (GH#19921) (#19954)
- atomic cache writes + defensive jq in stub-title scanner (#19961)

## [3.8.78] - 2026-04-19

### Added

- auto-append signature footer to all gh issue/pr comment wrappers (t2393) (#19953)

### Changed

- Maintenance: update simplification state registry
- Maintenance: update simplification state registry

### Fixed

- qualify shell-specific advice for multi-language scanners (#19945)
- pass self_login to is-assigned, avoid redundant API fetch, use parameter expansion (GH#19922) (#19950)

## [3.8.77] - 2026-04-19

### Changed

- OAuth probe returns healthy without HTTP for opencode auth (#19947)
- Maintenance: update simplification state registry
- fix doc ordering and phrasing from review-followup on PR #19896 (#19931)
- Maintenance: update simplification state registry
- Maintenance: update simplification state registry
- fix(issue-sync): range-syntax PR title guard for TODO auto-complete (#19939)
- apply gemini review suggestions from PR #19907 followup (#19933)
- fix(stats): export AIDEVOPS_HEADLESS in stats-wrapper.sh main() to unblock quality-debt dispatch (#19932)

### Fixed

- harden shellcheckrc parity grep against set -e exit and prefix false positives (#19941)
- address Gemini review feedback on pre-commit-hook.sh ratchet validators (#19935)
- reduce _infer_init_scope I/O — single jq pass + pass is_local_only from caller (#19938)

## [3.8.76] - 2026-04-19

### Changed

- tier:simple body-shape validator (auto-downgrade mis-tiered briefs pre-dispatch) (#19930)
- nudge parent-task issues with zero filed children (#19928)
- fix(nmr): preserve NMR when circuit breaker tripped, prevent #19756 auto-approval loop (#19909)
- fix(worker-lifecycle): skip tier escalation on no_work crashes (#19918)
- Maintenance: mark t2180 complete (pr:#19915 completed:2026-04-19) [skip ci]
- feat(claim-task-id): pre-claim discovery pass (5-function decomposition) (#19915)
- Maintenance: update simplification state registry

## [3.8.75] - 2026-04-19

### Added

- add framework-wide safety invariant for gh issue/pr edit (GH#19857) (#19907)
- add SYNC_PAT detection to aidevops security check (#19892)
- re-measure scanner-cited files before worker dispatch (#19891)

### Changed

- feat(detection): add hourly stub-title issue scanner routine (r006) (#19906)
- t2265: feat(aidevops-init): add init_scope field to scope scaffolding per repo (#19905)
- refactor(pre-commit): ratchet-style validators (block on increase, pass pre-existing) (#19904)
- Maintenance: mark t2371 complete (pr:#19900 completed:2026-04-19) [skip ci]
- feat: add shellcheckrc parity drift detection (#19898)
- perf(complexity-guard): parallelize 3 sequential metric checks to prevent worker push timeouts (#19902)
- feat(scanner-bodies): enrich issue templates with playbook links, precedent cites, and CI override instructions (#19900)
- fix(pulse-merge): harden 5 pre-existing reliability issues in merge conflict + feedback clusters (#19899)
- Maintenance: mark t2370 complete (pr:#19896 completed:2026-04-19) [skip ci]
- feat(workflows): complexity-bump-ok justification validator (#19896)
- Maintenance: mark t2263 complete (pr:#19894 completed:2026-04-19) [skip ci]
- fix(complexity-guard): add file-existence guards to all scanner functions (#19894)
- Maintenance: mark t2367 complete (pr:#19891 completed:2026-04-19) [skip ci]
- document claim scope limitation, add lockdown/unlock subcommands (#19890)
- Maintenance: mark t2261 complete (pr:#19886 completed:2026-04-19) [skip ci]
- Performance: replace serial port scan with batch lsof query in assign_port() (#19886)
- Maintenance: mark t2259 complete (pr:#19885 completed:2026-04-19) [skip ci]
- fix CAS retry exhaustion causing silent +100 offset drift in claim-task-id (#19884)
- add biome-zero regression test for grep -c arithmetic crash (#19882)
- fix(ci): skip TODO.md proof-log for planning-only PRs (#19883)
- Maintenance: mark t2260 complete (pr:#19881 completed:2026-04-19) [skip ci]
- Maintenance: mark t2366 complete (pr:#19878 completed:2026-04-19) [skip ci]
- feat(routines): add r914 daily repo-aidevops-health keeper (#19878)
- Maintenance: mark t2384 complete (pr:#19875 completed:2026-04-19) [skip ci]
- implement 5-layer defense against enrich-path data-loss bug (#19876)
- chore(todo): log brief + TODO entry for pre-commit hook ratcheting (#19875)

### Fixed

- guard enrich path with dispatch-dedup-helper.sh is-assigned before gh issue edit (#19901)
- replace greedy brief-body #NNN scanning with structured ref:GH# lookup (t2260) (#19881)

## [3.8.74] - 2026-04-19

### Changed

- Maintenance: mark t2190 complete (pr:#19871 completed:2026-04-19) [skip ci]
- fix(dispatch): Linux ps command truncation defeats worker detection (#19871)
- Maintenance: mark t2379 complete (pr:#19870 completed:2026-04-19) [skip ci]
- fix(pulse-dispatch): planning PR squash commits falsely marked as implementation (#19870)
- correct opencode slug + clean repeated-literal debt + fix validate_string_literals false-positives (#19867)
- Maintenance: mark t2247 complete (pr:#19868 completed:2026-04-19) [skip ci]
- emit PR comment, audit log, and label on admin-merge fallback (#19868)
- Maintenance: mark t2235 complete (pr:#19865 completed:2026-04-19) [skip ci]
- forbid self-invented task ID suffixes in Traceability rules (#19865)
- Maintenance: mark t2203 complete (pr:#19866 completed:2026-04-19) [skip ci]
- refactor(pulse-merge): extract _route_pr_to_fix_worker helper to deduplicate routing gates (#19866)
- Maintenance: mark t2234 complete (pr:#19862 completed:2026-04-19) [skip ci]
- docs(brief-template): add planning-PR title-collision warning (t2219) (#19862)
- Maintenance: mark t2377 complete (pr:#19849 completed:2026-04-19) [skip ci]
- Maintenance: mark t2246 complete (pr:#19854 completed:2026-04-19) [skip ci]
- brief and TODO entry for enrich-path data-loss bug (planning only) (#19849)
- fix(pre-commit-hook): decouple print_warning from violations counter in validate_string_literals (#19853)
- add pre-install validator dry-run to install-hooks-helper.sh (#19855)
- split pulse-merge.sh into three modules + fix missing CLAIM_RELEASED on worker success (#19842)
- fix(task-id-guard): accept Ref/For linkage when linked issue title contains t-ID (#19844)
- Maintenance: sync ref:GH#19752 to TODO.md [skip ci]
- Maintenance: mark t2237 complete (pr:#19850 completed:2026-04-19) [skip ci]
- skip pre-commit hook on release commits to avoid false positives (#19850)
- Maintenance: mark t2376 complete (pr:#19848 completed:2026-04-19) [skip ci]
- fix grep -c arithmetic crash blocking Biome CI framework-wide (#19848)

### Fixed

- restore include-all CodeRabbit label semantics (GH#19770) (#19854)

## [3.8.73] - 2026-04-19

### Added

- prevent .task-counter silent regression on PR merge (t2229) (#19801)
- add PATH-discoverable gh_create_pr and gh_create_issue shims (t2199) (#19799)
- t2245 detect stuck 3-way merge state in canonical repos on session start (#19798)

### Changed

- harden cross-runner guard with runner-identity gate (#19843)
- Maintenance: update simplification state registry
- Maintenance: mark t2372 complete (pr:#19838 completed:2026-04-19) [skip ci]
- tighten _normalize_unassign_stale 1h cutoff to 10min for faster orphan-worker recovery (#19838)
- docs(agents-md): add SYNC_PAT live-state + t2252 caveat to issue-sync limitation paragraph (#19833)
- Maintenance: mark t2265 complete (pr:#19813 completed:2026-04-19) [skip ci]
- plan init_scope field for aidevops init scaffolding (#19813)
- Maintenance: mark complete in TODO.md (pr:#19816 verified:2026-04-19) (#19830)
- Maintenance: update simplification state registry
- Maintenance: mark t2251 complete (pr:#19800 completed:2026-04-19) [skip ci]
- file brief for gh-signature-helper session+token misdetection (#19800)
- guard session+terminal titles against default-branch clobber (#19816)
- Maintenance: mark t2366 complete (pr:#19819 completed:2026-04-19) [skip ci]
- plan r914 daily repo-aidevops-health-keeper routine (#19819)
- Maintenance: mark t2219 complete (pr:#19820 completed:2026-04-19) [skip ci]
- fix(ci): skip title-fallback for For/Ref-referenced issues in issue-sync.yml (#19820)
- Maintenance: mark t2207 complete (pr:#19786 testing:self-assessed)
- Maintenance: mark t2259 complete (pr:#19814 completed:2026-04-19) [skip ci]
- Maintenance: sync ref:GH#19774 to TODO.md [skip ci]
- Maintenance: mark t2248 complete (pr:#19812 completed:2026-04-19) [skip ci]
- fix(complexity-regression): switch bash32-compat metric from line-keyed to count-per-pattern diff key (#19812)
- Maintenance: ratchet QLTY_SMELL_THRESHOLD 29→25 (-4) [skip ci]
- Maintenance: update simplification state registry
- refactor(hooks): split pre-commit — fast local checks stay, slow network checks move to pre-push (#19786)
- add push retry loop to version-manager.sh release (#19811)
- restrict parent-task body-regex fallback to Children section only (#19810)
- Restore headless OAuth rotation via XDG_DATA_HOME-aware auth path (#19790)
- fix(ci): scope Markdown Lint + Biome CI to changed-line ranges (#19785)
- strip markdown code spans before keyword scan in parent-task-keyword-guard (#19796)

## [3.8.72] - 2026-04-19

### Added

- auto-swap Resolves to For for parent-task issues in _build_pr_body (t2242) (#19794)
- enforce mutual exclusion of origin:interactive/worker/worker-takeover (t2200) (#19731)

### Changed

- tabby-profile-sync: parse folded YAML, detect worktrees via git (#19793)
- add curl retry-with-backoff to validate-version-consistency.sh (#19791)
- add ratchet gate rule and gh pr checks canceled-vs-fail note
- briefs for self-healing pulse framework improvements (#19781)
- Maintenance: update simplification state registry
- document origin:interactive auto-merge window (#19776)
- prevent closing-keyword auto-close and unverified attribution (#19696)
- fix validate_string_literals over-counting empty and short strings (#19775)
- fix(pre-commit): eliminate positional parameter false positives on awk and comments (#19772)
- Maintenance: add ref:GH#19774 to t2248 entry
- fix(pre-commit): replace grep -c || echo "0" with || true to prevent multiline arithmetic errors (#19769)
- add shell test-harness template encoding set-e and local pitfalls (#19768)
- wire up Hostinger SSH key auth in wp-helper, hostinger-helper, docs, and template (#19767)
- Maintenance: mark t2239 complete (pr:#19759)
- Add opus-4.7 as top auto-escalation rung + model:opus-4-7 opt-in label (#19759)
- Maintenance: update simplification state registry
- feat(interactive-session-helper): post-merge subcommand for auto-heal after planning PR merge (#19766)
- file 7 framework improvement briefs (v3.8.71 lifecycle retrospective) (#19758)
- plan t2225 + t2227 + t2234 — intrinsic harness improvements for planning-PR incidents (#19745)
- feat(pulse-merge): idle interactive PR handover to worker pipeline (#19682)
- ci: add markdownlint-cli2 and biome CI jobs to code-quality.yml (#19711)
- brief — macOS-specific briefs fail Ubuntu AC verification (planning-only) (#19725)
- Maintenance: update simplification state registry
- correct opencode upstream slug to anomalyco/opencode in docs and configs (#19728)
- add paths-ignore to Qlty workflows to suppress docs-only canceled-as-fail noise (#19726)
- fix(pre-commit): make TODO.md duplicate-ID check diff-aware (#19712)

### Fixed

- extend pre-commit duplicate-ID check to declined tasks and routine IDs (#19789)
- add t2157-style auto-dispatch carve-out to _auto_assign_issue (t2218) (#19788)
- prevent duplicate task IDs under concurrent CAS invocation (GH#19689) (#19765)

## [3.8.71] - 2026-04-18

### Added

- add complexity-regression pre-push guard and generalize installer (t2198) (#19710)

### Changed

- force base-10 in _resolve_current_counter octal-trap comparisons (#19709)
- fix PATH ordering and clear AIDEVOPS_BASH_REEXECED env leak (#19707)
- Documentation: sync cloudron skill files with upstream git.cloudron.io/docs/skills (t2213) (#19708)
- correct observability.md falsified Tool.execute OTEL root cause and upstream link (#19705)
- document NMR auto-approval forces auto-dispatch label on maintainer-authored issues (#19704)
- Maintenance: update simplification state registry
- install pre-commit hook, biome.json, document Codacy auto-fix anti-pattern (#19683)
- file Linux worker launch failure diagnosis task for alex-solovyev (#19680)
- trim INTENT_PARAM_SCHEMA description to reduce per-request token cost (#19676)
- fix Effect.runPromise terminology and session-introspect-helper.sh naming in observability.md (#19677)
- fix trap chaining, fixed-string dedup, and --issue validation in issue-sync-relationships.sh (#19674)
- fix regex to detect combined flag patterns in assoc-array and nameref detection (#19675)
- Maintenance: update simplification state registry
- declare agent__intent on tool schemas so Anthropic preserves it (#19663)
- document opencode run-mode Tool.execute OTEL span gap (#19662)
- Maintenance: update simplification state registry
- Maintenance: add t2187 backlog entry + brief (opencode run mode Tool.execute span gap) (#19661)
- Maintenance: update simplification state registry
- Maintenance: mark t2186 complete (pr:#19659)
- fix(headless): include OTEL_* in sandbox passthrough for worker trace export (#19659)
- fix bash re-exec guard BASH_SOURCE stack walk + plist modern bash (#19656)
- Maintenance: update simplification state registry
- feat(pulse-merge): coderabbit-nits-ok label to auto-dismiss CR-only CHANGES_REQUESTED reviews (#19653)
- tighten observability.md prose (150→143 lines) (#19655)
- tighten opencode-maintenance.md (163→140 lines) (#19654)
- fix(pulse-routines): silence unrecognised schedule expression noise (#19652)
- Maintenance: mark t2184 complete (pr:#19651)
- fix(observability): capture duration_ms + metadata in tool_calls INSERT (#19651)
- Maintenance: update simplification state registry

## [3.8.70] - 2026-04-18

### Changed

- wire r913 opencode DB maintenance into platform scheduler (#19650)
- fix issue-sync enrich 10-minute timeout (#19487)
- Maintenance: mark t2181 complete (pr:#19644)
- fix(otel-enrichment): detectTaskId regex for .type- and -type- worktree paths (#19644)
- Maintenance: trim Codacy noise — disable Prospector/PMD, skip Bandit B404, exclude opencode plugin (#19647)
- Maintenance: update simplification state registry
- Maintenance: t2179 + t2180 — pulse-merge coderabbit-nits-ok label + claim-task-id pre-claim discovery (#19640)

## [3.8.69] - 2026-04-18

### Changed

- Maintenance: update simplification state registry
- Maintenance: mark t2177 complete (pr:#19635)
- SYNC_PAT — scope + visibility + actionable error (#19489)
- feat(opencode-plugin): OTEL span enrichment + session-introspect helper (#19635)
- exclude archived briefs + design/skill docs from Codacy; hide Codacy badge (#19637)
- feat(opencode): weekly DB maintenance routine (r913) for SQLite lock mitigation (#19630)
- Maintenance: update simplification state registry
- Maintenance: update simplification state registry
- Maintenance: update simplification state registry
- fix(routine-schedule): recognise 'persistent' as a valid schedule type (#19628)
- Maintenance: update simplification state registry
- fix(pulse): add live GraphQL budget probe to defeat cache-poisoning false positives (#19626)
- add TODO entry for pulse rate-limit cache-poisoning defense (ref GH#19622) (#19625)
- Maintenance: update simplification state registry
- fix(large-file-gate): split overloaded simplification-debt into file-size-debt + function-complexity-debt (#19619)
- Maintenance: update simplification state registry
- Maintenance: update simplification state registry
- Maintenance: update simplification state registry

### Fixed

- force base-10 to handle octal-trap IDs (GH#19620) (#19621)
- replace perl alarm with timeout(1) to reap Go grandchild on Linux (GH#19623) (#19627)
- document root cause + regression test for false needs-consolidation on single bot comment (t2152) (#19618)
- replace bash4+ uppercase substitution with tr for bash 3.2 compat (#19617)
- revert BASH32_COMPAT_THRESHOLD to 78 and consolidate treadmill audit trail (#19616)

## [3.8.68] - 2026-04-17

### Changed

- extract relationships & backfill into issue-sync-relationships.sh (#19613)
- Maintenance: update simplification state registry
- Maintenance: mark t2172 complete (pr:#19612 testing:runtime-verified)

## [3.8.67] - 2026-04-17

### Changed

- hotfix: auto-clean broken symlinks in OpenCode runtime dirs (blocks new sessions) (#19612)
- chore: ratchet-down BASH32_COMPAT_THRESHOLD 78→74 (#19609)
- Maintenance: update simplification state registry
- fix NESTING_DEPTH_THRESHOLD 285/290 ping-pong by increasing buffer to 7 units (#19605)
- extend per-function regression to nesting/bash32/file-size + retire ratchet treadmill (#19592)

## [3.8.66] - 2026-04-17

### Added

- t2169 simplification-outcome-check workflow + gate short-circuit (#19520)

### Changed

- GH#19593: chore: ratchet-down complexity thresholds (#19594)
- GH#19589: chore: ratchet-down complexity thresholds (#19591)
- Maintenance: update simplification state registry
- Maintenance: bump NESTING_DEPTH_THRESHOLD to 290 (GH#19588) (#19590)
- chore: ratchet-down complexity thresholds (GH#19586) (#19587)
- chore: ratchet-down complexity thresholds (GH#19582) (#19584)
- Maintenance: update simplification state registry
- Maintenance: bump NESTING_DEPTH_THRESHOLD 285→290 for GH#19581 proximity warning (#19583)
- chore: ratchet-down complexity thresholds (GH#19579) (#19580)
- Maintenance: update simplification state registry
- Maintenance: bump NESTING_DEPTH_THRESHOLD to 290 (GH#19577) (#19578)
- Maintenance: ratchet-down complexity thresholds (GH#19574) (#19575)
- Maintenance: update simplification state registry
- Maintenance: bump NESTING_DEPTH_THRESHOLD to 290 (GH#19572) (#19573)
- Maintenance: ratchet-down complexity thresholds (GH#19569) (#19570)
- Maintenance: update simplification state registry
- Maintenance: bump NESTING_DEPTH_THRESHOLD to 290 (GH#19565) (#19567)
- chore: ratchet-down complexity thresholds (GH#19563) (#19564)
- Maintenance: ratchet-down complexity thresholds (GH#19554) (#19558)
- chore(ci): bump NESTING_DEPTH_THRESHOLD 285→290 (283 violations + 7 headroom) (#19560)
- Maintenance: ratchet-down complexity thresholds (GH#19554) (#19555)
- chore: ratchet-down BASH32_COMPAT_THRESHOLD 78→74 (#19553)
- Maintenance: update simplification state registry
- chore(ci): bump NESTING_DEPTH_THRESHOLD 285→290 (283 violations + 7 headroom) (#19552)
- chore: ratchet-down complexity thresholds (GH#19547) (#19548)
- Maintenance: update simplification state registry
- chore(ci): bump NESTING_DEPTH_THRESHOLD 285→290 (283 violations + 7 headroom) (#19545)
- Maintenance: ratchet-down complexity thresholds (GH#19541) (#19542)
- Maintenance: update simplification state registry
- chore(ci): bump NESTING_DEPTH_THRESHOLD 285→290 (283 violations + 7 headroom) (#19538)
- chore: ratchet-down BASH32_COMPAT_THRESHOLD 78→74 (#19539)
- chore: ratchet-down NESTING_DEPTH_THRESHOLD 290→285 (#19535)
- Maintenance: update simplification state registry
- chore(ci): bump NESTING_DEPTH_THRESHOLD 285→290 (283 violations + 7 headroom) (#19532)
- chore: ratchet-down complexity thresholds (nesting 290→285, bash32 78→74) (#19529)
- Maintenance: update simplification state registry
- chore: ratchet-down BASH32_COMPAT_THRESHOLD 78→74 (#19525)
- chore(ci): bump nesting depth threshold 284→290 (283 violations + 7 headroom) (#19527)
- Maintenance: update simplification state registry
- fix(pulse-triage): clear stale needs-simplification labels when cited continuations are phantom (#19524)
- chore: ratchet-down complexity thresholds (GH#19519) (#19522)
- docs(build.txt): add deployed-vs-source diagnostic rule for runtime investigations (#19518)
- chore: ratchet-down BASH32_COMPAT_THRESHOLD 78→74 (GH#19516) (#19517)
- Maintenance: update simplification state registry
- bump nesting threshold 284→289 (282 violations + 7 headroom) (#19515)
- Maintenance: update simplification state registry
- tighten video-seo.md agent doc (109→97 lines) (#19507)
- restructure video-schema.md into slim index + chapter files (#19509)
- tighten transcript-seo.md (107→105 lines) (#19510)
- chore: ratchet-down complexity thresholds (GH#19506) (#19511)
- Maintenance: update simplification state registry
- Maintenance: file Fixes C/D/E as children of #19482 (t2163 5-fix plan); mark t2164 complete (#19501)
- add video-seo, transcript-seo, video-schema agents with cross-reference pass (#19495)
- bump NESTING_DEPTH_THRESHOLD from 284 to 289 (#19496)
- tighten large-file-gate path extraction + verify file size before continuation (#19484)
- chore: ratchet-down complexity thresholds (GH#19480) (#19481)
- Maintenance: update simplification state registry

### Fixed

- bump BASH32_COMPAT_THRESHOLD to 78 (CI reports 76 violations vs threshold 74) (#19576)
- revert BASH32_COMPAT_THRESHOLD to 78 (CI reports 76 violations vs threshold 74) (#19571)
- bump BASH32_COMPAT_THRESHOLD 74→78 — CI shows 76 violations post-GH#19531 merge (#19540)

## [3.8.65] - 2026-04-17

### Changed

- skip consolidation when in-flight PR resolves parent (#19477)
- adopt opencode upstream prompt patterns into build.txt (#19479)
- Maintenance: update simplification state registry

## [3.8.64] - 2026-04-17

### Added

- cross-check TODO.md historical IDs at allocation (GH#19454) (#19461)

### Changed

- raise claude-opus-4-7 context cap to 250K (align with OpenCode 80% auto-compact) (#19428)
- Maintenance: bump NESTING_DEPTH_THRESHOLD to 289 (GH#19472) (#19475)
- Maintenance: update simplification state registry
- chore: ratchet-down complexity thresholds (#19466)
- Maintenance: update simplification state registry
- Maintenance: sync TODO completion for t2159 and t2160 (#19470)
- Maintenance: update simplification state registry
- Maintenance: t2160 — file pulse-routines cron-extraction bugfix brief (#19467)
- fix(pulse-routines): cron schedule extraction truncates at first space (#19468)
- Maintenance: sync TODO completions (t2156/t2157/t2158) (#19464)
- feat(ci): per-function complexity regression check (#19463)
- feat(aidevops-update-check): detect deployed-script drift, hot-redeploy (#19462)
- Tests: split gh-stub writer into three <100-line helpers (complexity gate) (#19455)
- Maintenance: t2156/t2157/t2158 — file systemic fix briefs (deployment gap, zombie auto-assign, claim-task-id collision) (#19456)
- fix(issue-sync-helper): skip auto-assign when #auto-dispatch present (#19460)
- Maintenance: bump FUNCTION_COMPLEXITY_THRESHOLD 28→31 (GH#19452 drift) (#19457)
- Maintenance: update simplification state registry
- add cross-runner advisory lock for consolidation dispatch (Phase B) (#19450)
- Maintenance: update simplification state registry
- Maintenance: mark t2006 complete (pr:#18540) — work already merged 2026-04-13 (#19446)
- Maintenance: mark t2153 complete (pr:#19429) (#19437)
- Maintenance: bump NESTING_DEPTH_THRESHOLD 283→288 (GH#19430) (#19439)
- fix(dispatch-dedup-stale): age-floor guard prevents stale recovery on fresh issues (#19429)
- Maintenance: ratchet-down complexity thresholds (GH#19423) (#19425)
- Maintenance: update simplification state registry
- Maintenance: bump NESTING_DEPTH_THRESHOLD to 288 for GH#19419 (#19421)
- Maintenance: update simplification state registry
- Maintenance: ratchet down NESTING_DEPTH_THRESHOLD 288→283 (GH#19412) (#19418)
- Maintenance: add t2151 (Phase B) + t2152 (initial-label investigation) follow-up briefs (#19416)
- Maintenance: mark t2144 complete (pr:#19411)
- fix consolidation-task cascade (filter regex + backfill guard + grace window) (#19411)
- Maintenance: update simplification state registry
- Maintenance: bump NESTING_DEPTH_THRESHOLD to 288 (GH#19405) (#19409)
- Maintenance: ratchet-down BASH32_COMPAT_THRESHOLD 78→74 (GH#19397) (#19408)
- Maintenance: update simplification state registry

### Fixed

- fix SC2002 shellcheck violations in test-stale-recovery-escalation.sh (#19449)
- bump BASH32_COMPAT_THRESHOLD 74→78 (GH#19423 post-merge correction) (#19426)

## [3.8.63] - 2026-04-16

### Changed

- fix agent-discovery TypeError crashing all agent deployment (#19402)
- Maintenance: update simplification state registry

### Fixed

- pass display_to_filename to validate_subagent_refs in agent discovery scripts (#19406)

## [3.8.62] - 2026-04-16

### Changed

- Maintenance: ratchet-down complexity thresholds (GH#19395) (#19401)
- Maintenance: update simplification state registry
- tighten pre-dispatch-validators.md (79→75 lines) (#19400)
- tighten shell-style-guide.md + fix scanner thrash root cause (#19398)
- Maintenance: update simplification state registry
- detect + auto-recover stampless origin:interactive claims (#19384)
- bump NESTING_DEPTH_THRESHOLD 283→288 (281 violations, 2 headroom) (#19392)
- Maintenance: update simplification state registry
- Maintenance: ratchet-down NESTING_DEPTH_THRESHOLD 288→283 (GH#19382) (#19386)
- tighten pre-dispatch-validators.md (remove redundant prose) (#19385)
- refactor(pulse-triage): centralize consolidation gate defaults at module top (#19383)
- Maintenance: update simplification state registry
- bump NESTING_DEPTH_THRESHOLD 283→288 (281 violations, 2 headroom) (#19377)
- Maintenance: ratchet down BASH32_COMPAT_THRESHOLD 78→74 (GH#19374) (#19378)
- tighten pre-dispatch-validators.md (82→79 lines) (#19375)
- Maintenance: update simplification state registry
- chore: ratchet-down complexity thresholds (#19369)
- contributor insight pipeline — session-miner upstream issue filing with privacy sanitization (#19372)

### Fixed

- resolve agent basename collisions deterministically (t2149) (#19403)

## [3.8.61] - 2026-04-16

### Changed

- Maintenance: update simplification state registry
- tighten pre-dispatch-validators.md prose (84→82 lines) (#19366)
- add role:contributor guard to repos.json — gate scanners for non-maintainer instances (#19350)
- add role:contributor guard to repos.json — gate scanners for non-maintainer instances (#19361)
- propagate write failures through all domain command generators (#19362)
- Maintenance: update simplification state registry
- simplify null check in _get_min_edit_lag, harden test main-strip (#19360)

### Fixed

- use non-whitespace delimiter in merge-pass field extraction (#19357)

## [3.8.60] - 2026-04-16

### Changed

- memory-pressure-monitor bash 3.2 compat + re-exec guard (#19353)
- bump NESTING_DEPTH_THRESHOLD from 283 to 288 (#19352)
- tighten pre-dispatch-validators.md agent doc (#19354)
- Maintenance: bump BASH32_COMPAT_THRESHOLD 76→80 — absorb pre-existing drift (#19349)
- Maintenance: mark t2142 complete (pr:#19344)
- harden consolidation gate against unset threshold vars (#19344)
- Maintenance: update simplification state registry
- GH#19331: tighten pre-dispatch-validators.md (108→90 lines) (#19340)
- register claude-opus-4-7 as opt-in model (#19325)
- Maintenance: ratchet-down complexity thresholds (GH#19323) (#19328)
- tighten pre-dispatch-validators.md (126→108 lines) (#19326)

### Fixed

- extend guarded BOLD pattern to DIM, RESET, and remove dead code (GH#19269) (#19306)
- use anchored pgrep/pkill pattern and verify PID change on restart (#19327)

## [3.8.59] - 2026-04-16

### Changed

- Maintenance: mark t2141 complete (pr:#19315)
- full-loop-helper merge auto-resolve --admin/--auto mutual exclusion (#19315)
- route claude-proxy and google-proxy through shared response-helpers.mjs (#19320)
- Maintenance: update simplification state registry
- use null-safe iterator in _get_rate_limit_behavior jq filter (#19311)

### Fixed

- guard auto-approve log and counter behind edit exit code (#19318)
- remove ineffective || return 1 from _generate_seo_commands (#19314)
- escape regex dots in task_id_match for grep pattern safety (#19319)
- propagate write failures through full call chain in generate-claude-commands.sh (#19317)
- remove duplicate SSH command and unreachable returns in ssh-key-audit-helper.sh (#19316)
- use exit 0 for jq SKIP in test-circuit-breaker.sh (#19313)
- replace undefined $_arg2 with $2 in sonarcloud-autofix.sh fix command (#19312)

## [3.8.58] - 2026-04-16

### Changed

- Maintenance: mark t2139 complete (pr:#19309)
- review-bot-gate require positive completion signal in bot_has_real_review (#19309)

## [3.8.57] - 2026-04-16

### Changed

- fix(pulse): Bash 3.2 heredoc-in-$() breaks pulse dispatch (#19276)
- add || exit guard to SCRIPT_DIR definitions in 4 scripts (#19305)
- tighten pre-dispatch-validators.md prose (129→126 lines) (#19304)
- tighten shell-style-guide.md prose (135 lines, 15 improvements) (#19303)
- fix(opencode-aidevops): address CodeRabbit security findings from PR #19229 (#19254)
- rename RESET to TEST_RESET in four test harnesses for consistency (#19289)
- Maintenance: update simplification state registry
- consolidate jq calls in _get_rate_limit_behavior into single pass (#19285)
- fix SKIP color and remove unused TEST_YELLOW in 3 test harnesses (#19283)

### Fixed

- convert DIM/RESET to guarded assignments, remove unused BOLD (#19308)
- replace echo -e with printf in test harness logging functions (GH#19271) (#19307)
- bump NESTING_DEPTH_THRESHOLD 281→288 to restore headroom (GH#19288) (#19302)
- use pgrep/pkill for robust pulse restart instead of PID file (#19287)
- make shared-constants.sh sourcing mandatory in agent-sources-helper, coderabbit-cli, sonarcloud-autofix (#19284)
- propagate failures in _generate_seo_commands wrapper (#19281)
- address review bot suggestions from PR #19188 — SKIP color and unused TEST_YELLOW (#19282)
- propagate helper failures in _generate_seo_commands wrapper (#19280)

## [3.8.56] - 2026-04-16

### Changed

- fix(pulse): reconcile_completed_parent_tasks consults sub-issue graph before body regex (#19250)
- add brief and TODO for voice-bridge/normalize-markdown test coverage (#19245)

## [3.8.55] - 2026-04-16

### Changed

- t2135: feat(ci): post-merge brief acceptance criteria verification (#19246)
- plan qlty A-grade file-complexity campaign (6 tasks, 20 smells) (#19228)
- refactor(misc-scripts): decompose voice-bridge/normalize-markdown/tabby-profile-sync (#19238)

### Fixed

- skip parent-task title-fallback hygiene + atomic status:done mutation (t2137) (#19248)

## [3.8.54] - 2026-04-16

### Changed

- protect override labels from worker self-application + plugin import check (#19242)

## [3.8.53] - 2026-04-16

### Changed

- Version bump and maintenance updates

## [3.8.52] - 2026-04-16

### Changed

- fix interactive claims broken by stale-recovery + auto-claim conflation (#19237)
- tighten shell-style-guide.md from 143 to 135 lines (#19240)
- ratchet down NESTING_DEPTH_THRESHOLD 286→281 (actual 279 + 2 buffer) (#19239)
- tighten pre-dispatch-validators.md from 134 to 129 lines (#19221)
- refactor(email-pipeline): decompose email python cluster (#19230)
- refactor(higgsfield): decompose commands/video/common/image into focused modules (#19232)
- decompose doc/agent indexing python cluster into shared modules (#19233)
- Maintenance: update simplification state registry

## [3.8.51] - 2026-04-16

### Changed

- remove redundant backward-compat notes for tier:thinking rename (#19218)
- tighten shell-style-guide.md prose (153 → 143 lines) (#19219)
- fix(ci): linked-issue-check workflow fails with 403 on external contributor PRs (#19208)
- Maintenance: update simplification state registry

### Fixed

- treat NMR as transient when approval marker exists (#19231)
- bump NESTING_DEPTH_THRESHOLD 281→286 to restore headroom (GH#19215) (#19216)

## [3.8.50] - 2026-04-16

### Added

- lock maintainer/worker issues at creation (#19214)

## [3.8.49] - 2026-04-16

### Fixed

- lock issue before posting approval marker to prevent comment injection (#19213)

## [3.8.48] - 2026-04-16

### Fixed

- post approval marker before removing NMR label (#19212)

## [3.8.47] - 2026-04-16

### Added

- auto-close parent-task issues when all children resolved (#19211)
- shell init pattern lint gate (t2053 Phase 2) (#19210)

## [3.8.46] - 2026-04-16

### Added

- auto-close open issues with merged PRs (#19209)

### Changed

- Maintenance: ratchet-down NESTING_DEPTH_THRESHOLD 286 → 281 (GH#19204) (#19207)

## [3.8.45] - 2026-04-16

### Changed

- final Pattern C migration + zero-violation audit (Phase 7c) (#19180)
- migrate Tier 1/2 setup-chain helpers to Pattern A (#19183)
- Maintenance: update simplification state registry
- Maintenance: mark t2125 complete (pr:#19199)
- Maintenance: ratchet FUNCTION_COMPLEXITY_THRESHOLD 29→28 (#19199)

### Fixed

- drop origin:interactive exclusion from CI/conflict/review feedback routing (#19205)

## [3.8.44] - 2026-04-15

### Added

- route CI failures and merge conflicts to issues for worker re-dispatch (#19200)
- t2123 configurable review gate rate-limit behavior per tool and per repo (#19186)

### Changed

- Maintenance: mark t2122 complete (pr:#19181)
- extend Response.json() fix to remaining opencode plugin Bun.serve callers (#19181)
- test harness Pattern C batch 2 (Phase 7b) (#19184)
- BOLD readonly normalization batch 2 (Phase 8b) (#19182)
- Refactor: Pattern C color variable rename in 5 test harnesses (#19188)
- Refactor: t2053.6 eliminate banned readonly + final production audit (Phase 6) (#19187)

### Fixed

- use Response.json() in proxy handlers to avoid Bun _Response type mismatch (#19174)
- replace --limit 1 with --limit 20 + jq local filter in Check 1b and 2 (GH#19140) (#19195)
- bump NESTING_DEPTH_THRESHOLD 279→286 to restore headroom (GH#19086) (#19192)

## [3.8.43] - 2026-04-15

### Changed

- Refactor: t2053.8a BOLD readonly normalization batch 1 (Phase 8a) (#19179)
- Maintenance: update simplification state registry
- Refactor: t2053.8c BOLD readonly normalization batch 3 (Phase 8c) (#19177)
- migrate Tier 4 standalone helpers (Phase 5) (#19176)

### Fixed

- auto-restart pulse after agent deployment (#19185)

## [3.8.42] - 2026-04-15

### Changed

- Maintenance: update simplification state registry

### Fixed

- reset stale-recovery tick counter on auto-approve (#19172)

## [3.8.41] - 2026-04-15

### Changed

- Maintenance: update simplification state registry
- self-healing wrapper enforcement — pulse reconcile + CI gate + sub-issue body backfill (#19098)
- Maintenance: update simplification state registry

### Fixed

- preserve subtask suffix in task-already-committed check (#19171)

## [3.8.40] - 2026-04-15

### Changed

- feat(ci): systemic gh_create_issue / gh_create_pr wrapper enforcement (#19169)
- Maintenance: update simplification state registry

### Fixed

- preserve subtask decimal suffix in blocked-by parsing (#19170)

## [3.8.39] - 2026-04-15

### Added

- add backfill-sub-issues subcommand (t2114) (#19167)

### Changed

- Maintenance: update simplification state registry

### Fixed

- relax kill thresholds to let workers complete (#19168)

## [3.8.38] - 2026-04-15

### Added

- pre-dispatch validator for auto-generated issues (GH#19118) (#19120)
- dispatch throttle on overlapping file footprints (t2117) (#19117)

### Changed

- Maintenance: update simplification state registry
- feat(worker-reliability): plist drift regen + no_work escalation guard + no_activity output preservation (#19159)
- tighten shell-style-guide.md — remove redundant intro, compress prose (145 → 141 lines) (#19157)
- tighten shell-style-guide.md — move Why section to top (149 → 145 lines) (#19155)
- Maintenance: update simplification state registry
- carry forward closed-CONFLICTING PR diff to linked issue (#19144)
- simplification: tighten pre-dispatch-validators.md (136 → 134 lines) (#19153)
- Maintenance: update simplification state registry
- clarify Done When is a single section, not per-file reference (#19150)
- fix review followup — stream downloads, flexible credential regex, single JSON parse, remove redundant Date.now in filenames, cache qlty sarif output (#19149)
- GH#19119: simplification: tighten shell-style-guide.md (153 → 149 lines) (#19141)
- fix review followup — consolidate PR body keyword loops, eliminate separate gh pr view calls, fix stale activity_age reporting (#19148)
- Maintenance: update simplification state registry
- simplify _resolve_scripts_dir comment — one check covers all layouts (#19145)
- Refactor: extract canary failure regex into named local variable (GH#19122) (#19143)
- Maintenance: update simplification state registry
- simplification: tighten shell-style-guide.md (155 → 153 lines) (#19116)
- Maintenance: update simplification state registry
- Maintenance: update simplification state registry
- fix(pulse-merge): update-branch + NMR skip before CONFLICTING-close (#19107)
- fix(task-id-guard): read counter from origin/main tip, not merge-base (#19078)
- tighten shell-style-guide.md — reorder by importance, compress prose (#19101)
- Maintenance: ratchet-down NESTING_DEPTH_THRESHOLD 280 → 279 (GH#19031) (#19104)
- Refactor: tighten brief composition templates — compress prose, collapse escalation list (#19103)
- Maintenance: update simplification state registry

### Fixed

- DB isolation + output-aware check + archival paste fix (#19166)
- buffer stream chunks by newline in mcp prefix strip (#19164)
- populate detailLogPath/detailMaxBytes in quality-hooks ctx (#19162)
- broaden token-spend sed pattern to handle has-used prefix and any time format (GH#19137) (#19151)
- harden bash re-exec guard and advisory dismiss (GH#19125) (#19146)
- pull aidevops worktree fresh before ratchet-check (t2102) (#19108)
- trigger qlty-regression on pull_request.labeled with label-name guards (#19077)

## [3.8.37] - 2026-04-15

### Changed

- enforce signature footer in gh_create_issue and gh_create_pr wrappers (#19102)
- refactor: reduce cmd_add() complexity in worktree-helper.sh (#19095)
- tighten brief.md — fold headless section, compress tier default, drop redundant QR bullet (#19097)
- Maintenance: update simplification state registry
- migrate Tier 3 pulse/worker helpers to Pattern A (Phase 4) (#19090)

## [3.8.35] - 2026-04-15

### Changed

- Maintenance: update simplification state registry

### Fixed

- restore gitignored node_modules in worktrees

## [3.8.34] - 2026-04-15

### Changed

- fix tier:simple default bias — default to tier:standard everywhere (#19059)

### Fixed

- add self-assign to _label_issue_in_review in full-loop-helper (#19060)
- make stale-recovery tick comments visible on GitHub (#19058)

## [3.8.32] - 2026-04-15

### Changed

- Maintenance: update simplification state registry
- Maintenance: t2108 brief + TODO entry for pulse-merge title fallback fix (#19053)

### Fixed

- route orphan worktree removal through trash before delete (#19057)

## [3.8.31] - 2026-04-15

### Added

- harden interactive full-loop with structural issue claim (#19039)

### Changed

- Maintenance: update simplification state registry
- Maintenance: t2105 brief + TODO entry for aidevops issue CLI subcommand wiring (#19043)
- stats-functions decomposition Phase 3 — extract stats-health-dashboard.sh (#19033)
- Maintenance: file t2100 parent + t2101/t2102/t2103 children for #19024 post-mortem
- Refactor: tighten brief composition templates prose (#19027)
- feat(tooling): add static scanner for unguarded Linux/macOS-only command calls (#19023)
- Maintenance: update simplification state registry
- Refactor: reduce qlty smells 39→20 to achieve maintainability A-grade (#19013)
- bump NESTING_DEPTH_THRESHOLD 279→284 to restore headroom (#19020)
- add QLTY_SMELL_THRESHOLD ratchet for multi-language smell count (#18878)
- Maintenance: ratchet down NESTING_DEPTH_THRESHOLD 284→279 (GH#19015) (#19017)
- Maintenance: update simplification state registry
- decompose _create_new_quality_debt_issue into focused helpers (#19011)
- Maintenance: update simplification state registry
- reduce _scan_single_pr complexity by extracting helpers (#19012)
- Maintenance: mark t2099 complete (pr:#19008)
- Maintenance: update simplification state registry
- auto-apply 'good first issue' label to tier:simple issues (#19008)
- fix review-followup scanner to skip empty bot reviews (#19005)
- bump NESTING_DEPTH_THRESHOLD 281→284 to restore headroom (#19006)
- Maintenance: update simplification state registry
- split quality-feedback-helper.sh into focused modules (#19001)
- Maintenance: update simplification state registry
- bump NESTING_DEPTH_THRESHOLD 275→281 to restore headroom (#18996)
- GH#18995: refactor(pulse-prefetch): extract helpers to reduce prefetch_needs_info_replies to 64 lines (#18997)
- Maintenance: update simplification state registry
- t2065: add qlty smell regression gate workflow
- check statusCheckRollup before --admin merge to prevent merging PRs with failing CI (#18968)
- fix(pulse): disk-space pre-check + worktree count cap + daily cleanup routine (#18990)
- Refactor: extract parser and index modules from email_imap_adapter.py to eliminate Qlty total-complexity smell (#18992)
- Maintenance: update simplification state registry
- fix(pulse): reduce cleanup_worktrees timeout 600s→60s (#18991)
- fix(worktree-helper): 10s timeout on git fetch --prune in cleanup (#18989)
- add canary test for pulse-wrapper.sh main() runtime execution (#18982)
- route review feedback from stuck worker PRs to linked issue (#18972)

### Fixed

- link worktree branch names to issue numbers, reuse existing worktrees (#19052)
- use gh pr checks --required to filter required-only checks (GH#19040, t2104) (#19041)
- skip gh issue close on parent-task linked issues (t2099) (#19034)
- resolve 9 of 11 medium+ issues from GH#19013 refactor (#19022)
- keep ANTHROPIC_API_KEY for native CLI fallback + rename provider (#18975)
- exclude signature_not_fetched from systemic clusters (#18999)
- dedup recently-closed simplification-debt issues before re-filing (#18969)
- show full --confidence high|medium|low placeholder in memory-helper store example (#18903)
- prevent cleanup-stage stall on rate-limit exhaustion + reduce full-sweep interval + add pulse health check (#18986)

## [3.8.30] - 2026-04-14

### Changed

- skip expensive prefetch for idle repos — reduce GraphQL consumption ~50% (#18985)
- fail-loud on GraphQL rate-limit exhaustion in pulse prefetch (#18983)

### Fixed

- isolate dispatch_with_dedup in subshell to survive silent abort (GH#18804) (#18825)

## [3.8.29] - 2026-04-14

### Changed

- add linked-issue-check workflow — require issue ref on every PR (#18971)
- add claude-sonnet-4-5 and claude-opus-4-5 to claudecli proxy model list (#18967)

### Fixed

- restore pool_ops_token_utils.py with bug fixes (#18977)
- native CLI auth fallback when pool rate-limited; rename provider to 'Claude CLI' (#18974)
- probe existing proxy before launch — survive hot-reload and non-Bun runtimes (#18973)

## [3.8.28] - 2026-04-14

### Added

- ensure subcommand — auto-upgrade bash in setup + update (GH#18965/t2094) (#18966)

## [3.8.27] - 2026-04-14

### Changed

- fix canary failure cached as permanent triage failure; fix ratchet-down dedup (#18959)
- exempt parent-task/meta issues from large-file simplification gate (#18952)
- fix(post-merge-review-scanner): add NOOP_RE deny-list anchored to terminal position

### Fixed

- dispatch-dedup self-login bypass + worker closed-issue guard + process docs (#18963)

## [3.8.26] - 2026-04-14

### Fixed

- make test-bash-reexec-guard.sh robust to scripts/ layout (GH#18950 follow-up) (#18957)

## [3.8.25] - 2026-04-14

### Changed

- Refactor: extract stale-recovery and PR-evidence into dispatch-dedup modules (GH#18916) (#18955)
- Maintenance: ratchet-down complexity thresholds (GH#18949) (#18953)
- Maintenance: update simplification state registry
- Maintenance: bump NESTING_DEPTH_THRESHOLD 274→279 (GH#18938) (#18942)
- Maintenance: update simplification state registry
- tighten tier-standard.md — merge fallback/done-when sections, 79→62 lines (#18941)
- tighten pulse-sweep.md — compress t2041 read contract, fix tier:reasoning alias bug (439→426 lines) (#18939)
- Maintenance: update simplification state registry
- Maintenance: ratchet-down NESTING_DEPTH_THRESHOLD 279→274 (GH#18928) (#18937)
- tighten brief.md — extract headless resilience detail to tier-standard.md (#18933)
- tighten define.md workflow doc (122→120 lines) (#18932)
- GH#18924: tighten pulse.md — compress intro, merge How-to-Think into Prime Directive, remove redundancy (#18930)
- Maintenance: update simplification state registry
- fix(dispatch-dedup): detect open PRs by body closing-keyword (race on #18779) (#18915)
- rename tier:reasoning to tier:thinking across framework (#18918)
- bump NESTING_DEPTH_THRESHOLD from 272 to 279 (#18920)
- Maintenance: update simplification state registry
- decompose opencode plugin cluster — cursor/proxy.js, ttsr.mjs, provider-auth.mjs, google-proxy.mjs (#18906)
- add `TEST_ROOT` guard clauses to `_write_gh_stub_binary` and `_setup_gh_stub_globals` (#18913)
- Maintenance: update simplification state registry
- fix grammar in ubicloud.md — add 'versions' noun after self-hosted (#18909)
- refactor(claude-proxy): drop Codacy complexity + non-static dispatch findings (#18900)
- restore check_dedup docblock and PID sentinel protocol (GH#4324) (#18902)
- consolidate triple jq calls into single pass in _ff_parse_entry (#18896)
- refactor(claude-proxy): decompose into 6 sibling modules to clear all qlty smells (#18893)
- refactor(t2069): decompose pool_ops.py into per-command modules (#18891)
- decompose _isc_scan_closed_pr_orphans into focused helpers (#18873)
- extract dedup layers, large-file gate, worker launch from pulse-dispatch-core.sh (#18874)
- defensive auto-close sweep for spurious zero-smell re-queue issues (#18890)
- Maintenance: ratchet-down NESTING_DEPTH_THRESHOLD 276→272 (GH#18845) (#18887)
- consolidate email_imap_adapter modules (#18888)
- Maintenance: update simplification state registry
- add qlty new-file smell gate (#18885)
- fix(t2066): local SARIF primary, retuned simplification caps, smell delta (#18886)

### Fixed

- jq null-fallback and single-pass consolidation (GH#18866) (#18905)
- harden jq filter and pgrep patterns in pulse-issue-reconcile.sh (#18910)
- optimize enrichment helpers in pulse-quality-debt.sh (#18911)
- address review bot suggestions from PR #18676 (#18908)
- guard getent empty output in real-home resolvers (#18907)
- apply gemini review fixes to issue-sync-helper.sh enrich helpers (#18897)
- apply review bot suggestions from PR #18708 (#18901)
- fail-CLOSED on comments API error in _is_stale_assignment (GH#18816) (#18894)
- include crash_type in fast-fail state update path (#18895)

## [3.8.24] - 2026-04-14

### Changed

- GH#18830: fix root cause of silent dispatch abort (bash 3.2 NUL parser bug) (#18877)
- Maintenance: update simplification state registry

## [3.8.23] - 2026-04-14

### Added

- detect closed-not-merged PRs with still-open linked issues (#18828)

### Changed

- Refactor: decompose _sweep_shellcheck into focused helpers (GH#18810) (#18849)
- Maintenance: update simplification state registry
- Maintenance: update simplification state registry

### Fixed

- [HOTFIX] oauth-pool third-party detection — namespace tool names (#18860)
- prevent spurious re-queue issues when qlty reports zero smells (#18848)

## [3.8.19] - 2026-04-14

### Changed

- Maintenance: ratchet-down complexity thresholds (func:30→23, nest:272→269) (#18812)

### Fixed

- file-overlap verification before auto-closing conflicting worker PRs (#18820)
- move completed tasks to ## Done instead of in-place [x] marking (#18806)

## [3.8.16] - 2026-04-14

### Fixed

- repair claim flow under set -euo pipefail (GH#18786) (#18793)

## [3.8.14] - 2026-04-14

### Changed

- brief-first issue body inlining — fix Sonnet worker first-pass failures (#18782)

## [3.8.12] - 2026-04-14

### Added

- add --admin/--auto pass-through to cmd_merge (GH#18731) (#18757)

### Changed

- Documentation: tighten cross-runner-coordination reference (GH#18658) (#18758)
- Maintenance: ratchet-down FUNCTION_COMPLEXITY_THRESHOLD 33→30 (GH#18729) (#18755)
- file follow-up brief to complete t2046 Deliverable A audit (#18752)

## [3.8.11] - 2026-04-13

### Changed

- wire interactive-session-helper into worktree-helper, claim-task-id, approval-helper (#18747)
- Maintenance: backfill Ready→Done in TODO.md and add --admin fallback to merge wrapper (#18748)
- Maintenance: mark t2054 complete (pr:#18736)
- GraphQL review-thread resolution filter + diffHunk context + refresh backfill (#18736)
- interactive-session-helper.sh foundation + AI-guidance prompt rule (#18744)

## [3.8.10] - 2026-04-13

### Fixed

- flip to worker-is-triager model — workers decide, humans approve (GH#18538 follow-up) (#18743)

## [3.8.9] - 2026-04-13

### Changed

- fix(pulse-triage) address gemini-code-assist review feedback from PR #18388 (#18628)
- Maintenance: update simplification state registry
- Maintenance: update simplification state registry
- Maintenance: ratchet-down FUNCTION_COMPLEXITY_THRESHOLD 43→33 (#18720)
- Maintenance: update simplification state registry
- Refactor: decompose cmd_enrich() into focused helpers under 100 lines (#18715)
- Refactor: decompose generate_subagent_stub() into focused helper functions (#18717)
- Maintenance: ratchet down FUNCTION_COMPLEXITY_THRESHOLD 46 → 43 (GH#18695) (#18703)
- Maintenance: update simplification state registry
- extract `_read_lock_pid` + `_handle_existing_lock` from acquire_instance_lock (#18701)
- Refactor: split _normalize_unassign_stale into focused helpers (GH#18690) (#18700)

### Fixed

- declare install_brew/install_python locals before setup_prompt (SC2154) (#18742)
- setup.sh readonly GREEN cascade + dep-graph complexity (#18728)
- complete remaining CodeRabbit findings on claude-proxy (#18730)
- bump nesting threshold 266 → 272 (+7 headroom) (#18727)
- strip origin:worker label independently of simplification-debt (#18726)
- address review feedback from PR #18407 — jq null fallback, --arg safety, jq over python3 (#18566)
- address review-followup findings in new-task-helper.sh (#18725)

## [3.8.8] - 2026-04-13

### Changed

- make memory recall mandatory in build.txt + AGENTS.md (#18698)
- remove flock from pulse instance lock — mkdir-only is sufficient (#18688)

## [3.8.7] - 2026-04-13

### Added

- use SYNC_PAT for sync-on-pr-merge push (t2048) (#18677)
- add task-id collision guard commit-msg hook + CI check (#18662)
- parent-task lifecycle hardening — fail-closed guard + PR keyword guard (#18663)
- add characterization safety net for stats-functions decomposition (t2044) (#18611)

### Changed

- Maintenance: update simplification state registry
- Refactor: reduce setup_gh_stub() complexity in test-consolidation-dispatch.sh (#18687)
- Maintenance: update simplification state registry
- simplify shopify agent doc (93→80 lines) (#18673)
- Maintenance: update simplification state registry
- t2038: research decision + t2048 child brief (#18647)
- fix(dispatch) force-dispatch override + portable timeout + label seed + test refactor (#18645)
- remove dead _get_active_claim_meta() with stale index() jq filter (#18638)
- simplify _has_active_claim() jq filter using any() (#18632)
- Documentation: add worker brief improvements for high-reference tasks (GH#18458) (#18625)
- Documentation: add missing triedEmails JSDoc param to handle429Recovery (#18613)

### Fixed

- resolve SUDO_USER home for sudo approve on Linux (#18686)
- widen origin:worker allowlist to include repository owner (#18685)
- gh fail-open on API error/offline + fix cross-ref logic (#18665)
- declare headless origin at pulse-wrapper main() + harden issue-creation sites + cleanup mistagged issues (#18676)
- strip ANSI from worktree pre-creation + detect automation-applied NMR (#18672)
- remove trap with local var in parent-task-keyword-guard.sh (#18664)
- post one-time rebase nudge on interactive CONFLICTING PR (#18651)
- exempt bot-generated review-followup from ever-NMR permanence trap (#18649)
- require closing keyword in Check 3 body match (#18642)
- address Gemini review feedback from PR #18396 (GH#18550) (#18582)
- prevent simplification-state churn in ratchet-down PRs (#18637)
- add refresh-description subcommand to make description refresh truthful (#18631)
- align claude-opus-4-6 maxTokens to 64000 in claude-proxy.mjs (GH#18619) (#18633)
- scan all args for --self-check and --dry-run flags (GH#18614) (#18629)
- gate review-followup issues on human triage (GH#18538) (#18610)
- add jq // fallback operator and remove redundant null checks in pulse-repo-meta.sh and pulse-routines.sh (#18612)
- address gemini-code-assist review findings from PR #18368 (GH#18593) (#18626)

## [3.8.5] - 2026-04-13

### Changed

- Version bump and maintenance updates

## [3.8.3] - 2026-04-13

### Fixed

- t2042 — clean stale gate comments + classify zero-artifact stale-recovery (#18569)

## [3.8.2] - 2026-04-13

### Added

- cost-per-issue circuit breaker (t2007) (#18558)
- schedule post-merge-review-scanner as daily pulse routine (t1993) (#18557)

### Changed

- refactor: split headless-runtime-helper.sh below 2000 LOC simplification gate (#18562)
- Maintenance: mark t1992 complete (pr:#18544)

### Fixed

- bump publish-packages to Node 24 to avoid npm self-replace death (#18574)
- address review bot feedback on dispatch-core and dispatch-engine (#18575)
- replace hardcoded helper paths and non-portable grep in pulse modules (#18576)
- address gemini review findings in pulse-prefetch.sh (GH#18554) (#18578)
- add language specifiers to fenced code blocks in t1990-brief.md (GH#18541) (#18570)
- address Gemini review feedback on claim-task-id _check_duplicate_issue (#18567)
- GH#18542 — prefix build-agent path with .agents/ for consistency (#18564)
- use (.labels // []) null-fallback for all label jq filters (GH#18537) (#18563)
- add origin:interactive exemption to Job 3 (GH#18532) (#18559)

## [3.8.1] - 2026-04-13

### Fixed

- t1992 — preserve multi-line sweep sections + count shellcheck notes (#18544)
- tier label source fix — parse Selected tier line + replace existing tier:* labels (t2012) (#18545)

## [3.8.0] - 2026-04-13

### Added

- wire circuit breaker, canary invalidation, adaptive throttle (t1959) (#18527)

### Fixed

- parse URL from gh issue create instead of invalid --json flag (#18533)
- copy restricted agents verbatim instead of permissive stub (GH#18509) (#18528)

## [3.7.8] - 2026-04-13

### Added

- auto-assign issues from interactive sessions (t2028) (#18500)

### Changed

- Maintenance: mark t2033 complete (pr:#18519 testing:self-assessed) (#18520)
- fix(pulse): enforce mutually-exclusive status labels via helper (#18519)
- Maintenance: mark t2034 complete (pr:#18514 testing:self-assessed)
- file plans for upstream wrapper auto-assign + runtime-debug diagnostic rule (#18518)
- Maintenance: mark t2030 complete (pr:#18512 testing:self-assessed)
- Maintenance: mark t2028 complete (pr:#18500 testing:self-assessed)
- Maintenance: mark t2031 complete (pr:#18505)

### Fixed

- guard session-rename-helper against main/master titles (#18525)
- add GH_TOKEN to Update TODO.md proof-log step (t2034) (#18514)

## [3.7.7] - 2026-04-13

### Changed

- fix(pulse-dep-graph): respect non-dep blocks when auto-unblocking (#18505)

## [3.7.6] - 2026-04-13

### Added

- setup.sh completion sentinel + verify-setup-log.sh + auto-update wiring (#18510)

### Changed

- Maintenance: mark t2032 complete (pr:#18502)
- Maintenance: mark t2029 complete (pr:#18506 testing:runtime-verified)
- scope simplification gate on cited line ranges, not file size alone (#18497)

### Fixed

- make sync-on-pr-merge push failure visible (t2029) (#18506)

## [3.7.5] - 2026-04-13

### Changed

- tighten pulse deterministic merge-pass close-comment wording (GH#17574) (#18502)

## [3.7.4] - 2026-04-13

### Changed

- Maintenance: add brief and TODO entry for init-routines-helper readonly collision (#18487)
- split pulse-simplification.sh state cluster below 2000 LOC gate (#18488)
- file bash 3.2 scanner hardening task (planning only) (#18490)
- fix(pulse-triage): parse JSON output + inline prompt + shape validation (#18491)
- teach /review-issue-pr to do temporal-duplicate, framing, and second-order-effects checks (#18480)
- Maintenance: mark t2018 complete (pr:#18481 testing:self-assessed)

### Fixed

- Job 3 re-runs Job 1 to refresh required CheckRun (#18481)

## [3.7.3] - 2026-04-13

### Added

- stale-recovery escalation after N consecutive cycles (t2008) (#18462)
- implement tier-label dedup via GitHub Action and dispatcher fallback (#18441)
- guard cmd_enrich body writes with sentinel+content-diff gate; add --batch mode to /new-task (#18416)
- canonical stays on main in interactive sessions, no exceptions (#18414)

### Changed

- fix(pulse-triage): surface triage failures — escalation comment + label provisioning (#18476)
- Maintenance: mark t2015 complete (pr:#18474 testing:runtime-verified)
- fix(pulse-dep-graph): parse markdown-formatted blocked-by bodies (#18474)
- cut TRIAGE_MAX_RETRIES default 3→1 to eliminate lock/unlock churn (#18472)
- docs: cross-runner coordination reference doc (#18465)
- feat: add /build-agent slash command and ubicloud hosting agent (#18407)
- Maintenance: mark t1998 complete (pr:#18438) (#18440)
- fix simplification re-eval short-circuit that left #18346 stuck forever (#18438)
- Maintenance: sync TODO.md completion markers for t1962, t1963, t1986 (#18435)
- Maintenance: mark t1981/t1983/t1984/t1985/t1995 complete (#18436)
- Tests: stub-based harness for issue-sync-lib.sh with t1983 regression (#18430)
- post-checkout hook warning when canonical goes off main (#18427)
- feat(claudecli): map OpenCode reasoning level to Claude CLI --effort flag (#18424)
- plan: post-checkout hook to auto-restore main in canonical worktree (#18422)
- parent-task dispatch guard — label survival + #parent tag + dispatch short-circuit (#18419)
- Maintenance: add TODO completion marker for merged PR #18414 (#18417)

### Fixed

- preserve trailing newline and embed OPENCODE_BIN on Linux pulse (#18477)
- add auto-dispatch to _is_protected_label exact-match list (#18469)
- dispatch-dedup audit — add combined label+assignee guard (t1996) (#18446)
- add logging to two silent skip paths in cleanup_worktrees() Pass 2 (#18442)
- sync-todo-to-issues workflow tags issues origin:interactive and assigns human pusher (#18431)
- P0 BSD awk dynamic-regex silently broke add_gh_ref_to_todo on macOS (#18423)

## [3.7.2] - 2026-04-12

### Added

- setup.sh auto-installs privacy guard in every initialized repo (#18373)
- add git pre-push privacy guard for private slug leaks (#18361)

### Changed

- fix(pulse-triage): consolidation flow never creates the promised child issue (#18405)
- chore(ci): add Complexity Analysis to required status checks on main (#18397)
- Phase 10 (FINAL) — quality-debt + ancillary-dispatch, CLEARS 2000-line gate (#18392)
- Phase 9 — extract dispatch-core + dispatch-engine (26 fns, 2,141 lines) (#18390)
- Phase 8 — extract triage cluster (10 fns, 428 lines) (#18388)
- Phase 7 — extract prefetch cluster (26 fns, 1,668 lines) (#18386)
- Phase 6 — extract simplification cluster (1,990 lines, 29 fns, largest) (#18384)
- Phase 5 — extract cleanup + issue-reconcile clusters (#18381)
- Phase 4 — extract pr-gates + merge cycle into pulse-merge.sh (#18379)
- Maintenance: bump complexity threshold 40→43 (post-#18376 Phase 3 hotfix) (#18377)
- Maintenance: mark t1970 complete (pr:#18374)
- Maintenance: mark t1969 complete (pr:#18375)
- Maintenance: mark t1968 complete (pr:#18373)
- fix interactive-claim race — auto-assign + dedup excludes closed (#18374)
- stub-based tests for privacy-guard (caught a latent cache bug) (#18375)
- Phase 3 — extract operational plumbing (capacity, logging, watchdog, capacity-alloc) (#18376)
- Phase 2 — extract 4 leaves with fan-in (queue-governor, nmr-approval, dep-graph, fast-fail) (#18368)
- Phase 1 — extract 5 leaf modules (model-routing, instance-lock, meta-parse, repo-meta, routines) (#18366)
- Phase 0 safety net — characterization tests, --self-check, --dry-run (#18362)
- Maintenance: mark t1965 complete (pr:#18361)
- Maintenance: mark t1964 complete (pr:#18360)
- Maintenance: add r005 mirror-sync routine — daily sync of private mirror repos from their upstream sources
- Maintenance: mark t1961 complete (pr:#18355)
- skip pulse dispatch for interactive-session issues (#18353)
- Maintenance: mark complete — shipped in #18351 (v3.7.1)

### Fixed

- copy all session-miner *.py modules to workspace (#18409)
- exact tNNN-prefix dedup instead of fuzzy substring search (#18396)
- remove context betas, prevent infinite 429 rotation (#18363)
- skip fake-metric update when core tracking issue already exists (#18360)

## [3.7.1] - 2026-04-12

### Changed

- Maintenance: add TODO entry and brief for 1M context window fix

### Fixed

- enable 1M context window for Claude models in opencode-aidevops plugin (#18351)

## [3.7.0] - 2026-04-12

### Changed

- Claude CLI transport proxy for OpenCode plugin (#18343)
- fix model definitions — image modality, names, attachments (#18345)

## [3.6.244] - 2026-04-12

### Added

- register anthropic and claudecli models via config-hook

### Changed

- Maintenance: changelog for 3.6.244

## [3.6.244] - 2026-04-12

### Added

- register anthropic and claudecli models via config-hook

## [3.6.243] - 2026-04-12

### Changed

- Version bump and maintenance updates

## [3.6.243] - 2026-04-12

### Fixed

- thinking

## [3.6.242] - 2026-04-11

### Added

- external PR gate — require linked issue + crypto approval (t1958) (#18339)

### Changed

- complete MCP audit — all installed MCPs in plugin registry, DEPRECATED_MCPS cleanup, fix sentry secret, update docs (#18335)
- origin:interactive implies maintainer approval — skip auto-close and gate (#18334)
- add shopify-dev-mcp to plugin registry and AGENT_MCP_TOOLS (#18331)
- register shopify-dev-mcp in generate-runtime-config.sh so setup/update installs it (#18329)
- add flock deadlock detection, self-recovery, and health alerting (#18328)
- chore: ratchet-down NESTING_DEPTH_THRESHOLD 254→249 (GH#18326) (#18327)
- add shopify-dev-mcp agent, fix MCP audit gaps, add permission-migration TODOs (#18311)

## [3.6.241] - 2026-04-11

### Changed

- harden maintainer gate — admin-only simplification, authorship exemption, origin:worker protection
- fix FD 9 inheritance — replace ineffective python3 fcntl with bash 9>&- (#18309)
- Documentation: tighten .agents/content/yt-dlp.md slash command doc (75→66 lines) (#18315)
- tighten postflight-loop.md agent doc (50→40 lines) (#18323)
- fix: add throughput check to sweep stall detection (GH#18286) (#18325)
- tighten agent doc budget-analysis.md (52 → 25 lines) (#18320)
- bump NESTING_DEPTH_THRESHOLD to 254 to restore headroom (#18321)
- tighten agent doc /security-review (52 → 50 lines) (#18322)
- tighten list-verify.md (51 → 40 lines) (#18324)
- tighten agent doc /optimize-tiers (.agents/workflows/optimize-tiers.md, 121 → 100 lines) (#18193)
- tighten seo-audit.md from 98 to 84 lines (#18228)
- tighten marketing-sales agent doc (#18235)
- tighten runners-check.md active workers comment (#18237)
- tighten .agents/workflows/remember.md (77→64 lines) (#18245)
- Documentation: tighten dashboard.md workflow doc (78→63 lines) (#18246)
- Documentation: tighten .agents/workflows/skills.md (80→70 lines) (#18248)
- Maintenance: tighten aidevops.md agent doc (92→75 lines) (#18252)
- Documentation: tighten youtube-research.md agent doc (145→138 lines) (#18253)
- tighten save-todo.md workflow doc (118→105 lines) (#18256)
- Documentation: tighten agent doc legal.md prose and structure (#18259)
- Documentation: tighten aidevops-business.md agent doc (#18261)
- Documentation: tighten automate agent doc prose (#18262)
- Documentation: tighten log-issue-aidevops.md prose (146→138 lines) (#18263)
- Documentation: tighten SEO main agent doc prose (#18265)
- Documentation: tighten autoagent.md workflow doc prose (#18266)
- tighten add-skill.md workflow doc (74→70 lines) (#18281)
- tighten research.md agent doc (74→45 lines) (#18312)
- tighten health.md — merge disclaimer, compress pre-flight, remove duplicate notice (#18305)
- tighten youtube-setup.md agent doc (101→94 lines) (#18299)
- tighten cross-review.md — remove redundant parse step, flatten usage block (#18302)
- Documentation: tighten worktree-cleanup.md — promote --delete-branch warning, inline key rules (#18304)
- ratchet-down NESTING_DEPTH_THRESHOLD 254 → 249 (#18307)
- Maintenance: ratchet down NESTING_DEPTH_THRESHOLD 254→249 (GH#18293) (#18308)
- Documentation: tighten memory-log.md workflow doc (61→52 lines) (#18301)
- tighten venv-health.md — remove redundant opening sentence, format discovery note as blockquote (#18300)
- tighten email-inbox.md — reorder security first, merge after-check prose (#18298)
- tighten email-outreach.md — merge Options+Examples, add status command (#18297)
- tighten list-todo.md — compress prose, preserve all rules (#18296)

## [3.6.238] - 2026-04-11

### Added

- claude alias with --dangerously-skip-permissions + idempotent alias block updates (#18114)

### Fixed

- setup.sh deploys slash commands to all installed runtimes (GH#18106) (#18109)

## [3.6.236] - 2026-04-11

### Added

- main-agent slash commands across 14 AI clients with aidevops- prefix (#18096)

### Changed

- Maintenance: drop t15473 TODO — scripts/commands reorg not needed (#18100)
- restore nesting threshold headroom (#18087)

### Fixed

- restrict GH#NNN auto-close to PR title and add dedup guard on closing comments (#18102)
- detect billing outage failures in gh-failure-miner (#18095)

## [3.6.229] - 2026-04-10

### Fixed

- merge custom routing table with default for complete tier coverage (#18055)

## [3.6.228] - 2026-04-10

### Fixed

- optimize model resolution for performance and Bash 3.2 compat (#18053)

## [3.6.227] - 2026-04-10

### Fixed

- resolve model tier shorthands to FQIDs at deploy time (GH#18043) (#18051)

## [3.6.224] - 2026-04-10

### Changed

- chore: ratchet-down NESTING_DEPTH_THRESHOLD 252→247 (#18029)

## [3.6.222] - 2026-04-09

### Changed

- fix npm install 630MB peer deps on every update (#18019)
- ratchet down nesting depth threshold (#18017)

## [3.6.221] - 2026-04-09

### Changed

- restore nesting threshold headroom (#18014)

### Fixed

- prevent large-file gate from blocking issues targeting non-code files (GH#17897) (#18015)

## [3.6.220] - 2026-04-09

### Changed

- remove BSD grep noise from headless runtime diagnostics (#18012)

## [3.6.218] - 2026-04-09

### Fixed

- exclude review feedback, tier escalation, and quality-debt auto-gen from consolidation filter (#17988)

## [3.6.217] - 2026-04-09

### Fixed

- exclude audit-trail/history files from simplification scanner (#17987)

## [3.6.214] - 2026-04-09

### Added

- improve simplification gate — exclude non-code files, create debt issues immediately, auto-clear stale labels (#17980)

## [3.6.213] - 2026-04-09

### Added

- add architectural protection for routines repo + port fixes from closed PRs (#17977)

## [3.6.211] - 2026-04-09

### Fixed

- centralise known bots list so workflow stays current via aidevops update (#17971)

## [3.6.210] - 2026-04-09

### Added

- generate OS-specific routine descriptions with cross-platform footnote (#17970)

## [3.6.209] - 2026-04-09

### Added

- seed core routine descriptions and tracking issues into routines repo (#17967)

### Fixed

- exclude pulse gate comments from consolidation filter (self-referential loop) (#17968)

## [3.6.207] - 2026-04-09

### Added

- add unknown bot detection workflow with auto-issue creation (#17966)

## [3.6.206] - 2026-04-09

### Fixed

- add consolidation label re-evaluation pass before early fill floor (#17964)
- bump nesting depth threshold to 256 to resolve CI proximity warning (#17963)

## [3.6.205] - 2026-04-09

### Fixed

- tighten consolidation filter to exclude operational comments + auto-clear stale labels (#17962)

## [3.6.204] - 2026-04-09

### Added

- run routines repo setup in non-interactive mode (aidevops update) (#17960)

### Changed

- convert if/else to && || chain in run-tests.sh (#17951)

### Fixed

- update dispatch comment jq patterns for ops marker compatibility (#17961)
- redirect progress echo to stderr in _check_ext_files (#17925)
- verify mergedAt before closing issues against PRs (GH#17871) (#17931)

## [3.6.202] - 2026-04-08

### Changed

- Maintenance: add bot noise and operational comment skip rules (#8c, #8d) (#17957)

## [3.6.199] - 2026-04-08

### Fixed

- quote script_path and log paths in systemd unit generation (#17948)

## [3.6.197] - 2026-04-08

### Added

- deterministic blocked-by resolution via cached dependency graph (t1935) (#17953)

### Changed

- fix: remove 2>/dev/null from framework-routing-helper call in cch-canary.sh (#17949)

### Fixed

- check-generator-rules.py argument validation and regex robustness (#17950)

## [3.6.193] - 2026-04-08

### Changed

- Maintenance: add provenance skip markers for quality-debt issues (rule #8b) (#17940)

## [3.6.192] - 2026-04-08

### Fixed

- improve readability of exit code check in test-runtime-registry.sh (#17939)
- simplify --days condition in seo-export-helper.sh for readability (#17938)
- use if blocks for format conversion clarity (#17937)

## [3.6.189] - 2026-04-08

### Changed

- Maintenance: add rule #8a to skip signature footers when reading GH threads (#17932)

## [3.6.187] - 2026-04-08

### Changed

- skip approval gate for maintainer-authored quality-debt issues (#17922)

### Fixed

- memory-pressure-monitor.sh review feedback from PR #17858 (#17926)

## [3.6.185] - 2026-04-08

### Fixed

- improve pulse throughput — reduce dedup TTL, clear dedup on crash, dispatch-first ordering (#17921)
- restore anti-pattern detail and fix routine_id fallback in AGENTS.md (#17919)

## [3.6.184] - 2026-04-08

### Added

- crash-type-aware tier escalation, issue consolidation, and large-file simplification gate (#17918)

## [3.6.182] - 2026-04-08

### Changed

- auto-set assignee on crypto approval (#17888)
- harden _detect_opencode_server curl logic and plugin symlink cleanup (#17884)

### Fixed

- Bash 3.2 compat — replace ${var^} with tr in oauth-pool-helper.sh (#17885)

## [3.6.180] - 2026-04-08

### Security

- protect needs-maintainer-review label on PRs (mirror issue protection) (#17877)

## [3.6.178] - 2026-04-08

### Changed

- remove unauthorized external code, revert unreviewed PRs, harden merge gates (#17868)

## [3.6.168] - 2026-04-08

### Changed

- reduce function complexity in oauth-pool.mjs (#17818)
- Maintenance: update simplification state registry
- feat: aidevops init-routines (#17814)

### Fixed

- _is_task_committed_to_main subject-only matching for tNNN/GH#NNN patterns (#17802)

## [3.6.158] - 2026-04-08

### Changed

- Documentation: add objective tier assignment validation to prevent mis-tagging (t1921) (#17765)
- Refactor: consolidate model tier mappings to single source of truth (#17763)
- Maintenance: update simplification state registry
- Maintenance: tighten pageindex.md agent doc (153→107 lines) (#17760)
- Maintenance: update simplification state registry

## [3.6.157] - 2026-04-07

### Changed

- add task for silent gh auth failure in approval-helper.sh (GH#17754)
- add task for resolve_api_key subshell export bug
- Maintenance: update simplification state registry
- Refactor: decompose opencode-aidevops plugin into focused modules (t1914) (#17752)

### Fixed

- restrict Closes/Fixes keywords to code fix commits only

## [3.6.156] - 2026-04-07

### Added

- add 'diagnose' command to model-accounts-pool (GH#17746) (#17756)
- add PageIndex vectorless RAG skill doc (#17753)

### Changed

- Maintenance: update simplification state registry

## [3.6.155] - 2026-04-07

### Added

- reasoning-tier enrichment for failed worker issues (#17748)

### Changed

- add triage dedup guard to prevent repeated lock/unlock cycles (#17751)
- check open PRs in dedup Layer 4 — prevent duplicate dispatch (#17749)
- Maintenance: update simplification state registry
- Refactor: decompose compute_file_metrics() into language-specific helpers (GH#17713) (#17747)
- Refactor: extract verbose output condition helper (#17745)
- Maintenance: update simplification state registry
- add qlty verification to simplification brief template and code-simplifier (#17741)
- Maintenance: update simplification state registry
- fix: Linux scheduler dual-execution and systemd migration completion (#17730)
- include PID 1 in OpenCode runtime detection (#17736)
- Performance: replace while-read loop with awk in _read_brief_what_section (#17737)
- Maintenance: update simplification state registry

### Fixed

- dedup checks commit messages, not PR bodies — closes go in commits (#17750)
- remove blocking sleep and fix gh pr view exit code in merge pass (#17744)
- add systemd install mode to routine helper (#17739)
- replace $(uname) with $OSTYPE in file_size_bytes for efficiency (#17732)
- tighten conversation-end loop scan wording (#17738)

## [3.6.152] - 2026-04-07

### Changed

- fix remaining TZ=UTC-missing date calls across 3 scripts (#17716)
- Maintenance: update simplification state registry

## [3.6.151] - 2026-04-07

### Changed

- fix _ts_to_epoch() timezone bug causing premature stale recovery (#17710)
- extend complexity scanner to Qlty-scored file types (.py/.mjs/.js/.ts) (#17708)
- remove approval gate from pulse triage dispatch (#17709)
- add briefs and plan for triage gate fix and Linux scheduler completion
- Maintenance: update simplification state registry
- Maintenance: add t1909 brief and TODO entry for install-systemd subcommand (ref:GH#17692)
- CI: add HOL skill-publish validate workflow (#17671)
- Maintenance: update simplification state registry

### Fixed

- avoid stat output pollution and suppress wal pragma output (#17685)

## [3.6.139] - 2026-04-07

### Added

- cascade tier dispatch with tier:simple/standard/reasoning (#17645)
- restore daily full codebase review via CodeRabbit (GH#17640) (#17641)

## [3.6.138] - 2026-04-07

### Changed

- fix ESCAPE clause — 4 backslashes produced 2-char string, SQLite requires 1 (#17638)

### Fixed

- remove claim guard — mismatched comment format rejected every dispatch

## [3.6.136] - 2026-04-07

### Changed

- register colormind-helper.sh in simplification state (depth already 4 ≤ 8) (#17634)

### Fixed

- pass gate immediately when review bot is rate-limited — feedback caught by daily sweeps
- skip nesting-only violations in complexity scan issue creation (GH#17632) (#17633)

## [3.6.135] - 2026-04-07

### Fixed

- reduce review-bot grace period from 4h to 30min — rate-limited bot blocked entire merge pipeline
- eliminate signature gate false positives from TUI flash (#17631)

## [3.6.134] - 2026-04-06

### Added

- claim release on worker failure + lifecycle logging

## [3.6.132] - 2026-04-06

### Fixed

- unpin opencode — root cause was SQLite contention, not version-specific

## [3.6.131] - 2026-04-06

### Added

- merge worker session DB back to shared DB after completion

### Changed

- fix full-loop-helper.sh review feedback from PR #17547 (#17625)

## [3.6.130] - 2026-04-06

### Fixed

- isolate worker SQLite DBs — shared DB with busy_timeout=0 caused silent stream death

## [3.6.129] - 2026-04-06

### Fixed

- pin opencode to 1.3.15 — 1.3.16 stalls mid-session with silent stream death

## [3.6.128] - 2026-04-06

### Fixed

- headless contract V5 — warn workers about 300s watchdog, max 240s waits

## [3.6.127] - 2026-04-06

### Fixed

- version guard runs every dispatch, not just on canary cache miss

## [3.6.126] - 2026-04-06

### Fixed

- watchdog monitors continuously — previous design exited after first activity, missing mid-session stalls

## [3.6.125] - 2026-04-06

### Fixed

- version guard reinstalls pinned opencode if drifted — unknown process keeps upgrading to 1.3.17
- move canary before dispatch claim — failure no longer triggers backoff or blocks re-dispatch

## [3.6.124] - 2026-04-06

### Changed

- broaden signature gate regex to match all footer variable patterns (#17623)

### Fixed

- canary uses sonnet (verified working) — haiku model name not in 1.3.16 registry

## [3.6.123] - 2026-04-06

### Changed

- add canary smoke test and two-phase activity watchdog (#17624)
- reduce nesting depth in cch-traffic-monitor.sh (#17619)
- tighten completion detection in JSON parsing block (#17621)

### Fixed

- update safety-policy-check to find deny rules in extracted Python file (#17622)

## [3.6.122] - 2026-04-06

### Changed

- Maintenance: bump opencode pin from 1.3.15 to 1.3.16 — bisect confirmed safe
- parse OpenCode token aggregates via pipe-delimited stats (#17612)
- Refactor: extract command defs and Python settings to reduce nesting depth (GH#17559) (#17620)
- fix now_ms fallback and add WAL cleanup trap in opencode-db-archive (#17618)
- propagate domain generator failures in orchestrator (#17614)
- use DISPATCH_COMMENT_MAX_AGE as default for STALE_ASSIGNMENT_THRESHOLD_SECONDS (#17613)
- deduplicate oauth endpoint constants in pool ops (#17617)
- use github.paginate for full comment dedup in nmr-hold-comment (#17610)
- harden tabby fix-shell YAML patching without PyYAML (#17615)
- pin opencode-ai to 1.3.15 to prevent auto-upgrade to broken 1.3.17 (#17609)

### Fixed

- restore provider delegation for CLI helpers (GH#17600) (#17611)

## [3.6.119] - 2026-04-06

### Changed

- align stale assignment TTL with dispatch comment TTL (1800s) (#17572)
- reduce nesting depth in oauth-pool-helper.sh from 109 to 3 (#17570)
- add code scaffolding requirement to plans.md Save Flow
- fix profile-readme session hours hardcoded to ~/Git/aidevops (#17568)
- Refactor: reduce nesting depth in generate-claude-commands.sh (#17569)
- decompose cmd_fix_shell() into focused helpers (#17555)

### Fixed

- track logind sessions by ID to avoid hostname matching (GH#17551) (#17566)

## [3.6.118] - 2026-04-06

### Fixed

- prevent set -e from aborting release on git ls-remote exit code 2 (#17554)

## [3.6.100] - 2026-04-05

### Fixed

- add exact close-reference verification to has_open_pr() (#17435)
- consistent persistent label, LLM stall detection, test suite, release preflight (t1890) (#17437)
- remove time_total from curl write-out to fix http_code extraction (#17439)

## [3.6.98] - 2026-04-05

### Changed

- preserve local script edits + fix OpenCode relative paths (#17421)
- Maintenance: fix version references to 3.6.97 (missed in #17425) (#17426)

### Fixed

- parse probe_provider HTTP code trailer (GH#17427) (#17430)
- improve detect_default_shell() with reliable system query (#17424)
- add zero-debt guard to _complexity_llm_sweep_due (GH#17422) (#17423)
- add PID file guard to scan mode to prevent multiple instances (GH#17415) (#17418)
- warn when deployed scripts differ from canonical source (GH#17414) (#17417)
- add PID file guard to daemon mode to prevent multiple instances (GH#17408) (#17416)

## [3.6.97] - 2026-04-05

### Fixed

- `_complexity_llm_sweep_due` in `pulse-wrapper.sh` missing zero-debt guard; when debt is zero, `0 < 0 = false` falls through to "sweep due" triggering false-positive stall issues (GH#17422)

## [3.6.94] - 2026-04-05

### Fixed

- `_install_pulse_systemd` missing PATH env var causes workers to exit 127 on Linux; add `Environment=PATH=...` to service unit matching launchd plist behavior (GH#17405)
- `_install_pulse_systemd` timer stalls on mid-session install due to missing `OnActiveSec`; add `OnActiveSec=10s` to bootstrap first service run (GH#17405)

## [3.6.89] - 2026-04-04

### Fixed

- `aidevops update` now regenerates existing systemd service files in non-interactive mode — fixes broken service files from GH#17369 not reaching users via `aidevops update` (#17382)

## [3.5.840] - 2026-04-03

### Changed

- Tightened glm-ocr.md agent doc (79→75 lines) — moved limitations to Quick Reference, consolidated bash blocks, replaced model comparison table with decision table (#16324)

## [3.5.829] - 2026-04-03

### Changed

- Tightened hyperdrive-patterns.md agent doc (125→115 lines) — consolidated redundant SET examples in Connection Pooling section; zero information loss (#16441)

## [3.5.827] - 2026-04-03

### Changed

- Tightened git-security.md agent doc (114→108 lines) — removed redundant frontmatter defaults, out-of-scope auth examples, and redundant tool mention; zero information loss (#16442)

## [3.5.784] - 2026-04-03

### Changed

- Tightened toon.md agent doc (94→80 lines) — removed redundant Format Examples section (inline in Quick Reference), renamed section header; zero information loss (#15872)

## [3.5.694] - 2026-04-02

### Changed

- Tightened github-actions.md agent doc (79→69 lines) — removed redundant Workflow Behavior section, condensed CODACY_API_TOKEN setup steps (#15899)

## [3.5.636] - 2026-04-02

### Fixed

- Fix broken chapter links in production-video.md index — corrected 9 paths from `video/NN-*.md` to `production-video-NN-*.md` (#15684)

## [3.5.635] - 2026-04-02

### Changed

- Tightened changelog.md agent doc (66→59 lines) — compressed prose, merged redundant sections, zero content loss (#15672)

## [3.5.596] - 2026-04-02

### Changed

- plan Linux/WSL2 platform support — brief and TODO entry

### Fixed

- make changelog entries self-explanatory by resolving task IDs (#15392)

## [3.5.555] - 2026-04-01

### Changed

- Maintenance: claim t1734
- Maintenance: claim t1733

### Fixed

- resilient token rotation — wait instead of crashing on exhaustion (#15183)

## [3.5.554] - 2026-04-01

### Changed

- Maintenance: claim t1732
- Maintenance: claim t1731

### Fixed

- bypass broken select subprocess for model selection (#15181)

## [3.5.553] - 2026-04-01

### Changed

- Maintenance: claim t1730
- Maintenance: claim t1729
- Maintenance: claim t1728
- Maintenance: claim t1727
- Maintenance: claim t1726
- Maintenance: claim t1725
- Maintenance: claim t1724
- Maintenance: claim t1723
- Maintenance: claim t1722
- Maintenance: claim t1721
- Maintenance: claim t1720
- Maintenance: claim t1719
- Maintenance: claim t1718
- Maintenance: claim t1717
- Maintenance: claim t1716
- Maintenance: claim t1715

### Fixed

- isolate supervisor backoff from worker dispatch (#15167)

## [3.5.552] - 2026-04-01

### Fixed

- activity watchdog exit code race condition (#15120)

## [3.5.551] - 2026-04-01

### Fixed

- isolate headless worker auth via XDG_DATA_HOME (#15114)

## [3.5.550] - 2026-04-01

### Fixed

- stop false provider backoff from local/worker failures (#15108)

## [3.5.549] - 2026-04-01

### Fixed

- stop headless workers from rotating shared OAuth token (#15099)

## [3.5.548] - 2026-04-01

### Fixed

- normalize expired cooldowns in MJS inject functions (#15098)

## [3.5.547] - 2026-04-01

### Fixed

- pre-dispatch backoff check — don't launch workers on dead providers (#15097)
- align output format fields with mission-orchestrator expectations (#14863)

## [3.5.546] - 2026-04-01

### Fixed

- detect and kill stalled workers on rate-limited providers (#15086)

## [3.5.545] - 2026-04-01

### Added

- deterministic merge pass — auto-merge ready PRs every cycle (#15080)

## [3.5.544] - 2026-04-01

### Changed

- Maintenance: claim t1714
- Documentation: tighten wrangler-patterns.md — remove duplication with sibling files (#13672)
- Documentation: tighten cloudron-server-ops-skill.md (142→118 lines, GH#13704) (#13716)
- Documentation: tighten revenuecat.md agent doc (158 → 152 lines) (#13748)
- Documentation: tighten concurrency.md agent doc (221 -> 169 lines) (#13749)
- Documentation: tighten feature-slicing migration.md (159→148 lines, regression fix) (#13761)
- Documentation: tighten drizzle.md (132→122 lines) (#13770)
- Documentation: tighten cro-chapter-25.md — remove structural noise and redundant prose (#13863)
- Documentation: tighten meta-ads-foundations-algorithm.md — remove structural noise (#13898)
- Documentation: tighten CRO chapter 02 — compress prose, preserve all knowledge (#13966)
- Documentation: tighten video-higgsfield-ui.md (188→158 lines) — remove redundant CLI Options table, compress prompt tips and prose (#14049)
- Documentation: tighten hexagonal.md 181→160 lines — flatten mermaid nesting, compress code blocks, remove redundant path comments (GH#14040) (#14061)
- Documentation: tighten playwright-emulation.md (175→153 lines) — merge config blocks, consolidate touch into options, remove redundant multi-device recipe (#14062)
- Documentation: tighten security.md (106→80 lines, 25% reduction) (#14086)
- Documentation: tighten agent-browser.md (170→161 lines) — merge Sessions+Wait sections, fold iOS env vars into code block, move License to Quick Reference (#14115)
- Documentation: tighten hashline-edit-format.md (139→135 lines, zero knowledge loss) (#14127)
- Documentation: tighten research.md (113→106 lines) — clarify section semantics, compact sufficiency test (#14159)
- Documentation: tighten sandbox-patterns.md — remove structural noise, preserve all knowledge (#14161)
- Documentation: tighten serper.md (114→101 lines) — DRY curl headers, reorder by importance (#14188)
- Documentation: tighten turborepo.md (137→122 lines) (#14205)
- Maintenance: tighten bash-compat.md agent doc (105→77 lines) (#14221)
- Documentation: tighten axe-cli.md (114→102 lines) — merge buttons into keyboard section, compress code comments, remove redundant Quick Reference lines (#14266)
- Documentation: tighten smart-placement.md (90→79 lines) and deduplicate gotchas (87→72 lines) (#14301)
- Documentation: tighten hyperdrive-patterns.md — remove structural noise, preserve all knowledge (#14376)
- Documentation: tighten r2-gotchas.md — remove structural noise, merge common errors into sections (94→82 lines) (#14377)
- Documentation: tighten budget-analysis.md — remove structural noise, compress prose (63→50 lines) (#14396)
- Documentation: tighten pages-functions.md — compress prose, fix See Also links (57→49 lines) (#14432)
- Refactor: split _install_pulse_launchd into focused subfunctions (#14493)
- Documentation: tighten extraction-workflow.md prose without knowledge loss (#14506)
- Documentation: tighten es2016-es2017.md reference doc (#14508)
- Documentation: tighten Stagehand benchmark scripts agent doc (#14537)
- Documentation: tighten Amazon SES provider guide (GH#14007) (#14540)
- Documentation: tighten model-routing.md (135→111 lines, zero info loss) (#14555)
- Documentation: tighten services.md prose (7.6% byte reduction, zero knowledge loss) (#14556)
- Documentation: tighten app-dev-testing.md agent doc (131→115 lines) (#14563)
- Documentation: tighten ahrefs integration quick reference (#14568)
- Documentation: tighten email sequences framework agent doc (#14569)
- Documentation: tighten toon.md - remove redundant description line (#14583)
- Documentation: tighten durable-objects.md and fix broken internal links (#14584)
- Maintenance: tighten agent doc legal.md (128→86 lines) (#14597)
- Maintenance: merge cheatsheet-queries.md into queries.md, remove duplicate (#14600)
- Documentation: tighten LinkedIn Content Subagent agent doc (#14640)
- Documentation: tighten api-shield-patterns.md (127→101 lines) (#14641)
- Documentation: tighten browser-benchmark.md (125 → 86 lines) (#14667)
- Maintenance: tighten agent sources doc (#14684)
- Maintenance: tighten conversation starter prompt flow (#14689)
- Documentation: tighten mutations cheatsheet (65→56 lines) (#14691)
- Maintenance: tighten campaign launch checklist (#14699)

### Fixed

- add session-level account affinity to prevent cross-session token overwrites (t1714) (#15079)
- address PR #14278 review feedback on maintainer-gate.yml (#14443)
- handle missing paths during setup backup rotation (#14632)

## [3.5.543] - 2026-04-01

### Changed

- Maintenance: bump version to 3.5.542
- Maintenance: tighten content/editor.md agent doc (GH#14243) (#15064)

## [3.5.541] - 2026-04-01

### Changed

- Maintenance: add Claude CLI alignment comments to oauth-pool-helper.sh (#15063)

## [3.5.540] - 2026-04-01

### Changed

- Maintenance: update simplification state

### Fixed

- break orphaned-assignment deadlock and fix silent prefetch failures (GH#15060) (#15058)

## [3.5.539] - 2026-04-01

### Changed

- Maintenance: claim t1713
- Documentation: tighten agent doc Git Worktree Workflow (#14816)
- Maintenance: claim t1712
- Documentation: tighten security-deps command doc (GH#14991)
- Documentation: tighten memory-audit.md command doc (52→32 lines)
- Documentation: tighten email-design-test.md (110 → 53 lines)
- Documentation: tighten glm-ocr.md agent doc (GH#14181)
- Maintenance: tighten Cloudflare Zaraz agent doc (110→102 lines)
- Documentation: tighten xcodebuild-mcp.md agent doc
- Documentation: tighten cold-outreach.md agent doc
- Documentation: tighten feature.md agent doc (112->80 lines, 11% byte reduction)
- Documentation: tighten self-improvement.md agent doc (GH#14450)
- Documentation: tighten landing page structure framework (GH#14845)
- Documentation: tighten GEO strategy guidance (GH#14842)
- Documentation: clarify skill-scanner security override (GH#14833)
- Documentation: tighten skill-scanner agent doc (GH#14833)
- Documentation: tighten api-integrations.md — fix broken links, consolidate redundant columns
- Documentation: tighten ddos-gotchas.md (116 -> 94 lines, 8% byte reduction)
- Documentation: tighten dspyground.md agent doc (116 → 105 lines)
- Documentation: tighten workers-ai.md (116 -> 15 lines, 87% reduction)
- Documentation: tighten youtube-script.md command doc (61→49 lines)
- Maintenance: record Playwright doc simplification state
- Documentation: tighten playwright.md quick reference
- Maintenance: track GH#14295 simplification state
- Documentation: align email sequence pattern references
- Documentation: tighten api-key-management.md (122 → 54 lines, 56% reduction)
- Documentation: improve email sequence chapter navigation
- Documentation: tighten bot-management-patterns guidance
- Documentation: tighten and restructure Agents SDK gotchas (recheck)
- Documentation: tighten ranking-opportunities.md (123→91 lines)
- Documentation: tighten email-campaign.md (123→105 lines)
- Maintenance: tighten instantly.md agent doc (71→61 lines) (#14678)

### Fixed

- resolve broken aidevops CLI symlink and add to non-interactive setup (#15057)
- redirect _install_beads_node_tools() output to stderr

## [3.5.538] - 2026-03-31

### Changed

- Documentation: tighten model-specific subagent routing guide (#15012)

## [3.5.537] - 2026-03-31

### Changed

- Documentation: tighten cro-chapter-24.md from 123 to 54 lines (#14712)

## [3.5.536] - 2026-03-31

### Added

- clarify chromium debug routing handoffs (#15006)
- add chromium-debug-use skill and local CDP helper (#15007)

## [3.5.535] - 2026-03-31

### Added

- add chromium-debug-use skill and local CDP helper (#15007)

## [3.5.534] - 2026-03-31

### Changed

- Version bump and maintenance updates

## [3.5.532] - 2026-03-31

### Changed

- Documentation: tighten SRO Grounding agent doc (GH#14210) (#14919)
- Maintenance: claim t1711

## [3.5.531] - 2026-03-31

### Changed

- Documentation: tighten encryption stack overview (#14526)

## [3.5.530] - 2026-03-31

### Changed

- Version bump and maintenance updates

## [3.5.529] - 2026-03-31

### Changed

- Version bump and maintenance updates

## [3.5.528] - 2026-03-31

### Fixed

- count headless worker wrappers in pulse (#14955)

## [3.5.527] - 2026-03-31

### Changed

- Documentation: tighten LeadsForge agent doc (105→83 lines) (#14920)
- Maintenance: add chromium-debug-use follow-up planning

## [3.5.526] - 2026-03-31

### Changed

- Version bump and maintenance updates

## [3.5.525] - 2026-03-31

### Changed

- Maintenance: claim t1710
- Maintenance: claim t1709
- Maintenance: claim t1708
- Maintenance: claim t1707
- Maintenance: claim t1706

## [3.5.524] - 2026-03-31

### Changed

- Documentation: tighten Hyperdrive agent doc (GH#14399) (#14900)
- Documentation: tighten Socket MCP agent doc (#14882)
- Documentation: tighten fallback-chains.md agent doc (GH#14190) (#14878)

### Fixed

- harden deterministic pulse fill floor counts (#14840)

## [3.5.523] - 2026-03-31

### Changed

- Documentation: tighten Hyperdrive agent doc (GH#14399) (#14900)
- Documentation: tighten Socket MCP agent doc (#14882)
- Documentation: tighten fallback-chains.md agent doc (GH#14190) (#14878)

### Fixed

- harden deterministic pulse fill floor counts (#14840)

## [3.5.522] - 2026-03-31

### Changed

- Version bump and maintenance updates

## [3.5.521] - 2026-03-31

### Fixed

- backfill simplification state before complexity scan (GH#14841) (#14846)

## [3.5.520] - 2026-03-31

### Changed

- Version bump and maintenance updates

## [3.5.519] - 2026-03-31

### Changed

- Documentation: tighten worker-efficiency protocol prompt (GH#14810) (#14821)

## [3.5.518] - 2026-03-31

### Changed

- Documentation: tighten datasets.md agent doc wording (#14819)
- Documentation: tighten worker-efficiency-protocol.md (122→120 lines, 12% byte reduction) (#14723)
- Maintenance: tighten orbstack.md agent doc (121→75 lines) (#14746)
- Documentation: tighten datasets.md agent doc (121→101 lines) (#14754)
- Documentation: tighten email-verification.md agent doc (121 -> 95 lines) (#14757)
- Maintenance: tighten pre-edit.md agent doc (118 -> 80 lines) (#14778)
- Maintenance: tighten git-security.md agent doc (118 -> 95 lines) (#14780)
- Documentation: tighten skill-scanner.md (118 -> 98 lines) (#14784)
- Documentation: tighten geo-strategy.md agent doc (118 -> 106 lines) (#14785)
- Documentation: tighten heygen-skill.md index — remove verbose sections, use tables (#14786)
- Documentation: tighten list-todo.md (117 -> 62 lines) (#14793)
- Documentation: tighten landing-page-structure agent doc (117 -> 103 lines) (#14795)

## [3.5.517] - 2026-03-31

### Changed

- Documentation: tighten api-shield-gotchas.md (51 -> 46 lines) (#14776)

## [3.5.516] - 2026-03-31

### Changed

- Version bump and maintenance updates

## [3.5.515] - 2026-03-31

### Changed

- Version bump and maintenance updates

## [3.5.514] - 2026-03-31

### Changed

- Version bump and maintenance updates

## [3.5.513] - 2026-03-31

### Changed

- Documentation: tighten chore branch workflow guidance (#14722)
- Documentation: tighten workers-patterns.md — add context, deduplicate deployment commands (#14724)

## [3.5.512] - 2026-03-31

### Changed

- Version bump and maintenance updates

## [3.5.511] - 2026-03-31

### Changed

- Version bump and maintenance updates

## [3.5.510] - 2026-03-31

### Changed

- Version bump and maintenance updates

## [3.5.509] - 2026-03-31

### Changed

- Documentation: tighten bot-management-patterns.md (125→113 lines) (#14698)

## [3.5.508] - 2026-03-31

### Changed

- Version bump and maintenance updates

## [3.5.507] - 2026-03-31

### Changed

- Version bump and maintenance updates

## [3.5.506] - 2026-03-31

### Changed

- Maintenance: tighten Claude-Flow comparison doc (#14688)

## [3.5.504] - 2026-03-31

### Changed

- Maintenance: tighten aidevops-opencode plugin architecture doc (#14682)

## [3.5.503] - 2026-03-31

### Fixed

- restore Tabby profile sync on Python 3.9 (#14680)

## [3.5.502] - 2026-03-31

### Changed

- Maintenance: tighten jujutsu.md agent doc (125→90 lines) (#14665)

## [3.5.501] - 2026-03-31

### Changed

- Version bump and maintenance updates

## [3.5.500] - 2026-03-31

### Changed

- Version bump and maintenance updates

## [3.5.499] - 2026-03-31

### Changed

- Version bump and maintenance updates

## [3.5.498] - 2026-03-31

### Changed

- Version bump and maintenance updates

## [3.5.497] - 2026-03-31

### Changed

- Version bump and maintenance updates

## [3.5.496] - 2026-03-31

### Changed

- Version bump and maintenance updates

## [3.5.495] - 2026-03-31

### Changed

- Version bump and maintenance updates

## [3.5.494] - 2026-03-31

### Changed

- Version bump and maintenance updates

## [3.5.493] - 2026-03-31

### Changed

- Version bump and maintenance updates

## [3.5.492] - 2026-03-31

### Changed

- Version bump and maintenance updates

## [3.5.491] - 2026-03-31

### Changed

- Version bump and maintenance updates

## [3.5.490] - 2026-03-31

### Changed

- Version bump and maintenance updates

## [3.5.489] - 2026-03-31

### Changed

- Version bump and maintenance updates

## [3.5.488] - 2026-03-31

### Changed

- Version bump and maintenance updates

## [3.5.487] - 2026-03-31

### Changed

- Version bump and maintenance updates

## [3.5.486] - 2026-03-31

### Changed

- Version bump and maintenance updates

## [3.5.485] - 2026-03-31

### Changed

- Version bump and maintenance updates

## [3.5.484] - 2026-03-31

### Changed

- Version bump and maintenance updates

## [3.5.483] - 2026-03-31

### Changed

- Version bump and maintenance updates

## [3.5.482] - 2026-03-31

### Changed

- Version bump and maintenance updates

## [3.5.481] - 2026-03-31

### Changed

- Version bump and maintenance updates

## [3.5.480] - 2026-03-31

### Changed

- Version bump and maintenance updates

## [3.5.479] - 2026-03-31

### Changed

- Version bump and maintenance updates

## [3.5.478] - 2026-03-31

### Changed

- Version bump and maintenance updates

## [3.5.477] - 2026-03-31

### Changed

- Version bump and maintenance updates

## [3.5.476] - 2026-03-31

### Changed

- Documentation: tighten workerd.md — merge intro sections, compress to table, fix See Also links (52→34 lines) (#14538)
- Documentation: tighten workerd.md — merge intro sections, compress to table, fix See Also links (52→34 lines) (#14538)

### Fixed

- refill underfilled pulse slots during active monitoring (#14498)

## [3.5.475] - 2026-03-31

### Changed

- Version bump and maintenance updates

## [3.5.474] - 2026-03-31

### Changed

- Version bump and maintenance updates

## [3.5.473] - 2026-03-31

### Changed

- Version bump and maintenance updates

## [3.5.472] - 2026-03-31

### Changed

- Version bump and maintenance updates

## [3.5.471] - 2026-03-31

### Changed

- Documentation: restore explanatory intros in es2016-es2017.md (#14504)

## [3.5.470] - 2026-03-31

### Changed

- Version bump and maintenance updates

## [3.5.469] - 2026-03-31

### Changed

- Documentation: tighten AEO/GEO content pattern wording (#14496)

## [3.5.468] - 2026-03-31

### Changed

- Version bump and maintenance updates

## [3.5.467] - 2026-03-31

### Changed

- Maintenance: tighten aeo-geo-patterns.md headings and MD031 compliance (#14488)

## [3.5.466] - 2026-03-31

### Changed

- Version bump and maintenance updates

## [3.5.465] - 2026-03-31

### Changed

- Version bump and maintenance updates

## [3.5.464] - 2026-03-30

### Changed

- Documentation: tighten SKILL-SCAN-RESULTS.md — collapse duplicate scan rows, compress prose (68→37 lines) (#14417)

### Fixed

- address PR #14352 review feedback on agents-sdk-gotchas (#14461)

## [3.5.463] - 2026-03-30

### Changed

- Documentation: tighten mac.md — merge sections, remove structural noise (93→50 lines) (#14375)
- Documentation: tighten score-responses.md command doc (#14364)
- Documentation: tighten infraforge outreach agent guidance (#14353)
- Documentation: tighten Agent SDK gotchas guidance (#14352)
- Documentation: tighten sandbox.md — merge architecture into header, fix broken links (GH#14293) (#14299)
- Documentation: tighten workerd-patterns.md — add context line, fix broken link (#13991)
- Documentation: tighten meta-ads-creative-frameworks.md headings and structure (GH#13965) (#13997)
- Documentation: tighten CQRS & Domain Events agent doc (191→183 lines) (#14000)
- Documentation: tighten campaign launch checklist (175→144 lines) (#14004)

### Fixed

- clear expired cooldowns during pool reads (#14341)
- preserve multiline health dashboard sections (#11001) (#14328)
- reduce secret scan and npm audit noise (#14255)
- add null-safety for missing .mcp key in migrations.sh (GH#14220) (#14237)

## [3.5.462] - 2026-03-30

### Fixed

- tolerate missing mcp object in jq migration (#14244)

## [3.5.461] - 2026-03-30

### Fixed

- guard legacy overwrite helper usage (#14236)

## [3.5.460] - 2026-03-30

### Changed

- Version bump and maintenance updates

## [3.5.459] - 2026-03-30

### Fixed

- harden unattended worker progress under provider limits (#14219)

## [3.5.458] - 2026-03-30

### Changed

- Documentation: tighten langflow.md (162→153 lines) — DRY install steps, merge API sections, proper autolinks (#14187)

## [3.5.457] - 2026-03-30

### Changed

- Documentation: tighten onboarding wizard guide for GH#13999 (#14141)

## [3.5.456] - 2026-03-30

### Added

- seed mission-control init and improve self-activity triage (#14126)

### Changed

- Documentation: tighten sales emails analysis language (#14139)
- Documentation: tighten ahrefs.md (114→109 lines) — DRY auth headers, reorder by importance (#14140)
- Documentation: tighten postgres-drizzle-skill.md (160→88 lines, 45% reduction) (#14113)
- Maintenance: claim t1705

## [3.5.455] - 2026-03-30

### Changed

- Documentation: tighten voice-ai-models.md (154→147 lines) — compress Pick lines, collapse GPU table, remove formatting noise (#14038)
- Documentation: tighten hexagonal.md 183→181 lines, zero information loss (GH#13970) (#13986)
- Documentation: tighten pages-functions-patterns.md (173→171 lines) (#13990)
- Documentation: tighten playwright-emulation.md prose and structure (#13987)
- Documentation: tighten Higgsfield UI Automator agent doc (#13988)
- Documentation: add star history chart to README
- Maintenance: release v3.5.454
- Documentation: tighten hexagonal.md 186→183 lines, zero information loss (GH#13933) (#13957)
- Maintenance: tighten workerd-patterns.md, remove redundant prose (#13960)
- Documentation: tighten playwright-emulation.md (GH#13935) (#13952)

### Fixed

- restore automatic OpenCode session title sync (#14074)

## [3.5.443] - 2026-03-30

### Changed

- Maintenance: update marketplace.json for v3.5.442
- Maintenance: release v3.5.442
- Maintenance: bump version to 3.5.442
- Documentation: tighten pages-functions-patterns.md (182→178 lines) (#13929)

## [3.5.438] - 2026-03-30

### Changed

- Version bump and maintenance updates

## [3.5.410] - 2026-03-30

### Changed

- Maintenance: bump version to 3.5.407
- Documentation: tighten mission-orchestrator.md — merge duplicate dispatch blocks, normalize unicode, compress prose (#13841)
- Documentation: tighten email-composition.md — remove structural noise and redundancy (158 → 144 lines) (#13837)

## [3.5.373] - 2026-03-30

### Changed

- Maintenance: bump version to 3.5.372
- Documentation: GH#13581: tighten pages-patterns.md, remove redundant prose (#13595)

## [3.5.369] - 2026-03-30

### Changed

- Documentation: tighten pdf/overview.md (149→74 lines, remove redundant prose/examples) (#13510)
- Maintenance: bump version to 3.5.368
- Documentation: tighten email-providers.md (165→157 lines) (#13570)
- Documentation: tighten fly-io.md agent doc (GH#13579, 140→135 lines) (#13596)

## [3.5.366] - 2026-03-30

### Changed

- Maintenance: release v3.5.365
- Maintenance: update simplification state registry
- Maintenance: release v3.5.364
- Documentation: tighten fly-io.md agent doc (GH#13556, 151→140 lines) (#13563)
- Documentation: tighten services.md prose — compress verbose phrasing, preserve all content (#13529)
- Documentation: tighten sql-migrations.md (205 → 197 lines, add no-tx convention) (#13485)
- Documentation: tighten production-audio.md (151→139 lines, remove redundant pipeline block/checklist) (#13490)
- Maintenance: tighten humanise.md - compress YAML description and remove redundant inline example (#13522)
- Documentation: tighten management.md Quality Management Specification (GH#13060) (#13528)
- Maintenance: GH#12987 tighten bing-webmaster-tools.md (163→108 lines) (#13537)
- Maintenance: release v3.5.363
- Maintenance: update simplification state registry
- Documentation: tighten aidevops-opencode plugin architecture doc (165→109 lines) (#13553)
- Maintenance: update simplification state registry
- Maintenance: bump version to 3.5.361
- Maintenance: release v3.5.360
- Maintenance: GH#12978 tighten dns-providers.md agent doc (164→141 lines) (#13548)
- Maintenance: GH#12981 tighten wiki-update workflow doc (#13541)
- Documentation: tighten smime-setup.md agent doc (GH#12979) (#13546)
- Documentation: GH#12989: tighten Advantage+ Campaigns agent doc (#13535)
- Maintenance: release v3.5.356
- Maintenance: release v3.5.355
- Maintenance: release v3.5.354
- Documentation: tighten email-health-check.md (149→133 lines) (#13487)
- Documentation: tighten browser-automation.md — merge intro lines, remove misplaced setup ref (140→136 lines) (#13488)
- Documentation: tighten email-testing.md (149→128 lines) — merge CSS/engine tables, drop redundant tool comparison (#13491)
- Documentation: tighten pages-patterns.md (149→132 lines, flatten Best Practices subsections) (#13492)
- Maintenance: release v3.5.353
- Documentation: tighten autogen.md (148→140 lines) (#13493)
- Maintenance: release v3.5.352
- Documentation: tighten production-audio.md (151→139 lines, remove redundant pipeline block/checklist) (#13478)
- Documentation: tighten security-analysis.md — merge MCP section into Integrations (151→142 lines) (#13467)
- Documentation: tighten imessage.md (155→148 lines) (#13468)
- Documentation: tighten migration.md (197→165 lines, remove redundant phase table/mapping dupes) (#13466)
- Maintenance: update simplification state registry
- Maintenance: tighten cro-chapters.md index (GH#13398) (#13457)

## [3.5.362] - 2026-03-30

### Changed

- Maintenance: update simplification state registry
- Maintenance: bump version to 3.5.361

## [3.5.358] - 2026-03-30

### Changed

- Documentation: GH#12989: tighten Advantage+ Campaigns agent doc (#13535)

## [3.5.357] - 2026-03-30

### Changed

- Maintenance: release v3.5.356

## [3.5.353] - 2026-03-30

### Changed

- Documentation: tighten flowcharts.md (161→134 lines, -17%, GH#13174) (#13523)

## [3.5.344] - 2026-03-30

### Changed

- Documentation: tighten architecture.md prose (157→124 lines, zero knowledge loss) (#13445)
- Documentation: tighten session-manager.md (135→105 lines, GH#13438) (#13443)
- Documentation: tighten ai-writing-detection.md prose (GH#13423) (#13444)
- Documentation: tighten security-analysis.md agent doc (164→151 lines) (#13442)

## [3.5.339] - 2026-03-30

### Changed

- Maintenance: release v3.5.338

## [3.5.335] - 2026-03-30

### Changed

- Documentation: tighten image-seo.md — collapse duplicate batch workflow (151→133 lines) (#13424)
- Documentation: tighten cloudron-app-publishing-skill.md (150→111 lines, 26% reduction) (#13426)
- Maintenance: tighten content/optimization.md agent doc (148→135 lines) (#13425)
- Documentation: GH#13128: tighten session-manager.md (156→135 lines) (#13412)
- Documentation: tighten autogen.md — remove redundant prose, trim verbose comments (#13417)
- Maintenance: tighten agent-testing.md (151→138 lines) (#13416)

## [3.5.332] - 2026-03-30

### Changed

- Documentation: tighten architecture.md prose (164→157 lines, zero knowledge loss) (#13407)

## [3.5.319] - 2026-03-29

### Changed

- Documentation: tighten Favicon Debugger agent doc prose (#13302)
- Maintenance: release v3.5.318
- Documentation: tighten programmatic-seo.md prose (GH#13239) (#13301)
- Documentation: GH#13240 tighten cro-chapter-01.md prose (145→117 lines, all knowledge preserved) (#13294)

### Fixed

- add signature footer gate to plugin quality hooks (GH#12805) (#13303)

## [3.5.318] - 2026-03-29

### Fixed

- add signature footer gate to plugin quality hooks (GH#12805) (#13303)

## [3.5.314] - 2026-03-29

### Changed

- Documentation: GH#13238 tighten app-dev-backend.md prose (145→113 lines) (#13293)
- Documentation: tighten ios-simulator-mcp.md prose (142→121 lines, GH#13264) (#13299)
- Documentation: GH#13246 tighten d1-patterns.md prose (#13296)
- Documentation: GH#13245: tighten context-builder.md prose (144→130 lines) (#13297)
- Documentation: tighten workers-for-platforms-gotchas.md prose (141→115 lines) (#13291)
- Documentation: tighten email-design-test.md prose (GH#13272) (#13292)

### Fixed

- preserve aidevops plugin registration in opencode.json (#13298)

## [3.5.312] - 2026-03-29

### Changed

- Refactor: separate universal prompt rules from aidevops-specific guidance (#13228)
- Maintenance: update simplification state registry

## [3.5.311] - 2026-03-29

### Changed

- Maintenance: update simplification state registry

### Fixed

- use atomic JSON writes to prevent config truncation on crash (#13181)

## [3.5.297] - 2026-03-29

### Changed

- Documentation: tighten architecture.md prose without knowledge loss (#13116)

### Fixed

- show elapsed time and 0 tokens for pulse bash routine (GH#13099) (#13117)

## [3.5.281] - 2026-03-29

### Changed

- Documentation: tighten image-understanding.md — merge redundant model tables, fold Gemini note into comment (#13068)

## [3.5.277] - 2026-03-29

### Fixed

- reject non-project dirs, add --no-session for standalone callers (GH#13046) (#13058)

## [3.5.274] - 2026-03-29

### Changed

- Maintenance: release v3.5.273
- Documentation: tighten code-simplifier.md agent doc (200→198 lines) (#13033)

### Fixed

- Linux compat — remove PPID gate, broaden session detection, robust version (GH#13012) (#13021)

## [3.5.270] - 2026-03-29

### Changed

- Documentation: tighten compare-models.md (189→172 lines, GH#12852) (#13017)
- Documentation: GH#12688: tighten ad-creative-chapter-09.md (#13015)

## [3.5.147] - 2026-03-29

### Changed

- Maintenance: update simplification state registry

### Fixed

- add zero-agent guard to prevent OpenCode crash (#12615)

## [3.5.1] - 2026-03-28

### Fixed

- detect stale Homebrew install during aidevops update (GH#11470) (#12106)

## [3.5.0] - 2026-03-28

### Changed

- Refactor: flatten remaining nested dirs in tools/ (#12107)

## [3.4.193] - 2026-03-28

### Changed

- Refactor: flatten remaining nested dirs in tools/ (#12107)

## [3.4.0] - 2026-03-28

### Changed

- Refactor: merge Social-Media into Content, Sales+Marketing into Marketing-Sales (#11372)
- Maintenance: update simplification state registry

## [3.3.0] - 2026-03-28

### Changed

- Refactor: merge Video into Content, Accounts into Business (#11347)
- Documentation: tighten opencode-github.md from 328 to 192 lines (41% reduction) (#11349)
- Refactor: merge Video into Content, Accounts into Business

## [3.2.9] - 2026-03-28

### Changed

- Refactor: complete .agents/ structure cleanup (#11304)
- Documentation: simplify UGC & Video Scripts agent doc (439→350 lines) (#11297)
- Maintenance: update simplification state registry

## [3.2.7] - 2026-03-28

### Fixed

- always clean stale files during agent deployment (#11288)

## [3.2.0] - 2026-03-28

### Changed

- Version bump and maintenance updates

## [3.1.442] - 2026-03-28

### Changed

- Maintenance: raise simplification open-issue cap from 100 to 500 (#11272)
- Refactor: reorganise .agents/ structure for scalability (#11127)
- Maintenance: raise simplification scan rate from 5 to 200 issues per run (#11126)
- Documentation: codify .agents/ architecture conventions for scalability (#11124)

### Fixed

- run complexity scan every pulse cycle (15 min) instead of daily (#11271)

## [3.1.439] - 2026-03-28

### Fixed

- wire cross-machine claim lock into deterministic dedup guard (GH#11086) (#11121)

## [3.1.315] - 2026-03-27

### Fixed

- remove 500-line size gate from md simplification scan (t1679) (#6879)

## [3.1.310] - 2026-03-27

### Changed

- Refactor: terse pass on build.txt and AGENTS.md — compress prose without losing rules (#6868)

## [3.1.289] - 2026-03-27

### Added

- add Tabby terminal profile generator from repos.json (#6786)

## [3.1.154] - 2026-03-25

### Changed

- Version bump and maintenance updates

## [3.1.106] - 2026-03-25

### Added

- extend complexity scan to .md agent docs, daily interval, longest-first (#5693)

### Fixed

- clarify advisory output string concatenation (PR #5689 follow-up) (#5691)
- key commands shows 'aidevops security' not 'aidevops security scan'

## [3.1.104] - 2026-03-25

### Changed

- Documentation: add asc-cli dependency check and update web apps section (#5690)

## [3.1.94] - 2026-03-24

### Changed

- Refactor: reduce function complexity in oauth-pool-helper.sh (GH#5643) (#5654)

## [3.1.89] - 2026-03-24

### Changed

- Refactor: disable proactive refresh, keep as commented-out option (#5613)

## [3.1.88] - 2026-03-24

### Fixed

- handle 401/403 (server-side token revocation) in OAuth pool with auto-refresh (#5612)

## [3.1.80] - 2026-03-23

### Changed

- Maintenance: add OpenCode to NPM_TOOLS with bun/npm auto-detection (#5570)

### Fixed

- add cooldown check to oauth-pool fallback account selection (#5552) (#5567)

## [3.1.79] - 2026-03-23

### Fixed

- inject OAuth tokens via env vars — works on all OpenCode versions (#5561)

## [3.1.78] - 2026-03-23

### Added

- add aidevops opencode-sandbox command for isolated version testing (#5548)

## [3.1.77] - 2026-03-23

### Changed

- Maintenance: pin OpenCode to 1.2.27 — versions >1.2.27 break OAuth (#5547)

## [3.1.76] - 2026-03-23

### Fixed

- Homebrew wrapper prefers git repo aidevops.sh over installed snapshot (#5545)

## [3.1.75] - 2026-03-23

### Fixed

- correct OAuth setup docs — opencode auth login is API key only (#5544)

## [3.1.74] - 2026-03-23

### Fixed

- npm wrapper prefers git repo aidevops.sh over bundled copy (#5543)

## [3.1.73] - 2026-03-23

### Changed

- Maintenance: remove opencode-antigravity-auth plugin on update (#5542)

## [3.1.72] - 2026-03-23

### Fixed

- pool injection idle status + headless dispatch timing race (#5541)
- restore cmd_rotate (auth.json), cmd_status, cmd_assign_pending lost in PR #5535 merge (#5536)

## [3.1.71] - 2026-03-23

### Changed

- Documentation: mention @auth-troubleshooting agent and free model fallback in README (#5539)

## [3.1.70] - 2026-03-23

### Changed

- Refactor: move auth troubleshooting to subagent, pointer in AGENTS.md (#5538)

## [3.1.69] - 2026-03-23

### Added

- add status/assign-pending commands and auth troubleshooting docs (#5537)

## [3.1.68] - 2026-03-23

### Added

- add aidevops model-accounts-pool CLI command with rotate and reset-cooldowns (#5535)

## [3.1.63] - 2026-03-22

### Added

- add process-approved command to draft-response-helper

### Changed

- Maintenance: claim t1556

### Fixed

- use post-action timestamp for self-consumption loop guard (#5518)
- capture gh api error output in draft-response subscription warning (GH#5511) (#5514)
- simplify draft_responses feature flag to default-true pattern (GH#5508) (#5513)
- simplify draft_responses feature flag check per Gemini review (GH#5492) (#5500)
- remove unused print_error stub from test-migrate-orphaned-supervisor.sh (#5501)

## [3.1.56] - 2026-03-22

### Changed

- Documentation: update browser-use doc to v0.12.x API (Tools, CLI, Cloud, ChatBrowserUse) (#5463)

### Fixed

- skip launchd plist reload when content unchanged to preserve StartInterval timers (#5464)

## [3.1.55] - 2026-03-22

### Fixed

- detect default branch for profile repo push instead of hardcoding main (#5462)

## [3.1.43] - 2026-03-21

### Changed

- Performance: hoist statusOrder constant to module scope in provider-auth (#5435)
- Refactor: simplify open_browser() with for-loop over browser commands (#5410)

### Fixed

- re-enable auth hook as single object (not array) (#5444)
- store claudebar release URL in variable for maintainability (#5434)

## [3.1.42] - 2026-03-21

### Added

- add ClaudeBar to setup and upstream watch (#5420)

### Changed

- Maintenance: fix spelling optimisation→optimization in social-media.md (#5414)

### Fixed

- sync TOON plan status/phase with human-readable Completed headers (#5421)
- use jq // empty and remove 2>/dev/null on repos.json reads (#5417)
- harden unknown status sorting and remove dead constants in provider-auth (#5412)
- robust Status-line lookup in sync_plans_status (GH#5392) (#5411)
- use // empty in jq to eliminate null string check (GH#5385) (#5419)

## [3.1.41] - 2026-03-21

### Fixed

- install profile update job whenever gh is available, not only when profile repo exists (#5409)

## [3.1.40] - 2026-03-21

### Added

- auto-configure opencode-cursor-oauth plugin in setup (#5408)

### Fixed

- use conventional FIXME tag for disabled auth hook workaround (#5400)

## [3.1.38] - 2026-03-21

### Added

- add Cursor support to oauth-pool-helper.sh and /models-pool-check (#5384)

### Changed

- Documentation: add routing rules and provider-explicit examples to models-pool-check (#5379)

### Fixed

- address remaining CodeRabbit findings from PR #5375 (#5377)

## [3.1.37] - 2026-03-21

### Changed

- Documentation: rewrite /models-pool-check for zero-knowledge UX (#5376)

## [3.1.36] - 2026-03-21

### Added

- shell-based OAuth pool management and stale provider name fix (#5375)

## [3.1.35] - 2026-03-21

### Changed

- Version bump and maintenance updates

## [3.1.34] - 2026-03-21

### Added

- /models-pool-check command, fix pool model names, post-auth guidance (#5373)

## [3.1.33] - 2026-03-21

### Added

- add Cursor CLI to setup and tool version checks (#5361)

### Changed

- Maintenance: mark t1549 and t1550 as completed (PRs #5367, #5369 merged)
- Documentation: add model tier and auto-dispatch default guidance to Planning section (#5368)

### Fixed

- dynamic OAuth User-Agent detection and curl-based token endpoints (#5371)
- make profile update self-healing when repos.json entry is missing (#5372)
- remove job name field so check name matches branch protection (GH#5365) (#5366)

## [3.1.32] - 2026-03-21

### Changed

- Maintenance: add #auto-dispatch to t1549 and t1550 for pulse pickup
- Maintenance: add model tiers to t1549 (opus) and t1550 (sonnet)
- Maintenance: add Cursor OAuth pool and model routing tasks (t1549, t1550)

### Fixed

- show clean placeholder when profile stats have no local data (#5360)

## [3.1.30] - 2026-03-21

### Changed

- Maintenance: archive completed plans from PLANS.md and add cleanup helper (#5355)

### Fixed

- make profile README init resilient to missing repos and stale entries (#5358)
- revert plans-cleanup, add maintainer gate, label protection, and PLANS.md auto-sync (#5357)

## [3.1.28] - 2026-03-20

### Changed

- Refactor: relocate browser-extension-dev and mobile-app-dev out of agents root (#5353)

## [3.1.27] - 2026-03-20

### Fixed

- add role identity to 8 primary agents to prevent task declination (#5352)

## [3.1.26] - 2026-03-20

### Fixed

- add role identity to Social-Media agent to prevent task declination (#5351)
- deduplicate OpenCode plugin registration block in mcp-setup.sh (#5349)
- address CodeRabbit and Gemini review findings in oauth-pool.mjs (#5341)
- align opencode anthropic auth docs with versioned guidance (#5332) (#5343)
- use jq for version parsing instead of grep (#5338)
- harden oauth callback error handling (#5342)
- mcp-setup.sh version parsing and comparison efficiency (#5339)

## [3.1.25] - 2026-03-20

### Fixed

- OAuth pool unknown email handling — pending token flow and provider visibility (#5337)

## [3.1.24] - 2026-03-20

### Changed

- Maintenance: mark t1548 complete (pr:#5324 completed:2026-03-20) [skip ci]

### Fixed

- add local callback server for OpenAI OAuth redirect (#5325)

## [3.1.23] - 2026-03-20

### Changed

- Maintenance: reopen t1548 — worker PR broke auth with array, needs single-hook fix

### Fixed

- add dummy models to pool providers so they appear in Ctrl+A

## [3.1.22] - 2026-03-20

### Fixed

- use single auth hook — OpenCode 1.2.27 crashes on auth arrays

## [3.1.20] - 2026-03-20

### Changed

- Maintenance: add t1548 — OpenAI Pro multi-account pool rotation (ref:GH#5318)
- Maintenance: claim t1548

### Fixed

- derive session count threshold from system RAM instead of hardcoded 5

## [3.1.19] - 2026-03-20

### Added

- re-implement anthropic provider auth independent of bundled plugin

## [3.1.18] - 2026-03-20

### Added

- deploy primary-agent slash commands with Claude/OpenCode parity (#5316)

### Changed

- Refactor: OAuth pool injects tokens into built-in provider instead of custom fetch
- Maintenance: mark t1546 complete (pr:#5315 completed:2026-03-20) [skip ci]
- Maintenance: mark t1547 complete (pr:#5316 completed:2026-03-20) [skip ci]

## [3.1.17] - 2026-03-20

### Changed

- Documentation: fix cross-repo task creation workflow to prevent duplicate issues
- Maintenance: add issue refs for t1546 (GH#5311), t1547 (GH#5314)
- Maintenance: add t1546, t1547 — runtime parity tasks for Claude Code CLI + OAuth pool setup
- Maintenance: claim t1547
- Maintenance: claim t1546

## [3.1.16] - 2026-03-20

### Changed

- Tests: add regression for non-interactive Homebrew guard (#5307)

### Fixed

- clarify pulse scope decision heading (#5306)

## [3.1.0] - 2026-03-18

### Added

- pattern-driven model tier downgrade using historical success data (GH#5148) (#5156)
- add local email address verifier with RCPT TO probing and disposable domain detection (#5133) (#5135)
- add email address verification tasks (t1538, t1539)

### Changed

- Refactor: simplify dispatch example variable assignment (#5201) (#5207)
- Refactor: simplify off-peak guard in run_daily_quality_sweep (#5188)
- Maintenance: simplify redundant two-grep pipeline in loop-common.sh (#5183)
- Refactor: centralize CSV quoting in printf for email-export-helper (#5178)
- Maintenance: mark t1542 complete (pr:#5157 completed:2026-03-17) [skip ci]
- Maintenance: add t1542 TODO entry for GH#5155 orphaned archived scripts
- Maintenance: claim t1542
- Maintenance: claim t1541
- Maintenance: mark t1540 complete (pr:#5139 completed:2026-03-17) [skip ci]
- Maintenance: add t1540 TODO entry and brief for GH#5138 (workflow scope fix)
- Maintenance: claim t1540
- Maintenance: mark t1539 complete (pr:#5135 completed:2026-03-17) [skip ci]
- Maintenance: mark t1538 complete (pr:#5134 completed:2026-03-17) [skip ci]
- Documentation: t1538 research findings — Outscraper email_validation API coverage verified (#5134)
- Maintenance: claim t1539
- Maintenance: claim t1538

### Fixed

- quote default value in AGENTS_DIR parameter expansion (#5208)
- wp-helper.sh SSH commands silently failing due to argument concatenation (#5199)
- add fallback default for paths.agents_dir in dispatch example (#5196)
- extract last digit sequence from branch name for issue number (#5191) (#5194)
- address PR #5116 review feedback (#5187)
- simplify trailing newline check in ensure_trailing_newline() (#5186)
- use silent _has_crontab check in cmd_status to avoid redundant stderr (#5185)
- use exact label matching for status:blocked check in pulse-wrapper (#5184)
- expand tilde in HELPER variable assignment to prevent literal ~ in paths (#5182)
- comment out fullPage: true example in playwriter.md (#5181)
- use --argjson instead of printf pipe in backfill-closure-labels.sh (#5180)
- use precise 90-day window instead of ambiguous 'last quarter' (#5177)
- remove blanket 2>/dev/null suppression in migrate_orphaned_supervisor (GH#5159) (#5175)
- remove redundant empty-string check from is_framework_task() (#5174)
- add 14 orphaned archived scripts to cleanup_deprecated_paths() (#5157)
- add framework-issue-helper.sh to enforce self-improvement repo routing (GH#5149) (#5154)
- add structural enforcement for self-improvement repo routing (t1541) (#5152)
- extend screenshot size guardrails to all Playwright paths (GH#5143) (#5144)
- add terminal blocker detection to pulse dispatch logic (GH#5141) (#5142)
- add workflow scope to gh auth flow and pre-push detection (t1540) (#5139)
- use neutral PULSE_DIR to prevent session accumulation on pulse:false repos (#5137)

## [3.0.12] - 2026-03-16

### Changed

- Performance: gate daily quality sweep to off-peak hours (18:00-23:59 local) (#5131)
- Refactor: extract ensure_trailing_newline() to reduce duplication in aidevops.sh (#5120)

### Fixed

- scope /runners to specified items only, remove /pulse spec duplication (#5129)
- use aidevops config get paths.agents_dir in HELPER= dispatch examples (#5125)
- use dynamic agents_dir path for headless-runtime-helper.sh dispatch examples (#5124)
- replace hardcoded year with [year] placeholder in query-fanout-research.md (#5126)
- address PR #5087 review feedback (#5123)
- RFC 4180 quote all CSV fields in attachment manifest (GH#5114) (#5122)
- align -> arrows in tool stack summaries for readability (#5121)
- address PR #5014 review feedback on google-workspace.md (#5116)
- correct WPackagist acquisition year from 2026 to 2024 (#5118)
- use secretlint exit code instead of fragile regex in patch preflight (#5117)
- tighten awk regex patterns in list_active_worker_processes to reduce false positives (#5119)
- route /runners dispatch through headless-runtime-helper.sh (GH#5096) (#5099)
- backfill script — skip completed issues to avoid unnecessary API calls (#5097)

## [3.0.10] - 2026-03-16

### Added

- add Google Workspace CLI (gws) to setup and auto-update (#5083)

### Changed

- Documentation: add task briefs for t1534, t1535 Linux scheduler bugs
- Maintenance: add t1534, t1535 Linux scheduler bugs to TODO.md
- Maintenance: claim t1535
- Maintenance: claim t1534

## [3.0.9] - 2026-03-16

### Changed

- Documentation: add WP Composer as preferred alternative to WPackagist in wp-dev.md (#5078)

### Fixed

- patch release preflight scans only changed files instead of entire repo (#5082)
- ensure trailing newline in .gitignore before appending entries (#5080)

## [3.0.1] - 2026-03-15

### Changed

- Maintenance: mark t1491 complete (pr:#4931 completed:2026-03-15) [skip ci]
- Maintenance: add t1491 — Bash 3.2 config_get fix (GH#4929)
- Maintenance: claim t1491

### Fixed

- add sqlite3 to setup.sh required dependencies (#4935)
- replace Bash 4.0+ indirect expansion with eval for 3.2 compat (#4931)

## [3.0.0] - 2026-03-15

### Added

- model-level backoff in headless-runtime-helper.sh (#4927)
- bridge daily quality sweep to code-simplifier pipeline (t1490)

### Changed

- Maintenance: mark t1485 complete (pr:#4923 completed:2026-03-15) [skip ci]
- Documentation: add Knowledge Graph Routing pattern to agent design patterns
- Documentation: add TOON token-efficient serialisation to agent design patterns
- Documentation: refine founder tagline wording
- Documentation: add Open-Source to founder tagline
- Documentation: use 'Founded' instead of 'Created' for ongoing project
- Documentation: add creation date and author attribution to README
- Documentation: remove Windows Terminal from supported terminals list
- Maintenance: mark t1489 complete (pr:#4918 completed:2026-03-15) [skip ci]
- Documentation: audit README — update stale counts, add OpenCode+Claude positioning (#4922)
- Maintenance: mark t1488 complete (pr:#4919 completed:2026-03-15) [skip ci]
- Refactor: split seo-content-analyzer.py into focused modules (t1488) (#4919)
- Maintenance: mark t1487 complete (pr:#4914 completed:2026-03-15) [skip ci]
- Maintenance: mark t1486 complete (pr:#4915 completed:2026-03-15) [skip ci]
- Performance: tune worker RAM allocation — 512MB per worker, 6GB reserve (was 1GB/8GB)
- Maintenance: claim t1490
- Maintenance: add Codacy quality gate adjustment task (t1489)
- Maintenance: claim t1489
- Maintenance: claim t1488
- Maintenance: add module-split tasks for top 4 file-complexity smells (t1485-t1488)
- Maintenance: claim t1487
- Maintenance: claim t1486
- Maintenance: claim t1485
- Refactor: reduce Qlty smells in playwright-automator.mjs (batch 3c)
- Refactor: reduce Qlty maintainability smells (batch3c)
- Maintenance: claim t1484
- Refactor: reduce Qlty maintainability smells in OpenCode TS files (batch 3b)
- Refactor: reduce Qlty maintainability smells in Python scripts (batch 3a)
- Refactor: reduce Qlty maintainability smells in Python/JS scripts (batch 3a)

### Fixed

- correct tmux to cmux in supported terminals list
- add blank line between tagline quote and subtitle (#4924)
- tagline paragraph break and website badge globe icon (#4921)
- make pulse-wrapper.sh source-safe in zsh/supervisor sessions (GH#4904) (#4920)
- auto-assign issues on creation to prevent duplicate dispatch
- ensure simplification-debt labels exist before issue creation
- add comma thousands separators to token counts (e.g., 10,425.3M) (#4911)
- split footer text into separate paragraphs for readability (#4909)

## [2.173.0] - 2026-03-14

### Added

- add ripgrep (rg) to required dependencies in setup (#4892)

### Changed

- Documentation: add pulse model constraint to model-routing.md — sonnet only, openai unreliable for orchestration
- Documentation: note pulse supervisor requires Anthropic sonnet, OpenAI unreliable for orchestration

### Fixed

- remove ssh from required deps in setup-modules/core.sh (#4899)

## [2.172.29] - 2026-03-14

### Fixed

- add wrapper-level forced recycle when pulse LLM exits early while underfilled (#4620)
- remove 2>/dev/null from source to expose syntax errors (#4613)
- use install -d -m 700 for ~/.ssh directory creation (#4612)
- address quality-debt review feedback for vector-search.md (#4611)
- skip approval-only reviews in scan-merged to prevent false-positive issues (#4609)
- add explicit return 0 to get_domain() in eeat-score-helper.sh (#4608)
- make AI lock checks atomic (#4607)
- replace bash 4.0+ features with portable alternatives in 2 scripts (#4603)
- address PR #2326 review feedback on model-routing.md (#4598)
- resolve gemini review feedback on auto-verify logic (#4605)
- address PR #2255 review feedback on t1327-brief.md (#4594)

## [2.172.28] - 2026-03-14

### Fixed

- replace bash 4.0+ features with portable alternatives in 5 scripts (#4601)

## [2.172.27] - 2026-03-14

### Added

- enforce finding-to-task conversion for all multi-finding reports (#4593)

### Changed

- Maintenance: mark t1481 complete (pr:#4596 completed:2026-03-14) [skip ci]

### Fixed

- replace bash 4.2+ associative arrays with portable grep in worktree cleanup (#4592)
- use idiomatic parse_pr_url guard in state transition check (#4591)

## [2.172.22] - 2026-03-13

### Changed

- Maintenance: claim t1477
- Maintenance: address PR #353 review feedback (t3777) (#4437)

## [2.172.21] - 2026-03-13

### Changed

- Tests: guard worktree-first pre-edit guidance in release preflight (#2208)
- Maintenance: claim t1476
- Maintenance: claim t1475

## [2.172.20] - 2026-03-13

### Changed

- Maintenance: claim t1474

### Fixed

- align headless pre-edit wording with worktree guidance (#3193)

## [2.172.19] - 2026-03-13

### Changed

- Maintenance: claim t1473
- Maintenance: remove redundant jq identity pipe in cmd_usage (#4403)
- Maintenance: remove redundant env-var prefix in shell command examples (#4407)
- Refactor: deduplicate script version update path for release bumps (#4356)

### Fixed

- enforce worktree-first guidance in guardrails (#4443)
- address PR #163 review feedback on browser automation docs (#4439)
- address PR #364 gemini review — batch script guard + relative paths (#4438)
- two-layer dispatch dedup + earlier thrash detection (GH#4400) (#4441)
- address PR #352 review feedback — atomic DELETEs and env-var path (GH#3776) (#4440)
- use empty-string check for cert expiry date parse failure (GH#4275) (#4434)
- use .param set for FTS5 MATCH to prevent SQL injection (GH#3155)
- replace curl|sh with safer download-review-execute pattern (GH#3107)
- address GH#3147 quality-debt — regex injection hardening + remove 2>/dev/null suppressions
- use mktemp for secure temp file in build-mcp key injection example (GH#4267)
- use explicit uname check for stat mtime (GH#3513) (#4422)
- add PPID guard to emergency kill loop to protect interactive sessions (GH#3453) (#4421)
- group local declarations in auto-batch block (t3491) (#4426)
- clean up temp dispatch scripts after execution (GH#3497) (#4428)
- use mktemp instead of hardcoded /tmp path in build-mcp key injection example (#4417)
- remove non-existent status fields from chrome-webstore-release docs (GH#3693) (#4418)
- align crft-lookup.md commands and schema with tech-stack-helper.sh (#4423)
- use type -P for Continue.dev detection to avoid bash builtin false positive (GH#3452) (#4419)
- add EXIT trap for robust temp file cleanup on abrupt termination (GH#3560) (#4425)
- restore explicit phase list in ai-search-readiness description (GH#4266) (#4416)
- count all PRs (open+merged+closed) for daily cap (GH#4412) (#4415)
- restore phpdoc formatting in wordpress guide examples (#4414)
- address PR #4393 inline review suggestions in wappalyzer.md (#4408)
- use += to append to cleanup file registry (#4406)
- remove spaces in process substitution per gemini-code-assist review (#4405)
- add input/output label to opus cost pricing format (#4404)
- add parameterized SQLite queries to prevent SQL injection (GH#3527) (#4402)
- address PR #1955 review feedback (t3638) (#4401)
- add eval checkpoint cleanup to Phase 1c and Phase 4b (GH#3637) (#4398)
- elevate API key security note to blockquote (GH#3554) (#4397)
- address high-severity PR #1184 review findings (#4396)
- correct function counts and flag eval style violations in t316.1 (#4394)
- clarify opus cost multiplier with explicit pricing basis (GH#3569) (#4391)
- suppress SC1091 info in voice-helper.sh, verify tempfile security fixes (GH#3557) (#4379)
- add default case for invalid mode in coderabbit-cli.sh (GH#3520) (#4376)
- correct Grok model name to Grok Imagine in UI-only comment (#4377)
- add error handling for tty write and close operations (#4378)
- guard empty array expansions for Bash < 4.4 compat (GH#3544) (#4380)
- add error handling for TTY write and close failures (#4381)
- remove tautological 'SEO optimization' in accessibility.md (#4382)
- use process substitution for find loops (GH#3516) (#4383)
- harden against shell injection and prompt injection (#4388)
- correct misleading barge-in comment to accurately describe AEC limitation (#4385)
- document docker guard rationale, verify all HIGH findings from GH#3553 (#4386)
- replace eval with bash array in merge_task_pr (GH#3565) (#4389)
- separate preflight execution from output parsing (#4390)
- remove unused server_port param from generate_bot_template (#4375)
- filter unresolved threads by AI reviewer and surface API errors (GH#3585) (#4371)
- warn on insecure sshpass password file permissions (GH#3574) (#4372)
- add set -euo pipefail to routine-scheduler.sh (GH#3664) (#4373)
- guard jq failures to prevent skill-sources.json data loss (#4335)
- resolve critical quality-debt in email-health-check-helper.sh (#4336)
- document npm package unavailability and add setup instructions (#4337)
- add setup-modules/ to npm package files manifest (GH#3594) (#4339)
- use || true instead of || echo "" for grep guard in pulse.sh (GH#3679) (#4340)
- clarify SIGKILL/SIGTERM exit code mapping in portable_timeout (GH#3610) (#4341)
- improve health issue title command error handling (#4358)
- consolidate jq parsing in skill URL flow test (#4355)

## [2.172.18] - 2026-03-13

### Changed

- Maintenance: claim t1472

### Fixed

- recycle stale workers during severe pulse underfill (#4353)

## [2.172.17] - 2026-03-13

### Changed

- Maintenance: claim t1471

### Fixed

- adapt pulse cold-start timeout to underfill severity (#4352)

## [2.172.16] - 2026-03-13

### Changed

- Maintenance: claim t1470

### Fixed

- trim pulse prefetch issue payload to avoid cold-start stalls (#4350)

## [2.172.15] - 2026-03-13

### Fixed

- adapt stale pulse recovery timeout to underfill severity (#4348)

## [2.172.14] - 2026-03-13

### Changed

- Maintenance: claim t1469

### Fixed

- auto-generate release changelog when unreleased is empty

## [2.172.13] - 2026-03-13

### Changed

- Version bump and maintenance updates

## [2.172.12] - 2026-03-13

### Fixed

- normalize active issue assignment in pulse (#4345)
- preserve manual profile README sections during stats updates

## [2.172.11] - 2026-03-13

### Fixed

- resolve critical quality-debt in tech-stack.md (GH#3686) (#4331)
- replace PID file deletion with IDLE sentinel to close dedup race window (GH#4324) (#4332)
- add explicit return 0 to all success paths in wappalyzer-helper.sh (#4333)
- resolve critical quality-debt in wp-helper.sh (GH#3629) (#4334)
- add trap-guarded helper for mktemp in test-pr-task-check.sh (#4329)
- correct BigQuery HTTP Archive query to use UNNEST for technologies array (#4328)
- address PR #1497 review feedback in todo-sync.sh (GH#3695) (#4327)
- recycle stale pulse process when underfilled (#4326)

## [2.172.10] - 2026-03-13

### Changed

- Refactor: extract failure message helper in test-worker-sandbox-helper.sh (#4291)

### Fixed

- add file existence checks in session-miner to reduce file_not_found failures (#4321)
- harden JSON extraction in run_single_evaluator against braces in details (#4320)
- deploy from current worktree path instead of canonical main checkout (#4319)
- tighten pulse cold-start timeout when underfilled (#4323)
- replace echo pipe with herestring in email-delivery-test-helper.sh
- address CHANGES_REQUESTED review feedback on PR #4174
- address review feedback — grep -c accuracy, font-size threshold, ANSI stripping, backslash pattern
- prevent silent failure in secret-helper get_secret_value
- docs consistency, portability, and minor code improvements
- remove dead code, error suppression, and improve reliability
- base64-encode jq values to prevent shell injection in declare (#4316)
- replace grep|cut with while IFS= read loop for task_id parsing (#4289)
- allow dots in routine names per coderabbit suggestion (#4292)
- enforce browser QA vision size guardrails (#4310)
- verify and document GH#4271 quality-debt findings in stats-wrapper.sh (#4288)

## [2.172.9] - 2026-03-13

### Fixed

- avoid false pulse idle kills during cold start (#4312)

## [2.172.8] - 2026-03-13

### Changed

- Documentation: add turn-end claim discipline gate (#4306)
- Documentation: add unreleased notes for t1459 release

### Fixed

- auto-run contribution-watch backfill on low cadence
- add backfill safety-net mode to contribution-watch

## [2.172.7] - 2026-03-12

### Fixed

- reduce contribution-watch noise with notification filtering

## [2.172.6] - 2026-03-12

### Changed

- Version bump and maintenance updates

## [2.172.5] - 2026-03-12

### Changed

- Documentation: add remote MCP consumer configuration guide to build-mcp.md (#4247)
- Performance: consolidate multiple jq calls into single invocations (#4249)
- Refactor: extract run_freshness_checks(), replace silent || true with error logging

### Fixed

- correct phase count in ai-search-readiness.md description (#4246)
- add pipefail to codacy-collector SQL pipeline subshell (#4248)
- address quality-debt review feedback (#4221, #4222, #4224) (#4253)
- pass state file path instead of content to avoid Linux E2BIG (#4258)
- make safety policy check work without ripgrep
- enforce secret-safe worker command pipeline
- address quality-debt review feedback (#4225, #4226, #4224) (#4244)
- auto-block zero-commit worker thrashing (#4208)
- harden ai-research.ts OAuth token management
- detect unparseable certificate expiry dates in email-test-suite
- remove redundant null check in eval_dataset score guard
- apply Gemini review suggestions — contextual error logging for title view/edit (GH#3153)
- harden evaluator JSON extraction and simplify score guard
- parse open_prs_json once before loop to avoid O(n) re-parsing (GH#3153)
- remove blanket stderr suppression from gh calls in health issue update (GH#3153)
- address critical review feedback on ai-judgment-helper.sh (GH#3179)
- include install path in branch-switch error log
- clean working tree before branch-switch recovery
- auto-update recovery for dirty tree, diverged branch, and API rate limits

## [2.172.3] - 2026-03-12

### Fixed

- validate fallback secret input values
- clarify secret set terminal-only flow
- make qlty/codacy install fail-open in CI (GH#4216) (#4238)

## [2.172.2] - 2026-03-12

### Fixed

- count full-loop PR workers in pulse occupancy

## [2.172.1] - 2026-03-12

### Fixed

- add adaptive pulse queue-governor signals
- use Path.as_posix for thread index links (#4181)
- consolidate fail-closed scanner skip handling (#4210)
- correct NeuronWriter endpoint guidance (#4211)

## [2.172.0] - 2026-03-12

### Added

- add AI-search GEO/SRO specialist workflows

### Fixed

- address review feedback in AI-search docs
- narrow pulse worker matching to real issue runs

## [2.171.11] - 2026-03-12

### Fixed

- enforce pulse worker launch validation guidance
- add runtime auth failure fallback retry
- retry worker launches with same-cycle provider fallback
- reallocate pulse slots when product repos are capped

## [2.171.10] - 2026-03-11

### Fixed

- resolve SC2016 in stats GraphQL queries
- prevent GraphQL injection and add slug validation in stats-functions.sh
- test harness early exit and security posture stderr suppression
- propagate assert_contains failure exit code in recovery test
- remove stray "text" from code fence closing in build-agent.md

## [2.171.9] - 2026-03-11

### Fixed

- make pulse dispatch intelligence-first by default

## [2.171.8] - 2026-03-11

### Fixed

- scan explicit targets in secretlint preflight
- stream secretlint output in patch preflight
- auto-select working secretlint runtime for preflight
- fail closed on secretlint runtime errors in preflight

## [2.171.7] - 2026-03-11

### Changed

- Documentation: add unreleased notes for pulse dispatch fallback

### Fixed

- keep pulse productive when labels lag
- align conventional commit prefixes across loop docs (GH#3800)

## [2.171.6] - 2026-03-11

### Changed

- Documentation: add unreleased patch release changelog entries

### Fixed

- make patch preflight trap cleanup shellcheck-safe
- unblock patch release preflight from historical debt
- clarify pulse wrapper fallback warning
- improve pulse wrapper fallback observability
- harden aidevops update when brew or auth refresh fails
- keep pulse status and worker cap reporting aligned
- use GitHub API fallback for gh version check when brew unavailable

## [2.171.5] - 2026-03-11

### Fixed

- simplify session context JSON fallback handling
- address final session review feedback
- resolve remaining session review feedback
- align session context helper flags and fallbacks
- harden session review security summaries

## [2.171.0] - 2026-03-10

### Added

- add DNS exfiltration detection patterns (t1428.1, GH#4023) (#4045)
- add MCP tool description runtime scanning for prompt injection detection (#4031)

### Changed

- Documentation: add t1428 Grith-inspired security enhancements plan and brief
- Refactor: standardize on pre-increment ((++var)) across all shell scripts (#3972)
- Documentation: add t1426 task brief

### Fixed

- make skills-helper.sh discover symlinked skills in custom/skills/ (#4092)
- validate auto-detected PR number and harden sql_escape against newlines (GH#3706) (#4069)
- eliminate SQL injection vulnerabilities in sonarcloud-collector-helper.sh (GH#3710) (#4068)
- address critical quality-debt in codacy-collector-helper.sh (GH#3711) (#4067)
- address SQL injection, data corruption, and command injection in audit-task-creator-helper.sh (#4065)
- validate numeric inputs before SQL interpolation and preserve triage_result in migration (GH#3716) (#4062)
- harden SQL queries against injection in quality sweep scripts (GH#3719) (#4064)
- harden resolve_rebase_conflicts against indirect prompt injection (GH#3721) (#4059)
- refactor normalise_email_sections to fix quality-debt findings (#3701) (#4060)
- resolve quality-debt findings in email-thread-reconstruction.py (#4061)
- address quality-debt in real-video-enhancer-helper.sh (GH#3729) (#4058)
- remove stray :1 suffix and fix path style in enhancor.md (#4057)
- add robustness guards to Node.js version string parsing (#4056)
- harden todo-sync.sh against injection vulnerabilities (GH#3727) (#4055)
- namespace plugin template subagent name to avoid collisions (GH#3741) (#4054)
- address critical quality-debt in enhancor-helper.sh (GH#3731) (#4053)
- add prompt injection mitigations to OCR receipt extraction prompts (#4051)
- use canonical PyPI package name for extract-thinker (GH#3742) (#4049)
- add task_id input validation to prevent command injection (GH#3734) (#4050)
- correct broken code block fences and add PATH note in Playwriter docs (#4047)
- use backticks for code elements in graduated-learnings.md (#4048)
- resubmit 5 quality-debt fixes from closed batch PRs (#3974)
- address security findings in quickfile-helper.sh (GH#3736) (#4046)
- address quality-debt in memory-audit-pulse, test-memory-mail, route.md (GH#3983, GH#3771, GH#3765) (#4043)
- address quality-debt in compare-models.md, schema-validator-helper, marketing.md (GH#3764, GH#3760, GH#3753) (#4044)
- clarify dashboard.md output format inconsistencies (#4037)
- replace echo|bc pipes with bc here-strings in OCR test script (#4039)
- address PR #4020 review bot suggestions (#4022)
- make CI workflows resilient to fork PR permission limitations (#4017)
- make worker-lifecycle-common.sh set -e safe (GH#4010) (#4018)

## [2.170.2] - 2026-03-09

### Fixed

- revert incorrect anomalyco removal, add explicit marcusquinn/aidevops slug (#4014)
- address set -e incompatible error handling and blanket stderr suppression in worker-watchdog.sh (#4013)
- address 5 quality-debt findings from closed batch PRs (batch 3) (#3976)
- address 5 quality-debt findings (batch 4) (#3977)
- address 4 quality-debt findings in plugin-loader-helper.sh (#3978)
- remove blanket error suppression in OCR test pipeline (#3979)
- detect and redeploy stale agents in update pipeline (#4001)
- tool-version-check falls back to package.json for MCP servers that block on --version (#3973)
- resubmit 5 quality-debt fixes from closed batch PRs (batch 2) (#3975)
- remove anomalyco org name from system prompt and active code to prevent slug hallucination (#3999)

## [2.170.1] - 2026-03-09

### Changed

- Documentation: add changelog entry for screen time fallback fix

### Fixed

- screen time shows 0h when launchd job lacks Knowledge DB access (#3997)
- add top-level permissions to code-review-monitoring workflow (GH#3848) (#3850)
- validate $limit as positive integer to prevent SQL injection in quality-sweep-helper.sh (#3968)

## [2.168.1] - 2026-03-09

### Added

- add contribution-watch to monitor external issues/PRs for new comments (#3933) (#3943)

### Changed

- Documentation: add changelog entry for profile README review fixes

### Fixed

- address Gemini code review feedback on profile README generation (#3963)
- move SONAR_TOKEN to job-level env so if: conditions evaluate correctly (#3958)

## [2.168.0] - 2026-03-09

### Added

- generate rich profile READMEs with badges, repos, and contributions (#3962)

### Changed

- Documentation: add changelog entry for rich profile README feature

## [2.167.2] - 2026-03-09

### Changed

- Version bump and maintenance updates

## [2.167.1] - 2026-03-09

### Fixed

- improve worker session classification to reduce inflated interactive counts (#3957)
- security hardening — path traversal, injection, jq filter bug (batch 3) (#3877)
- HIGH quality-debt batch — logic bugs, exit codes, path typo, arg guards (#3947)

## [2.167.0] - 2026-03-09

### Added

- auto-create profile README for new users on setup (#3954)
- add cache savings column to AI model usage table (#3953)

## [2.166.0] - 2026-03-09

### Added

- add top apps by screen time percentage table to profile README (#3952)

## [2.159.0] - 2026-03-08

### Added

- add session time tracking to health dashboard (#3920)

### Changed

- Documentation: add changelog entry for session time tracking

## [2.156.0] - 2026-03-08

### Added

- add hygiene layer — stash cleanup, orphan worktree detection, stale PR triage (#3895)

## [2.154.5] - 2026-03-08

### Fixed

- expand version history for opencode-anthropic-auth changelog clarity (GH#3808) (#3825)
- pin sst/opencode/github action to v1.2.21 SHA for supply chain security (#3824)
- add daily PR creation cap to prevent CodeRabbit quota exhaustion (GH#3821) (#3822)
- escape all SQL-interpolated values in cache_get/cache_put (SQL injection) (#3676)
- address critical quality-debt from PR #152 review feedback (#3506)

## [2.154.4] - 2026-03-07

### Added

- add URL-based skill import to add-skill-helper.sh (#3139)
- add URL-based update checking for non-GitHub skills (t1415.2) (#3141)

### Changed

- Documentation: add changelog for shellcheck wrapper staleness fix (#3163)
- Documentation: add Convos encrypted messaging agent (t1414.1) (#3140)

### Fixed

- capture Tier 2 classifier stderr in cmd_classify_deep (#3144)
- update stale shellcheck wrapper during setup (#3163)
- prevent command injection in worker sandbox env generation (GH#3119) (#3123)
- address PR #3081 review feedback in sandbox-exec-helper.sh (#3129)
- prevent command injection in sandbox cleanup and add consistent error logging (#3130)
- remove silent error suppression in content-classifier-helper.sh (#3137)
- address quality-debt in network-tier-helper.sh from PR #3081 review (#3138)

## [2.154.3] - 2026-03-07

### Changed

- Documentation: add changelog for shellcheck auto-parallel (#3142)
- Performance: auto-detect CPU count for shellcheck concurrency limit (#3142)

## [2.154.2] - 2026-03-07

### Changed

- Documentation: add changelog for shellcheck resource management (#3136)
- Performance: add shellcheck concurrency limiter, debounce, and orphan reaper (#3136)

## [2.154.1] - 2026-03-07

### Changed

- Documentation: add changelog entries for shellcheck wrapper hotfix (GH#2915)

### Fixed

- replace shellcheck binary with wrapper to prevent memory explosions (GH#2915) (#3125)

## [2.154.0] - 2026-03-07

### Added

- add security-audit-sweep.sh and run cross-repo security audit (t1412.13) (#3100)
- add command logger helper for worker command auditing (t1412.5) (#3102)
- add network domain tiering for worker sandboxing (t1412.3) (#3081)
- add startup security posture check (t1412.6) (#3089)
- add worker sandbox for credential isolation (t1412.1) (#3080)
- enhance task-decompose-helper with context-aware classification and improved LLM prompts (#3091)
- add per-repo security posture checks to aidevops init (#3093)
- add scoped short-lived GitHub tokens for worker agents (t1412.2) (#3094)

### Changed

- Documentation: add MCP server install security warnings across all MCP docs and install flows (#3090)
- Documentation: recommend @stackone/defender for product-side injection defense (#3097)
- Documentation: t1412.13 includes per-repo AGENTS.md security section updates
- Documentation: add t1412.13 security audit sweep across managed repos
- Documentation: add StackOne Defender learnings to t1412 — framework + product-side
- Documentation: add t1412.11 per-repo security posture in aidevops init
- Documentation: expand t1412 with intelligence-layer scan, tamper-evident logging, CI/CD guidance, MCP warnings
- Documentation: add user-action requirements and startup security posture check (Phase 6) to t1412
- Documentation: add t1412 worker sandboxing task — credential isolation, network tiering, content trust boundaries

### Fixed

- pin all GitHub Actions to SHA and fix github.event injection risks (#3103)
- suppress SC2030 for intentional PATH modification in test subshells (#3051)
- bash 3.2 compatibility for dataset-helper.sh and align bench --dataset with dataset convention (#3079)
- address ShellCheck dead code warnings (SC2034, SC2317, SC2329) (#3077)
- correct t1412 brief to reference OpenCode throughout
- restore accurate Claude Code references in t1412 brief
- correct runtime identity references in t1412 brief (OpenCode, not Claude Code)
- align task-decompose-helper.sh invocations with actual API contract (#3042)
- use $path/TODO.md in pulse lineage examples instead of bare TODO.md (#3044)
- remove blanket stderr suppression and fix stream mixing in review-bot-gate-helper (#3039)
- correct documentation link paths in orchestration.md (#3036)
- resolve canonical model names in routing tiers output (#3032)
- add request-retry to review-bot-gate-helper for rate-limited bots (#3017)
- memory recall uses per-token quoting instead of phrase matching (#3064)
- move orphaned table rows back into Decision Table in headless-dispatch.md (#3065)

## [2.153.0] - 2026-03-07

### Added

- pulse CI failure pattern detection — identify systemic workflow bugs (#2979)

### Fixed

- replace ls -lh with stat-based human_filesize helper (SC2012) (#3059)
- resolve SC2034 unused variable warnings in test and agent scripts (#3060)
- add per-file SC2329 shellcheck disable directives with justification (#3061)
- replace sed with parameter expansion in email-signature-parser-helper.sh (#3055)
- remove unreachable return guard in generate-claude-commands.sh (SC2317) (#3054)
- export platform/repo constants to prevent recurring SC2034 (#3045) (#3046)
- remove incorrect format-lineage helper reference from headless-dispatch docs (#3043)
- pass title as positional arg to classify in new-task.md (#3041)
- remove 2>/dev/null from task decomposition bash examples (#3040)
- address high-severity quality-debt in batch-strategy-helper.sh (#3033)
- group consecutive redirects with { } >> file (SC2129) in setup-modules (#3015)
- remove unused PLATFORM_LINUX and annotate cross-file SC2034 variables (#3012)
- replace SC2015 A&&B||C antipatterns with if-then-else in mcp-setup.sh (#3011)
- review-bot-gate falls back to SUCCESS status checks when bots are rate-limited (#3006)

## [2.152.0] - 2026-03-06

### Added

- wire task decomposition into dispatch pipeline (t1408.2) (#2997)
- t1408.4 add batch execution strategies for task decomposition dispatch (#3000)
- t1407 check contributing guidelines before filing on external repos (#3001)
- t1408 recursive task decomposition for dispatch — plan, brief, and TODO entry
- add CI self-healing to pulse — re-run stale checks after workflow fixes merge (#2981)
- add CI failure pattern detection to pulse — detect systemic workflow bugs (#2976)

### Changed

- Refactor: extract session flag paths to script-level constants in pulse-wrapper.sh (#2978)
- Refactor: t1409 classify processes as app vs tool in memory-pressure-monitor (#2998)

### Fixed

- install memory pressure monitor via setup.sh for reboot survival (#2965)
- prevent orphaned processes from timeout_sec pipe to head in test_smtp (#2970)
- avoid orphaned processes from timeout_sec pipe to head on macOS (#2971)
- use character class grep pattern and escape dots in pulse-session-helper (#2977)
- pulse watchdog — add progress inspection, raise timeouts, reorder main() (#2991)
- remove blanket stderr suppression in cleanup_worktrees() (#3004)
- remove stderr suppression from jq calls in config-helper.sh (#3002)
- replace blanket 2>/dev/null with explicit file checks in shell-env.sh (#3003)
- calculate LLM cost from tokens — OpenCode does not provide msg.cost (#2972)
- review-bot-gate distinguishes rate-limit notices from real reviews (#2980) (#2982)
- resolve CI check failures on all PRs — regex false positive + concurrency (#2974)

## [2.151.6] - 2026-03-06

### Changed

- Version bump and maintenance updates

## [2.151.2] - 2026-03-05

### Added

- add session-based pulse control (aidevops pulse start/stop/status) (#2935)

### Fixed

- disable SC1091 globally and remove source-path=SCRIPTDIR from .shellcheckrc (#2939)
- require explicit consent for supervisor pulse installation (GH#2926) (#2936)

## [2.151.1] - 2026-03-05

### Fixed

- write SHELLCHECK_PATH to .zshenv for non-interactive shell coverage (#2937)
- config-helper.sh _jsonc_get discards false/0 values due to jq // empty (#2931)
- add timeout and hung-process detection to get_installed_version (#2932)

## [2.151.0] - 2026-03-05

### Fixed

- address 5 review findings on memory-pressure-monitor.sh from PR #2884 (#2930)
- sanitize process names in log output to prevent log injection (t1402) (#2908)
- harden ShellCheck fallback path — process group kill + missing warning (#2923)
- address quality-debt review feedback on pulse-wrapper.sh (t2892) (#2913)

## [2.150.0] - 2026-03-05

### Added

- add session count awareness to warn on excessive concurrent sessions (t1398.4) (#2883)
- add process-focused memory pressure monitor (t1398.5) (#2884)

### Changed

- Refactor: deduplicate CodeRabbit trigger logic in quality sweep (t1401) (#2887)
- Refactor: use array for trigger_reasons construction in pulse-wrapper.sh (t2856) (#2886)
- Refactor: collapse redundant jq severity elif/else branches (#2824)

### Fixed

- replace grep-based downgrade test with functional test (GH#2867) (#2889)
- remove stderr suppression from write_proof_log calls (t2865) (#2888)
- add process resource guard to pulse-wrapper.sh (t1398.1) (#2881)
- add pulse self-watchdog idle detection (t1398.3) (#2882)
- harden ShellCheck invocation to prevent exponential expansion (t1398.2) (#2885)
- replace kill -0 with ps -p and remove redundant 2>/dev/null in pulse-wrapper.sh (#2879)
- remove 2>/dev/null from db() calls in todo-sync.sh to preserve diagnostic stderr (#2880)
- remove blanket stderr suppression from db() call in todo-sync.sh (#2872)
- address critical quality-debt in sanity-check.sh (GH#2866) (#2870)
- add first-run guard and remove over-sensitive condition in CodeRabbit sweep trigger (#2852)
- add watchdog timeout to pulse-wrapper run_pulse() (t1397) (#2853)
- suppress auto-pickup in pulse --batch mode to prevent phantom batches (#2837) (#2843)
- skip batch tasks in Phase 0.6 reconcile-queue to prevent premature cancellation (#2844)
- prevent Phase 0.9 sanity check from resetting completed tasks to queued (t2838) (#2845)
- skip delta-based CodeRabbit triggers on first sweep run (t1392) (#2835)
- improve actionability of conversational memory lookup guidance (t1391) (#2830)
- use full URL with {slug} placeholder in wiki clone example (#2831)
- add busy_timeout to sqliteExec() preventing database locked errors (#2828)
- replace 2>/dev/null with --silent on gh api label POST calls (#2829)
- remove 2>/dev/null from gh pr view in check_external_contributor_pr (#2825)
- move external-contributor idempotency guard from prompt to shell function (t1391) (#2810)
- make CodeRabbit sweep conditional on quality gate changes (t1390) (#2808)
- rewrite pulse external-contributor idempotency guard to fail closed on API errors (#2803)
- use jq any() for robust pulse idempotency guard label check (#2801)

## [2.147.3] - 2026-03-01

### Added

- add Step 3.7 to pulse.md — act on quality review findings (#2638)

## [2.147.2] - 2026-03-01

### Fixed

- grep -c with || echo produces multiline output breaking arithmetic (#2637)
- replace Python 3.10+ union type syntax with Optional for 3.9 compat (#2635)

## [2.147.1] - 2026-03-01

### Added

- add Qlty CLI to setup.sh tool installation (#2633)

## [2.147.0] - 2026-03-01

### Added

- add daily multi-tool code quality sweep across all repos (#2631)

## [2.146.4] - 2026-03-01

### Changed

- Documentation: align git workflow docs with assignment and worktree conventions (#2630)

## [2.146.3] - 2026-03-01

### Fixed

- make dispatch dedup resilient to worker crashes across machines (#2629)

## [2.146.2] - 2026-03-01

### Fixed

- self-assign issues on dispatch, correct title pluralization (#2628)

## [2.146.1] - 2026-03-01

### Fixed

- health issue shows assigned count and unpins stale closed issues (#2626)

## [2.146.0] - 2026-03-01

### Added

- add pinned health issue dashboard per repo per runner (#2624)
- add orphaned PR scanner to supervisor pulse (t216) (#2622)
- enforce Task tool parallelism for independent subtasks in worker dispatch prompt (#2621)

### Fixed

- harden ampcode-cli.sh with array whitelists and safe arg handling (t105) (#2623)

## [2.145.1] - 2026-02-28

### Added

- cross-repo worktree cleanup with squash-merge detection (#2616)

## [2.145.0] - 2026-02-28

### Added

- wire parallel model verification into pipeline (t1364.3) (#2598)
- wire bundle config into dispatch, quality gates, and agent routing (t1364.6) (#2596)
- wire parallel model verification into pipeline (t1364.3) (#2580)
- add cross-provider verification agent and helper script (t1364.2) (#2576)
- define high-stakes operation taxonomy and verification triggers (t1364.1) (#2572)
- add /security-audit command for external repo security auditing (#2567)
- add automatic worktree cleanup for merged PRs (#2551)
- add mission email helper for 3rd-party communication (t1360) (#2553)
- add procurement agent for autonomous mission purchases (t1358) (#2550)
- replace hardcoded thresholds with AI judgment (t1363.6) (#2547)
- add entity memory architecture doc and integration tests (t1363.7) (#2545)

### Changed

- Documentation: add entity memory architecture doc, update memory README, add integration tests (t1363.7) (#2548)

### Fixed

- stop pulse from creating spam summary issues and duplicate task issues (#2615)
- add PATH normalisation to pulse for MCP shell compatibility (#2614)
- change shebang to #!/bin/bash in issue-sync scripts for headless PATH compatibility (#2611)
- replace dirname with parameter expansion in session-miner-pulse.sh (#2609)
- replace dirname with pure-bash parameter expansion in issue-sync scripts (#2603)
- prevent framework from leaving uncommitted changes in project repos (#2574)
- pass --interactive flag to aidevops-update-check.sh in AGENTS.md greeting (#2557)
- derive repo name from git remote URL instead of basename in cmd_init (#2549)

## [2.144.0] - 2026-02-28

### Added

- replace hardcoded thresholds with AI judgment (t1363.6) (#2539)
- add self-evolution loop for capability gap detection (t1363.4) (#2538)
- add mission-aware browser QA for milestone validation (t1359) (#2541)
- integrate entity system into Matrix bot (t1363.5) (#2537)

### Changed

- Refactor: replace .agents symlink with real directory scaffold in aidevops init (#2544)

## [2.142.1] - 2026-02-27

### Added

- add CI guard to auto-reopen issues with persistent label (#2489)

### Changed

- Performance: parallelise skill scanning and stub generation to fix update timeout (#2493)

### Fixed

- skip .gitignore modification for repos with tracked .agents/ directory (#2491)

## [2.142.0] - 2026-02-27

### Added

- add CI check for PR-issue linkage via closing keywords (#2486)

### Fixed

- scope TTSR read-before-edit rule to existing files only (#2487) (#2488)
- handle bare array format in pulse-repos.json migration (#2485)
- guard Rosetta detection against missing file command (t1354) (#2484)

## [2.141.0] - 2026-02-27

### Changed

- Documentation: add v2.141.0 changelog entries for release
- Documentation: add cross-repo task creation guidance to AGENTS.md and build.txt (#2483)
- Documentation: add Next.js stale lock file knowledge to local-hosting.md (#2482)

### Fixed

- remove state-diff gate from pulse wrapper (#2481)

## [2.140.0] - 2026-02-27

### Changed

- Documentation: add v2.140.0 changelog entries for release
- Documentation: add duplicate issue detection guidance to pulse agent (#2480)

## [2.139.1] - 2026-02-27

### Changed

- Documentation: add v2.140.0 changelog entries [skip ci]

### Fixed

- add Python >= 3.10 pre-check before cisco-ai-skill-scanner install (t1351) (#2472)

## [2.139.0] - 2026-02-27

### Added

- pre-fetch all repo state before pulse to prevent single-repo tunnel vision (#2471)

### Changed

- Documentation: move changelog entries to [Unreleased] for release script [skip ci]
- Documentation: add v2.139.0 changelog entries for pulse seed state [skip ci]
- Refactor: strengthen 'Intelligence Over Determinism' as core harness principle (#2467)
- Refactor: simplify pulse.md — 622 to 127 lines, trust intelligence over deterministic rules (#2465)

### Fixed

- replace arbitrary 5-minute time budget with 'run until done, then exit' (#2466)
- use full path scripts/commands/pulse.md in all agent references (#2459)
- add mandatory OPEN state check before dispatching workers (#2455)
- pulse should close open issues labeled status:done (#2456)
- add broader dedup search before fallback issue creation (#2447) (#2454)
- add local dev routing to Build+ Domain Expertise Check table (#2453)

## [2.138.0] - 2026-02-27

### Added

- add cross-repo TODO-to-issue sync in supervisor pulse (#2451)

### Changed

- Documentation: add Intelligence Over Scripts to system prompt and PR issue-linkage guidance (#2446)

### Fixed

- prevent worker issue hijacking and require cross-repo TODO commit+push (#2450)

## [2.137.0] - 2026-02-27

### Added

- add longform talking-head video pipeline with MiniMax TTS, VEED Fabric, and InfiniteTalk (#2445)

### Changed

- Refactor: merge pulse-repos.json into repos.json with slug field (#2448)

### Fixed

- add local_only field and support nested repo paths (#2449)
- strengthen webfetch error prevention guidance based on 46.8% failure rate analysis (#2444)
- always regenerate pulse plist on setup.sh upgrades (#2442)

## [2.135.1] - 2026-02-27

### Changed

- Version bump and maintenance updates

## [2.134.1] - 2026-02-27

### Changed

- Documentation: update model files from aidevops (t1133)

## [2.134.0] - 2026-02-26

### Added

- add install/serve/pull aliases and update subcommand to local-model-helper.sh (t1338.4) (#2395)
- finalize local-models subagent — integrate session nudge, fix stale markers (#2391)
- add advisory stuck detection for supervisor workers (t1332) (#2393)
- align local tier fallback to haiku and add local to routing table (t1338.1) (#2385)

### Changed

- Documentation: update model files from aidevops (t1133)
- Documentation: add Tier 3 scripts audit report (t1337.1) (#2397)
- Documentation: update model files from aidevops (t1133)
- Documentation: update model files from aidevops (t1133)

### Fixed

- skip update check in headless/non-interactive sessions (#2400)
- use jq -sr (raw output) in _count_usage_in_window to prevent JSON-quoted pipe-delimited output (#2389)
- use Linux-first stat format in matterbridge test permissions check (t1328) (#2387)

## [2.133.11] - 2026-02-26

### Changed

- Documentation: changelog for pulse scheduler setup guide
- Documentation: add pulse scheduler setup guide to runners.md — plist creation, reboot behavior, RunAtLoad (#2383)

### Fixed

- add blocker-chain validation, worker time budgets, and dependency chain ordering (#2382)

## [2.133.10] - 2026-02-26

### Changed

- Documentation: changelog for intelligence-driven worker assessment

### Fixed

- replace deterministic kill thresholds with intelligence-driven worker assessment (#2381)

## [2.133.9] - 2026-02-26

### Changed

- Documentation: changelog for tool check timeout fix

### Fixed

- add timeouts to npm/brew/pip queries to prevent update hangs (#2286) (#2380)

## [2.133.8] - 2026-02-26

### Added

- pulse auto-resolves blocked issues — checks blockers, unblocks when resolved, comments why (#2379)

### Changed

- Documentation: changelog for blocked issue resolution

## [2.133.7] - 2026-02-26

### Changed

- Documentation: changelog for headless greeting fix

### Fixed

- skip greeting/question in headless command sessions (pulse, full-loop) (#2377)

## [2.133.6] - 2026-02-26

### Added

- add prompt-guard-helper.sh for chat input injection defense (t1327.8) (#2374)
- add outbound leak detection at bot send boundary (t1327.9) (#2373)

### Changed

- Documentation: changelog for pulse autonomy v2 fix

### Fixed

- stronger autonomous execution enforcement in pulse — prevent report-and-stop pattern (#2376)

## [2.133.5] - 2026-02-26

### Added

- t1338.5 usage logging and disk management for local models (#2340)

### Changed

- Documentation: changelog for pulse autonomy fix and housekeeping

### Fixed

- enforce autonomous execution in pulse — never ask user for confirmation (#2368)
- add prevention rules for top 5 recurring error patterns (#2367)
- migrate repo-sync-helper.sh launchd label to sh.aidevops convention (#2365)

## [2.133.4] - 2026-02-26

### Changed

- Documentation: add changelog for pulse-repos.json and plist fix

### Fixed

- pulse.md reads repos from pulse-repos.json instead of hardcoding (#2361)

## [2.133.3] - 2026-02-26

### Added

- add usage logging and disk management for local models (#2358)

### Changed

- Documentation: add changelog entry for dispatch CLI fix

### Fixed

- enforce opencode run for headless dispatch — never use claude CLI (#2359)

## [2.133.2] - 2026-02-26

### Changed

- Documentation: add changelog entry for dedup script archival

## [2.133.1] - 2026-02-26

### Changed

- Documentation: add changelog entry for supervisor pulse guidance improvements

### Fixed

- Improve supervisor pulse guidance — dedup, blocked issues, stuck workers (#2350)

## [2.133.0] - 2026-02-26

### Added

- Add design principles checklist to UI verification workflow (#2349)

### Changed

- Documentation: add changelog entry for design principles

## [2.132.0] - 2026-02-26

### Added

- add agent-driven issue label lifecycle to full-loop and pulse (#2347)
- add UI verification workflow for design/layout tasks (#2346)
- auto-update TODO.md proof-log on PR merge (#2338)
- t1338.4 create local-model-helper.sh for llama.cpp inference management (#2334)
- add opus strategic review phase to supervisor pulse (t1340) (#2333)
- PR-merge triggered issue-sync for closing hygiene (t1339)

### Changed

- Documentation: recommend subscription plans over API billing for regular use (#2345)

### Fixed

- strategic review — add root cause analysis with dedup against existing work (#2339)
- strategic review — cross-repo discovery, action/TODO split, concurrency awareness (#2336)
- add --repo flag to gh CLI calls in PR-merge sync jobs

## [2.131.0] - 2026-02-25

### Added

- add structural thinking, scientific reasoning, and reasoning responsibility to build.txt (#2315)
- session miner — daily self-improvement pulse from session data (#2313)

### Changed

- Documentation: add launchd/cron naming convention to AGENTS.md (#2319)
- Documentation: t1306 mark stream hooks upstream PR complete with brief (#2318)
- Documentation: add build-agent routing instruction for all primary agents (#2314)
- Documentation: t1311 post-migration review of swarm DAG research (#2306)

### Fixed

- t1327.2 address PR review feedback on SimpleX subagent docs (#2317)
- add dispatch dedup helper with normalized title matching (#2310) (#2312)
- distinguish advisory vs critical failures in postflight workflow (#2308)

## [2.130.0] - 2026-02-25

### Added

- add mandatory closing comment gate to full-loop workers (#2297)

### Changed

- Documentation: add task briefs for t1335-t1337 — archive and simplify redundant orchestration scripts

### Fixed

- mark t1314 complete — batch concurrency bypass resolved by PR #2236 and obsoleted by supervisor refactor #2291
- scrub private repo names from public issue tracker and add automated sanitization (#2303)
- add cross-repo routing rule to prevent wrong-repo task creation (#2302)
- exclude currency/pricing patterns from shell-local-params rule false-positives (#2296)

## [2.129.0] - 2026-02-25

### Added

- add self-improvement principle and agent routing to pulse system (#2295)
- t1331 — standalone circuit breaker for AI pulse supervisor (#2294)
- t1327.6 Matterbridge integration for SimpleX-Matrix bridging
- add SimpleX Chat bot API research report (t1327.1) (#2258)
- t1328 matterbridge agent + t1329 cross-review judge pipeline (#2267)

### Changed

- Refactor: replace 37K-line bash supervisor with 123-line AI pulse system (#2291)
- Documentation: rebase and consolidate SimpleX Chat subagent documentation (t1327.2) (#2266)
- Documentation: update model files from aidevops (t1133)
- Documentation: update model files from aidevops (t1133)
- Documentation: update model files from aidevops (t1133)
- Documentation: update model files from aidevops (t1133)
- Documentation: update model files from aidevops (t1133)
- Documentation: update model files from aidevops (t1133)
- Documentation: update model files from aidevops (t1133)
- Documentation: update model files from aidevops (t1133)

### Fixed

- make cmd_update() resilient to dirty tree, diverged history, and detached HEAD (#2289)
- prevent aidevops update from dirtying git working tree (#2286) (#2287)
- add CI failure debugging guidance to worker protocol (#2283)
- sanity-check grep -c arithmetic errors from whitespace in output (#2280)

## [2.127.1] - 2026-02-25

### Fixed

- gather_task_state query references non-existent worker_pid column — Phase 3 completely broken (#2275)

## [2.127.0] - 2026-02-25

### Added

- cross-repo issue/PR visibility in supervisor AI context + concurrency underutilisation alerting (#2272)

### Changed

- Documentation: update model files from aidevops (t1133)

### Fixed

- unpin stale supervisor health issues when closing or replacing them (#2270)

## [2.126.0] - 2026-02-25

### Added

- support .aidevops.json project config in claim-task-id.sh (t1322) (#2237)
- increase AI timeouts to 30s and add deferred re-evaluation queue (t1325) (#2242)
- AI-based issue duplicate detection and auto-dispatch assessment (t1324) (#2241)
- align repo-sync-helper.sh with auto-update-helper.sh patterns (t1264.2) (#2200)

### Changed

- Documentation: add SimpleX (t1327) and Matterbridge (t1328) planning artifacts (#2255)
- Documentation: update model files from aidevops (t1133)
- Documentation: update model files from aidevops (t1133)
- Refactor: t1160.3 — align runner-helper.sh CLI resolution with dual-CLI architecture (#2231)
- Documentation: update model files from aidevops (t1133)
- Documentation: update model files from aidevops (t1133)
- Documentation: update model files from aidevops (t1133)
- Documentation: update model files from aidevops (t1133)
- Documentation: update model files from aidevops (t1133)
- Documentation: t1321 integration test results — final t1311 migration audit (#2229)
- Refactor: t1318-t1320 migrate check_task_staleness() to AI, document mechanical modules (#2226)
- Documentation: update model files from aidevops (t1133)
- Refactor: t1315 migrate pulse.sh get_task_timeout() to AI classification (#2225)
- Refactor: t1313 migrate dispatch.sh decision logic to AI (#2224)
- Refactor: t1312 remove dead code stubs + retire evaluate_worker heuristic tree (#2221)
- Refactor: migrate should_run_routine() from case-statement to AI scheduling (t1317) (#2220)
- Documentation: update model files from aidevops (t1133)
- Documentation: update model files from aidevops (t1133)
- Documentation: update model files from aidevops (t1133)
- Documentation: update model files from aidevops (t1133)
- Refactor: replace deterministic supervisor lifecycle with AI-first decision engine (#2206)
- Documentation: update model files from aidevops (t1133)
- Documentation: update model files from aidevops (t1133)
- Documentation: update model files from aidevops (t1133)
- Documentation: update model files from aidevops (t1133)
- Documentation: update model files from aidevops (t1133)
- Documentation: update model files from aidevops (t1133)
- Documentation: update model files from aidevops (t1133)
- Documentation: update model files from aidevops (t1133)
- Documentation: update t1305 issue draft with current upstream status (t1305) (#2201)

### Fixed

- resolve bare tier names to full model strings before DB storage (#2256)
- resolve merge conflict markers in TODO.md (t1305/t1306, t1107)
- exclude currency patterns from shell-local-params rule (t1323) (#2238)
- prevent duplicate supervisor health issues via label-based lookup and dedup guard (#2243)
- register blocked tasks in DB during auto-pickup instead of skipping (#2239)
- blocked-by parser matches backtick-quoted code in task descriptions (#2232)
- bash 3.2 compatibility for routine-scheduler cache (#2222)
- add Phase 3d to merge open PRs for verified tasks and adopt orphan PRs (#2205)

## [2.125.1] - 2026-02-24

### Changed

- Documentation: update model files from aidevops (t1133)
- Documentation: update model files from aidevops (t1133)
- Documentation: update model files from aidevops (t1133)
- Documentation: update model files from aidevops (t1133)
- Documentation: update model files from aidevops (t1133)
- Documentation: update model files from aidevops (t1133)
- Documentation: update model files from aidevops (t1133)
- Documentation: update model files from aidevops (t1133)
- Documentation: update model files from aidevops (t1133)
- Documentation: update model files from aidevops (t1133)
- Documentation: update model files from aidevops (t1133)
- Documentation: update model files from aidevops (t1133)
- Documentation: update model files from aidevops (t1133)
- Documentation: update model files from aidevops (t1133)
- Documentation: update model files from aidevops (t1133)
- Documentation: update model files from aidevops (t1133)
- Documentation: update model files from aidevops (t1133)
- Documentation: update model files from aidevops (t1133)
- Documentation: update model files from aidevops (t1133)
- Documentation: update model files from aidevops (t1133)
- Documentation: update model files from aidevops (t1133)

### Fixed

- prevent TTSR messagesTransformHook infinite correction loop (#2203)
- cron.sh script_path resolves to wrong directory (GH#2160), unblock t1311, add t1314 for batch concurrency fix (GH#2163) (#2193)
- prevent undefined content in memory store (t1302) (#2125)
- pass task_line to find_closing_pr in audit — fixes false no_pr_linkage for auto-reaped tasks (t1158) (#2197)
- add sequential dependency enforcement for t1120 subtask chain (t1257) (#2195)

## [2.125.0] - 2026-02-23

### Added

- add executable verify blocks for task briefs (t1313) (#2187)
- add container pool manager for supervisor (t1165.2) (#2184)
- link task IDs to GitHub issues in health dashboard alerts (#2171)

### Changed

- Documentation: update model files from aidevops (t1133)
- Documentation: update model files from aidevops (t1133)
- Documentation: update model files from aidevops (t1133)

### Fixed

- clear dedup guard state on task reset to prevent false cancellations (#2189)
- ensure task briefs are copied into worktrees at dispatch time (#2188)
- guard MEMORY_DB with default empty to prevent unbound variable crash (#2186)
- resolve three supervisor pulse-blocking bugs (#2185)
- align OAuth routing tests with PR #2173 (opencode is sole worker CLI) (#2180)
- correct repo slug anomalyco/aidevops to marcusquinn/aidevops (#2181)
- force opencode as sole worker CLI, remove OAuth routing to claude CLI (#2173)
- bash 3.2 compatibility and readonly variable conflicts (#2172)

## [2.124.2] - 2026-02-22

### Changed

- Documentation: update model files from aidevops (t1133)

### Fixed

- kill running osgrep processes before cleanup to prevent index rebuilds (#2170)

## [2.123.5] - 2026-02-22

### Added

- add intent tracing to OpenCode plugin tool call logging (t1309) (#2153)

### Changed

- Documentation: add hashline edit format reference (t1310) (#2151)

### Fixed

- safe empty array expansion in _run_generator under set -u

## [2.123.4] - 2026-02-22

### Changed

- Documentation: add changelog entry for v2.123.4
- Documentation: update model files from aidevops (t1133)

### Fixed

- add npm fallback for OpenCode version detection (#2165)

## [2.123.4] - 2026-02-22

### Fixed

- Add npm fallback for OpenCode version detection when CLI not in PATH during session init (#2165)

## [2.123.3] - 2026-02-22

### Added

- mandatory task briefs with session provenance and conversation context (#2116)

### Changed

- Documentation: add changelog entry for v2.123.3
- Documentation: update TODOs t1305, t1306, t1309 with OpenCode v1.2.x release notes

### Fixed

- detect OpenCode version via CLI instead of hardcoded bun package.json path (#2164)

## [2.123.3] - 2026-02-22

### Fixed

- Detect OpenCode version via CLI instead of hardcoded bun package.json path (#2164)

## [2.123.2] - 2026-02-22

### Added

- add quick tool staleness check to aidevops update (#2161)

### Changed

- Documentation: add changelog entry for v2.123.2

## [2.123.2] - 2026-02-22

### Added

- Quick tool staleness check in `aidevops update` — checks key tools (opencode, gh) and offers to run full update (#2161)

## [2.123.1] - 2026-02-22

### Changed

- Documentation: add changelog entries for v2.123.0 and v2.123.1

### Fixed

- use npm for tool updates and capture positional params as locals (#2158)

## [2.123.1] - 2026-02-22

### Fixed

- Use npm (not bun) for all tool update commands in tool-version-check.sh — bun not guaranteed installed (#2158)
- Fix OpenCode package name from `opencode` to `opencode-ai` in tool registry (#2158)
- Capture positional params as locals in run_with_spinner after shift (#2158)

## [2.123.0] - 2026-02-22

### Added

- NetBird self-hosted mesh VPN agent with multi-platform support

## [2.122.5] - 2026-02-22

### Added

- expand supervisor health issue with per-task detail and typed attention breakdown (#2156)

### Changed

- Documentation: add changelog entry for v2.122.5

### Fixed

- suppress Homebrew auto-update globally in run_with_spinner for all brew commands (#2157)

## [2.122.5] - 2026-02-22

### Fixed

- Suppress Homebrew auto-update globally in run_with_spinner for all 10 brew install call sites (#2157)

## [2.122.4] - 2026-02-22

### Changed

- Documentation: add changelog entry for v2.122.4
- Documentation: update model files from aidevops (t1133)

### Fixed

- export HOMEBREW_NO_AUTO_UPDATE so it propagates to backgrounded brew install (#2155)

## [2.122.4] - 2026-02-22

### Fixed

- HOMEBREW_NO_AUTO_UPDATE not propagating to backgrounded brew install, causing duplicate 50MB index download (#2155)

## [2.122.3] - 2026-02-22

### Added

- add spinner to brew/apt/dnf/yum/pacman/apk installs during setup (#2154)

### Changed

- Documentation: add changelog entry for v2.122.3

## [2.122.3] - 2026-02-22

### Added

- Spinner feedback for package manager installs during setup (brew, apt, dnf, yum, pacman, apk) (#2154)

## [2.122.2] - 2026-02-22

### Changed

- Documentation: add changelog entry for SETUP_MODULES_DIR hotfix

### Fixed

- curl install dies at SETUP_MODULES_DIR under set -e on fresh machines (#2149)

## [2.122.1] - 2026-02-22

### Changed

- Documentation: add changelog entry for curl install fix

### Fixed

- curl install silently exits — bootstrap guard before source lines (#2148)

## [2.122.0] - 2026-02-22

### Added

- add idle-gated tool auto-update to keep all installed tools fresh (#2145)
- worker-count concurrency model and parallel sibling dispatch (#2146)
- add fix_ci action to supervisor AI lifecycle for automatic CI repair (#2144)

### Changed

- Documentation: add changelog entries for v2.122.0
- Documentation: update model files from aidevops (t1133)
- Documentation: update model files from aidevops (t1133)
- Documentation: update model files from aidevops (t1133)
- Documentation: update model files from aidevops (t1133)
- Documentation: update model files from aidevops (t1133)
- Documentation: update model files from aidevops (t1133)
- Documentation: update model files from aidevops (t1133)
- Documentation: update model files from aidevops (t1133)
- Documentation: update model files from aidevops (t1133)
- Documentation: update model files from aidevops (t1133)

### Fixed

- disable Phase 4e PPID=1 orphan kill sweep in pulse.sh (#2143)

## [2.121.0] - 2026-02-21

### Changed

- Refactor: eliminate evaluating state race condition in supervisor pulse (#2056)
- Refactor: add build_cli_cmd() abstraction to replace duplicated CLI branches (t1160.1) (#2053)
- Documentation: update model files from aidevops (t1133)
- Documentation: update model files from aidevops (t1133)

### Fixed

- add ai-chat-sidebar to subagent-index.toon (t1267) (#2049)
- wire -needed blocker tags into cron auto-pickup and add park_task AI action (t1287) (#2052)

## [2.120.0] - 2026-02-21

### Added

- extend skills discovery with skills.sh registry search (t1280) (#2035)
- harden Gitea API adapter with error checking, label caching, pagination, and search (t1120.2) (#2031)

### Changed

- Documentation: update model files from aidevops (t1133)
- Documentation: update model files from aidevops (t1133)
- Documentation: update model files from aidevops (t1133)
- Documentation: update model files from aidevops (t1133)
- Documentation: update model files from aidevops (t1133)
- Documentation: update model files from aidevops (t1133)
- Documentation: add Repo Sync section to AGENTS.md (t1264.4) (#2023)

### Fixed

- resolve BSD sed regex, dedup suppression, and add adaptive AI pulsing (t1285) (#2043)
- create one GitHub issue per ID in claim-task-id.sh --count N batch allocation (#2045)
- extend create_improvement dedup window + add recent fixes context (t1284) (#2040)
- wp-helper.sh run_wp_command() CONFIG_FILE not propagated from get_site_config subshell (t1279) (#2028)

## [2.119.3] - 2026-02-20

### Changed

- Documentation: add changelog entries for t1276

## [2.119.2] - 2026-02-20

### Added

- add repo-sync parent dirs onboarding question to onboarding-helper.sh (t1264.3) (#2016)

### Changed

- Documentation: add changelog entries for upcoming release
- Documentation: update model files from aidevops (t1133)
- Documentation: update model files from aidevops (t1133)

### Fixed

- document t1200 merge conflict resolution — no conflict exists, all subtasks merged (t1274) (#2020)

## [2.119.1] - 2026-02-20

### Changed

- Documentation: add changelog entries for v2.120.0 (t1273)
- Documentation: update model files from aidevops (t1133)
- Documentation: update model files from aidevops (t1133)
- Documentation: update model files from aidevops (t1133)
- Documentation: update model files from aidevops (t1133)
- Documentation: update model files from aidevops (t1133)
- Documentation: update model files from aidevops (t1133)
- Documentation: update model files from aidevops (t1133)
- Documentation: update model files from aidevops (t1133)
- Documentation: update model files from aidevops (t1133)
- Documentation: update model files from aidevops (t1133)

## [2.119.0] - 2026-02-20

### Added

- add missing MuAPI endpoints — specialized apps, storyboarding, payments (#2013)
- add t1271 mobile-app-dev and browser-extension-dev agents task
- auto-detect plan refs from PLANS.md Task/TODO field in compose_issue_body (t1268) (#2000)

### Changed

- Documentation: add changelog entries for v2.119.0
- Documentation: update model files from aidevops (t1133)
- Documentation: update model files from aidevops (t1133)

## [2.118.0] - 2026-02-20

### Added

- add t1269 — fix stuck evaluating tasks with crash-resilient evaluation
- add 'get' command to secret-helper.sh for programmatic secret retrieval (#1990)
- add daily repo sync via repo-sync-helper.sh (t1264) (#1989)

### Changed

- Documentation: update model files from aidevops (t1133)
- Documentation: update model files from aidevops (t1133)
- Documentation: update model files from aidevops (t1133)
- Documentation: update model files from aidevops (t1133)
- Documentation: update model files from aidevops (t1133)

### Fixed

- resolve SIGPIPE in _launchd_is_loaded under pipefail (t1265)
- skip LaunchAgent plist rewrite when content unchanged (t1265)
- supervisor auto-pickup skips tasks with assignee:/started: fields (t1062) (#1519)
- exclude canceled tasks from 7-day success rate metric (t1248) (#1983)

## [2.117.0] - 2026-02-19

### Added

- add local-hosting.md agent — comprehensive localdev knowledge base (t1224.6) (#1939)
- add auto-unblock detection for tasks with resolved blockers (t1243) (#1935)
- add unified localdev dashboard with cert status, process health, and LocalWP sites.json (t1224.5) (#1934)
- add trivial bugfix threshold bypass for auto-dispatch eligibility (t1241) (#1930)
- implement localdev branch — subdomain routing for worktrees (t1224.3) (#1916)
- implement localdev add/rm commands (t1224.2) (#1908)
- add VirusTotal IP reputation provider (t1200.4) (#1871)
- add ip-reputation agent doc, /ip-check slash command, subagent index + AGENTS.md updates, per-subcommand --help (t1200.3) (#1867)
- add launchd scheduler backend for macOS (t1219) (#1864)
- add AI-powered semantic dedup for task creation (t1220) (#1863)
- add ip-reputation-helper.sh with 5 free-tier providers (t1200.1) (#1856)
- break down t1200 into 3 dispatchable subtasks (t1212) (#1842)
- tune worker hung timeout based on task ~estimate field (t1199) (#1826)
- add auto-subtasking detection and cross-repo dispatch fairness (t1188.2) (#1827)
- add per-task-type hang timeout tuning and worker heartbeat (t1196) (#1819)
- add multi-platform detection and API adapters for Gitea/GitLab issue sync (t1120.3) (#1815)
- expand blocker statuses for auto-dispatch eligibility assessment (t1188.1) (#1810)
- add multi-repo TODO scanning and auto-dispatch eligibility to AI context (#1801)
- filter verified/canceled tasks from AI context snapshot (t1178) (#1779)
- add supervisor DB cross-reference to issue audit to reduce false positives (t1156) (#1773)
- add auto-dispatch eligibility assessment to supervisor AI reasoning (t1134) (#1782)
- add Phase 0.6 queue-dispatchability reconciliation (t1180) (#1783)
- add model cost-efficiency check to supervisor dispatch (t1149) (#1769)
- add completed-task exclusion list to supervisor AI context (t1148) (#1768)
- add canceled-task sync between supervisor DB and TODO.md (t1131) (#1727)
- Phase 3a — auto-adopt untracked PRs into supervisor pipeline (#1704)
- add supervisor self-healing for stuck evaluating tasks, dispatch stalls, and action executor robustness (#1683)
- add last_skill_check and skill_updates_applied to auto-update state schema (t1081.3) (#1638)
- add --non-interactive headless support (t1081.2) (#1630)
- add comprehensive AI supervisor e2e test suite (t1085.7) (#1635)
- wire Phase 14 AI supervisor pipeline into pulse.sh (t1085.5) (#1617)
- add PR template with changelog and diff summary (t1082.4) (#1615)
- add Phase 13 skill update PR pipeline to supervisor pulse cycle (t1082.2) (#1610)
- add AI supervisor reasoning engine (t1085.2) (#1609)
- add AI supervisor context builder (t1085.1) (#1607)
- add daily skill freshness check to auto-update-helper.sh (t1081) (#1591)
- update context7 agent with skill registry, telemetry disable, and package rename (#1570)
- add tenant-aware config, server refs, and SSH config integration to wp-helper.sh (t1059) (#1568)

### Changed

- Documentation: update model files from aidevops (t1133)
- Documentation: update model files from aidevops (t1133)
- Documentation: update model files from aidevops (t1133)
- Documentation: update model files from aidevops (t1133)
- Documentation: t1255 duplicate of t1253 — cross-repo dispatch investigation complete (#1961)
- Documentation: update model files from aidevops (t1133)
- Documentation: update model files from aidevops (t1133)
- Documentation: reflect localdev architecture in localhost.md, AGENTS.md, subagent-index.toon (t1224.9) (#1953)
- Documentation: update model files from aidevops (t1133)
- Documentation: update model files from aidevops (t1133)
- Documentation: add Turbostarter/Turborepo quirks to local-hosting.md (t1224.7) (#1943)
- Documentation: update model files from aidevops (t1133)
- Documentation: update model files from aidevops (t1133)
- Documentation: update model files from aidevops (t1133)
- Documentation: update model files from aidevops (t1133)
- Documentation: update model files from aidevops (t1133)
- Documentation: update model files from aidevops (t1133)
- Documentation: update model files from aidevops (t1133)
- Documentation: update model files from aidevops (t1133)
- Documentation: update model files from aidevops (t1133)
- Documentation: update model files from aidevops (t1133)
- Documentation: add dual-CLI architecture plan (t1160) — OpenCode primary + Claude Code fallback
- Documentation: document daily skill refresh and repo version wins on update (t1081.4) (#1639)

### Fixed

- improve semantic dedup to prevent duplicate task creation (t1218) (#1969)
- resolve stale evaluating recovery false positives in Phase 0.7 (t1258) (#1966)
- reduce stale-evaluating frequency via rate limit cooldown and eval checkpoint (t1256) (#1963)
- treat 'failed' and 'blocked' as terminal in subtask sibling ordering (t1253) (#1959)
- reduce stale-evaluating rate via heartbeat, configurable timeout, and PR fast-path (t1251) (#1952)
- reduce stale-evaluating recovery frequency with fast-path detection (t1250) (#1950)
- auto-unblock tasks when blocker is deployed/verified in DB (t1247) (#1945)
- separate IFS variable declaration from assignment in issue-sync-helper.sh (t1122) (#1941)
- remove hardcoded t1243 task ref from auto-unblock commit message (t1246) (#1938)
- persist PR URL to DB immediately in evaluate_worker() to reduce stale evaluating (t1245) (#1940)
- resolve TODO.md stash merge conflicts — keep t1238+t1239, t1241, merge t1244 metadata (t1244) (#1933)
- prevent cross-repo subtask misregistration in create_subtasks (t1240) (#1925)
- add cross-repo task registration validation to prevent misregistration (t1239) (#1926)
- create_subtasks executor edge cases causing recurring failures (t1238) (#1924)
- block cross-repo subtask creation when task not in DB + skip completed parents (t1237) (#1919)
- replace declare -A with bash 3.2-compatible grep lookup in ai-context.sh (t1236) (#1918)
- guard cmd_push() against cross-repo issue creation (t1235) (#1913)
- add cross-repo guard to issue-sync-helper.sh (t1235) (#1912)
- remove misplaced private repo subtasks from aidevops TODO.md (privacy breach)
- strengthen execute_action_plan array validation guard (t1223) (#1872)
- add post-write verification to create_subtasks executor (t1217) (#1858)
- add semantic dedup to AI task creation to prevent duplicate tasks (t1218) (#1859)
- add subtask visibility to eligibility assessment and post-exec verification (t1214) (#1850)
- write diagnostic actions log on parse failure for better observability (t1211) (#1843)
- document create_subtasks required fields in AI reasoning prompt (t1210) (#1839)
- reconcile supervisor DB state inconsistencies for running/evaluating/pr_review (t1208) (#1837)
- harden AI actions pipeline against empty/malformed model responses (t1197) (#1823)
- harden AI supervisor pipeline against 'expected array' parsing errors (t1201) (#1829)
- add -n flag to tea CLI commands for non-interactive mode (t1121) (#1814)
- add Phase 0.8 stale running task recovery using started_at (t1193) (#1813)
- treat empty/non-JSON AI responses as empty action plan (t1189) (#1807)
- pass task model to cmd_reprompt and skip escalation for infra failures (t1186) (#1806)
- harden AI actions pipeline against empty/malformed model responses (t1187) (#1805)
- harden AI pipeline JSON parser against whitespace responses and improve failure logging (t1184) (#1797)
- strip ANSI codes from opencode output to fix AI actions pipeline parse errors (t1182) (#1792)
- 3 supervisor pipeline bugs — PR-aware reaping, atomic eval transitions, batch merge (#1790)
- handle concurrency guard empty output in AI pipeline to eliminate rc=1 errors (t1157) (#1781)
- add double-check pattern in cmd_push to prevent duplicate issue creation (t1142) (#1741)
- remove backticks from t1134 description to prevent parser artifact (t1159) (#1776)
- eliminate jq JSON parsing errors from shell variable interpolation in supervisor (t1125) (#1702)
- require new_priority field in adjust_priority AI actions (t1126) (#1703)
- prevent duplicate GitHub issues by using API list instead of search index (#1715)
- skip markdown code-fenced lines in TODO.md parser (t1124) (#1692)
- make JSON parser handle multiple code blocks and unclosed blocks (t1123) (#1675)
- prevent git stdout noise from breaking jq action logging (t1106) (#1654)
- increase AI reasoning timeout from 120s to 300s (t1085) (#1643)
- use --format default for opencode run (text is invalid) (t1085) (#1642)
- remove artificial pulse counter from Phase 14, use natural guards (t1085) (#1641)
- replace GNU timeout with portable fallback for macOS cron (t1085) (#1640)
- expand AI reasoning prompt with self-improvement and efficiency analysis (t1085) (#1614)
- add efficiency guards to AI reasoning engine (t1085.2) (#1611)
- remove hardcoded t1082 task ID from skill-update-helper.sh pr pipeline (#1608)
- address CodeRabbit feedback on auto-update-helper.sh (t1084) (#1597)
- align haiku and opus model IDs to non-dated aliases (t1083) (#1595)
- remove SC2034 unused variables and SC2068/SC2221 warnings across 9 files (t1077) (#1576)
- cap verification retries, recover stuck verifying state, fix bot review dismissal (t1075) (#1566)

## [2.116.0] - 2026-02-17

### Added

- add t1070 — post blocked reason comments on GitHub issues
- create tech-stack-lookup.md orchestrator agent (t1063.2) (#1531)
- add tech stack lookup agent tasks t1063-t1068 — open-source BuiltWith alternative

### Changed

- Documentation: add v2.116.0 changelog entries

### Fixed

- auto-retry timed-out workers before marking failed (t1074) (#1560)
- multi-commit rebase loop + sequential subtask dispatch (t1072, t1073) (#1558)
- prevent pulse crash when PR mergedAt is null (t1071) (#1553)
- add t1071 — pulse Phase 3b2 crash on mergedAt:null kills rebase retry
- dedup_todo_task_ids removes duplicates instead of renaming (t1069) (#1549)
- remove duplicate task entries t1069-t1077 and merge conflict markers, add t1069 dedup fix task
- wp-helper.sh SSH stdin consumption and Cloudways template path (t1057, t1058) (#1513)

## [2.116.0] - 2026-02-17

### Added

- Tech stack lookup system — open-source BuiltWith alternative with multiple providers (t1063-t1068)
  - Unbuilt.app provider agent (t1064)
  - CRFT Lookup provider agent (t1065)
  - Open Tech Explorer provider agent (t1066)
  - Wappalyzer OSS provider agent (t1067)
  - Reverse tech stack lookup with filtering (t1068)
  - `/tech-stack` slash command (t1063.3)
  - tech-stack-lookup.md orchestrator agent (t1063.2)
- Qwen3-TTS as TTS provider in voice agent — Apache-2.0, 10 languages, 97ms streaming latency (t1061)
- Post blocked reason comments on GitHub issues when status:blocked is applied (t1070)

### Fixed

- **Critical**: Pulse crash on `mergedAt:null` — `grep -o` returned exit 1 under `set -euo pipefail`, killing the entire pulse and preventing Phase 3.5 rebase retry and Phase 3.6 opus escalation from ever running (t1071)
- **Critical**: `git rebase --continue` failed in headless/cron — `TERM` unset caused nano editor error, aborting all AI-resolved rebases (t1071)
- Multi-commit rebase loop — branches with multiple conflicting commits are now fully rebased instead of aborting after the first conflict (t1072)
- Sequential subtask dispatch — subtasks (e.g., t1063.1, t1063.2) now dispatch in order instead of in parallel, preventing merge conflicts from sibling tasks modifying the same files (t1073)
- Auto-retry timed-out workers — Phase 4 now checks retries remaining before marking failed; workers with existing PRs transition to pr_review instead (t1074)
- dedup_todo_task_ids() now deletes merge-conflict duplicates instead of renaming them to ghost task IDs (t1069)
- wp-helper.sh SSH stdin consumption fix (t1057)
- Cloudways template path fix (t1058)

## [2.115.22] - 2026-02-16

### Added

- add status:needs-testing label for tasks awaiting manual/integration testing (#1505)

### Changed

- Documentation: add changelog entry for t1056 Intel brew fix

### Fixed

- issue-sync includes PR proof-log and error context when closing issues (t1055) (#1504)
- defer batch post-completion actions to end of pulse cycle (t1052) (#1498)

## [2.115.21] - 2026-02-15

### Changed

- Version bump and maintenance updates

## [2.115.20] - 2026-02-15

### Changed

- Version bump and maintenance updates

## [2.115.19] - 2026-02-15

### Changed

- Version bump and maintenance updates

## [2.115.18] - 2026-02-15

### Changed

- Version bump and maintenance updates

## [2.115.17] - 2026-02-15

### Changed

- Version bump and maintenance updates

## [2.115.16] - 2026-02-15

### Changed

- Version bump and maintenance updates

## [2.115.15] - 2026-02-15

### Changed

- Version bump and maintenance updates

## [2.115.14] - 2026-02-15

### Changed

- Version bump and maintenance updates

## [2.115.13] - 2026-02-15

### Changed

- Version bump and maintenance updates

## [2.115.12] - 2026-02-15

### Changed

- Version bump and maintenance updates

## [2.115.11] - 2026-02-15

### Changed

- Version bump and maintenance updates

## [2.115.10] - 2026-02-15

### Changed

- Version bump and maintenance updates

## [2.115.9] - 2026-02-15

### Changed

- Version bump and maintenance updates

## [2.115.8] - 2026-02-15

### Changed

- Version bump and maintenance updates

## [2.115.7] - 2026-02-15

### Changed

- Version bump and maintenance updates

## [2.115.6] - 2026-02-15

### Changed

- Version bump and maintenance updates

## [2.115.5] - 2026-02-15

### Changed

- Version bump and maintenance updates

## [2.115.4] - 2026-02-15

### Changed

- Version bump and maintenance updates

## [2.115.3] - 2026-02-15

### Changed

- Version bump and maintenance updates

## [2.115.2] - 2026-02-15

### Fixed

- auto-verify deployed tasks without VERIFY.md entries (t1051) (#1494)

## [2.115.1] - 2026-02-15

### Added

- add Phase 3b2 reconciliation and triage command to supervisor (#1488)

### Fixed

- swap stat -f %m to Linux-first order for cross-platform compat (#1491) (#1492)
- Phase 3b2 and triage gh pr view fails from cron (missing --repo) (#1490)
- Phase 3b2 and triage must not skip verification for verify_failed tasks (#1489)
- revert 5 falsely completed verify_failed tasks (t1043, t1044.2, t1048, t1049, t1050)
- suppress quality gate console noise, keep secrets-only TUI alerts (#1487)

## [2.115.0] - 2026-02-15

### Added

- Add cross-document linking for email collections (#1472)
- add MIME parsing for .eml/.msg to document-creation-helper.sh (t1044.1) (#1420)
- add Synapse Admin API helpers to matrix-dispatch-helper.sh (t1056.2) (#1471)
- add contact deduplication and update-on-discovery (t1044.4) (#1436)
- implement atomic task ID allocation with CAS push loop (t1047) (#1458)
- add comprehensive test suite for entity extraction (t1051.6) (#1462)
- add Phase 3.6 — escalate rebase-blocked PRs to opus worker (#1483)

### Fixed

- cap quality hook console output to prevent TUI flooding (#1486)
- improve escalation lock with PID tracking and post-dispatch creation (#1485)
- hoist max_retry_cycles to function scope for Phase 3.6 access (#1484)
- stash dirty worktree before rebase to prevent 'uncommitted changes' error (#1481)
- abort stale rebase state before retrying (#1480)
- handle AI-completed rebase and increase max attempts (#1477)
- detect AI-completed rebase and increase max attempts (t1048) (#1478)
- ai-research tool uses OAuth from auth.json instead of requiring ANTHROPIC_API_KEY (#1475)

## [2.114.0] - 2026-02-14

### Added

- integrate normalize with convert pipeline (#1456)

## [2.113.1] - 2026-02-14

### Added

- add Reader-LM and RolmOCR conversion providers (t1043) (#1411)

### Fixed

- resolve symlink in npm global install CLI wrapper
- implement check-regression subcommand, fix 24 SonarCloud findings, rate-limit Phase 10c (#1437)
- align verify ShellCheck with CI severity and fix Phase 7b reconciliation (#1406)

## [2.113.0] - 2026-02-13

### Added

- add E2E audit pipeline verification test (t1032.8) (#1381)
- add document creation agent with OCR support (t1042) (#1405)
- wire Phase 10b to unified audit orchestrator with fallback (t1032.5) (#1377)
- add Phase 3.5 auto-retry for merge-conflict tasks (t1029) (#1355)
- add issue title update with task ID prefix after allocation (t1028) (#1353)
- add action:model issue label tracking to supervisor (t1010) (#1342)
- auto-unclaim stale worker assignments after 2h timeout (t1024) (#1340)
- per-repo health issues — stats filtered by repo for privacy (#1335)
- per-runner health issues + update only on stats change (#1332)
- runner labels on health issue + verify_failed in title (#1330)
- operational health issue title with runner/available/claimed/blocked counts (#1324)
- update pinned health issue title with live queue stats on each pulse (#1321)
- show CPU% as primary in TUI dashboard (t1020) (#1320)
- add pre-dispatch reverification for previously-claimed tasks (t1008) (#1316)
- protect assignee ownership in supervisor (t1017, t1019) (#1315)
- PR task ID validation — test harness + CI workflow patch (t318.5) (#1260)

### Changed

- Documentation: align README philosophy with build.txt mission principles (#1360)
- Documentation: expand build.txt mission statement with broader dev scope, resource utilisation, root-cause fixing, and gap awareness (#1358)
- Refactor: update health issue description directly, remove comment machinery (#1333)
- Documentation: add PR task ID check implementation notes (t318.1) (#1284)

### Fixed

- resolve bot review threads and fix triage severity logic (t1041) (#1401)
- Phase 3c must not close issues for no_pr/task_only deployments (#1391)
- add Phase 3c to reconcile terminal DB states with GitHub issues (#1390)
- use correct column names (from_state/to_state) in fix-cycle count query (#1388)
- guard complete->deployed transition to require PR merge when pr_url exists (t1030) (#1385)
- migrate legacy [Supervisor] health issue to [Supervisor:username] format (t1036) (#1383)
- restore ALL_STATUS_LABELS constant lost in t1031 modularisation (t1035) (#1375)
- resolve TODO.md merge conflict markers (t1010/t1025 duplicate)
- use relative path as agent name to prevent collisions (t1015) (#1336)
- health issue progress uses actionable count, excluding canceled/skipped (#1323)
- wire resolve_rebase_conflicts() into rebase_sibling_pr() for AI-assisted conflict resolution (t1021) (#1322)
- plugin config hook overrides worker osgrep disabled setting (#1296)
- add PATH and GH_TOKEN detection to supervisor cron install (t1006) (#1291)
- beads-sync-helper.sh accept positional args (t1007) (#1292)
- coderabbit pulse gh auth fails in cron (no keyring access) (#1288)
- resolve SonarCloud quality gate failure and all 16 code smells (#1286)

## [2.112.0] - 2026-02-12

### Added

- enforce task ID in PR titles for audit traceability (t318.2) (#1283)
- add DB-TODO reconciliation pulse phase (t1001) (#1275)

### Changed

- Documentation: move changelog entries to [Unreleased] for version-manager
- Documentation: add v2.112.0 changelog entries

### Fixed

- use base-10 arithmetic for task ID comparison to prevent octal parsing errors
- use INSTALL_DIR instead of BASH_SOURCE in deploy_aidevops_agents (t316.4) (#1269)
- use stat -c (Linux) before stat -f (macOS) to prevent unbound variable error on Linux (#1267)

## [2.111.0] - 2026-02-12

### Added

- add mandatory proof-log check to pre-commit hook (t317.1) (#1249)
- complete setup.sh function audit and module assignment (t316.1) (#1233)
- add TODO.md dedup Phase 0.5b to supervisor pulse cycle (t319.4) (#1261)
- complete PR task ID backfill audit (t318.4) (#1255)

### Changed

- Documentation: update AGENTS.md task completion rules (t317.3) (#1250)
- Documentation: add comprehensive verification report for t316.5 (t316.5) (#1241)

### Fixed

- wire escalate_model_on_failure, improve classifier, add auto-upgrade safeguard (#1257)

## [2.110.14] - 2026-02-12

### Added

- create supervisor module skeleton (t311.2) (#1218)
- auto-escalate model to opus on worker failure + extend timeouts (t314) (#1215)
- add pre-dispatch staleness check to prevent wasting worker tokens (t312) (#1211)
- add Phase 10b to auto-create TODO tasks from quality findings (t299) (#1206)

### Changed

- Documentation: add t315 changelog entry for oh-my-opencode fix
- Documentation: add supervisor module map — catalogue 155 functions across 17 domains (t311.1) (#1207)

### Fixed

- make oh-my-opencode removal optional, default to keeping it (#1221)
- add SUPERVISOR_SKIP_STALENESS env var to bypass staleness check (#1217)
- narrow t313 queue priority to cmd_next() dispatch queries only (#1213)

## [2.110.13] - 2026-02-12

### Added

- auto-resolve merge conflicts with escalating strategy (t302) (#1203)
- auto-decompose t311 from PLANS.md (2026-02-12-modularise-oversized-shell-scripts)
- extend Rosetta audit to scan /usr/local/bin and /Applications for x86 binaries
- enhance Rosetta audit with migrate/dry-run, shell linting setup (t301)
- add supervisor Phase 10b — auto-create TODO tasks from quality findings (t299) (#1170)

### Changed

- Documentation: add missing [namespace] argument to plugin init help text (t308) (#1191)
- Documentation: add proof-log for Homebrew/Beads Linux install (OrbStack Ubuntu test)

### Fixed

- add path traversal sanitization to plugin namespaces in setup.sh (t305) (#1188)
- add namespace validation to prevent path traversal in plugin deployment (t306) (#1190)
- reorder migration phases — install ARM before removing x86 (t301)
- add validate_namespace call in plugin init command (t307) (#1189)
- replace undefined SUPERVISOR_STATE_DIR with SUPERVISOR_DIR in Phase 10b (t300) (#1174)

## [2.110.12] - 2026-02-11

### Added

- add Homebrew install offer and Beads binary download fallback for Linux (#1168)

### Changed

- Documentation: add changelog entry for Homebrew/Beads Linux install (#1168)

## [2.110.11] - 2026-02-11

### Added

- workers comment on GH issues when blocked (t296) (#1167)
- auto-create batches when auto-pickup finds new tasks (t296) (#1162)
- graduate 19 high-confidence memories to shared docs (t293) (#1152)

### Changed

- Documentation: add changelog entries for v2.110.11
- Documentation: add explicit PR-required rule for all non-planning changes (t297) (#1160)

### Fixed

- issue-sync title truncation — split at em dash, full description in body (#1165)
- correct SUPERVISOR_AUTO_ISSUE help text default (true -> false) (#1164)
- pass auto-dispatch tag through as GitHub label
- replace hardcoded tag-to-label allowlist with passthrough (t295) (#1154)
- replace template task IDs with placeholders to prevent issue-sync auto-creation

## [2.110.10] - 2026-02-11

### Added

- add OCR approaches research document (t012.1) (#1136)

## [2.110.9] - 2026-02-11

### Added

- write pr:#NNN to TODO.md when closing issues (t280) (#1117)

### Changed

- Refactor: move wavespeed.md to tools/video/ with setup.sh migration (#1106)
- Refactor: migrate YouTube agents from root to content/distribution/youtube/ (#1104)

### Fixed

- pre-dispatch check matched [x] in task description, not checkbox (t290) (#1132)
- find_closing_pr() now reads pr:#NNN format from TODO.md (t291) (#1129)
- PRs now cross-reference GitHub issues via Ref #NNN (t288) (#1118)
- stash dirty working tree before batch auto-release (t276) (#1119)
- guard against marking #plan tasks [x] when subtasks are open (t278) (#1110)
- setup.sh stale file cleanup + false-close audit (t285, t286) (#1111)
- remove 2>/dev/null from cmd_add calls in auto-pickup (t279) (#1109)

## [2.110.8] - 2026-02-11

### Changed

- Documentation: add changelog entry for t284 opencode plugin fix

### Fixed

- unmark t008, t012 as incomplete — subtasks still open, PRs closed due to merge conflicts from parallel dispatch
- remove Zod-incompatible args from opencode plugin tools (t284)

## [2.110.7] - 2026-02-11

### Changed

- Documentation: changelog for t283 string lookup fix

### Fixed

- replace associative array with string lookup in cmd_close (t283) (#1086)

## [2.110.6] - 2026-02-11

### Changed

- Documentation: changelog for t283 set -u fix

### Fixed

- associative array lookup under set -u in cmd_close (t283) (#1085)

## [2.110.5] - 2026-02-11

### Changed

- Documentation: add changelog entry for t283 issue-sync performance fix

### Fixed

- cmd_close pre-fetches open issues to avoid 2000+ API calls per run (t283) (#1084)

## [2.110.4] - 2026-02-11

### Added

- auto-decompose t012 from PLANS.md (ocr-invoicereceipt-extraction-pipeline)
- auto-decompose t008 from PLANS.md (aidevops-opencode-plugin)
- default output to ~/Downloads/higgsfield/ for interactive sessions (t270) (#1054)

### Changed

- Documentation: add changelog entries for v2.110.4

### Fixed

- verify_gh_cli accepts GH_TOKEN/GITHUB_TOKEN env vars for GitHub Actions compatibility (#1083)
- recognize pr:#NNN field as completion evidence in issue-sync close (#1075)
- remove unsupported --metadata flag from auto-decomposition cmd_add (#1071)
- prevent shell injection and race conditions in issue-sync workflow (#1070)
- unify image selector for generation detection (t267) (#1068)
- use resolve_ai_cli() and standard dispatch pattern for decomposition worker (t274) (#1066)

## [2.110.3] - 2026-02-11

### Added

- add UGC brief storyboard template to story.md and image.md (t272) (#1055)
- auto-recall memories in Build+ workflow and session start (t273) (#1056)
- add --count flag to download command to limit downloads (t268) (#1052)
- add results-driven mission principle and completion summary instruction (#1050)
- respawn supervisor after batch completion when memory exceeds threshold (t264.1) (#1043)
- add domain expertise check to Build+ workflow (step 2b) (#1039)
- supervisor session memory monitoring with respawn detection (t264) (#1040)
- add infinite loop guard for deploying auto-recovery (t263) (#1036)
- exclude skill reference files from subagent stub generation (t258) (#1035)
- add WaveSpeed AI service agent with REST API helper (t258) (#1016)
- include task description in worker session titles (t262)
- accept planning-only PRs for planning tasks (t261) (#1024)
- add Runway API agent for video, image, and audio generation (#1015)
- add comfy-cli agent for ComfyUI automations (t259) (#1020)
- fix deploying->deployed transition stuck state (t248) (#1018)

### Changed

- Documentation: add changelog entries for v2.110.3
- Documentation: add auto-dispatch tagging guidance for TODO creation (t273) (#1051)
- Documentation: document t247 clean_exit_no_signal reduction strategy (t247) (#1038)
- Refactor: simplify shared UI helpers with guard clauses and dedup (t250.5) (#1034)
- Refactor: extract generateVideo() into 8 focused helpers (t250.3) (#1032)
- Refactor: extract generateImage() into 6 focused helpers (t250.2) (#1021)

### Fixed

- sanitize supervisor arithmetic to prevent syntax errors (#1062)
- redirect Phase 3/3b stderr to log and capture errors (t265) (#1061)
- redirect Phase 3/3b stderr to log and capture errors (t265) (#1059)
- add missing DIM color constant for respawn-history output (t264.1) (#1049)
- SCRIPTS_DIR typo breaks quality gate model escalation (set -u unbound variable) (#1037)
- add PR URL discovery for terminal-state tasks (t260) (#1025)
- add --force flag to batch release to handle empty CHANGELOG (t257) (#1023)
- replace crontab stdin pipe with temp file to prevent macOS hang (t254) (#1022)
- prevent worker process accumulation exhausting system RAM (#1031)

## [2.110.2] - 2026-02-11

### Added

- use source file description in generated subagent stubs (t255) (#1017)

## [2.110.1] - 2026-02-11

### Added

- add orchestration commands to quality-sweep-helper.sh for daily sweep (t245.4) (#1013)
- verify API model IDs via platform probing, fix incorrect mappings (t252)
- add Codacy API integration — fetch, normalize, deduplicate (t245.2) (#1000)
- auto-create PR for orphaned branches instead of retrying (t247.2) (#988)
- expand model routing classifier with haiku tier, tag hints, and TODO.md model: field (t246) (#986)
- Higgsfield Cloud API client + model priority fix (#975)
- add quality-sweep-helper.sh with SonarCloud API integration (t245.1) (#984)
- Email Testing Suite cross-references (t214) (#963)
- add unlimited model auto-selection with SOTA quality ranking (t236.2) (#970)
- retroactive verification audit — 292 tasks verified, 69 unverifiable (t238) (#968)
- add dry-run, health-check, and smoke-test to higgsfield-helper (t236.5) (#969)

### Changed

- Documentation: add t249 to changelog
- Refactor: extract parseArgs() into data-driven flag map and main() into command registry (t250.1, t250.4) (#1002)

### Fixed

- inject mandatory read instruction into subagent stubs (t249) (#1014)
- clamp caption scene index to last scene when out of range (t244) (#981)
- replace execSync with execFileSync to prevent shell injection (t243) (#980)
- separate reloadAttempted flag from retryAttempted in waitForGeneration (t242) (#979)
- harden worktree auto-cleanup after deploy (t240) (#978)
- add missing closing brace for batchLipsync function (#976)
- Remotion staticFile path handling, Seedance video download matching, caption normalization (#926)

## [2.110.0] - 2026-02-10

### Added

- add auto-update polling daemon (t231) (#955)
- add retry logic, credit guard, and cost estimation (t236.1) (#962)
- add ShellCheck pre-push gate to worker prompt (t234) (#961)
- add proof-log coverage for all pr_url mutations (t235) (#960)
- auto-dismiss CodeRabbit reviews that block merge pipeline (#952)
- serial merge strategy for sibling subtasks (#951)
- Auto-merge PRs when SonarCloud GH Action passes but external quality gate fails (#947)
- expand Higgsfield UI automation — Cinema Studio, Motion Control, Edit/Inpaint, Upscale, Asset Library (#942)
- link closing PR reference when issue-sync closes issues (t220) (#944)
- disable osgrep in worker MCP configs to save CPU (t221) (#945)
- integrate email accessibility checks into email-health-check + email-design-test (t215.6) (#943)
- add WAVE API integration for comprehensive accessibility analysis (t215.4) (#941)
- update AGENTS.md and cross-references for accessibility (#940)
- surface Lighthouse accessibility as first-class output in pagespeed (#936)
- add Playwright contrast extraction for all visible elements (t215.3) (#937)
- add accessibility-audit-helper.sh — CLI wrapping axe-core, WAVE API, WebAIM contrast, Lighthouse a11y (#935)
- add email-design-test-helper.sh — CLI for local + EOA API email design testing (#930)
- add email-delivery-test-helper.sh — spam testing + inbox placement CLI (t214.4) (#933)
- add email delivery test subagent for spam filter testing and inbox placement (#929)
- add content-level checks to email health check (inspired by EOA Campaign Precheck) (#934)
- add unified web + email accessibility audit agent (t215.1) (#932)
- add critical thinking directive and Socratic pre-flight questions to subjective agents
- email testing suite — design rendering + delivery testing + health check enhancements (t214)
- eager orphaned PR scan after worker evaluation (t216)
- add accessibility & contrast testing for websites and emails (t215)
- auto-deploy agents after supervisor merges PRs (t213)
- add Higgsfield UI automation subagent for subscription credit usage (#797)
- faster PR merge pipeline with parallel CI + review triage (t219) (#922)
- add structured proof-logs for task completion trust (t218) (#921)
- enforce Task tool parallelism in worker prompt + track usage (t217) (#918)
- Thumbnail A/B testing pipeline (t207)
- add content calendar and posting cadence engine (t208)
- multi-channel content fan-out orchestration (t206)
- add voice-pipeline-helper.sh — CapCut cleanup + ElevenLabs transformation chain (t204)

### Changed

- Documentation: update changelog for v2.110.0 release
- Documentation: add email-design-test.md — local Playwright rendering + Email on Acid API v5 integration (#928)
- Documentation: add t220-t223 — issue-sync PR linking, osgrep worker perf, deploying stuck state, PR cross-contamination
- Documentation: mark t135.4/.5/.6/.10/.14 complete — all had merged PRs from Feb 7
- Documentation: mark t198 complete (PR #834 merged previously)
- Refactor: archive 4 remaining fix scripts to _archive/ (t135.12) (#925)
- Documentation: mark t214 complete with PR #923
- Documentation: mark t213, t215, t216 complete; fix corrupted t215 line
- Documentation: mark t204, t206, t208 complete with merged PR links

### Fixed

- add missing local declarations in cmd_transition to prevent cross-contamination (#967)
- add force:true to all generate button clicks to bypass overlay interception (#958)
- asset chain dialog scoping, media upload agreement dismissal, and result download (#956)
- pre-dispatch check for already-merged PRs (#950)
- prevent PR cross-contamination in task linking (#949)
- auto-recover deploying stuck state when deploy completes (#948)
- worker incremental commit protocol to prevent context-exhaustion data loss (t228) (#946)
- setup.sh cross-shell grep -c arithmetic error
- use detect_repo_slug() instead of broken inline regex for GitHub API calls (#902)

## [2.109.0] - 2026-02-10

### Added

- add YouTube slash commands - /youtube setup, /youtube research, /youtube script (#901)
- add cross-shell compatibility step to setup.sh (#900)
- add unified video-gen-helper.sh for Sora 2, Veo 3.1, and Nanobanana Pro APIs (t203) (#885)
- add seed-bracket-helper.sh for AI video generation seed bracketing (t202) (#884)
- add orphaned PR scanner to supervisor pulse (t210) (#882)
- add retry with exponential backoff to PR validation (t211) (#881)
- add distribution channel reference agents (t199.8) (#880)
- create optimization.md - A/B testing, variant generation, analytics loops (#877)
- add character production guide - facial engineering, character bibles, personas (t199.7) (#875)
- add image production guide with Nanobanana JSON templates (#874)
- create content/production/audio.md - voice pipeline, sound design, emotional cues (t199.6) (#873)
- add content/production/video.md - AI video generation guide (t199.5) (#872)
- add content/story.md - narrative design and storytelling frameworks (#849)
- add production/writing.md - scripts, copy, captions (#846)
- enhance worktree registry prune to clean corrupted entries (t197) (#847)
- rewrite content.md as multi-media multi-channel orchestrator (#840)
- enhance research.md with 7 advanced research frameworks (#842)
- add research subagent for audience research, niche validation, competitor analysis (#836)

### Changed

- Documentation: mark t207 complete - thumbnail A/B testing pipeline
- Performance: enable Anthropic prompt caching in setup (#838)

### Fixed

- issue-sync status labels — use claimed on assign, done on close (t212) (#883)
- enforce anthropic-only model resolution, reject opencode/* proxy models (#878)
- detect billing/credits errors and block immediately instead of retrying (#876)
- resolve clean_exit_no_signal false retry loop (t198) (#834)
- use actual CPU idle% for adaptive throttling on macOS (#835)
- sync homebrew formula version and enable subtask GitHub Issues (#848)
- prevent RETURN trap clobbering with cleanup stack (t196) (#827)

## [2.108.0] - 2026-02-09

### Added

- add YouTube competitor research and content automation agent (#811)
- add OpenClaw guided onboarding with Tailscale and OrbStack agents
- add OpenCode model registry integration for daily model refresh (t194) (#810)
- enhance pull command with orphan issue detection (t020.4) (#809)
- enhance TODO.md parser with full field extraction and rich issue body (t020.1) (#804)
- add pre-dispatch verification to prevent dispatching already-done tasks (#806)
- rewrite PLANS.md extraction with awk for performance + fuzzy anchor matching (t020.2) (#805)
- add trap cleanup for temp files across 13 scripts (t135.9) (#800)

### Changed

- Documentation: add task ID collision prevention rule to AGENTS.md (t201) (#820)
- Refactor: delegate supervisor issue creation to issue-sync-helper.sh (t020.6) (#812)
- Performance: add auth caching and auto model tier routing to supervisor (#794)

### Fixed

- resolve 12 MD022 violations in youtube/script-writer.md (#828)
- validate PR title/branch contains task ID before attribution (t195) (#826)
- replace ls with find in review-pulse-helper.sh (SC2012) (t196) (#818)
- revert false t020.6 completion — supervisor attributed t194's PR #810 to t020.6
- scope pre-dispatch TODO.md check to first occurrence and skip health probe for OpenCode (#808)
- prevent pre-dispatch false positives from substring and non-completion matches (#807)
- make trap RETURN cleanup safe under set -u (nounset) (#802)
- enforce Anthropic-only model routing, remove all Google/OpenRouter fallbacks (#799)
- redirect supervisor log functions to stderr (unblocks all workers) (#796)

## [2.106.0] - 2026-02-09

### Added

- add SOPS + gocryptfs encryption stack (t134) (#718)
- add verify-run-helper.sh with proof logging to verify-proof-log.md (#715)
- add cloud voice agents and S2S model docs (t080) (#713)
- provider-agnostic task claiming via TODO.md (t165) (#712)
- add tools/vision/ category for visual AI models (t131) (#710)
- add OrbStack VM self-test for setup.sh fresh install (#706)
- add /list-verify command for verification queue (#705)
- add compaction-resilient session state — continuation prompts and auto-checkpoints (t187) (#699)
- add pre-migration safety backups for non-git state (t188) (#697)
- add worktree ownership registry to prevent cross-session removal (t189)
- add memory audit pulse — periodic self-improvement scan (t185)
- add transcription-helper.sh for audio/video transcription (t072)
- add memory graduation — promote validated learnings into shared docs (t184)
- add memory deduplication and auto-pruning (t181)
- one-command install — auto-install git, Node.js, Bun, OpenCode, and OrbStack VM support
- add post-merge verification phase to supervisor state machine (t180)
- issue-sync reconciliation — close stale issues, fix ref:GH# drift, wire into supervisor pulse (t179)
- add /runners-check command for quick queue health diagnostics
- add document extraction subagent, workflow, and CLI helper (t073)
- add agent-device subagent for AI-driven mobile automation (t120)
- enhance cloud GPU deployment guide with provider CLIs, monitoring, and updated pricing (t133)
- add /compare-models and /compare-models-free slash commands for model capability comparison (t168) (#660)
- add daily CodeRabbit review pulse for self-improving codebase quality (t166) (#657)
- add uncertainty decision framework for headless workers (t176) (#656)
- add git heuristic signals to evaluate_worker (t175) (#655)
- add mission statement with ROI and self-improvement directives (#652)
- add --headless flag to full-loop for autonomous worker operation (t174) (#642)
- bidirectional adaptive concurrency - scale up when resources available (#637)
- provider-agnostic task claiming via TODO.md assignee: field (t165) (#627)
- register Mom Test UX/CRO agent and fix cross-references (t101)
- distributed task claiming via GitHub Issue assignees (t164)
- add platform persona adaptations for content guidelines (t076) (#614)
- comprehensive TTS/STT model catalog (t071) (#613)
- integrate Content Calendar Workflow subagent into framework (t075) (#611)
- integrate LinkedIn and Reddit subagents into framework cross-references (t077) (#610)
- integrate Tirith terminal security guard into framework (t124) (#605)
- add Playwright device emulation subagent (t098) (#604)
- add AXe CLI for iOS simulator accessibility automation (t100) (#603)
- integrate Lumen subagent into framework cross-references (t078) (#602)
- add DocStrange subagent for document conversion and structured extraction (t074) (#600)
- integrate SEO Machine content analysis and writing workflows (t017) (#599)
- add iOS Simulator MCP integration for AI-driven simulator interaction (t097) (#597)
- complete XcodeBuildMCP integration with mobile domain indexing (t095) (#596)
- add Maestro for mobile and web E2E testing (t096) (#595)
- add Uncloud multi-machine container orchestration integration (t016) (#594)
- add image SEO enhancement with AI vision subagents (t013) (#593)
- add intent-based resolution rules to conflict-resolution guide (#592)
- add Pipecat-OpenCode voice bridge subagent (t114) (#581)
- improve agent testing framework with JSON output parsing and shipped test suites (t118) (#587)
- integrate QuickFile MCP server into aidevops framework (t007) (#585)
- iPhone Shortcut for voice dispatch to OpenCode (t113) (#577)
- add hyprwhspr speech-to-text subagent for Linux (t027) (#575)
- add objective-runner-helper.sh with safety guardrails (t111) (#566)
- add cloud GPU deployment guide for AI model hosting (#565)
- Claude Code destructive command hooks (t009) (#562)
- integrate Shannon AI pentester for security testing (t023) (#561)
- batch subagent creation + orchestration fixes (#557)
- integrate Shannon AI pentester for security testing (t023) (#556)
- add Claude Code destructive command safety hooks (t009) (#554)
- add git conflict resolution skill (t153) (#552)
- add GHA workflow and PRD content rendering for issue-sync (t020.2, t020.3) (#543)
- add issue-sync-helper.sh for bi-directional TODO/PLANS ↔ GitHub issue sync (t020) (#542)
- integrate session-review and agent-review into batch completion lifecycle (t128.9) (#494)

### Changed

- Documentation: evaluate tools/multimodal/ vs current per-modality structure (t132) (#708)
- Documentation: add development lifecycle enforcement to user guide (t186) (#700)
- Refactor: extract npm_global_install() helper for sudo-aware global installs (#694)
- Documentation: add t189 (worktree ownership safety) and immediate AGENTS.md rule to prevent cross-session worktree removal [skip ci]
- Documentation: add t187 (compaction-resilient sessions) and t188 (pre-migration safety backups) [skip ci]
- Documentation: add t185 — memory audit pulse for automated self-improvement loop
- Documentation: add t184 — graduate validated memories into shared docs for all users
- Documentation: add todo/VERIFY.md for post-merge verification queue, update t180 design
- Documentation: mark t073 complete (PR #667 merged), fix corrupted task line
- Documentation: add t180-t183 from memory audit — verification phase, dedup, GHA safety, dispatch errors
- Documentation: add t179 issue-sync reconciliation task to TODO.md
- Documentation: mark t120 and t133 complete in TODO.md
- Documentation: t167 research — Gemini Code Assist full codebase review findings (#650)
- Refactor: deduplicate agent instructions and trim AGENTS.md for token efficiency (#651)
- Documentation: add t169-t174 for open bugfixes and runner improvements
- Documentation: mark t101 complete - PR #628 merged, mom-test-ux registered in index
- Documentation: mark t060, t062 complete - research notes already in TODO.md, verified content
- Documentation: mark t152, t153 complete - PRs #548, #552 already merged
- Documentation: mark t164 complete - PR #621 merged with distributed task claiming
- Documentation: mark t071, t075, t076, t077 complete with verified merged PRs
- Documentation: add t168 - /compare-models and /compare-models-free commands for model capability comparison
- Documentation: add t167 - investigate Gemini Code Assist for full codebase review pulse
- Documentation: add t166 - daily CodeRabbit full codebase review pulse for self-improving aidevops
- Documentation: reconcile 20 tasks with verified merged PRs
- Documentation: mark t163 complete - PR #622 merged with verified deliverables
- Documentation: VoiceInk to OpenCode macOS Shortcut guide (t112) (#576)
- Documentation: supervisor improves the process, never does work for workers (#570)
- Documentation: runners supervisor continuous loop — never stop, 1min pulse (#567)
- Documentation: complete t060 research - jj (Jujutsu) VCS evaluation for aidevops (#563)
- Documentation: clarify /runners supervisor role — orchestrate only, dispatch fixes as tasks (#560)

### Fixed

- normalize grep BRE patterns and shellcheck flags in verify-run-helper.sh (#716)
- strip verbose workflow from /onboarding command prompt (#714)
- secretlint-helper.sh install and scan in git worktrees (t191) (#717)
- remove agent: Onboarding from /onboarding command frontmatter (#709)
- add blank lines before category headings in graduation output (MD022) (#703)
- remove --agent Onboarding flag from opencode launch (#704)
- remove auth gate from onboarding launch — OpenCode handles auth itself (#702)
- add spinner to MCP package installs for visible progress (#701)
- decouple OpenCode commands from config guard, reorder after CLI install, add auth check (#698)
- setup.sh set-e resilience, template path, npm/sudo, and venv recovery
- Tabby repo pollution + missing npm on ARM64 Ubuntu (#688)
- improve supervisor dispatch error capture when worker fails to start (t183)
- validate auto-fixes before committing in GHA workflow (t182)
- xcode-select timeout + OrbStack VM exact match (#683)
- cancel stale diagnostic subtasks in pulse Phase 4c
- anchor task ID grep to capture dotted subtask IDs
- add PR check to force-fresh worktree cleanup path
- check for open PRs before deleting 'stale' branches in worktree cleanup (#663)
- handle missing worktrees in cmd_reprompt between retries (t178) (#659)
- enforce worker TODO.md restriction with multi-layer guards (t173) (#649)
- pass --non-interactive to setup.sh in aidevops update (t169) (#646)
- suppress stdout pollution in create_task_worktree (t169, t173) (#643)
- supervisor identity matching — prefer GitHub username, fuzzy compare (#641)
- add GitHub auth precheck to cmd_dispatch and full-loop (#640)
- resolve supervisor concurrency limiter race condition (t172) (#639)
- seed evaluate_worker PR URL from DB to prevent clean_exit_no_signal retry loop (#638)
- import-credentials now handles multi-tenant credential files (t170) (#636)
- detect and clean stale branches before worker dispatch
- prevent false task completion cascade (t163) (#622)
- resolve merge conflict - accept PR #616 revert of false completions
- revert 32 falsely marked-complete tasks in TODO.md (#616)
- detect backend quota errors on EXIT:0 and defer retries (t095-diag-1) (#601)
- supervisor DB migration safety - dynamic column detection and backup before ALTER TABLE (t162) (#598)
- supervisor DB safety - add backup-before-migrate and explicit column migrations (t162) (#591)
- supervisor TODO.md push fails under concurrent workers (t160) (#589)
- resolve clean_exit_no_signal retry loop in supervisor evaluation (t161) (#586)
- reduce duplication and add modern Git features to conflict-resolution (#583)
- prevent concurrent pulse dispatch exceeding concurrency limits (t159) (#584)
- supervisor dispatch passes task description to workers (t158) (#574)
- prevent TODO.md race condition with serialized locking and worker restriction (#569)
- add health check to supervisor reprompt to prevent wasting retries on dead backends (#568)
- refresh version cache after setup.sh completes (#551)
- guard ((var++)) with || true to prevent silent exit under set -e (#548)
- sync Homebrew formula version during release and add to version validator (t135.11) (#495)

## [2.105.4] - 2026-02-07

### Fixed

- add ShellCheck enforcement to CI code-quality workflow (t135.6) (#432)
- add SQLite WAL mode + busy_timeout to supervisor, memory, mail helpers (t135.3) (#433)

## [2.105.1] - 2026-02-07

### Fixed

- deploy greeting template via setup.sh and include app name in greeting (#421)

## [2.105.0] - 2026-02-07

### Added

- add runtime context hint to session greeting (#419)
- add Oh My Zsh setup option and fix bash/zsh shell compatibility (#418)
- add voice bridge -- talk to AI agents via speech (#416)
- add VirusTotal API integration for skill security scanning (#410)
- add three-tier agent lifecycle (draft, private, shared) (#409)
- add skill scan results audit trail (#406)
- gopass integration & credentials rename (t131) (#405)
- auto-install Cisco Skill Scanner during setup (#404)
- add voice AI integration with HuggingFace speech-to-speech pipeline (#403)
- separate --force from security scan bypass in skill imports (#402)
- integrate Cisco Skill Scanner for security scanning of imported skills (#400)
- add --non-interactive flag to setup.sh for CI/CD and AI agent shells (#399)

### Changed

- Documentation: add plugin system plan for private extension repos (t136)
- Documentation: update README with recent feature changes (#420)
- Refactor: remove oh-my-opencode integration and fix SKILL-SCAN-RESULTS agent (#413)
- Refactor: remove non-OpenCode AI tool support from aidevops (#412)
- Documentation: add draft agent awareness to orchestration agents (#411)
- Documentation: update t135.12 to use _archive/ folder name (user preference)
- Documentation: add t135 codebase quality hardening plan from Opus 4.6 review
- Documentation: mention scan results audit trail in README (#408)
- Documentation: add gitignore `*credential*` pattern note to t131.1
- Documentation: add PRD and tasks for gopass integration & credentials rename (t131)
- Documentation: add gopass integration plan (t131) to TODO and PLANS

### Fixed

- speech-to-speech helper syntax errors and venv support (#407)
- surface AI reviewer feedback posted as COMMENTED in pr-loop WAITING state (#401)

## [2.104.0] - 2026-02-06

### Added

- add AI bot review verification to pr-loop and full-loop workflows (t129) (#394)
- add schema-validator subagent and helper script (t085) (#391)
- add programmatic-seo subagent for building SEO pages at scale (t091) (#389)
- add WebPageTest subagent for real-world performance testing (t090) (#388)
- add ContentKing/Conductor Monitoring subagent (t089) (#387)
- add Semrush SEO subagent with Analytics API v3 integration (t087) (#386)
- add Rich Results Test subagent (t084) (#385)
- create Screaming Frog subagent (t086) (#383)
- add Bing Webmaster Tools subagent (t083) (#382)
- add analytics-tracking subagent for GA4 setup and event tracking (t094) (#390)
- add /runners command for orchestrated batch dispatch (#393)
- Supervisor post-PR lifecycle (t128.8) (#392)
- add memory and self-assessment integration to supervisor (t128.6) (#380)
- add cron integration and auto-pickup to supervisor (t128.5) (#381)
- add TODO.md auto-update on task completion/failure (t128.4) (#379)
- add 3-tier outcome evaluation and re-prompt cycle to supervisor (t128.3) (#378)
- add worker dispatch with worktree isolation to supervisor (t128.2)
- add supervisor-helper.sh with SQLite schema and state machine (t128.1)

### Changed

- Refactor: rename .agent/ to .agents/ for industry alignment (#396)
- Documentation: mark t128.6 complete - memory and self-assessment integration
- Documentation: mark t128.5 complete - cron integration and auto-pickup
- Documentation: mark t128.4 complete - TODO.md auto-update on completion/failure
- Documentation: mark t128.3 complete - outcome evaluation and re-prompt cycle
- Documentation: mark t128.2 complete - worker dispatch with worktree isolation
- Documentation: mark t128.1 complete - supervisor SQLite schema and state machine
- Documentation: add t128 Autonomous Supervisor Loop plan, PRD, and subtasks

### Fixed

- resolve SonarCloud security hotspots for clear-text protocols and npm ignore-scripts (#397)
- supervisor integration testing fixes (t128.7) (#384)
- remove eval in ampcode-cli.sh, use arrays + format whitelist (#375)
- remove deprecated "compaction" key from OpenCode config (#374)
- add missing blank lines between CHANGELOG.md release sections

## [2.102.0] - 2026-02-06

### Added

- add agent testing framework with isolated AI sessions (t118)
- add Playwright device emulation subagent (t098) (#367)
- add auto-capture flag, privacy filters, and /memory-log command (t058) (#365)
- add MinerU subagent for PDF-to-markdown conversion (#364)
- add Matrix bot integration for runner dispatch (t109.4) (#363)

### Changed

- Documentation: update README for recently merged PRs (#370)
- Documentation: add agent testing framework section to README
- Documentation: add Playwright device emulation to README Browser Automation section
- Documentation: add curl-copy authenticated scraping workflow subagent (#368)

### Fixed

- pass directory param to OpenCode session rename API
- replace awk -v with while-read to avoid BSD awk newline warnings (#371)
- improve secret detection regex to catch hyphenated API keys (t058) (#369)
- remove eval-based patterns from credential-helper.sh (t107) (#366)
- replace eval with safe array args in system-cleanup.sh find commands (#361)
- correct TODO commit guidance to use main for planning-only and worktrees for mixed changes (#360)
- re-run setup.sh when deployed agent VERSION mismatches repo (#358)

## [2.101.0] - 2026-02-06

### Added

- auto-migrate mailbox on update, replace auto-prune with storage report (#357)
- migrate inter-agent mailbox from TOON files to SQLite (#356)
- add memory namespace support for per-runner isolation (t109.3) (#351)
- headless dispatch docs + runner-helper.sh (t109.1, t109.2) (#348)
- Claude-Flow inspired features - model routing, semantic memory, pattern tracking (t102)
- add Neural-Chromium subagent for agent-native browser automation (#340)

### Changed

- Refactor: use args array for opencode launch command (#354)
- Documentation: add runner templates and parallel vs sequential guide (t109.5) (#353)
- Documentation: mark t109.3 memory namespace integration complete
- Documentation: update README headless dispatch section with runner-helper.sh examples
- Documentation: add Pi agent review for aidevops inspiration (t103) (#347)
- Documentation: add t102 features to README - semantic memory, pattern tracking, model routing (#345)

### Fixed

- resolve setup onboarding errors (macOS head -z, model selection, agent routing) (#346)
- namespace maintenance - orphan cleanup, shared access tracking, migrate, embeddings (t109.3) (#352)
- correct SQL single-quote escaping in memory-helper.sh (#350)
- use gtimeout on macOS, fallback to no timeout if neither available (#349)
- pattern-tracker stats now shows task type breakdown (#344)
- add main-branch write restrictions for subagents (#343)
- enforce README gate as mandatory step in loop workflows (#342)

## [2.100.20] - 2026-02-05

### Changed

- Documentation: add MCP auto-installation plan to PLANS.md (#338)

## [2.100.6] - 2026-02-05

### Fixed

- add explicit guidance to use generator script for OpenCode config (#319)
- check multiple OpenCode config locations (#318)

## [2.100.3] - 2026-02-04

### Changed

- Documentation: add SonarCloud security hotspot guidance to preflight/postflight (#315)

## [2.100.2] - 2026-02-04

### Fixed

- remove non-existent npm package breaking CI (#314)

## [2.100.1] - 2026-02-04

### Fixed

- prevent command injection in credential-helper.sh (#313)

## [2.100.0] - 2026-02-04

### Added

- add Ollama GLM-OCR support for local document OCR (#311)
- add iOS Simulator support to agent-browser (#308)

### Changed

- Documentation: add GLM-OCR to README documentation (#312)
- Documentation: add terminal capabilities section to AGENTS.md (#309)
- Documentation: add backlog tasks and loop auto-advance (#298)

### Fixed

- consolidate SonarCloud security hotspot exclusions for shell scripts (#307)

## [2.99.0] - 2026-02-04

### Added

- add cron agent for scheduled AI task dispatch (#304)

### Fixed

- harden cron scripts for secure remote use (#305)

## [2.98.0] - 2026-02-04

### Added

- OpenCode server docs, privacy filter, and self-improving agents (t115, t116, t117) (#302)
- import robust-skills from ccheney/robust-skills (#296)
- support multiple AI code reviewers in PR loop (#295)

### Changed

- Documentation: add self-improving agent system plan and tasks (t110-t118) (#301)
- Documentation: add parallel agents & headless dispatch plan (t104) (#300)
- Documentation: add security follow-up tasks and plans (#292)
- Refactor: improve skill categorization and reorganize imported skills (#297)

### Fixed

- correct SonarCloud rule prefix from shell: to shelldre: (#303)

## [2.97.1] - 2026-02-03

### Added

- add @socket subagent for dependency security scanning (#287)
- add sentry to Build+ allowed subagents (#283)
- add @sentry subagent for error monitoring MCP (#282)
- disable sentry and socket MCPs by default (#281)
- disable google-analytics-mcp and context7 by default (#280)
- disable on-demand MCPs globally in opencode.json (#277)
- MCP on-demand loading - disable playwriter, augment, gh_grep globally (#275)

### Changed

- Documentation: add security subagents and tools to README
- Documentation: update README counts and add sentry/socket subagents
- Documentation: trim sentry subagent to focus on auth/token setup (#285)
- Documentation: add Next.js SDK setup instructions to @sentry subagent (#284)

### Fixed

- route /agent-review command to Build+ instead of disabled Build-Agent (#293)
- catch updown api key secrets with secretlint (#291)
- add concurrency to all GitHub workflows (#290)
- address SonarCloud S7679 positional parameter violations (#289)
- remove invalid '|| exit' after 'then' in clawdhub-helper.sh (#288)
- auto-detect OpenCode port in session-rename tool (#286)
- move disable_ondemand_mcps to run after all MCP setup functions (#279)
- correct MCP name gh-grep to gh_grep in disable_ondemand_mcps (#278)

## [2.97.0] - 2026-02-02

### Added

- add @socket subagent for dependency security scanning (#287)
- add sentry to Build+ allowed subagents (#283)
- add @sentry subagent for error monitoring MCP (#282)
- disable sentry and socket MCPs by default (#281)
- disable google-analytics-mcp and context7 by default (#280)
- disable on-demand MCPs globally in opencode.json (#277)
- MCP on-demand loading - disable playwriter, augment, gh_grep globally (#275)

### Changed

- Documentation: update README counts and add sentry/socket subagents
- Documentation: trim sentry subagent to focus on auth/token setup (#285)
- Documentation: add Next.js SDK setup instructions to @sentry subagent (#284)

### Fixed

- address SonarCloud S7679 positional parameter violations (#289)
- remove invalid '|| exit' after 'then' in clawdhub-helper.sh (#288)
- auto-detect OpenCode port in session-rename tool (#286)
- move disable_ondemand_mcps to run after all MCP setup functions (#279)
- correct MCP name gh-grep to gh_grep in disable_ondemand_mcps (#278)

## [2.96.0] - 2026-02-02

### Added

- add security analysis with OSV, Ferret, and git history scanning (#274)

### Fixed

- make markdown lint blocking for changed files (#271)
- add blank line before fenced code block in remember.md (#270)

## [2.95.0] - 2026-01-31

### Added

- add proactive auto-remember triggers and session distill (#269)
- add relational versioning and dual timestamps (#268)
- add Mullvad Browser support for privacy-focused automation (#267)

## [2.94.0] - 2026-01-31

### Added

- auto-load aidevops AGENTS.md via instructions config (#266)

## [2.93.5] - 2026-01-31

### Changed

- Refactor: rename moltbot to openclaw branding (#265)
- Documentation: add Bitwarden cloud vs Vaultwarden detection documentation (#264)

## [2.93.2] - 2026-01-29

### Fixed

- resolve Codacy markdown style issues and add markdown standards (#258)

## [2.93.1] - 2026-01-29

### Added

- add /seo-audit command (#257)

## [2.93.0] - 2026-01-29

### Added

- import seo-audit skill from marketingskills repo (#255)

### Changed

- Documentation: update README with seo-audit skill and subagent count (#256)

## [2.92.5] - 2026-01-29

### Changed

- Documentation: add changelog entry for full-loop workflow fixes

### Fixed

- improve full-loop workflow reliability (#254)

## [2.92.4] - 2026-01-29

### Added

- add /pr-loop slash command for iterative PR monitoring (#251)

### Changed

- Documentation: add changelog entry for pr-loop command
- Documentation: update README counts and add new slash commands from recent PRs (#252)

### Fixed

- resolve SonarCloud code quality issues (#253)

## [2.92.3] - 2026-01-29

### Fixed

- make version scripts cross-platform and add validation (#250)

## [2.92.1] - 2026-01-28

### Fixed

- correct MainWP REST API endpoints and auth method (#247)

## [2.90.8] - 2026-01-27

### Changed

- Documentation: add changelog entry for browser custom engine support

### Fixed

- add language specifiers to fenced code blocks (#242)
- detect fd-find as fdfind on Debian/Ubuntu (#241)
- correct path to agent-review.md in generate-opencode-commands.sh (#237)

## [2.90.7] - 2026-01-27

### Changed

- Version bump and maintenance updates

## [2.90.6] - 2026-01-27

### Changed

- Version bump and maintenance updates

## [2.90.5] - 2026-01-26

### Changed

- Version bump and maintenance updates

## [2.90.4] - 2026-01-26

### Changed

- Documentation: add changelog entries for v2.90.4

## [2.90.3] - 2026-01-26

### Added

- add /neuronwriter slash command for content optimization (#235)

## [2.90.2] - 2026-01-26

### Changed

- Documentation: add yt-dlp agent, /yt-dlp command, and NeuronWriter to README (#234)

## [2.90.1] - 2026-01-26

### Added

- add /yt-dlp slash command for YouTube downloads (#233)

## [2.90.0] - 2026-01-26

### Added

- add yt-dlp agent for YouTube video/audio downloads (#232)

## [2.89.1] - 2026-01-25

### Fixed

- remove .opencode/agent symlink causing Services/ entries in tab completion (#228)

## [2.89.0] - 2026-01-25

### Changed

- Documentation: mark t079 as complete
- Refactor: consolidate Plan+ and AI-DevOps into Build+ (#226)

## [2.88.5] - 2026-01-25

### Added

- cache session greeting for agents without Bash (#224)
- cache session greeting for agents without Bash

### Fixed

- Plan+ uses Read for version check (no Bash tool available) (#223)
- Plan+ uses Read for version check (no Bash tool available)

## [2.88.4] - 2026-01-25

### Fixed

- add mandatory version check instruction directly to Plan+ agent (#222)
- add mandatory version check instruction directly to Plan+ agent

## [2.88.3] - 2026-01-25

### Fixed

- insist all agents run update check script (all have permission) (#221)
- insist all agents run update check script (all have permission)

## [2.88.2] - 2026-01-25

### Fixed

- use placeholder versions in AGENTS.md example to prevent hallucination (#220)
- use placeholder versions in AGENTS.md example to prevent hallucination

## [2.88.1] - 2026-01-25

### Added

- detect app name in session greeting (#219)

## [2.88.0] - 2026-01-25

### Added

- improve session titles to include task descriptions (#211)
- add email-health-check command and subagent (#213)
- add web performance subagent and /performance command (#209)
- auto-mark tasks complete from commit messages in release (#208)
- add debug-opengraph and debug-favicon subagents (#206)

### Changed

- Refactor: use 'AI DevOps' identity in system prompt
- Refactor: standardize Claude Code naming across documentation (#217)
- Documentation: update README with performance subagent and fix counts
- Documentation: update agent structure counts after email-health-check addition
- Documentation: add recent features to README (#215)
- Documentation: update README counts to reflect current state (#214)
- Documentation: complete t037 ALwrity review for SEO/marketing inspiration (#207)

### Fixed

- add planning-commit-helper.sh to Plan+ bash permissions
- prevent false positive task marking in auto-complete (#216)

## [2.87.3] - 2026-01-25

### Fixed

- pass positional args correctly to case statement (#205)

## [2.87.2] - 2026-01-25

### Fixed

- add external_directory permission to Plan+ agent (#204)

## [2.87.1] - 2026-01-25

### Fixed

- use custom system prompt for ALL primary agents (#203)

## [2.86.1] - 2026-01-25

### Added

- add playwright-cli subagent for AI agent automation (#196)
- allow version check script for initial greeting (#194)

### Changed

- Refactor: replace repomix MCP with CLI (#197)
- Refactor: remove repomix/playwriter from default agent tools (#195)
- Documentation: update README with recent PR features (#193)

## [2.83.1] - 2026-01-25

### Changed

- Refactor: remove serper MCP, use curl subagent instead (#187)
- Refactor: move claude-code-mcp to on-demand loading (#184)

### Fixed

- replace broken uvx command with uv tool run for serper MCP (#186)
- replace remaining associative array in install_mcp_packages
- replace associative array with parallel arrays in MCP migration
- unconditionally disable claude-code-mcp tools globally in setup

## [2.83.0] - 2026-01-24

### Added

- add ClawdHub skill registry as import source with browser automation (#183)

### Changed

- Documentation: add ClawdHub skills and import source to README

## [2.82.0] - 2026-01-24

### Added

- add Examples & Inspiration section to Remotion agent (#182)

## [2.81.0] - 2026-01-24

### Added

- add anti-detect browser automation stack

### Changed

- Documentation: update README with anti-detect browser section and counts

### Fixed

- resolve merge conflict with main and address CodeRabbit review

## [2.80.1] - 2026-01-24

### Fixed

- resolve MCP binary paths to full absolute paths for PATH-independent startup (#179)

## [2.80.0] - 2026-01-24

### Added

- implement multi-tenant credential storage (#178)

### Changed

- Documentation: add changelog entries for multi-tenant credentials
- Documentation: add list-keys subagent documentation

## [2.78.0] - 2026-01-24

### Added

- add HeyGen AI avatar video creation skill (#170)

## [2.77.3] - 2026-01-24

### Fixed

- auto-install fd and ripgrep in non-interactive mode (#171)

## [2.77.2] - 2026-01-24

### Fixed

- add remote sync verification to release script and tag rollback (#168)
- add Homebrew PATH detection early in setup.sh requirements check (#169)
- prefer Homebrew/pyenv python3 over macOS system python in setup.sh (#167)

## [2.77.1] - 2026-01-24

### Changed

- Documentation: add worktree path re-read instruction to AGENTS.md (#166)
- Documentation: update README metrics to match actual counts (#165)

## [2.77.0] - 2026-01-24

### Added

- add Playwright MCP auto-setup to setup.sh (#150)

### Changed

- Documentation: update browser tool docs with benchmarks and add benchmark agent (#163)

### Fixed

- replace bc version comparison with integer arithmetic in crawl4ai-helper (#164)

## [2.76.1] - 2026-01-24

### Changed

- Version bump and maintenance updates

## [2.76.0] - 2026-01-24

### Added

- add Video main agent for AI video generation and prompt engineering (#161)

### Changed

- Documentation: add PR #159, #160, #157 features to README

### Fixed

- remove hardcoded model IDs from agent config generation
- correct tools frontmatter format in pre-edit.md

## [2.75.0] - 2026-01-24

### Added

- multi-agent orchestration & token efficiency (p013/t068) (#158)
- aidevops update now checks planning template versions (#160)
- add session-time-helper and risk field to task format (#159)
- add content summaries to subagent routing table (#157)
- add video-prompt-design subagent for Veo 3 meta prompt framework (#156)

### Changed

- Documentation: add multi-agent orchestration section to README

## [2.74.1] - 2026-01-23

### Fixed

- correct ultimate-multisite plugin URL in wp-preferred.md (#155)

## [2.74.0] - 2026-01-23

### Added

- add technology stack subagents for modern web development (#152)

## [2.73.0] - 2026-01-23

### Added

- add aidevops skill CLI command with telemetry disabled (#154)

## [2.72.0] - 2026-01-22

### Added

- add MiniSim iOS/Android emulator launcher support (#151)

## [2.71.0] - 2026-01-22

### Added

- add Higgsfield AI API support with Context7 documentation (#149)

### Changed

- Documentation: add feature branch scenario guidance to pre-edit workflow (#148)

## [2.70.4] - 2026-01-21

### Changed

- Documentation: add cross-reference from cloudflare.md to cloudflare-platform.md (#147)

## [2.70.3] - 2026-01-21

### Fixed

- resolve Homebrew install failures and improve setup.sh error handling (#146)

## [2.70.2] - 2026-01-21

### Changed

- Documentation: add cloudflare-platform to AGENTS.md subagent table (#145)

## [2.70.1] - 2026-01-21

### Changed

- Documentation: address code review feedback on Imported Skills section (#144)

## [2.70.0] - 2026-01-21

### Added

- import cloudflare-platform skill and add update checking to setup (#142)
- Agent Design Pattern Improvements (t052-t057, t067) (#140)
- add anime.js skill imported via Context7 (#137)
- import Remotion video skill from GitHub (#138)

### Changed

- Documentation: add Imported Skills section to README (#143)
- Documentation: update README with new skills and accurate counts (#141)
- Documentation: update README with Remotion skill and accurate counts

### Fixed

- portable regex and nested skill support (#139)

## [2.69.0] - 2026-01-21

### Added

- Agent Design Pattern Improvements (t052-t057, t067) (#140)
- add anime.js skill imported via Context7 (#137)
- import Remotion video skill from GitHub (#138)

### Changed

- Documentation: update README with new skills and accurate counts (#141)
- Documentation: update README with Remotion skill and accurate counts

### Fixed

- portable regex and nested skill support (#139)

## [2.68.0] - 2026-01-21

### Added

- add /add-skill command for external skill import (#135)

### Changed

- Documentation: add /add-skill command to README (#136)

## [2.67.2] - 2026-01-21

### Changed

- Documentation: add changelog entry for dynamic badge fix

### Fixed

- handle dynamic GitHub release badge in version-manager.sh (#134)

## [2.67.1] - 2026-01-21

### Changed

- Documentation: add changelog entry for version validation fix

### Fixed

- consolidate version validation to single source of truth (#133)

## [2.67.0] - 2026-01-21

### Added

- add readme-helper.sh for dynamic count management (#131)
- add agent design subagents for planning discussions (#132)

### Changed

- Documentation: improve README maintainability and add AI-CONTEXT block (#130)

## [2.66.0] - 2026-01-21

### Added

- Auto-create fd alias on Debian/Ubuntu (#127)

## [2.65.0] - 2026-01-20

### Added

- add README create/update workflow and /readme command (#129)
- add humanise subagent for AI writing pattern removal (#128)
- add humanise subagent for AI writing pattern removal

### Changed

- Documentation: update README and CHANGELOG for humanise feature

### Fixed

- show curl errors for better debugging

## [2.64.0] - 2026-01-20

### Added

- add humanise subagent for AI writing pattern removal (#128)
- add humanise subagent for AI writing pattern removal

### Changed

- Documentation: update README and CHANGELOG for humanise feature

### Fixed

- show curl errors for better debugging

## [2.64.0] - 2026-01-20

### Added

- add humanise subagent for AI writing pattern removal (#128)
- add /humanise slash command for on-demand text humanisation
- add humanise-update-helper.sh to check for upstream skill updates

## [2.63.0] - 2026-01-19

### Added

- add /list-todo and /show-plan commands (#126)

## [2.62.1] - 2026-01-19

### Changed

- Refactor: elevate mcp_glob warning to MANDATORY section (#125)

## [2.62.0] - 2026-01-18

### Added

- add granular bash permissions for file discovery (#123)

### Fixed

- update CLI commands to match official docs (#124)

## [2.61.1] - 2026-01-18

### Fixed

- add missing default cases in tool-version-check.sh (S131) (#122)
- handle pull_request_review_comment events in OpenCode Agent workflow (#121)

## [2.61.0] - 2026-01-18

### Added

- add OpenClaw (formerly Moltbot, Clawdbot) integration for mobile AI access (#118)

### Changed

- Documentation: add one-time Bash guidance for Plan+ file discovery (#119)

### Fixed

- prefer Worktrunk (wt) over worktree-helper.sh (#120)

## [2.60.2] - 2026-01-18

### Fixed

- add context budget, file discovery, and capability guardrails (#117)

## [2.60.1] - 2026-01-17

### Changed

- Documentation: add Worktrunk as recommended worktree tool (#116)

## [2.60.0] - 2026-01-17

### Added

- Add file discovery performance guidance to AGENTS.md with preference order (git ls-files, fd, rg, mcp_glob)
- Add setup_file_discovery_tools() to setup.sh for automatic fd/ripgrep installation
- Add File Discovery Tools section to README.md with documentation

## [2.59.0] - 2026-01-17

### Added

- add auto-commit for planning files (TODO.md, todo/) (#114)

## [2.58.0] - 2026-01-17

### Added

- add path-based write permissions for Plan+ agent (#112)
- add worktrunk as default worktree tool with fallback (#109)

### Fixed

- clean up aidevops runtime files before worktree removal
- change state files from .md to .state extension (#111)
- exclude loop-state from agent discovery and deployment (#110)
- add backup rotation to prevent file accumulation (#108)

## [2.57.0] - 2026-01-17

### Added

- add worktrunk as default worktree tool with fallback (#109)

### Fixed

- add backup rotation to prevent file accumulation (#108)

## [2.56.0] - 2026-01-15

### Added

- point Claude Code MCP to fork (#105)
- add claude-code-mcp server (#103)
- auto-deploy Google Analytics MCP to OpenCode config (#100)
- add Google Analytics MCP integration (#98)
- add /review-issue-pr slash command (#95)
- add review-issue-pr for triaging external contributions (#94)

### Fixed

- improve secretlint performance with ignore patterns (#107)
- handle preflight PASS output (#106)
- resolve unbound variable and use opencode run (#104)
- suppress jq output in plugin array checks
- output options as YAML object instead of string (#101)

## [2.55.0] - 2026-01-14

### Added

- add Peekaboo MCP server integration for macOS GUI automation (#91)
- add macos-automator MCP for AppleScript automation (#89)
- add sweet-cookie documentation for cookie extraction (#90)

### Changed

- Documentation: add && aidevops update to npm/bun/brew install commands (#87)

## [2.54.2] - 2026-01-14

### Fixed

- resolve next.js security vulnerability CVE-2025-66478 (#79)

## [2.54.1] - 2026-01-14

### Fixed

- include aidevops.sh in version updates (#78)

## [2.54.0] - 2026-01-14

### Added

- add subagent filtering via frontmatter (#75)

### Changed

- Documentation: add troubleshooting section with support links to QuickFile agent (#76)
- Documentation: add upgrade-planning and update-tools to CLI commands
- Documentation: add Bun as installation option

### Fixed

- add SonarCloud exclusions for shell code smell rules (#77)

## [2.53.3] - 2026-01-13

### Changed

- Documentation: use aidevops.sh/install URL
- Documentation: use aidevops.sh URL for direct install option
- Documentation: update README with npm/Homebrew install, repo tracking, v2.53.2

## [2.53.0] - 2026-01-13

### Added

- add frontend debugging guide with browser verification patterns (#69)

## [2.52.1] - 2026-01-13

### Fixed

- correct onboarding command path to root agent location (#72)
- use prefix increment to avoid set -e exit on zero (#70)

## [2.52.0] - 2026-01-13

### Added

- add upgrade-planning command (#68)

### Changed

- Documentation: update CHANGELOG.md for v2.52.0 release

## [2.52.0] - 2026-01-13

### Added

- add `aidevops upgrade-planning` command to upgrade TODO.md/PLANS.md to latest TOON-enhanced templates
- add protected branch check to `init` and `upgrade-planning` with worktree creation option
- preserve existing tasks when upgrading planning files with automatic backup

### Fixed

- fix awk frontmatter stripping logic for template processing
- fix BSD/macOS sed compatibility for JSON updates (use awk for portable newlines)

## [2.51.1] - 2026-01-12

### Changed

- Documentation: update CHANGELOG.md for v2.51.1 release

## [2.51.1] - 2026-01-12

### Added

- Loop state migration in setup.sh from `.claude/` to `.agents/loop-state/` (#67)

## [2.51.0] - 2026-01-12

### Added

- add FluentCRM MCP integration for sales and marketing (#64)
- migrate loop state to .agents/loop-state and enhance re-anchor (#65)

### Changed

- Documentation: update CHANGELOG.md for v2.51.0 release
- Documentation: add individual network request throttling to Chrome DevTools (#66)
- Documentation: change governing law to Jersey
- Documentation: add TERMS.md with liability disclaimers

### Fixed

- add missing return statements to shell functions (S7682) (#63)

## [2.51.0] - 2026-01-12

### Added

- FluentCRM MCP integration for sales and marketing automation (#64)
- Ralph loop guardrails system - failures become actionable "signs" (#65)
- Single-task extraction in re-anchor prompts (Loom's "pin" concept) (#65)
- Linkage section in plans-template.md for spec-as-lookup-table pattern (#65)

### Changed

- Loop state directory migrated from `.claude/` to `.agents/loop-state/` (backward compatible) (#65)
- Ralph loop documentation updated with context pollution prevention philosophy (#65)
- Chrome DevTools docs: add individual network request throttling (#66)
- Linter thresholds improved and preflight issues fixed (#62)
- Legal: change governing law to Jersey, add TERMS.md (#62)

### Fixed

- Add missing return statements to shell functions (SonarCloud S7682) (#63)

## [2.50.0] - 2026-01-12

### Added

- add GSC sitemap submission via Playwright automation (#60)
- add agent-browser support for headless browser automation CLI (#59)

### Changed

- Documentation: update browser-automation guide with agent-browser as default (#61)

## [2.49.0] - 2026-01-11

### Added

- add tool update checking to setup.sh and aidevops CLI (#56)
- add OpenProse DSL for multi-agent orchestration (#57)

### Changed

- Documentation: note that OpenProse telemetry is disabled by default in aidevops (#58)
- Documentation: add Twilio and Telfon to README service coverage

## [2.47.0] - 2026-01-11

### Added

- add summarize and bird CLI subagents (t034, t035) (#40)

### Changed

- Documentation: add agent design patterns documentation and improvement plan (#39)

### Fixed

- prevent removal of unpushed branches and uncommitted changes (#42)

## [2.46.0] - 2026-01-11

### Added

- implement v2 architecture with fresh context per iteration (#38)

## [2.45.0] - 2026-01-11

### Added

- add /session-review and /full-loop commands for comprehensive AI workflow (#33)
- add code-simplifier subagent and enforce worktree-first workflow (#34)
- add cross-session memory system with SQLite FTS5 (#32)

### Changed

- Documentation: update CHANGELOG.md for v2.45.0 release
- Documentation: add latest capabilities to README
- Documentation: improve agent instructions based on session review (#31)

### Fixed

- add missing default cases to case statements (#35)

## [2.45.0] - 2026-01-11

### Added

- Cross-session memory system with SQLite FTS5 (`/remember`, `/recall`) (#32)
- Code-simplifier subagent and `/code-simplifier` command (#34)
- `/session-review` and `/full-loop` commands for comprehensive AI workflow (#33)
- Multi-worktree awareness for Ralph loops (`status --all`, parallel warnings)
- Auto-discovery for OpenCode commands from `scripts/commands/*.md` (#37)

### Fixed

- SonarCloud S131 violations - add missing default cases to case statements (#35)

### Changed

- Enforce worktree-first workflow - main repo stays on `main` branch
- Documentation: add multi-worktree section to ralph-loop.md

## [2.44.0] - 2026-01-11

### Added

- add session mapping script and improve pre-edit check (#29)

### Fixed

- resolve postflight ShellCheck and return statement issues (#30)

## [2.43.0] - 2026-01-10

### Added

- add session management and parallel work spawning (#26)
- add interactive mode with step-by-step confirmation (#23)

### Changed

- Documentation: add session management section to README
- Documentation: add line break before tagline
- Documentation: make aidevops bold links to aidevops.sh in prose
- Documentation: add tagline to philosophy section
- Documentation: add philosophy section explaining git-first workflow approach
- Documentation: add OpenCode Anthropic OAuth plugin section to README (#24)

## [2.42.2] - 2026-01-09

### Added

- add opencode-anthropic-auth plugin integration

### Changed

- Documentation: improve AGENTS.md progressive disclosure with descriptive hints (#22)

## [2.42.1] - 2026-01-09

### Changed

- Version bump and maintenance updates

## [2.41.2] - 2025-12-23

### Fixed

- enforce git workflow with pre-edit-check script

## [2.41.1] - 2025-12-23

### Changed

- Version bump and maintenance updates

## [2.41.0] - 2025-12-22

### Added

- inherit OpenCode prompts for Build+ and Plan+ agents (#7)

### Changed

- Refactor: demote build-agent and build-mcp to tools/ subagents

## [2.40.10] - 2025-12-22

### Changed

- Documentation: add comprehensive docstrings to opencode-github-setup-helper.sh
- Documentation: add t022 to Done with time logged

### Fixed

- update .coderabbit.yaml to match v2 schema
- handle git command exceptions in session-rename tool

## [2.40.7] - 2025-12-22

### Changed

- Refactor: move wordpress from root to tools/wordpress
- Documentation: add t021 for auto-marking tasks complete in release workflow
- Documentation: mark t011 as completed in TODO.md

## [2.40.6] - 2025-12-22

### Changed

- Refactor: demote wordpress.md from main agent to subagent

## [2.40.5] - 2025-12-22

### Changed

- Documentation: strengthen git workflow instructions with numbered options

## [2.40.4] - 2025-12-22

### Changed

- Documentation: clarify setup.sh step applies only to aidevops repo
- Documentation: add mandatory setup.sh step to release workflow

### Fixed

- auto-add ~/.local/bin to PATH during installation

## [2.40.3] - 2025-12-22

### Changed

- Version bump and maintenance updates

## [2.40.2] - 2025-12-22

### Added

- add parallel session workflow with branch-synced session naming (#6)
- add OpenCode GitHub/GitLab integration support (#5)

### Changed

- Documentation: update changelog for v2.40.2

## [2.40.2] - 2025-12-22

### Added

- Parallel session workflow with branch-synced session naming
- `/sync-branch` and `/rename` commands for OpenCode session management
- `session-rename` custom tool to update session titles via API
- Branch merge workflow in release.md for merging work branches
- Verb prefix guidance for branch naming (add-, improve-, fix-, remove-)

## [2.40.1] - 2025-12-22

### Changed

- Documentation: add Beads viewer installation and usage instructions

## [2.40.0] - 2025-12-22

### Added

- add backup rotation with per-type organization

### Fixed

- include marketplace.json in version commit staging

## [2.39.1] - 2025-12-21

### Added

- integrate Beads task graph visualization

### Changed

- Documentation: add Beads integration to README and templates

### Fixed

- correct Beads CLI command names in documentation

## [2.39.0] - 2025-12-21

### Added

- integrate Beads task graph visualization

### Fixed

- correct Beads CLI command names in documentation

## [2.38.1] - 2025-12-21

### Changed

- Version bump and maintenance updates

## [2.38.0] - 2025-12-21

### Added

- add persistent browser profile support

### Changed

- Documentation: add agent architecture evaluation tasks

### Fixed

- add branch check to Critical Rules for enforcement

## [2.37.3] - 2025-12-21

### Added

- add Oh-My-OpenCode Sisyphus agents after WordPress in Tab order

### Changed

- Refactor: use minimal AGENTS.md files in database directories
- Documentation: add critical rule to re-read files before editing

### Fixed

- add language specifiers to code blocks (MD040) and blank lines around fences (MD031)
- add missing return statements to 3 scripts
- swap Build+ before Plan+ in Tab order
- add mode: subagent to all agent files for OpenCode compatibility

## [2.37.2] - 2025-12-21

### Changed

- Refactor: simplify planning UX with auto-detection

## [2.37.0] - 2025-12-20

### Added

- add Agent Skills compatibility with SKILL.md generation
- add declarative database schema workflow with aidevops init database

### Fixed

- prevent postflight workflow circular dependency

## [2.36.1] - 2025-12-20

### Added

- add declarative database schema workflow with aidevops init database

### Fixed

- prevent postflight workflow circular dependency

## [2.36.0] - 2025-12-20

### Added

- add declarative database schema workflow with aidevops init database

## [2.35.3] - 2025-12-20

### Added

- add interactive setup wizard for new users

### Changed

- Documentation: add aidevops init, time tracking, and /log-time-spent to README

### Fixed

- change onboarding.md mode from 'agent' to 'subagent'

## [2.35.2] - 2025-12-20

### Added

- add interactive setup wizard for new users

### Changed

- Documentation: add aidevops init, time tracking, and /log-time-spent to README

## [2.35.1] - 2025-12-20

### Added

- add interactive setup wizard for new users

### Changed

- Documentation: add aidevops init, time tracking, and /log-time-spent to README

## [2.35.0] - 2025-12-20

### Added

- add interactive setup wizard for new users

### Changed

- Documentation: add aidevops init, time tracking, and /log-time-spent to README

## [2.34.1] - 2025-12-20

### Changed

- Documentation: add aidevops init, time tracking, and /log-time-spent to README

## [2.34.0] - 2025-12-20

### Added

- add TODO.md planning system with time tracking
- add domain-research subagent with THC and Reconeer APIs
- add TODO.md and planning workflow for task tracking
- add shadcn/ui MCP support for component browsing and installation

### Changed

- Documentation: update README with recent features

## [2.33.0] - 2025-12-18

### Added

- add domain-research subagent with THC and Reconeer APIs
- add TODO.md and planning workflow for task tracking
- add shadcn/ui MCP support for component browsing and installation

## [2.32.0] - 2025-12-18

### Added

- add TODO.md and planning workflow for task tracking
- add shadcn/ui MCP support for component browsing and installation

## [2.31.0] - 2025-12-18

### Added

- add shadcn/ui MCP support for component browsing and installation

## [2.30.0] - 2025-12-18

### Added

- add oh-my-opencode integration with cross-agent references

### Changed

- Documentation: update CHANGELOG.md with comprehensive v2.29.0 release notes

## [2.29.0] - 2025-12-18

### Added

- **OpenCode Antigravity OAuth Plugin** - Auto-install/update during setup
  - Enables Google OAuth authentication for premium model access
  - Available models: gemini-3-pro-high, claude-opus-4-5-thinking, claude-sonnet-4-5-thinking
  - Multi-account load balancing for rate limit distribution and failover
  - Documentation in README.md, aidevops.md, and opencode.md
  - See: https://github.com/NoeFabris/opencode-antigravity-auth
- **GSC User Helper Script** - New `gsc-add-user-helper.sh` for bulk adding users to Google Search Console properties
- **Site Crawler v2.0.0** - Major rewrite of `site-crawler-helper.sh` (~1,000 lines added)
  - Enhanced crawling capabilities
  - Improved SEO analysis features
- **Playwright Bulk Setup** - Improved browser automation documentation in `google-search-console.md` (+148 lines)

### Changed

- Updated `build-agent.md` with browser automation reference
- Enhanced `google-search-console.md` with comprehensive Playwright setup guidance

## [2.28.0] - 2025-12-16

### Added

- add site crawler and content quality scoring agents for SEO auditing

## [2.27.4] - 2025-12-15

### Changed

- Documentation: add MCP config validation errors, WordPress plugin workflow, SCF subagent
- Documentation: fix duplicate changelog entry for v2.27.3

### Fixed

- resolve ShellCheck SC2129 and SC2086 in fix-s131-default-cases.sh

## [2.27.3] - 2025-12-13

### Fixed

- Add retry loop for website docs push race condition (3 attempts with backoff)
- Add retry pattern to sync-wiki.yml workflow

### Added

- Document git push retry pattern in github-actions.md design patterns

## [2.27.2] - 2025-12-13

### Changed

- Documentation: add changelog for v2.27.2
- Documentation: update AGENTS.md with complete SonarCloud exclusion patterns
- Documentation: add SonarCloud security hotspot guidance to prevent recurring issues
- Documentation: fix changelog formatting for v2.27.1

### Fixed

- add *-verify.sh to SonarCloud exclusions
- add S6506 (HTTPS not enforced) to SonarCloud exclusions
- auto-exclude S5332 security hotspots via sonar-project.properties
- resolve code-review-monitoring workflow failures
- resolve SonarCloud critical issues and website docs push conflict

## [2.27.2] - 2025-12-13

### Fixed

- Auto-exclude SonarCloud security hotspots (S5332, S6506) via sonar-project.properties
- Resolve code-review-monitoring workflow failures (SARIF upload, git push race)
- Resolve SonarCloud S131 critical issues (missing default cases)
- Fix website docs workflow push conflicts

### Added

- S131 default case fixer script for future use (`fix-s131-default-cases.sh`)
- SonarCloud security hotspot guidance in AGENTS.md and code-standards.md

## [2.27.1] - 2025-12-13

### Changed

- Performance: use Bun in GitHub Actions for faster CI (~3x faster installs)
- Refactor: prefer Bun over Node.js/npm across local scripts

## [2.27.0] - 2025-12-13

### Added

- add browser tools auto-setup (Bun, dev-browser, Playwriter)
- add dev-browser stateful browser automation support
- add Playwriter MCP to setup auto-configuration
- add Playwriter MCP browser automation support

## [2.26.0] - 2025-12-13

### Added

- add SQL migrations workflow with best practices

## [2.25.0] - 2025-12-13

### Added

- auto-discover primary agents from .agents/*.md files
- add comprehensive git workflow with branch safety and preflight checks

### Changed

- Documentation: add framework internals trigger to progressive disclosure

## [2.24.0] - 2025-12-09

### Added

- add uncommitted changes check before release
- complete osgrep integration with self-testing improvements

## [2.23.1] - 2025-12-09

### Changed

- Documentation: remove ClearSERP references from changelog

## [2.23.0] - 2025-12-09

### Added

- add Google Search Console and Bing Webmaster Tools integration
- add strategic keyword research system
- enable context7 MCP for SEO agent

### Changed

- Documentation: update keyword research documentation
- Documentation: add changelog entry for SEO context7
- Documentation: add changelog entry for new subagents
- Documentation: add new subagents and /list-keys command to README
- Documentation: add changelog entry for README updates
- Documentation: add DataForSEO and Serper MCPs to README

### Fixed

- resolve changelog update regex and restore CHANGELOG.md

## [2.22.0] - 2025-12-07

### Added

- add strategic keyword research system
- enable context7 MCP for SEO agent

### Changed

- Documentation: add changelog entry for SEO context7
- Documentation: add changelog entry for new subagents
- Documentation: add new subagents and /list-keys command to README
- Documentation: add changelog entry for README updates
- Documentation: add DataForSEO and Serper MCPs to README

### Fixed

- resolve changelog update regex and restore CHANGELOG.md

## [2.21.0] - 2025-12-07

### Added

- **Keyword Research System** - Strategic keyword research with SERP weakness detection
  - New `keyword-research.md` subagent with comprehensive documentation
  - New `keyword-research-helper.sh` script (~1000 lines, bash 3.2 compatible)
  - 6 research modes: keyword expansion, autocomplete, domain research, competitor research, keyword gap, extended SERP analysis
  - 17 SERP weakness detection categories across domain/authority, technical, content, and SERP composition
  - KeywordScore algorithm (0-100) based on weakness count, volume, and difficulty
  - Multi-provider support: DataForSEO (primary), Serper (autocomplete), Ahrefs (domain ratings)
  - Locale support with saved preferences (US/UK/CA/AU/DE/FR/ES)
  - Output formats: Markdown tables (TUI) and CSV export to ~/Downloads
- **New OpenCode Slash Commands** - 3 new SEO workflow commands
  - `/keyword-research` - Seed keyword expansion with volume, CPC, difficulty
  - `/autocomplete-research` - Google autocomplete long-tail discovery
  - `/keyword-research-extended` - Full SERP analysis with weakness detection
- **OpenCode CLI Testing Reference** - Added to main agents (build-agent, build-mcp, build-plus, aidevops, seo)
  - Pattern: `opencode run "Test query" --agent [agent-name]`
  - New `opencode-test-helper.sh` script for testing MCP and agent configurations

### Changed

- Updated `seo.md` with keyword research subagent references
- Updated `generate-opencode-commands.sh` with 3 new SEO commands (18 total)
- Updated README with keyword research section and SEO workflow commands

### Fixed

- Added missing return statements to API functions in `keyword-research-helper.sh`
- Added missing return statements to print functions in `opencode-test-helper.sh`

## [2.20.5] - 2025-12-07

### Added

- enable context7 MCP for SEO agent

### Changed

- Documentation: add changelog entry for SEO context7
- Documentation: add changelog entry for new subagents
- Documentation: add new subagents and /list-keys command to README
- Documentation: add changelog entry for README updates
- Documentation: add DataForSEO and Serper MCPs to README

### Fixed

- resolve changelog update regex and restore CHANGELOG.md

## [2.20.4] - 2025-12-07

### Changed

- Documentation: add changelog entry for new subagents
- Documentation: add new subagents and /list-keys command to README
- Documentation: add changelog entry for README updates
- Documentation: add DataForSEO and Serper MCPs to README

### Fixed

- resolve changelog update regex and restore CHANGELOG.md

## [2.20.3] - 2025-12-07

### Changed

- Documentation: add changelog entry for README updates
- Documentation: add DataForSEO and Serper MCPs to README

### Fixed

- resolve changelog update regex and restore CHANGELOG.md

## [2.20.2] - 2025-12-07

### Fixed

- resolve changelog update regex and restore CHANGELOG.md

## [2.19.13] - 2025-12-06

### Security

- **SonarCloud Security Hotspots Resolved** - Fixed 9 of 10 security hotspots
  - Added `--proto '=https'` to curl commands to enforce HTTPS and prevent protocol downgrade attacks
  - Added `--ignore-scripts` to npm install commands to prevent execution of postinstall scripts
  - Files fixed: aidevops-update-check.sh, codacy-cli.sh, qlty-cli.sh, linter-manager.sh, markdown-lint-fix.sh, setup-mcp-integrations.sh
  - 1 hotspot acknowledged as safe (localhost-helper.sh http:// for local dev when SSL disabled)

## [2.19.12] - 2025-12-06

### Fixed

- Version bump release (no functional changes)

## [2.19.11] - 2025-12-06

### Added

- **Session Greeting with Version Check** - AI assistants now greet with aidevops version at session start
  - Automatic version check via `aidevops-update-check.sh` script
  - Update notification when new version available
  - Clickable URL format: "Hi! We're running https://aidevops.sh v{version}"

### Changed

- **OpenCode AGENTS.md Instructions** - Strengthened version check compliance
  - Changed from "MANDATORY" to "CRITICAL - DO THIS FIRST"
  - Explicit Bash tool specification to prevent webfetch errors
  - Added `instructions` field to opencode.json for reliable loading

### Fixed

- **TypeError on Session Start** - Fixed `undefined is not an object (evaluating 'response.headers')` error
  - Caused by ambiguous "silently run" instruction interpreted as webfetch
  - Now explicitly specifies Bash tool for version check script
- **Local Linter False Positives** - Improved accuracy of linters-local.sh
  - Return statement check now recognizes `return $var` and `return $((expr))` patterns
  - Positional parameter check excludes multi-line awk scripts, heredocs, and comments
  - Reduced false positives from 15 to 0
- **SonarCloud S131 Violations** - Added default cases to case statements
  - version-manager.sh, postflight-check.sh, generate-opencode-agents.sh
- **SonarCloud S7682 and S7679 Issues** - Resolved return statement and positional parameter violations

## [2.17.1] - 2025-12-06

### Changed

- Removed AI tool symlink directories and files that caused duplicate `@` references in OpenCode
- Updated .gitignore to ignore tool-specific symlinks (.ai, .kiro, .continue, .cursorrules, .windsurfrules, .continuerules, .claude/, .codex/, .cursor/, .factory/)
- Added "AI Tool Configuration" section to AGENTS.md documenting canonical agent location (~/.aidevops/agents/)

## [2.17.0] - 2025-12-06

### Added

- **linters-local.sh Script** - New local quality check script for offline linting
  - ShellCheck, secretlint, and pattern-based checks
  - No external service dependencies required
- **code-standards.md** - Consolidated code review guidance and quality standards
- **code-audit-remote.md Workflow** - Remote repository audit workflow
  - CodeRabbit, Codacy, and SonarCloud integration
- **pr.md Workflow** - Unified PR orchestrator (renamed from pull-request.md)
- **Stagehand Python MCP Templates** - New templates for Python-based browser automation
  - `stagehand-both.json` - Combined TypeScript and Python configuration
  - `stagehand-python.json` - Python-only configuration

### Changed

- **changelog.md Workflow** - Improved entry writing guidance and formatting
- **Consolidated Code Review Agents** - Merged code-quality.md into code-standards.md
- **Renamed pull-request.md to pr.md** - Shorter, consistent naming
- **Updated Workflow Agents** - Enhanced branch, preflight, postflight, release workflows
- **Cross-Reference Updates** - Updated ~40 agent files with new paths

### Removed

- **quality-check.sh** - Replaced by linters-local.sh
- **code-quality.md** - Consolidated into code-standards.md
- **code-review.md Workflow** - Consolidated into code-audit-remote.md

## [2.16.0] - 2025-12-06

### Added

- **Unified PR Command** - New `/pr` command orchestrating all quality checks
  - Combines linters-local, code-audit-remote, and code-standards checks
  - Intent vs reality analysis for comprehensive PR validation
- **Local Linting Command** - New `/linters-local` command for fast, offline linting
  - ShellCheck, secretlint, and pattern checks
  - No external service dependencies
- **Remote Audit Command** - New `/code-audit-remote` command for remote auditing
  - CodeRabbit, Codacy, and SonarCloud integration
- **Code Standards Command** - New `/code-standards` command for quality standards checking
- **New Scripts and Workflows**:
  - `linters-local.sh` - Local linting script (replaces quality-check.sh)
  - `workflows/pr.md` - Unified PR orchestrator workflow
  - `workflows/code-audit-remote.md` - Remote auditing workflow
  - `tools/code-review/code-standards.md` - Quality standards reference

### Changed

- **Renamed Scripts and Workflows** - Clarified naming for local vs remote operations
  - `quality-check.sh` → `linters-local.sh` (clarifies local-only scope)
  - `workflows/code-review.md` → `workflows/code-audit-remote.md` (clarifies remote services)
  - `tools/code-review/code-quality.md` → `tools/code-review/code-standards.md` (clarifies reference purpose)
  - `workflows/pull-request.md` → `workflows/pr.md` (now orchestrates all checks)
  - `@code-quality` subagent → `@code-standards`
- **Updated Documentation** - Comprehensive cross-reference updates
  - Updated `generate-opencode-commands.sh` with new command structure
  - Updated AGENTS.md with new quality workflow documentation
  - Updated README.md with new commands and workflow
  - Updated cross-references across ~40 agent files

### Removed

- `quality-check.sh` - Replaced by `linters-local.sh`
- `workflows/code-review.md` - Replaced by `workflows/code-audit-remote.md`
- `workflows/pull-request.md` - Replaced by `workflows/pr.md`
- `tools/code-review/code-quality.md` - Replaced by `tools/code-review/code-standards.md`

## [2.15.0] - 2025-12-06

### Added

- **OpenCode Commands Generation** - New `generate-opencode-commands.sh` script
  - Creates 13 workflow slash commands for OpenCode: `/agent-review`, `/preflight`, `/postflight`, `/release`, `/version-bump`, `/changelog`, `/code-audit-remote`, `/linters-local`, `/feature`, `/bugfix`, `/hotfix`, `/context`, `/pr`
  - Commands deployed to `~/.config/opencode/commands/` directory
  - Integrated into `setup.sh` for automatic deployment during installation

## [2.14.0] - 2025-12-06

### Added

- **Conversation Starter Workflow** - New `workflows/conversation-starter.md` for Plan+ and Build+
  - Unified prompts for git repository context (12 workflow options)
  - Remote services menu for non-git contexts (9 service integrations)
  - Automatic subagent context loading based on user selection

### Changed

- **Plan+ Agent Refactored** - Aligned with upstream OpenCode Plan prompts
  - 5-phase planning workflow: Understand, Investigate, Synthesize, Finalize, Handoff
  - Parallel explore agents support (1-3 agents in single message)
  - Reduced AI-CONTEXT from 100 to 49 lines (within instruction budget)
  - Added context tools table (osgrep, Augment, context-builder, Context7)

- **Build+ Agent Refactored** - Aligned with upstream OpenCode Build prompt (beast.txt)
  - Reduced AI-CONTEXT from 119 to 55 lines (within instruction budget)
  - Added context tools and quality integration tables
  - Preserved all 9 workflow steps with enhanced guidance
  - Added file reading best practices section

## [2.13.0] - 2025-12-06

### Added

- **One-liner Install Command** - Universal install/update via curl
  - `bash <(curl -fsSL https://raw.githubusercontent.com/marcusquinn/aidevops/main/setup.sh)`
  - Auto-detects curl execution, clones repo to ~/Git/aidevops
  - Re-executes local setup.sh after cloning for full setup
- **Global `aidevops` CLI Command** - New CLI installed to /usr/local/bin/aidevops
  - `aidevops status` - Comprehensive installation status check
  - `aidevops update` - Update to latest version
  - `aidevops uninstall` - Clean removal with prompts
  - `aidevops version` - Version info with update check
  - `aidevops help` - Usage information
- **Interactive Setup Prompts** - Enhanced setup.sh with optional installations
  - Required dependencies (jq, curl, ssh) via detected package manager
  - Optional dependencies (sshpass)
  - Recommended tools (Tabby terminal, Zed editor)
  - OpenCode extension for Zed
  - Git CLI tools (gh, glab)
  - SSH key generation
  - Shell aliases
- **Multi-Platform Package Manager Support** - Auto-detects brew, apt, dnf, yum, pacman, apk
- **Multi-Shell Support** - Detects and configures bash, zsh, fish, ksh with correct rc files
- **CLI Reference Documentation** - New `.wiki/CLI-Reference.md` with complete CLI docs

### Changed

- **setup.sh** - Major refactor with bootstrap_repo(), install_aidevops_cli(), setup_recommended_tools()
- **README.md** - Updated Quick Start section with one-liner install
- **Getting-Started.md** - Comprehensive installation guide update
- **Home.md** - Updated with new install method

## [2.12.0] - 2025-12-05

### Added

- **YAML Frontmatter with Tool Permissions** - Added to ~120 subagent files
  - Standardized tool permission declarations across all subagents
  - Enables OpenCode to enforce tool access controls per agent
- **Agent Directory Architecture Documentation** - Documented `.agents/` vs `.opencode/agent/` structure
  - Clarified deployment paths and directory purposes

### Changed

- **OpenCode Frontmatter Format** - Updated `build-agent.md` with correct format
  - Removed invalid `list` tool references from frontmatter
  - Removed invalid `permission` blocks from frontmatter
  - Aligned with OpenCode configuration validation requirements

### Removed

- **Duplicate Wiki File** - Removed `Workflow-Guides.md` (duplicate of `Workflows-Guide.md`)

### Fixed

- **OpenCode Config Validation Errors** - Fixed frontmatter format issues
  - Corrected tool permission syntax across subagent files
  - Resolved validation errors preventing agent loading

## [2.11.0] - 2025-12-05

### Added

- **osgrep Local Semantic Search** - New tool integration for 100% private semantic code search
  - Documentation in `.agents/tools/context/osgrep.md`
  - Config templates for osgrep MCP integration
  - Updated setup.sh and scripts for osgrep CLI support
  - GitHub issue comments submitted (#58, #26) for upstream bug tracking

## [2.10.0] - 2025-12-05

### Added

- **Conversation Starter Prompts** - Plan+ and Build+ agents now offer guided workflow selection
  - Git repository context: Workflow menu (Feature, Bug Fix, Hotfix, Refactor, PR, Release, etc.)
  - Non-git context: Remote services menu (101domains, Closte, Cloudflare, Hetzner, etc.)
  - Automatic subagent context loading based on user selection
- **Workflow Subagents** - Three new workflow subagents for release lifecycle
  - `workflows/preflight.md` - Pre-release quality checks (ShellCheck, Secretlint, SonarCloud)
  - `workflows/pull-request.md` - PR/MR workflow for GitHub, GitLab, and Gitea
  - `workflows/postflight.md` - Post-release CI/CD verification and rollback procedures
- **Preflight Integration** - Automatic quality gates before version bumping
  - New `--skip-preflight` flag for emergency releases
  - Phased checks: instant blocking, fast blocking, medium, slow advisory

### Changed

- **Enhanced Branch Lifecycle** - Expanded `workflows/branch.md` from 7 to 11 stages
  - New stages: Preflight, Version, Postflight
  - Subagent references at each lifecycle stage
  - Visual workflow chain diagram

## [2.9.0] - 2025-12-05

### Added

- **Branch Workflow System** - New `workflows/branch.md` with 6 branch type subagents
  - Feature, bugfix, hotfix, refactor, chore, experiment branch workflows
  - Standardized naming conventions and merge strategies
- **Setup.sh --clean Flag** - Remove stale deployed files during setup
  - New `verify-mirrors.sh` script for checking agent directory mirrors
- **Git Safety Practices** - Added to all build agents
  - Pre-destructive operation stash guidance
  - Protection for uncommitted and untracked files
- **Changelog Workflow** - New `workflows/changelog.md` subagent
  - Changelog validation in version-manager.sh
  - `changelog-check` and `changelog-preview` commands
  - Enforced changelog updates before releases

### Changed

- **Restructured Git Tools** - `tools/git.md` reorganized with platform CLI subagents
  - GitHub, GitLab, and Gitea CLI helpers as dedicated subagents
  - New `git/authentication.md` and `git/security.md` subagents
- **Consolidated Security Documentation** - Scripts security merged into `aidevops/security.md`
- **Separated Version Workflows** - Split into `version-bump.md` and `release.md` for clarity

### Removed

- Redundant `workflows/README.md` (content merged into main workflow docs)
- `release-improvements.md` (consolidated into release.md)

## [2.8.1] - 2025-12-04

### Added

- **OpenCode Tools** - Custom tool definitions for OpenCode AI assistant
- **MCP Testing Infrastructure** - Docker-based testing for MCP servers

### Changed

- Minor documentation updates and quality improvements

## [2.8.0] - 2025-12-04

### Added

- **Build-Agent** - New main agent for composing efficient AI agents
  - Promoted from `agent-designer.md` to main agent status
  - Comprehensive guidance on instruction budgets and agent design
- **Build-MCP** - New main agent for MCP server development
  - TypeScript + Bun + ElysiaJS stack guidance
  - Tool, resource, and prompt registration patterns

### Changed

- **Agent Naming Conventions** - Documented in `agent-designer.md`
- Reduced instruction count in agent-designer.md for efficiency
- Updated README with Build-Agent and Build-MCP in main agents table

## [2.7.4] - 2025-12-04

### Fixed

- **Outscraper API URL Correction** - Fixed base URL from `api.outscraper.cloud` to `api.app.outscraper.com`
  - Matches official Python SDK at <https://github.com/outscraper/outscraper-python>

### Added

- **Outscraper Account & Billing API Documentation** - New endpoints not available in Python SDK
  - `GET /profile/balance` - Account balance, status, and upcoming invoice
  - `GET /invoices` - User invoice history
- **Outscraper Task Management API Documentation** - Full task lifecycle control
  - `POST /tasks` - Create UI tasks programmatically
  - `POST /tasks-validate` - Validate and estimate task cost before creation
  - `PUT /tasks/{taskId}` - Restart tasks
  - `DELETE /tasks/{taskId}` - Terminate tasks
  - `GET /webhook-calls` - Failed webhook calls (last 24 hours)
  - `GET /locations` - Country locations for Google Maps searches
- **SDK vs Direct API Clarification** - Added "In SDK" column to endpoint tables
  - Clearly marked which features require direct API calls vs SDK methods
  - Added link to official SDK repository
- **Expanded Tool Coverage** - Additional tools documented
  - `yelp_reviews`, `yelp_search`, `trustpilot_search`, `yellowpages_search`
  - `contacts_and_leads`, `whitepages_phones`, `whitepages_addresses`
  - `company_websites_finder`, `similarweb`
- **Python Examples** - Comprehensive code examples for all API patterns
  - Account & Billing section (Direct API Only)
  - Task Management section (Direct API + SDK hybrid)
  - Proper initialization patterns with both SDK and direct requests

### Changed

- **Account Access Documentation** - Replaced incorrect "Account Limitations" section
  - Previously stated account info was dashboard-only (incorrect)
  - New "Account Access via API" section with accurate endpoint information

## [2.7.3] - 2025-12-04

### Fixed

- **Outscraper MCP Documentation Improvements** - Enhanced documentation quality and accuracy
  - Fixed JSON syntax error in documentation (malformed JSON block with extra braces)
  - Standardized install command from `uvx` to `uv tool run` for consistency
  - Added "Tested tools" section documenting verified functionality (Dec 2024)
  - Added OpenCode-specific troubleshooting section for `env` key and `uvx` command issues

## [2.7.2] - 2025-12-04

### Fixed

- **Outscraper MCP Server Fails to Start** - Fixed `uvx` command conflict
  - `uvx` on some systems is a different tool (not uv's uvx alias)
  - Changed to `uv tool run outscraper-mcp-server` which is the correct way to run Python tools with uv
  - Updated `generate-opencode-agents.sh`, `outscraper.md`, `outscraper.json` template, and `outscraper-config.json.txt`

## [2.7.1] - 2025-12-04

### Fixed

- **OpenCode MCP Config Validation Error** - Fixed invalid `env` key in MCP configuration
  - OpenCode does not support the `env` key for MCP server configs
  - Changed to bash wrapper pattern: `/bin/bash -c "VAR=$VAR command"`
  - Updated `generate-opencode-agents.sh`, `outscraper.md`, `outscraper.json` template, and `outscraper-config.json.txt`

## [2.7.0] - 2025-12-04

### Added

- **Outscraper MCP Server Integration** - Data extraction service for OpenCode
  - Automatic MCP server configuration in `generate-opencode-agents.sh`
  - Adds `outscraper` to MCP section with uvx command and environment variable
  - Subagent-only access pattern via `@outscraper` for controlled usage

### Changed

- **Tool-Specific Subagent Strategy** - Enhanced security model for external service tools
  - Added special handling for tool-specific subagents (outscraper, mainwp, localwp, quickfile, google-search-console)
  - Main agents (Content, Marketing, Research, Sales, SEO) no longer have direct outscraper access
  - Tools disabled globally (`outscraper_*: false`) with access only through dedicated subagents
- Updated `outscraper.md` documentation to reflect subagent-only access pattern
- Updated `outscraper-config.json.txt` agent enablement section

## [2.6.0] - 2025-12-04

### Added

- **Repomix AI Context Generation** - Configuration and documentation for Repomix integration
  - `repomix.config.json` - Default configuration with XML output, line numbers, security checks, smart includes for .md/.sh/.json.txt files
  - `.repomixignore` - Additional exclusions beyond .gitignore (symlinked dirs, binaries, generated outputs)
  - `repomix-instruction.md` - Custom AI instructions embedded in Repomix output to help AI understand codebase structure

### Changed

- Updated `.gitignore` with `repomix-output.*` patterns to exclude generated outputs
- Enhanced `README.md` with comprehensive "Repomix - AI Context Generation" section:
  - Comparison table with Augment Context Engine
  - Quick usage commands and configuration files reference
  - Key design decisions (no pre-generated files, .gitignore inheritance, Secretlint enabled, symlinks excluded)
  - MCP integration configuration example

## [2.5.3] - 2025-12-04

### Security

- **Plan+ Agent Permission Bypass Fix** - Closed vulnerability allowing read-only agent to bypass restrictions
  - Disabled `bash` tool to prevent shell command file writes
  - Disabled `task` tool to prevent spawning write-capable subagents (subagents don't inherit parent permissions)
  - Added explicit `write: deny` permission for defense in depth
  - Updated `.agents/plan-plus.md` documentation to reflect strict read-only mode

### Added

- **Permission Model Limitations Documentation** - New section in `.agents/tools/opencode/opencode.md`
  - Documents OpenCode permission inheritance behavior
  - Explains subagent permission isolation
  - Provides guidance for securing read-only agents

## [2.2.0] - 2025-11-30

### Added

- **Secretlint Integration** - Secret detection tool to prevent committing credentials
  - New `secretlint-helper.sh` for installation, scanning, and pre-commit hook management
  - Configuration files `.secretlintrc.json` and `.secretlintignore` for project-specific setup
  - Comprehensive documentation in `.agents/secretlint.md`
  - Multi-provider detection: AWS, GCP, GitHub, OpenAI, Anthropic, Slack, npm tokens
  - Private key detection: RSA, DSA, EC, OpenSSH keys
  - Database connection string scanning
  - Docker support for running scans without Node.js

### Changed

- Updated `quality-check.sh` with secretlint integration for comprehensive secret scanning
- Enhanced `pre-commit-hook.sh` with secretlint pre-commit checks
- Extended `linter-manager.sh` with secretlint as a supported security linter
- Updated `.gitignore` with exceptions for secretlint tool files

### Fixed

- Removed duplicate/unreachable return statements in helper scripts
- Replaced eval with array-based execution for improved security
- Changed hardcoded /tmp paths to mktemp for safer temporary file handling
- Added input validation for target patterns in quality scripts
- Fixed unused variables and awk field references
- Fixed markdown formatting issues

## [2.0.0] - 2025-11-29

### Added

- **Comprehensive AI Workflow Documentation** - 9 new workflow guides in `.agents/workflows/`:
  - `git-workflow.md` - Git practices and branch strategies
  - `bug-fixing.md` - Bug fix and hotfix workflows
  - `feature-development.md` - Feature development lifecycle
  - `code-review.md` - Universal code review checklist
  - `error-checking-feedback-loops.md` - CI/CD feedback automation with GitHub API
  - `multi-repo-workspace.md` - Multi-repository safety guidelines
  - `release-process.md` - Semantic versioning and release management
  - `wordpress-local-testing.md` - WordPress testing environments
  - `README.md` - Workflow index and guide
- **Quality Feedback Helper Script** - `quality-feedback-helper.sh` for GitHub API-based quality tool feedback retrieval (Codacy, CodeRabbit, SonarCloud, CodeFactor)
- OpenCode as preferred CLI AI assistant in documentation
- Grep by Vercel MCP server integration for GitHub code search
- Cross-tool AI assistant symlinks (.cursorrules, .windsurfrules, CLAUDE.md, GEMINI.md)
- OpenCode custom tool definitions in `.opencode/tool/`
- Consolidated `.agents/` directory structure
- Developer preferences guidance in `.agents/memory/README.md`

### Changed

- **Major milestone**: Comprehensive AI assistant workflow documentation
- Reorganized CLI AI assistants list with OpenCode at top
- Moved AmpCode and Continue.dev from Security section to CLI Assistants
- Updated MCP server count to 13
- Standardized service counts across documentation (30+)
- Enhanced `.markdownlint.json` configuration

### Fixed

- All CodeRabbit, Codacy, and ShellCheck review issues resolved
- Duplicate timestamp line in system-cleanup.sh
- Hardcoded path in setup-mcp-integrations.sh
- SC2155 ShellCheck violations in workflow scripts
- MD040 markdown code block language identifiers
- MD031 blank lines around code blocks

## [1.9.1] - 2024-11-28

### Added

- Snyk security scanning as 29th service integration
- Enhanced quality automation workflows

### Fixed

- Code quality improvements via automated fixes

## [1.9.0] - 2024-11-27

### Added

- Version validation workflow
- Auto-version bump scripts
- Enhanced Git CLI helpers for GitHub, GitLab, and Gitea

### Changed

- Improved quality check scripts
- Updated documentation structure

## [1.8.0] - 2024-11-19

### Added

- Zero technical debt milestone achieved
- Multi-platform quality compliance (SonarCloud, CodeFactor, Codacy)
- Universal parameter validation patterns across all provider scripts
- Automated quality tool integration

### Changed

- **Positional Parameters (S7679)**: 196 → 0 violations (100% elimination)
- **SonarCloud Issues**: 585 → 0 issues (perfect compliance)
- All provider scripts now use proper main() function wrappers
- Enhanced error handling with local variable usage

### Fixed

- Return statement issues across all scripts
- ShellCheck violations in 21 files

## [1.7.2] - 2024-11-15

### Added

- Initial MCP integrations (10 servers)
- Browser automation with Stagehand AI
- SEO tools integration (Ahrefs, Google Search Console)

### Changed

- Expanded service coverage to 26+ integrations

## [1.7.0] - 2024-11-10

### Added

- TOON Format integration for token-efficient data exchange
- DSPy integration for prompt optimization
- PageSpeed Insights and Lighthouse integration
- Updown.io monitoring integration

### Changed

- Restructured documentation for better clarity

## [1.6.0] - 2024-11-01

### Added

- Git platform CLI helpers (GitHub, GitLab, Gitea)
- Coolify and Vercel CLI integrations
- Cloudron hosting support

### Changed

- Enhanced multi-account support across providers

## [1.5.0] - 2024-10-15

### Added

- Quality CLI manager for unified tool access
- CodeRabbit AI-powered code review integration
- Qlty universal linting platform support

### Changed

- Improved quality automation workflows

## [1.0.0] - 2024-09-01

### Added

- Initial release of AI DevOps Framework
- Core provider integrations (Hostinger, Hetzner, Cloudflare)
- SSH key management utilities
- AGENTS.md guidance system
- Basic quality assurance setup

[Unreleased]: https://github.com/marcusquinn/aidevops/compare/v2.29.0...HEAD
[2.29.0]: https://github.com/marcusquinn/aidevops/compare/v2.28.0...v2.29.0
[2.28.0]: https://github.com/marcusquinn/aidevops/compare/v2.27.4...v2.28.0
[2.27.4]: https://github.com/marcusquinn/aidevops/compare/v2.27.3...v2.27.4
[2.27.3]: https://github.com/marcusquinn/aidevops/compare/v2.27.2...v2.27.3
[2.27.2]: https://github.com/marcusquinn/aidevops/compare/v2.27.1...v2.27.2
[2.27.1]: https://github.com/marcusquinn/aidevops/compare/v2.27.0...v2.27.1
[2.27.0]: https://github.com/marcusquinn/aidevops/compare/v2.26.0...v2.27.0
[2.26.0]: https://github.com/marcusquinn/aidevops/compare/v2.25.0...v2.26.0
[2.25.0]: https://github.com/marcusquinn/aidevops/compare/v2.24.0...v2.25.0
[2.24.0]: https://github.com/marcusquinn/aidevops/compare/v2.23.1...v2.24.0
[2.23.1]: https://github.com/marcusquinn/aidevops/compare/v2.23.0...v2.23.1
[2.23.0]: https://github.com/marcusquinn/aidevops/compare/v2.22.0...v2.23.0
[2.22.0]: https://github.com/marcusquinn/aidevops/compare/v2.21.0...v2.22.0
[2.21.0]: https://github.com/marcusquinn/aidevops/compare/v2.20.5...v2.21.0
[2.20.5]: https://github.com/marcusquinn/aidevops/compare/v2.20.4...v2.20.5
[2.20.4]: https://github.com/marcusquinn/aidevops/compare/v2.20.3...v2.20.4
[2.20.3]: https://github.com/marcusquinn/aidevops/compare/v2.20.2...v2.20.3
[2.20.2]: https://github.com/marcusquinn/aidevops/compare/v2.19.13...v2.20.2
[2.19.13]: https://github.com/marcusquinn/aidevops/compare/v2.19.12...v2.19.13
[2.19.12]: https://github.com/marcusquinn/aidevops/compare/v2.19.11...v2.19.12
[2.19.11]: https://github.com/marcusquinn/aidevops/compare/v2.17.1...v2.19.11
[2.17.1]: https://github.com/marcusquinn/aidevops/compare/v2.17.0...v2.17.1
[2.17.0]: https://github.com/marcusquinn/aidevops/compare/v2.16.0...v2.17.0
[2.16.0]: https://github.com/marcusquinn/aidevops/compare/v2.15.0...v2.16.0
[2.15.0]: https://github.com/marcusquinn/aidevops/compare/v2.14.0...v2.15.0
[2.14.0]: https://github.com/marcusquinn/aidevops/compare/v2.13.0...v2.14.0
[2.13.0]: https://github.com/marcusquinn/aidevops/compare/v2.12.0...v2.13.0
[2.12.0]: https://github.com/marcusquinn/aidevops/compare/v2.11.0...v2.12.0
[2.11.0]: https://github.com/marcusquinn/aidevops/compare/v2.10.0...v2.11.0
[2.10.0]: https://github.com/marcusquinn/aidevops/compare/v2.9.0...v2.10.0
[2.9.0]: https://github.com/marcusquinn/aidevops/compare/v2.8.1...v2.9.0
[2.8.1]: https://github.com/marcusquinn/aidevops/compare/v2.8.0...v2.8.1
[2.8.0]: https://github.com/marcusquinn/aidevops/compare/v2.7.4...v2.8.0
[2.7.4]: https://github.com/marcusquinn/aidevops/compare/v2.7.3...v2.7.4
[2.7.3]: https://github.com/marcusquinn/aidevops/compare/v2.7.2...v2.7.3
[2.7.2]: https://github.com/marcusquinn/aidevops/compare/v2.7.1...v2.7.2
[2.7.1]: https://github.com/marcusquinn/aidevops/compare/v2.7.0...v2.7.1
[2.7.0]: https://github.com/marcusquinn/aidevops/compare/v2.6.0...v2.7.0
[2.6.0]: https://github.com/marcusquinn/aidevops/compare/v2.5.3...v2.6.0
[2.5.3]: https://github.com/marcusquinn/aidevops/compare/v2.2.0...v2.5.3
[2.2.0]: https://github.com/marcusquinn/aidevops/compare/v2.0.0...v2.2.0
[2.0.0]: https://github.com/marcusquinn/aidevops/compare/v1.9.1...v2.0.0
[1.9.1]: https://github.com/marcusquinn/aidevops/compare/v1.9.0...v1.9.1
[1.9.0]: https://github.com/marcusquinn/aidevops/compare/v1.8.0...v1.9.0
[1.8.0]: https://github.com/marcusquinn/aidevops/compare/v1.7.2...v1.8.0
[1.7.2]: https://github.com/marcusquinn/aidevops/compare/v1.7.0...v1.7.2
[1.7.0]: https://github.com/marcusquinn/aidevops/compare/v1.6.0...v1.7.0
[1.6.0]: https://github.com/marcusquinn/aidevops/compare/v1.5.0...v1.6.0
[1.5.0]: https://github.com/marcusquinn/aidevops/compare/v1.0.0...v1.5.0
[1.0.0]: https://github.com/marcusquinn/aidevops/releases/tag/v1.0.0
