| v2.294.1 | ## Changelog ### ๐ Bug Fixes * e88a68c171901e525bae3d65e806d245c7173552: fix(dashboard): hydrated queue rows lose project + timestamps ((no project) group); split finished slot into run-time / time-ago columns (#5848) (@alekspetrov) ### ๐ Documentation * e71ae5b0821e8a6ecc9e21f801f9eef194ab57ca: docs(config): daily_brief block with weekly_day in pilot.example.yaml; pilot brief --weekly uses the scheduled window and stores the payload (follow-up to #5822) (#5847) (@alekspetrov) | High | 10/24/2026 |
| v2.294.0 | ## Changelog ### ๐ Features * 0e115d5deced8bc47029c49af5ec18848daaac75: feat(autopilot): revive a size-guard-parked PR when CI goes green on the same head SHA (#5825) (@alekspetrov) * 6e53962ae335501e4f23f12828978aea7ff8b25c: feat(briefs): add timezone to the structured brief payload before the console binds to schema 1 (follow-up to #5799) (#5834) (@alekspetrov) * b8fa43099badcefcbf2b57ee6f8c6c798e13399b: feat(briefs): weekly brief on Monday with proof numbers โ tickets shipped, median time to | High | 10/23/2026 |
| v2.293.0 | ## Changelog ### ๐ Features * d814c2381d90af25a47f504aa5191f73b6a4d7a5: feat(briefs): one brief object with console and email payloads; receipts digest folds in; cost lines only on own-key (#5799) (@alekspetrov) * 4666917db7a3e72b213a5aa460a92b9bb41cad68: feat(scripts): nav-dispatch-legs probe: lines pin a leg's premise on origin/main; docs: 10-22 failure research โ Postgres memory corrected, mem-268..273, SOP Rule 3d; fixes filed console#428, pilot#5800/#5801/#5802 ( <>) * 7e7eae2acee977a56ff5 | High | 10/22/2026 |
| v2.290.0 | ## Changelog ### ๐ Features * b0646f38590a415f5615cb41e4b6cac454a03762: feat(autopilot): sweep orphaned `pilot/*` remote branches that no tracked PR will ever delete (#5775) (@alekspetrov) * 276ee1431ccbafd086637d2c93e99d6ab603b03f: feat(autopilot): wire the PR lifecycle notifier behind an opt-in key (#5766) (@alekspetrov) ### ๐ Bug Fixes * 5813530536717984865ab079ee70de7363730476: fix(approval): Telegram approval asks must go to the configured chat first, like Slack (GH-4808) (#5768) (@aleksp | High | 10/20/2026 |
| v2.288.1 | ## Changelog ### ๐ Bug Fixes * 488c8a9c85be3a44de1cd84235109c661aaede8b: fix(autopilot): a self-closed PR hand-off must mark the original task superseded and the fix issue must close it, so the dispatcher never re-picks the original into the fix run's branch (#5743) (@alekspetrov) * ffe957bca4ba365c0b666f469d5b6e5ba41c7a6f: fix(ci): resolve CI failure from PR #5733 (#5737) (@alekspetrov) * f59732d524b63d9992b9cae0bfc65b7d7eb3373c: fix(executor): Navigator auto-init and bootstrap must honour a p | High | 10/17/2026 |
| v2.288.0 | ## Changelog ### ๐ Features * 15a521345c19be3e72b26ee30ccdf49f336067a5: feat(executor): adopt a green auto-preserved commit as the deliverable โ run the gates on it and open the PR instead of failing the task (GH-5701 class) (#5713) (@alekspetrov) ### ๐ Bug Fixes * c06e89508c5d5d7f6fc1fbe19b6df63a44324f47: fix(executor): Navigator copy-back must honour navigator:false and must not trip the root-clean finish tripwire with its own untracked .agent files (#5721) (@alekspetrov) * 8ffdd66e9f6f29966 | High | 10/16/2026 |
| v2.287.0 | ## Changelog ### ๐ Features * f44f387e66e55b23ce253a185034796ab49966c6: feat(linear): native workflow-state write-back on start, PR and merge (#5702) (@alekspetrov) ### ๐ Bug Fixes * 811a7102c2f2895ae44f265e777b98c5cc75346f: fix(linear): drive the Linear comment and state move from the classified execution outcome, not Success/PRURL (no_op posts a failure, needs_human posts 'nothing waiting') (#5706) (@alekspetrov) * 32a642b68a2685482bed0512daa18a870afcb16e: fix(linear): state write-back must | High | 10/15/2026 |
| v2.286.0 | ## Changelog ### ๐ Features * d2a63763c2773f9661b4aff9af3c4b8be1304f92: feat(gateway): extend GET /api/v1/executions/usage with a kind field and chat_turn rows on top of GH-5676, keeping the chat_turns table, recording and metrics from PR #5682 (#5693) (@alekspetrov) ### ๐ Bug Fixes * c0a17e344943008fb9e40158fc0dac06641817e9: fix(executor): base worktrees on the project's default branch, not a hardcoded origin/main (#5620) (@sandeepraju) * fe28fc661be1511b751497c7e2f03cb49000a54a: fix(executor | High | 10/15/2026 |
| v2.284.0 | ## Changelog ### ๐ Features * 1de7bc8d68d7c90200153b0b9cd1aef7fcf772ec: feat(autopilot): alert when the epic-parent reconciler pass goes stale, like tickStaleness does for the PR loop (#5667) (@alekspetrov) ### ๐ Bug Fixes * 50f29c74559a676ad6df6bdb4e0947f24a6c293f: fix(autopilot): a merged-but-untagged release-backfill row backs off but never counts toward abandonment (#5674) (@alekspetrov) * 3a2cde3e5201b62c1a6a77f0a0e247ace7736240: fix(autopilot): keep the release-backfill tag list across p | High | 10/14/2026 |
| v2.282.0 | ## Changelog ### ๐ Features * 133af510609073966a9866eccec9cde559043b1c: feat(upgrade): headless self-upgrade so hosted tenants track the release train (#5654) (@alekspetrov) * 73dab12228bd823c885e732f6275f5f8cd7ceac2: feat(upgrade): verify release asset sha256 against checksums.txt before install (#5655) (@alekspetrov) ### ๐ Bug Fixes * 38b993a4e2bd547026cda749efdab0616932acad: fix(comms): chat-filed issues must not cite untracked paths (base-presence hold) (#5653) (@alekspetrov) ### ๐ Docume | High | 10/13/2026 |
| v2.280.0 | ## Changelog ### ๐ Features * 7087bac38f63aa177329c4fde8e8ad44af85cf74: feat(chat): wire a per-project IssueCreator into the web chat handler in both daemon modes (#5639) (@alekspetrov) * 0ece5d63f8dc6d1a52babf2c5738ba0b037b6dbe: feat(comms): route web chat turns through ExecuteChatTurn with progress events and a confirmed pilot-issue card (#5637) (@alekspetrov) ### ๐ Documentation * b0a828f6c92014ebc25bd3a4c209f6ec68911b8f: docs(memory): pitfall โ a spec that reroutes a platform must name the | High | 10/11/2026 |
| v2.279.0 | ## Changelog ### ๐ Features * c818cfa212b597e5a353137f64e9e1da4b1918e1: feat(executor): read-only chat-turn execution mode with session resume, progress events and a Navigator chat prompt (#5633) (@alekspetrov) | High | 10/10/2026 |
| v2.278.0 | ## Changelog ### ๐ Features * 47c307f33ff95d7cfdadd8a76963079de51bcb1a: feat(executor): acceptance-evidence gate โ annotate freeform mutation pins in the prompt so the executor runs them, and build vitest/pytest/cargo mutation commands instead of go-only (#5626) (@alekspetrov) ### ๐ Bug Fixes * 9d255bc876286dc94fd2c38d4c5dd60130681f0f: fix(executor): mutation runner reports every non-Go pin as 'no test failed' โ extractFailingTests only knows Go's '--- FAIL:' lines (#5628) (@alekspetrov) ### ๏ฟฝ๏ฟฝ๏ฟฝ | High | 10/9/2026 |
| v2.277.6 | ## Changelog ### ๐ Bug Fixes * 7fd23c63845a61c090384b69dacb7d215146be78: fix(quality): fall back from make to the native toolchain when make is missing (exit 127), and surface the gate command/exit code in the failure comment (#5623) (@alekspetrov) ### ๐ Documentation * a3e02cf9ee313ea252903630e41d5a3cfbdc7eab: docs(graph): TASK-512 node path + concepts ( <>) * d99f514a303db78fd15affd1e8d55d1e2d76995c: docs(nav): README current state 10-06โ10-07 (TASK-512 shipped+live, TASK-513 opened); task r | High | 10/7/2026 |
| v2.277.5 | ## Changelog ### ๐ Bug Fixes * 83b6c71c342ec5d5ac336b274ca3e0c1598175a4: fix(executor): acceptance-evidence paste-output bullets must run only allowlisted command spans, not every inline code span (#5618) (@alekspetrov) ### ๐ Documentation * 4ae27df8324dcb78bfd285b2d5a81bded7cd4397: docs(nav): README current state 10-05 (v2.277.4, leg 1 shipped, leg 4 live), mem-214 evidence-gate span pitfall, mem-215 AWS pager learning ( <>) | High | 10/6/2026 |
| v2.277.4 | ## Changelog ### ๐ Bug Fixes * 03a2febaa4fe8b76d62ef29abeb77f4f73e9b2eb: fix(autopilot): approval message must carry every gate reason, CancelPending must not record a system timeout decision, live-smoke hold comment dedupe must key on the prefix (#5607) (@alekspetrov) * 518ca6403733e2440adcf371229247ac5bbcb2b4: fix(executor): base-presence local probe โ ctx cancel must not read as absent, cache the fetch per project, unparseable origin must not fall back to gh, state the Linear release limitat | High | 10/5/2026 |
| v2.277.3 | ## Changelog ### ๐ Bug Fixes * 48a24a696394c82170da75d29d9cb2dbdaf73e30: fix(autopilot): live-smoke Not-verified hold must gate at handleCIPassed and release on approval, not fail an approved PR in handleMerging (#5598) (@alekspetrov) * ee110d62ce19e1d71485eb6f7493d56afee427c1: fix(autopilot): live-smoke hold must fail closed on approval timeout, reset stale decisions on re-escalation, and name its reason in the approval request (#5600) (@alekspetrov) * bd367c01619a3a873ba39de8cbd064f17f45856b: | High | 10/3/2026 |
| v2.277.2 | ## Changelog ### ๐ Bug Fixes * c2bc83a0074a5cf6efb976cccadb3bf4cb8d7058: fix(executor): epic parent PR still uses `gh pr create` โ route it through resolvePRCreator so epics on a GitLab-hosted project open an MR (#5590) (@alekspetrov) * 29ec23601c0fa2c554f78464e2dce04cca347818: fix(executor): evidence block must keep the tail status lines and must not merge a key-gated live-smoke bullet silently as Not verified (#5595) (@alekspetrov) * a45ea6c1d20716c57815946b0a779ba63d489c37: fix(linear): a po | High | 10/2/2026 |
| v2.277.1 | ## Changelog ### ๐ Features * 73f6ce963af6a6269d50a169e28c1210af26d583: feat(forge): per-project `gitlab:` block โ register a project-keyed MR creator at startup and resolve the PR creator by project, so Linear-sourced tasks on a GitLab-hosted project open GitLab MRs (#5585) (@alekspetrov) * ae10345ba0618c5ba6154ad90dfd9fb64ca26a45: feat(linear): tier 3 of the polling resolver โ honour the workspace projects mapping when it names exactly one Pilot project (#5579) (@alekspetrov) ### ๐ Bug Fixes | High | 10/2/2026 |
| v2.276.12 | ## Changelog ### ๐ Features * c06f47408fa20cb6ae257a14af2b45c92688c12e: feat(executor): Jev classifier for backticked path spans in the base-presence gate, shadow mode, regex floor kept (#5546) (@alekspetrov) * 870fe7fd5d3f64d7ec5cbb4d1b73c1843777b4da: feat(executor): per-item debug line for both Jev shadow classifiers so low_confidence items can be labelled (#5549) (@alekspetrov) ### ๐ Bug Fixes * 2b75e879ddc1d5f7838cd0c40ef9a1d9cb90b2ea: fix(autopilot): per-stage deadline and tick-liveness a | High | 10/1/2026 |
| v2.276.7 | ## Changelog ### ๐ Bug Fixes * 22780ab6ba4f8ad8281b65a2253cf91f015ac179: fix(executor): acceptance-evidence gate silently skips "Evidence in the PR body" items (#5480) (@alekspetrov) * 652df80fc152e16f49a34afbaa9b2d41d31fe25f: fix(executor): populate lines_added/lines_removed on the executions row from git diff --numstat at the metrics-fill seam (#5478) (@alekspetrov) ### ๐ Documentation * 9fc24d1c95ff0f5c179420533330590b3b07b63b: docs(bench): Sonnet 5 vs 5.5 like-for-like table extended with | High | 9/29/2026 |
| v2.276.6 | ## Changelog ### ๐ Features * e8dc52188cbf1bbdd497aff464266b100a9666e0: feat(executor): acceptance-evidence gate lists files named in the issue's Change section that the PR did not touch under Not verified (#5467) (@alekspetrov) ### ๐ Bug Fixes * d78b655752c77e0d5c34deec56c0393226e38140: fix(autopilot): a failed check-run that is not in ci_checks.required must block the merge; the [test, lint] allowlist silently ignores every other check (#5470) (@alekspetrov) * c47274de7cfc36595a0a01c7caaf7fc | High | 9/28/2026 |
| v2.276.5 | ## Changelog ### ๐ Bug Fixes * 486b6b211e17f470bb3d17f7301c81e8c8c6c366: fix(executor): hook cleanup leaves a dangling pilot-bash-guard entry and an untracked .claude/settings.json in root-mode execution (#5463) (@alekspetrov) | High | 9/26/2026 |
| v2.276.4 | ## Changelog ### ๐ Bug Fixes * 2ece339d0e8c82fde690f196e7234e7236c290f2: fix(executor): CreatePR must extract the URL from gh output instead of returning combined stdout+stderr verbatim (#5461) (@alekspetrov) ### ๐ Documentation * 38f533b4ec2f5670b6df1041669606d70f4d69b7: docs(nav): Current State 09-23โ24 (mock-UI false success fixed, real console run, first provision blocked+unblocked on reconciler IAM); TASK-495/499 updated ( <>) * 256722c969a3dfbc71baa3f5be90d152d7d94796: docs(task): TASK-4 | High | 9/25/2026 |
| v2.276.3 | ## Changelog ### ๐ Bug Fixes * 623a25239eb13aeb50d3d637e97f85fc25be278f: fix(executor): a failed pre-branch fetch must not silently base the worktree on a stale origin/main (use FETCH_HEAD, retry, else fail closed) (#5457) (@alekspetrov) ### ๐ Documentation * 85e6833601f463f282100aa780540e9d2b57a663: docs(task): TASK-495 โ first real console run blocked: console-api task role lacks ssm:PutParameter on /tenants/* (asked Nelya) ( <>) * e9a87d2ebdc308a4695768b5250a0a684ab474c6: docs(task): TASK-5 | High | 9/24/2026 |
| v2.276.2 | ## Changelog ### ๐ Bug Fixes * 5876fed62dd3d0a321796f0a5dc57b5a14570dda: fix(autopilot): ci-fix excerpt drops the failing package output when it lands in the step's final second (floored completed_at) (#5455) (@alekspetrov) ### ๐ Documentation * 678ba040d2da9839aa30640ea6305301f9aeb189: docs(nav): Current State 09-22โ23 (console usable e2e, AMI refreshed, estate closed, reconciler blocked); 5 new memories; TASK-499 row ( <>) * d506b896377ab50f2cbe369033e6690f6071d628: docs(nav): L6 card paymen | High | 9/23/2026 |
| v2.276.1 | ## Changelog ### ๐ Bug Fixes * 0396df0ab67fc0ba1cb7c29af20b49c6584aa78d: fix(executor): escalate auto-preserved dirty worktrees instead of re-picking (#5446) (@alekspetrov) ### ๐ Documentation * ba041c3b09d9cec0bce8c743017c6f65b2a77f8c: docs(nav): #306 merged+reviewed; #308 5x failed โ preserved 0e704c0 verified โ continuation console#310; pitfall memory on auto-preserved WIP recovery ( <>) * 824a57b7ddc7ad3e12f94c32a3a2ed818217f838: docs(nav): L5 part 1 landed as console PR#312 (reviewed); PR | High | 9/14/2026 |
| v2.276.0 | ## Changelog ### ๐ Features * 806991266f5b321e44387efdfa66b83271a24b96: feat(executor): acceptance-evidence gate revision, part 1 โ allowlist, redaction, confinement, timeout (GH-5437) (#5439) (@alekspetrov) * d070f1068d9e439514d34dac6ba27e2932eefc8d: feat(executor): classify every mutation phrasing, wiring pin for PR-body evidence hook (GH-5438) (#5440) (@alekspetrov) ### ๐ Bug Fixes * 30a0d86c2080b1e3a9b0202dfbd0bbe87cd4a35f: fix(executor): acceptance-evidence runner โ validate commands as a | High | 9/13/2026 |
| v2.275.0 | ## Changelog ### ๐ Features * 327a5b4641b71a0ded52cab99508d48df3151ec5: feat(gateway): active-only filter on the dashboard queue endpoint so consumers can see running work older than the 50 newest rows (#5428) (@alekspetrov) ### ๐ Bug Fixes * e4b1893a89422b9f731e677aba7fb6fef0dd4cfd: fix(autopilot): OnPRCreated branch/issue guard skips fix-issue PRs on a borrowed origin branch (PR #5412 follow-up) (#5416) (@alekspetrov) * 4e68957dc6bc010e1eb07605019c67691d0b0ea3: fix(autopilot): borrowed-branc | High | 9/10/2026 |
| v2.271.1 | ## Changelog ### ๐ Bug Fixes * ca19ba9b72d32471b4ead0b930e9b0ce63434508: fix(autopilot): healthy continuation hand-offs are recorded as pipeline failures โ StageFailed/TerminalLabel conflation (GH-5227 leg 2) (#5248) (@alekspetrov) * 1283d21f547d05627c7ab60962c321130dfbfc29: fix(autopilot): open pilot-superseded hand-off sources are re-dispatched unbounded โ count superseded as terminal (PR#5248 remediation) (#5250) (@alekspetrov) * 0953a94ebb0564cd144e546d01d6db9bd568a8c1: fix(autopilot): owne | High | 8/28/2026 |
| v2.259.3 | ## Changelog ### ๐ Bug Fixes * 05df58d2c1bb9897bcc6d1f5b33207c5e8c5dfe1: fix(autopilot): write terminal merged event on external-merge finalize (GH-4869) (#4870) (@alekspetrov) ### ๐ Documentation * b48ea7785995d5156ac31e7a7b5c3b631ec2f324: docs(agent): PR#4867 post-merge review APPROVE recorded (TASK-477) โ D1 warn-unasserted + D2 latent registration gap noted; re-drill unblocked (@alekspetrov) * 1cbd244e3f051e89e6947fe202cc947135ccf6c4: docs(agent): TASK-441 kill-drill re-run PASS โ dead-man | High | 8/15/2026 |
| v2.252.0 | ## Changelog ### ๐ Features * 35856e00b68a0b0571a4f8c565f1bcd4b1742565: feat(executor): add child-ledger gate check function (#4666) (@alekspetrov) ### ๐ Bug Fixes * b4bd5f2f3335fc123d1de9f6b143ca78b03ff788: fix(autopilot): close conflicting PR whose source issue is closed instead of escalating (GH-4657) (#4658) (@alekspetrov) * a91de084b6a250e71f7e45ba0f7b011d909db369: fix(executor): heartbeat monitor SIGKILLs healthy runs during long local tool executions โ make test >5m โ exit 137 infra chu | High | 8/3/2026 |
| v2.243.0 | ## Changelog ### ๐ Features * b3216f27ad70ca3fffab3f739da5de28c3cb43b9: feat(github): per-project Projects V2 board config (GH-4472) (#4473) (@alekspetrov) * 5a470b7fb5f3b7bd711d743500e362417c22e256: feat: nightly ledger backup to S3 โ script + systemd units + restore SOP (#4466) (@alekspetrov) ### ๐ Bug Fixes * 8a34490461bf437df9d270a0d5eda5a9867181b9: fix(autopilot): per-project CI-checks override, fixing pointer#108 forever-pending CI (GH-4478) (#4479) (@alekspetrov) * 4e7d9219fb9bc9d9883c9 | High | 7/20/2026 |
| v2.236.0 | ## Changelog ### ๐ Features * 6ad1ac0f5390a65cc071ccd0c3a9d19189b2514f: feat(cmd): fan out SDK poller per repo โ default + all projects[] (M7 4d.2b/c) (#4115) (@alekspetrov) * d6ab3c6bb3ce15d4db841d501009363e80f7898c: feat(metrics): hydrate PR-family counters from execution_events at daemon start (@alekspetrov) * 955f83150d71148647cd74704df0c8ba3c990b7f: feat(upgrade): cross-process drain signal + poll handshake (GH-4106) (@alekspetrov) ### ๐ Bug Fixes * 0387c0714bb3dde4297511bbbc328814b7a56ee | High | 7/8/2026 |
| v2.201.0 | ## Changelog ### ๐ Features * d503f3a8f67719e1f176397d6bd4d43698612c33: feat(api): add /ping health check endpoint (@alekspetrov) | High | 6/26/2026 |
| v2.188.0 | ## Changelog ### ๐ Features * 3c61ab596936185afd11f3b39671c481844b95e7: feat(cli): interactive pilot project add wizard with gh CLI integration (GH-3017) (#3612) (@alekspetrov) | High | 6/18/2026 |
| v2.182.0 | ## Changelog ### ๐ Features * 3098d553694684864f415da3eb2ed8ba59dd6a96: feat(dashboard): scope TUI dashboard to a single project when -p is set (TASK-284, GH-3513) (@alekspetrov) | High | 6/10/2026 |
| v2.166.12 | ## Changelog ### ๐ Documentation * bf02df534a4aa53677fc35276781127ac0e8e9e4: docs(nav): close + archive TASK-358 (dashboard failed-count classification, v2.166.10โ11); +2 memories; refresh Current State (@alekspetrov) ### Other * 67dbfbd92e9ece66dc6430b5c7e234c081b1f8b0: perf(docs): cache + compression + security headers (@alekspetrov) | High | 6/3/2026 |
| v2.155.2 | ## Changelog ### ๐ Bug Fixes * 5384ddc21705e06e13063004c2e274a84d1a0454: fix(executor): ghost-SHA guard + IsTaskShipped hardening (TASK-300) (@alekspetrov) | High | 5/26/2026 |
| v2.146.7 | ## P0 bugfix: `syncMainBranch` no longer silently destroys local commits Replaces destructive `git reset --hard origin/main` with `git merge --ff-only origin/<currentBranch>` in the post-task main-branch sync. ### What was broken `syncMainBranch()` ran `git reset --hard origin/main` after every task. When GitHub push-propagation lagged behind the immediately-following fetch+reset (a race in the remote, **not** push failure), Pilot's just-committed work was silently rewound and only reflog-rec | High | 5/20/2026 |
| v2.146.6 | ## Changelog ### ๐ Bug Fixes * a107194bdac0b7b6e56c73e92f8f5e8454353983: fix(observability): repair Grafana mount shadow + Approval Persist Misses panel coloring (@alekspetrov) | High | 5/11/2026 |
| v2.145.0 | ## Changelog ### ๐ Features * 856d12ce0b0d58b72488df802e531e4f538de13b: feat(deploy): add token/cost/executions panels to Pilot Grafana dashboard (@alekspetrov) | High | 5/8/2026 |
| v2.107.0 | ## Changelog ### ๐ Features * 2eb2a15e6870218c66b3dcad7b94e7baf0659e34: feat(github,memory): add SearchPRsForIssue and InvalidateCompletion primitives (@alekspetrov) | High | 5/2/2026 |
| v2.101.0 | ## Changelog ### ๐ Features * 216b9f2bc8ad3455c5e3ed666b1e46986bfa7de2: feat(memory): wire usage_events table from dispatcher (@alekspetrov) | High | 4/27/2026 |
| v2.99.3 | ## Changelog ### ๐ Bug Fixes * b992a653206475751b2b9ac14d1eb699063d26fa: fix(orchestrator): preserve priority from non-Linear adapters in processTask (#2387) (@alekspetrov) ### ๐ Documentation * 0d1f5638c29288313351855d953164dac5690365: docs(guides): add custom model providers guide (#2381) (@alekspetrov) * 51361214a34d3c42dd77103c2efbb14e31856ae6: docs(nav): bring .agent/DEVELOPMENT-README.md current to v2.99.1 (@alekspetrov) | High | 4/23/2026 |
| v2.99.1 | ## Changelog ### ๐ Bug Fixes * b4f1ad57079989eaf5dccaa3ddf2472b9859c07f: fix(executor): self-review --resume fallback + sanitize marker filename path separators (@alekspetrov) ### โป๏ธ Refactoring * 0b4a6c828ae1df5fa244fa1ef0b0e8eb09d0e689: refactor(autopilot): remove dead prod-X.Y.Z tag auto-push (@alekspetrov) | High | 4/18/2026 |
| v2.99.0 | ## Changelog ### ๐ Features * e5b96bedc63434b7f17218d8c3bdcbf4e556798c: feat(executor): inject api_base_url/default_model/api_auth_token into Claude Code subprocess env (GH-2287 follow-up) (@alekspetrov) | High | 4/18/2026 |
| v2.98.0 | ## Changelog ### ๐ Features * 02d258a566c381165294629580284ddb62b1c82f: feat(release): auto-push prod-X.Y.Z tag alongside vX.Y.Z to trigger docs deploy (@alekspetrov) | High | 4/18/2026 |
| v2.97.0 | ## Changelog ### ๐ Features * 303a7b31afd3ae51e97cc1ee96e2d42123fd3bc1: feat(executor): honor project.default_branch for base branch and PR target (GitLab and GitHub) (@alekspetrov) | High | 4/18/2026 |
| v2.96.0 | ## Changelog ### ๐ Features * 3207559850a2c365bfc727642c7ec727b9806906: feat(autopilot): after 2nd conventional-commit rejection, post suggested rewrite + stop retrying (@alekspetrov) ### ๐ Bug Fixes * 33d1cb9eb841173b5b59853ddcfb0b3f7e46df4f: fix: migrate alekspetrov/anthropics refs to qf-studio (GH-2175) (@alekspetrov) | High | 4/18/2026 |
| v2.95.13 | ## Changelog ### ๐ Bug Fixes * 00a965e87ccc453607b127f35f56a9c59ca754b2: fix(doctor): warn when projects configured but no issue adapter enabled; fail start --github loudly (@alekspetrov) | High | 4/18/2026 |
| v2.95.12 | ## Changelog ### Other * af7306ad7fd864888edd31e4794b2abb634d9deb: fix stress test timeout + re-land GH-2341 poller fix (@alekspetrov) | High | 4/18/2026 |
| v2.95.11 | ## Changelog ### ๐ Bug Fixes * 3b9bb9296dabee9194a1ecc1b4cd227506fa9213: fix(dashboard): queue view includes closed issues with stale pilot-in-progress label (@alekspetrov) | High | 4/17/2026 |
| v2.95.10 | ## Changelog ### ๐ Bug Fixes * 64ad86c6a49dfb644ddea866b26290ca71c6946f: fix(autopilot): ScanExistingPRs clobbers RestoreState on startup (@alekspetrov) | High | 4/17/2026 |
| v2.95.9 | ## Changelog ### ๐ Bug Fixes * 823a5169ead7235b17586b20c95296448d3f5aa9: fix(autopilot): idempotent merge-completion notification (dedup on re-entry) (@alekspetrov) * 30d5fb879247ab134c5dd113a274fafdb1c4beb0: fix(autopilot): skip pilot-retry-ready when pilot-done already on issue (@alekspetrov) | High | 4/17/2026 |
| v2.95.8 | ## Changelog ### ๐ Bug Fixes * f6f6f963f4c659cf12253b0cdadb5a4fc8290c66: fix(dispatcher): add hasLiveWorker guard to running-task reaper (mirror GH-2331) (@alekspetrov) * 745bac5842e4e7e5b22b8f4f4d3e515c9d2aa241: fix(epic): validate sub-issue titles โ reject LLM analysis-style titles in decomposition (@alekspetrov) * 5a02f79727a7ee793e692403c9db6d17e269494d: fix(executor): Claude Code subprocess OOM-killed on large Navigator context tasks (GH-2324) (@alekspetrov) * b6054b9698ee3b995a77e33463430 | High | 4/17/2026 |
| v2.95.7 | ## Changelog ### ๐ Bug Fixes * aa62b02caf3478d13dcd8d40c503678883137db0: fix(executor): signal executor mode to Claude + classify no-diff (GH-2328) (@alekspetrov) | High | 4/17/2026 |
| v2.95.6 | ## Changelog ### ๐ Bug Fixes * bbc33cb662e1fd10829e151ba056718c2b968cf4: fix(dashboard): gate stdout prints on dashboard mode (GH-2333) (@alekspetrov) ### Other * e5df708dea9e8dcdb44ec4e7508a2ad9bbe0ac76: Fix dashboard startup log and polling-mode warning (`cmd/pilot/main.go`) (@alekspetrov) | High | 4/17/2026 |
| v2.95.5 | ## Changelog ### ๐ Bug Fixes * 84c4ccb14eea3861233df5fa8d16e596bb7424c0: fix(dispatcher): don't reap queued tasks when live worker exists (GH-2331) (#2331) (@alekspetrov) * 96ff63b24a88ccba2fc1820489cb7288c94ecb1c: fix(executor): persist backend stderr + final message on failure (GH-2328) (#2330) (@alekspetrov) ### ๐ Documentation * 7180185746652173871e0f2ecf6532b94850d690: docs(claude): scope Navigator-only rules to interactive sessions (#2327) (@alekspetrov) | High | 4/17/2026 |
| v2.95.4 | ## Changelog ### ๐ Bug Fixes * 13e815368a5ebcc06114243d6b3f6e3aa9b90432: fix(dashboard): adapter poller tasks invisible in gateway mode with --dashboard (GH-2291) (#2292) (@efesler) * 811e3091e77adbb30636895e540115e65b0eb543: fix(dispatcher): persist Task.Labels across queue round-trip (GH-2326) (#2326) (@alekspetrov) * 89df7fc75f6ecc1af40fb92ea91d0297ed6492ef: fix(gitlab): use string type for MergeRequest.detailed_merge_status field (#2295) (@efesler) * e12cf14940750bb7094fd05cfe280b15d7ea2c7a | High | 4/17/2026 |
| v2.95.3 | ## Changelog ### Other * 70c14dc580adc3e1242facb3dace5b63608d4b15: Dispatcher `recoverStaleTasks()` (line 188) already marks orphans as `"failed"`, not `"completed"`. The status appears correct in the current code. (@alekspetrov) | High | 4/15/2026 |
| v2.95.2 | ## Changelog ### ๐ Bug Fixes * fd1db6e16e83b6869224ab08da589b9dd1c6bfde: GH-2312: fix(autopilot): strip GH-XXXX prefix from squash commit title for conventional commit detection (@alekspetrov) | High | 4/15/2026 |
| v2.95.1 | ## Changelog ### Other * f1a956de2bb4c826466f1123cc30a2a5bce41caf: GH-2304: Add GitHub config validation to `pilot doctor` (`internal/health/health.go` +... (@alekspetrov) * 97b022b71a32b7f520f6548aa725d5042b952c9a: GH-2306: Add GitHub adapter config validation to `pilot doctor` (@alekspetrov) * aa7629f225f38c4c4bfbf0ebc51dae81b33025fc: GH-2307: Fix dashboard startup log and add zero-poller warning (@alekspetrov) | High | 4/14/2026 |
| v2.94.4 | ## Changelog ### ๐ Bug Fixes * d7d19ea70c5c9c82ae37ea429a534d2153d90c7f: GH-2301: fix(poller): clear stale pilot-in-progress on startup to avoid restart requirement (@alekspetrov) | Medium | 4/14/2026 |
| v2.94.3 | ## Changelog ### ๐ Bug Fixes * d5c6fb3c0369ba148eb0467417dc6640dc5e813e: GH-2297: fix(autopilot): post success comment on merge close โ stale failure comments (@alekspetrov) | Medium | 4/14/2026 |
| v2.95.0 | ## Changelog ### ๐ Features * 934f3c196f678744b2a9cfe141eecfc46be74175: GH-2298: feat(github): add issue templates for bug reports, features, and pilot tasks (@alekspetrov) | Medium | 4/14/2026 |
| v2.94.2 | ## Changelog ### ๐ Bug Fixes * 0e9db39650a35787a0c9efea692fa3218ce08025: GH-2286: fix: all bare NewRunner() callsites ignore executor config (@alekspetrov) | Medium | 4/14/2026 |
| v2.94.1 | ## Changelog ### ๐ Features * 555ffb2a44ecb676e0b4fa35a2040b4bd0edc42f: GH-2287: feat(executor): non-Anthropic model provider support โ default_model + api_base_url (TASK-24) (@alekspetrov) | Medium | 4/14/2026 |
| v2.94.0 | ## Changelog ### ๐ Features * 2f5620cc1a539e98e0a261bdfc68249b4834612a: feat(executor): non-Anthropic model provider support โ default_model + api_base_url (GH-2287) (@alekspetrov) ### ๐ Bug Fixes * 0c19431db94ec61e423dc9fbfcbd4cafe02c7acd: fix(autopilot): update execution status to completed when PR is merged externally (GH-2279) (#2281) (@alekspetrov) * 63e6235d8856b9d1c54f5aa083e46e8e3d635af6: fix(executor): complete non-Anthropic provider support โ add missing classifier methods (@alekspet | High | 4/12/2026 |
| v2.93.2 | ## Changelog ### ๐ Features * 85d812245b93ea2a7c993f8f6b64242e6fd0929e: feat(github): auto-retry issues with pilot-retry-ready label (GH-2276) (#2277) (@alekspetrov) ### ๐ Bug Fixes * 12e7b3a3a6c512a4ce4e1ea0730beddec0c80b01: GH-2280: fix(dashboard): sparkline graphs wiped after 5s DB refresh (@alekspetrov) | High | 4/10/2026 |
| v2.93.1 | ## Changelog ### ๐ Bug Fixes * b33ea39d2f79fa1a17f987a5363c386a45d4080c: GH-2269: fix(bench/aws): stale task manifest โ always regenerate before run (@alekspetrov) | Medium | 4/10/2026 |
| v2.93.0 | ## Changelog ### ๐ Bug Fixes * c46d4e9c2019396f4566478037028e25eb97e38f: GH-2267: fix(bench/aws): orchestrator hangs forever, no signal handling, crash loses results (@alekspetrov) | Medium | 4/10/2026 |
| v2.92.1 | ## Changelog ### ๐ Bug Fixes * 4896b8ff7f2b33e5ead2d122533901f340fe7c20: GH-2260: fix(install): replace fragile grep+sed version parsing with jq (@alekspetrov) * dfdffa7d65122265d0b5140405d65eafeebce290: fix(autopilot): scan for externally-merged PRs periodically, not just on startup (GH-2251) (#2253) (@alekspetrov) * de6df8681bffd7ffcb61036adad08a08c93dee27: fix(poller): skip retry of closed issues with stale pilot-failed label (GH-2252) (#2255) (@alekspetrov) ### Other * a7bfefa1864aef8b58cab | Medium | 4/10/2026 |
| v2.92.0 | ## Changelog ### ๐ Bug Fixes * bc90a923dbb66b7d20fea34fe2f4c797101218a5: GH-2256: fix(executor): add dryRun guard to Runner gh CLI methods + idempotency check (@alekspetrov) | Medium | 4/10/2026 |
| v2.91.0 | ## Changelog ### ๐ Features * 7cc86fea9cd1806e9bf29535e0d0826cf2483455: feat(bench): add self-verification harness to PilotAgent (#2238) (#2244) (@alekspetrov) ### ๐ Bug Fixes * 5a7c70bf376669566634f68c6aa91994420f66a5: fix(autopilot): use PR source repo for release operations on cross-repo PRs (GH-2243) (#2249) (@alekspetrov) * 3cc191dfa658dfb058b8a6af135374e4030e18f0: fix(dashboard): refresh history and metrics from DB every 5s (GH-2248) (#2250) (@alekspetrov) * 7d73d29ee2f79e41df9752a599fd2 | Medium | 4/10/2026 |
| v2.90.8 | ## Changelog ### Other * ab545453d12c044f461a7145d6a76fc03fd2664c: GH-2237: bench: remove oracle test access from PilotAgent (@alekspetrov) | Medium | 4/10/2026 |
| v2.90.7 | ## Changelog ### ๐ Bug Fixes * 9ff6e82ba955f7bbdc86a8ba58da2ad3fc17dc95: fix(bench): remove oracle test access from PilotAgent (#2239) (@alekspetrov) * 29585eba8988f46efa5c50725f563f060fede588: fix: update broken Discord invite link (#2231) (@alekspetrov) ### Other * d0264719fa778d130dd8538c8b29937fbf452b73: GH-2211: Wire native sub-issue linking into epic decomposition (`internal/executor/`) (@alekspetrov) | Medium | 4/10/2026 |
| v2.90.6 | ## Changelog ### ๐ Bug Fixes * 6d92123fa1adf79e49898b6130c211b4eca8b3e7: GH-2226: fix(executor): resolve stale threshold defaults treating 0 as unset (@alekspetrov) ### Other * cf7c513b9c41b561531a58fee28072ef2360606c: GH-2221: Add `GetStaleQueuedExecutions` to memory store (`internal/memory/`) (@alekspetrov) | High | 4/7/2026 |
| v2.90.5 | ## Changelog ### ๐ Bug Fixes * 71d90ba0a2cb51bc16b61f43e074db2c592db9a6: GH-2176: fix(poller): auto-retry issues stuck with pilot-failed from execution failures (@alekspetrov) | Medium | 4/7/2026 |
| v2.90.4 | ## Changelog ### Other * af8dce3b27c6db6833de3980add4e1c6530c79a1: GH-2212: Replace search-based parent closing with native GraphQL + fallback (`internal... (@alekspetrov) | Medium | 4/7/2026 |
| v2.90.3 | ## Changelog ### Other * 589ef957a916ed0c84e5ff66486bedd922a95711: GH-2212: Replace search-based parent closing with native GraphQL + fallback (`internal/autopilot/`) (@alekspetrov) | Medium | 4/7/2026 |
| v2.90.2 | ## Changelog ### ๐ Bug Fixes * 875bfe50ac12f029fe6b672cd84c8b7f764f98bc: GH-2206: fix(docs): navbar stuck at v2.87.2 โ docs-version-sync workflow trigger broken (GoReleaser GITHUB_TOKEN limitation) (@alekspetrov) | Medium | 4/6/2026 |
| v2.90.1 | ## Changelog ### ๐ Bug Fixes * e54908d84150a8ca20ccbb4c9b00fb66912036e9: GH-2204: fix(alerts): task_stuck floods Slack โ progress never emitted, per-rule cooldown rotates, no orphan cleanup (@alekspetrov) | Medium | 4/6/2026 |
| v2.90.0 | ## Changelog ### Other * 80465794faf1b00efa59fae1642d43ff6fa318d2: GH-2201: Add retry grace period and TaskChecker to GitHub poller (@alekspetrov) | Medium | 4/5/2026 |
| v2.89.4 | ## Changelog ### ๐ Bug Fixes * a4592a7063a7fbb98bc0033872ddffbabafc686d: GH-2198: fix(autopilot): call maybeCloseParentIssue in notifyExternalClose path (@alekspetrov) | Medium | 4/4/2026 |
| v2.89.3 | ## Changelog ### ๐ Bug Fixes * 454a21e19472896e9f47b513aab501226101ec94: GH-2196: fix: update remaining alekspetrov/pilot references to qf-studio in non-Go files (@alekspetrov) * b1e31ed1b522e83e36b9262ca3bf37791c79c412: fix(brew): migrate tap from alekspetrov to qf-studio/homebrew-pilot (@alekspetrov) | Medium | 4/4/2026 |
| v2.89.2 | ## Changelog ### ๐ Features * 090c5db2842e8ba77ab035298126dcc2a08c959d: GH-2188: feat(release): add GoReleaser brews section for Homebrew auto-publish (@alekspetrov) ### ๐ Bug Fixes * ec66ba597b8127a2746f4c08967ed756c08916ea: GH-2192: fix: update llms.txt GitHub URLs from alekspetrov to qf-studio (@alekspetrov) | Medium | 4/4/2026 |
| v2.89.1 | ## Changelog ### ๐ Bug Fixes * c2f55a81ebc0e379f010c01bbb9b98fafb3f6406: GH-2189: fix(docs): correct brew tap and install script repo references (@alekspetrov) ### ๐ Documentation * 47a5a09b7cab1fd732d9231feb4c922e57282861: GH-2183: docs(epic): add merge-wait section to epic-decomposition page (@alekspetrov) ### ๐ง Maintenance * e992858b3afd32b7b4733a3e51d6d15fb275731c: GH-2185: chore: update CLAUDE.md version to v2.89.0 (@alekspetrov) | Medium | 4/4/2026 |
| v2.89.0 | ## Feature - **feat(epic):** Wire merge-wait into production and test paths (GH-2179). `MergeWaiter` closure in `main.go` for both multi-repo and gateway modes, gated on `execution.wait_for_merge` config. Test harness wired with immediate-success callback. Parity test updated (18 checks). ## Changelog ### ๐ Features * 73e1584a: Wire SubIssueMergeWaitFn in main.go and harness.go (GH-2179) (@alekspetrov) | Medium | 4/3/2026 |
| v2.88.0 | ## Feature - **feat(epic):** Add merge-wait between sequential sub-issues (GH-2177). After each sub-issue's PR is created, Pilot waits for it to merge before starting the next one. Prevents conflicts when sub-issues touch overlapping files. Includes `SubIssueMergeWaitFn` callback injection, `syncMainBranch` after each merge, graceful nil degradation, and 4 test cases. ## Changelog ### ๐ Features * fa0e7727: Add SubIssueMergeWaitFn to Runner and wire merge-wait logic in ExecuteSubIssues (GH-21 | Medium | 4/3/2026 |
| v2.87.7 | ## Changelog ### ๐ Features * c94742e2741d9ba29fafd8301bc644eb1bb089c2: feat(epic): enable worktree isolation for sub-issues (GH-2178) (@alekspetrov) | Medium | 4/3/2026 |
| v2.87.6 | ## Bug Fix - **fix(git):** Pass `--head` flag to `gh pr create` to bypass dirty worktree check. Worktree-based execution could fail PR creation when the main checkout had uncommitted changes. ## Changelog ### ๐ Bug Fixes * 178a8bec: fix(git): pass --head to gh pr create to bypass dirty worktree check (GH-2177) (@alekspetrov) | Medium | 4/3/2026 |
| v2.87.5 | ## Bug Fix - **fix(epic):** Sub-issues now branch from the real repository path instead of inheriting the parent's worktree path. Previously, `SwitchToDefaultBranchAndPull` failed inside worktrees โ empty branch โ push fails with "src refspec does not match". `ExecuteSubIssues` now takes explicit `repoPath` param. ## Changelog ### ๐ Bug Fixes * 715529a2: fix(epic): sub-issues branch from real repo, not parent worktree (GH-2177) (@alekspetrov) | Medium | 4/3/2026 |
| v2.87.4 | ## Changelog ### ๐ Bug Fixes * a1778eed0a64bc519fafd39eda542c4b6ea0503a: fix(poller): don't mark failed issues as processed (GH-2176) (@alekspetrov) | Medium | 4/3/2026 |
| v2.87.3 | ## Changelog | Medium | 4/3/2026 |