Skip to content

Release history

gastown releases

Multi-agent orchestration with persistent work tracking.

All releases

13 shown

Review required
v1.2.0 Breaking risk
Dependencies Breaking upgrade

Dependency hardening + scheduler changes

v1.1.0 New feature
Notable features
  • Fire notifications for convoy completion and cross‑rig dependency resolution
Full changelog

Gas Town v1.1.0

Pre-compiled binaries for Linux, macOS (Intel & Apple Silicon), and Windows.

Installation

Homebrew (macOS/Linux):

brew install gastown

npm (Node.js):

npm install -g @gastown/gt

Manual Install:
Download the appropriate binary for your platform below, extract it, and place it in your PATH.

Changelog

Features

  • d709cfc2fc2f15093e8686da6ce7b97d4a671e5e feat: fire notifications for convoy completion and cross-rig dep resolution (gt-wfs-55hsg) (#3838)

Bug Fixes

  • 049c0068a63cf7a6fc89a8f2181267a15b28256e fix(beads): avoid copying Beads lock in routed writes
  • b7096d7107de52d91a140f18075e9e04eea0e224 fix(beads): route Create via BEADS_DIR instead of --repo to prevent pthread deadlock (hq-1uf2)
  • e341c4ac96ed16faac72db919393add54cfae31d fix(beads): route cross-rig writes by issue id
  • 84594d118de3c1c299d2f8a9541ac62196c3dabb fix(beads): support bd 1.0+ where init persists issue_prefix (#3829)
  • f309f423c947e3e345a546b5b4d03f041bb0d516 fix(ci): add --server flag to all bd init calls for v1.0.0 compat
  • f67fedb78318b22a03bab2e7072c25e2518ba62c fix(ci): upgrade bd CLI to v1.0.0 and fix scheduler integration tests
  • 82e5ecaa370aa94ce998e6c07420c56ce3d99110 fix(config): pass agent Args to ResolveProcessNames at call sites
  • eadfd39ecfcfda7a8a4ea7fd779a33dfb1e6217d fix(config): resolve agent process names through wrapper commands
  • c01372d9f89927967ea0c2bae30f0d2259bbeb1f fix(convoy): bdListChildren falls back to deps table (#3700)
  • bf140c63e1f16eccdae7d07aa0fec9a8a9c89ced fix(convoy): surface unknown status for unreachable cross-rig tracked beads (gt-bs6)
  • 88efdf4d2cf204c82212cc899ed7239a9b3242f6 fix(daemon): check hasAssignedOpenWork before reaping working-bead-lookup-failed polecats
  • 4897f685f508857b7d69216aff9228906c201074 fix(daemon): checkpoint dog committed to wrong directory
  • bf0e34e0a74a34e593b1682a7c645c34aada4d61 fix(daemon): dispatcher skips idle dogs with leaked tmux sessions (gt-o24)
  • 92a485eeefde509c11030c557664f3ce6d244426 fix(daemon): filter messaging beads, guard cross-rig prefix, fail prime fast (gt-el4)
  • 8b4efccfc999517d2082bde60ddd71d28785a7e7 fix(daemon): forward USER/LOGNAME/HOME to jsonl_git_backup git children (gt-zt1w)
  • dfc23d517a77143832820e93a9deaac99d140416 fix(daemon): handle legacy flat polecat layout + regression tests
  • cf7d0239751ede40018b89f6dd93b070ca59c5f1 fix(daemon): route hasAssignedOpenWork via --repo (gt-fcw)
  • 3ebd1d95030097b1b8a1d607e3267caca318be86 fix(doctor): detect and recover corrupt .repo.git bare repos (gt-61twf)
  • 15f09fbea325cfc74b00d434be29235a92ba3998 fix(doctor): role-aware Stop hook check for polecats (#3648)
  • accdd3d946619a385358274878180cf320f0c241 fix(doltserver): clamp Dolt idle session wait_timeout to prevent connection exhaustion (gh-3623)
  • 78736023d13844ce03ff765a55c0fd5fe5d908d3 fix(doltserver): fix nightly integration test failures for wl-commons (closes antns1/fergus#336)
  • 6303c9d9cca31b065735498124d211a641712d9f fix(doltserver): switch remaining DDL call sites to server connection (fixes #3641)
  • 7a1e2ee661154265032ff69a4c6498acc1f987a8 fix(done): auto-pop orphaned stashes in gt-pvx safety net
  • aa5c8af2c98ea7af41bc19ddd0129a2595e8fc94 fix(hook): reject non-bead args before bd show (#3701)
  • 379f7b05529f40d84fc49bb1f7762d09d7b0a55d fix(hooks): atomic settings.json write to prevent concurrent-spawn corruption (gh-3500)
  • 9e2d38283cfef839762b6c51371b9d5a4ea1e227 fix(lint): correct British spellings to American English
  • 9490ae9a82dd2e14fe267582cd53d125991aab9a fix(mail): tolerate GC'd bead IDs in archive + archive --stale (aa-6hv)
  • 3374101b534cee2a2bac455be45fc958f28ee5cc fix(polecat): check-recovery treats CLOSED bead as terminal (aa-55d8)
  • 58e60eb9069273171a83e9258c6d1c78ab6002bc fix(polecat): use IsAgentAlive in Start's zombie check (hq-k1ot)
  • cfff53559b693dc8e75e1f723704ec0b4e44d259 fix(protocol): isolate NotifyMergeOutcome tests from production mail
  • 01756aea2c3f9cbd2b79868c79532fd9ac0d7ef1 fix(resilience): subprocess timeout + parallel rig scan to survive Dolt memory pressure (#3832)
  • 8a4a3fd866425738aa0a4ac1a589faba87e9467b fix(rig): guard stale add rollback cleanup (gt-cref)
  • 81325a1dce5d46618264b31911ce8d1c0cca0f2f fix(scheduler): guard scheduleBead against closed/tombstone beads (hq-ki2) (#3840)
  • 36d7e5248bf675f4965102735918671c20d95604 fix(sling): accept dog pool targets in deferred mode (aa-4yf2)
  • 6841bcfc05e3153feb0a769f60639ee28000b835 fix(sling): auto-burn orphan molecules from beads stuck in hooked-with-no-assignee (gh-3697)
  • c798d6011f97ab51cf175add1335ef16e58c157b fix(sling): canonical assignee for town-level agents (#3699)
  • 1448cfaa43b9f77995c8f45d03ce67a8daeda9c6 fix(sling): persist convoy fields for single-bead dispatch
  • 371bf507ced09d7748d44d1745646d7813b94a94 fix(test): revert initArgs extraction, call Init() directly for coverage
  • 443560fc2591b512f6951cb4967588312608df50 fix(witness): zombie-scan skips restart if polecat branch already merged (aa-apw)
  • eefc1fd4f6bdc530bf6016fe6b4f7ec49c577bb6 fix: add --allow-empty to reaper purge DOLT_COMMIT calls
  • a4230512f1c9b48a99d5b30aeb2893b42348e2e2 fix: add explicit gate=manual skip in dispatchPlugins (hq-suin)
  • eb7b56980472320a3489bbba9fc1841bbebc15e8 fix: auto-save uncommitted implementation work (gt-pvx safety net)
  • 54f116563b111e6f181ecfda1f15a5cd4c9b8e77 fix: clear satisfied mail reply reminders (gt-niu2)
  • 1d6f041742abfe730c1ca39edf6e7f4a8aa01f09 fix: don't skip non-Dolt daemon tests when Docker unavailable (gt-kw4449) (#3825)
  • d2c4ef9649a7ea6b30236537ba5a714cc926be4b fix: enforce standalone formula singleton at sling boundary (gt-3kir)
  • 47853c94abb442f0b9938e5296b12e15b607c3e8 fix: fail fast when Dolt is unavailable during install
  • bd680de223548baa199d2b88b750b7c08ba66496 fix: gt prime renders formula steps for town- and rig-level formulas
  • b30e08e5e4480950a608076f69f3a0319975c7db fix: honor explicit target in done contamination check (gt-nmt)
  • 1c0362e83415a8da293ba2d1fe94d52677556edd fix: preserve built-in opencode preset fields in overrides
  • 13b122f04d6d6d2e3841adb17c400dd4c81d065a fix: propagate env to agent subprocesses via tmux -e flags (gt-neycp)
  • 9e6334dfec381ebd8a413e4137727b5772bbe46b fix: reduce mail inbox dolt churn (gt-05ld) (#3830)
  • 44db3d0c137d41a5a4d27fd193460718136b2e50 fix: sync opencode hooks in nested polecat worktrees (gt-hii)
  • 3b3ca622b908eee76b871e7aa42b4f25b17d50cd fix: verify pushed commits before bead closure

Others

  • 8ad34e62989ea94eea68905b2402b3d164ace572 Auto-heal witness beads redirects
  • 51b5ba0db12f4ee44e809e37a70d3d3881e71fd4 Prevent gt status hang in bd probe
  • 91350080b8f45d2ead7a2a58a92c59523c12a620 ci: grant label workflows pull request permissions
  • c83232e4d9a7ceb6f9d3ebc0c71753210385790e docs(changelog): populate [Unreleased] with v1.1.0 fixes
  • 8a65698b4884881aba44479d0f62bddcc1f4c50f fix(formula,compact): call bd comments add instead of bd comment
  • e4865bc37fcbf4eede99d87de79ce65e2f5f8e81 fix(mail/delivery): route delivery ack writes via bd prefix routing (au-ofe, au-b9d)
  • a7b98ae149c562b075a5c63b8076d17278264cc1 fix(stuck-agent-dog): use 'gt hook show' to inspect other agents' hooks
  • 8574e1c658ca417078808763c197f883508e0683 polish(mail): rename DeliveryAckLabelSequenceIdempotent to clarify intent (gt-ekuh)
  • 4bba806b06fbc311d14e47cdc04f4dde781fcdac test(beads): add unit test for Init args to cover --server flag
  • baf8fcf8c943c9e35d8f9359e73e037d79c0bcfb test(convoy): regression for cross-rig wave staging (hq-mtc)
  • 93835062c0dedc35997cb95fe3b5d3d63e3b25b3 test(doltserver): cover applyWaitTimeout policy and dispatch (gh-3623)
  • ca3d37e1c0eb8603440d3c1878ff3912817eaa6d test(hooks): cover atomic write error-propagation paths (gh-3500)
v1.0.1 New feature
Notable features
  • Add Bitbucket Cloud integration for merge queue (#3600)
  • Add custom-groq-opus cost tier (#3553)
  • Per‑role effort level in cost‑tier system (#3545)
Full changelog

Gas Town v1.0.1

Pre-compiled binaries for Linux, macOS (Intel & Apple Silicon), and Windows.

Installation

Homebrew (macOS/Linux):

brew install gastownhall/gastown/gastown

npm (Node.js):

npm install -g @gastown/gt

Manual Install:
Download the appropriate binary for your platform below, extract it, and place it in your PATH.

Changelog

Features

  • e0cbd517dc95707e4ab5444d99759696e0b78950 feat(bitbucket): add Bitbucket Cloud integration for merge queue (#3600)
  • 868df8e422f56c3332e3cc5a19f5269c2d033103 feat(config): add custom-groq-opus cost tier (#3553)
  • 62b911e5603ed74b49b21cb320a2ca29f15020a6 feat(config): per-role effort level in cost-tier system (#3545)
  • e4fac78048053b35fc7c398fc3b2493cf5fe5f7a feat(daemon): implement stuck-agent-dog auto-restart (#3340)
  • 79d963a43353c94d258c40d5355675895486a89a feat(deacon): read model-escalation.json to promote agent on re-dispatch (hq-ko4) (#3530)
  • 5559faaf51df03a10dc483c0ed4c85cf780d81d8 feat(formula): add --set flag and fix bead prefix for convoy formulas (#3613)
  • da22a592bf06d659a94d2dc09f5ef31fe235f3b2 feat(formula): add interactive step support for workflow formulas (#3529)
  • c6ae9b0aa38a3924e9998d1e03f2c4d184df3be8 feat(health): add commit freshness check to Dolt health metrics (#3381)
  • ce5ca7c34b1f690550c115ece4c22d04ef98b8e7 feat(reaper): add close_reason and per-issue logging to auto-close (gt-wfs-ba6o6)
  • 9f962c4af068fe9da9f4bd3624e7b66351121fdf feat(reaper): add multi-database auto-close to gt reaper auto-close (gt-wfs-sr5ze)
  • 174c791b86b6d4f9328b8fbf59ebb57c9bbd9657 feat(reaper): add multi-database purge to gt reaper purge (gt-wfs-vewys)
  • c3b1f47b08f09764a12f0ac737e28dd8b3b56edf feat(reaper): add multi-database reap to gt reaper reap (gt-wfs-65mig)
  • 59f0ff0eb2c3611e8076b4ccb2794451b2c03f70 feat(reaper): add multi-database scan to gt reaper scan (gt-wfs-2j4fu)
  • 2a173523131e17a6fc4202ede5fcae900bdf4782 feat(wasteland): read upstream config from mayor/wasteland.json instead of hardcoding hop/wl-commons (#3501)
  • f5e690aff2e432d5902ac168422b7275996100c3 feat(windows): cherry-pick Windows platform support from PR #3268 (#3387)
  • 9a7449e257e5744819cc361baf8c4bea36cad03c feat: add Claude Code minimum version check to gt doctor (#3593)
  • d4620b43c23b0570f2f254cb978d5dbb10d51767 feat: include bead description and diff stat in PR body (#3421)
  • 18254390ec12bdaa87b7f8f5a7cbc3fbb67fcfa1 feat: parallelize per-rig daemon heartbeat with bounded worker pool (hq-bkc) (#3467)
  • e06530e712dce38d113734f4562c5df8ed687cb0 feat: per-crew-member theme colors + window tint fixes (#3577)
  • 37c2b382e0f75b8bd62f620cf3df3614f522e3ea fix+feat: route MR beads to rig DB and add rig-prefix validation (gt-7y7, gt-gpy) (#3540)

Bug Fixes

  • 50584ced603cd9da716719effd759af60d46088a fix(beads): route cross-rig agent bead creation from town root (#3520)
  • bdbe8c4b0e45f318576c838355fcc85b15e74b8f fix(ci): resolve 3 remaining scheduler/dolt test failures
  • 242bb1153d9754697bfb7bdbe061a0d91bdd5f1a fix(ci): resolve pre-existing lint + several CI test failures (#3628)
  • 088173eefdf9e06aeab0d0cb653572e6b31e0a6b fix(cmd): fix wispTypeToCategory test to match updated signature (#3546)
  • 10cca79d71e9eb815b3bfe7742b9e0e6f882a620 fix(costs): attribute Boot token spend separately from Deacon (#3454)
  • 28ddffbca85fa8232007f740efd0ff1d15d303c3 fix(daemon): show failure reason when daemon fails to start (#3586)
  • 66a8ff01d0d4c36f469f243f5f2608e724ee6fc4 fix(deacon): accept tmux session activity as health-check response signal (#3645)
  • 45b9b4b105c72957a1040dabbe91bbc019321e07 fix(docker): bump Go version to 1.25.8 (gh#3502)
  • 6426d593aa3bc4b251a3ff0f237e1a979a24918a fix(doctor): insert gt:agent into wisp_labels after CreateAgentBead (gt-3vx) (#3568)
  • 03c323a274a084c900e3cd819ee6a6f4aeaf1ef5 fix(dog): close accumulated plugin mails in gt dog done (hq-lsoei) (#3541)
  • 1c59b78af9df8eb53ce8e454199df99cd41c6422 fix(dolt): Start verifies databases are loaded before returning (gt-nq1) (#3549)
  • b1dc37c75dbd0404e81e024385d77115b908eafe fix(doltserver): correct misleading query_latency_ms JSON tag (gt-8yn)
  • 9490fb165836618d3078218fae09ccd751b3adaa fix(doltserver): use buildServerSQLCmd in VerifyExpectedDatabasesAtConfig (#3616)
  • d792ec5ee11e828917c16931b953d4f324ca49b4 fix(doltserver): use explicit server connection for DDL operations (#3518)
  • 21e27463cba44ba762e555a8bab817d31d17cfec fix(formula): resolve deps in rigBeadsDir, not townBeads (#3528)
  • 01c3edde3f4e12eb37d8c03a6e2c9d494e2fcfaa fix(nudge): normalize trailing slash in nudge targets (#3591)
  • 6113a830c47fd33231e7a7986d41646538cf3f30 fix(plugins): remove rate-limit-watchdog (Max-incompatible) (hq-quhi) (#3550)
  • ce5c63dd886d84c861f5de8d408b791ac27f17de fix(plugins): replace mapfile with while-read for bash 3.2 compat (#3636)
  • 9880e193a09c3a680dae1f331bb3dbc99b51dbe4 fix(polecat): replace branch-name string heuristics with structural parse (#3734)
  • 58b65aec300675783ce27a29bf61f936396fd434 fix(postinstall): handle redirects and file locking during downloads (#3576)
  • 05f93e9293f863377bff94017f79019562aa8bfc fix(prime): suppress spurious session_start on bare gt prime calls (#3453)
  • deb1751fff7bc8aaab0f0dbb257f1b83564d9e32 fix(rig): make gt rig add atomic — save rigs.json inside AddRig before cleanup defer exits (#3543)
  • 3d8de9a2be3d8e3f52d58edb444daba5c6a9aee8 fix(scheduler): skip missing-bead polecats in capacity count + log zero-capacity dispatch (#3689)
  • 098b505407880f764c30a59a1d8c10caf181ac7f fix(test): scheduler tests look for sling context across all rig dirs
  • e3f20385d9ebe5fea11dbce2b544e68e4dbacd9a fix(tmux): fall back to GT_TOWN_ROOT in sessionPrefixPattern (#3448)
  • 7464a07ae4885512101ce2c3ec5493385928a41f fix(witness): notify mayor when polecats die with active work (#3584) (#3585)
  • 61063982d7fb5ec31fdb985804f0033244cfa215 fix: align daemon purge defaults to 7 days (gt-wfs-pybrw)
  • 4c4f1fddaf9dea20878863a179a61802a98ffcb0 fix: align reaper scan with reap eligibility (#3455)
  • db74d7567d58c2f83f562ea66c2377c693448e2b fix: base fresh polecat branches on canonical refs (#3629)
  • e8b73e22adb30638ed816758965502cd5bee0a6c fix: clarify --max-concurrent flag as spawn-rate throttle, not concurrency limit (gt-dop) (#3659)
  • e7c1ff367394d0d946b9af65f33ca2231092d61e fix: fail doctor when shared Dolt rig databases are missing (#3449)
  • fb1012f4b2104828c62bcf9ac9dab3481ebcc0eb fix: force local dolt sql helper to use TCP client mode (#3470)
  • 2fa6a5658e13638389edc7c598e38460fc59f40d fix: gt done blocked by runtime dirs after MQ submit + push timeout (#3462)
  • 40c43c1e552411a9f505e1ab494f1ca3f7f2bea5 fix: hand TTY to tmux via syscall.Exec in session at (gt-cuo) (#3637)
  • cb1fadba773127338bc3a01fad5cf68b3e253c9c fix: inject CLAUDE_CONFIG_DIR in witness, refinery, and deacon startup (gt-9he) (#3450)
  • 640b63db5019d11d78916e496655e8fd32f18afc fix: keep daemon Dolt verification in TCP client mode (#3482)
  • 44f36dcfd5518b079064fa173813390d82829470 fix: match custom agent paths in BuildCommandWithPrompt (#3605)
  • ca58b7f99c2f6a79db0e4be7540fa47ad464d315 fix: per-prompt mail check for pi and omp extension templates (#3612)
  • 5c8055ba76bc6da62e39b123383b189bf903608a fix: remove handoff confirmation from embedded command (#3674)
  • a2b3b7ca965819825773d6cea7e27bc4b5f1055f fix: replace invalid --rig flag with --repo in bd create (ga-movc) (#3680)
  • b6ddf378d835a2bc5fd5045485864b54535e45e9 fix: resolve hostname before determining if Dolt server is local (#3531)
  • 3f6ad39b7e91eb0d2bd044025f4023a9c9d696e8 fix: restrict unsigned binary check to macOS only (#3561)
  • d2f4509a13c52e0c21371488200dcad794038e39 fix: scope agent-beads doctor routes to the selected rig (#3471)
  • eb601efed43d5885ce429a2c6b0d2be147103e43 fix: scope doctor config checks to the selected rig (#3472)
  • 762e1dcb38744e2ac2f6f9d592a2e1c1d07b6d7e fix: send FIX_NEEDED mail to polecat, not witness (#3569)
  • 241148f3a24dcecf71978e551e7ac552962046cf fix: set type=rig on rig identity beads so they don't appear in bd ready (#3579)
  • bc92f050a612f23f6e5daee00f5b209e7c9077ea fix: sling retry noise, convoy cross-rig routing, mail error detection (#3511)
  • 31d53b0bdd38acdae24bcce8a855a18e7cf57cbe fix: sort DiscoverRigs output for stable gt status --watch display (#3627)
  • 29a006dbba4c80850aa35171b1e089db8de6686e fix: unbreak main (sheriff) — duplicate target decl, unused var, missing rigPrefix
  • b1db1628b817436b2a0b41ef38070dba1a0227c4 fix: use type=task for agent beads, identify by gt:agent label (#3547)
  • 2fb94e8bf9ee053fa169a00becb930b0f2257a6b perf+fix(daemon): cache getKnownRigs() per tick, atomic rigs.json writes (#3684)

Others

  • 84b922dbeeb651955a968cc655f6d2ee49001b98 /internal/{doctor,doltserver,formula,templates}: remove mucking with dolt internals (#3447)
  • 3a45414d8cd7e1d2b74c44622de0715949b5e983 Add Mistral Vibe agent support to Gastown rig (#3583)
  • bdf86d78c6a7f448103fab979f94e7e2ada97d87 Add disk space resilience for polecat lifecycle (#3527)
  • 4c3175624fbab5daea7d51f22811b7a8a7889066 Extract independent collaterals from PR #3624 (#3693)
  • ee0a0b75b0800aca6dc6017ad3aa6fb631c1f6c1 Feat/cursor runtime parity (#3522)
  • a1c2f63e7761c16b6db9d7a23c2c616700a79990 Fix cross-rig convoy tracking writes (#3559)
  • c201388c0de3dd09350479f4f5719cd30e594ae5 Fix deacon patrol recovery nudges (#3556)
  • 66899918880bb72ec10ea1f63d3c7114536448bb Fix doctor false warning for modular shell configs (#3668)
  • 9536d0983daa44b65758b591e661361c43805f85 Fix gt-pvx auto-save committing deletions of tracked files (#3620)
  • 93ae201e2669d30093f4a527c3d1bd8718f80b26 Fix promptless polecat startup and nudge targeting (#3574)
  • 6b4f5de51c226be414c257a9f9730a0d61c1208a Update nix flake for v1.0.0 (#3542)
  • 810c0cbea99bf1f69cb0efa057589c69c22e7cc3 build(deps): bump go.opentelemetry.io/otel/exporters/otlp/otlplog/otlploghttp (#3564)
  • 59111af9d1a8300f97fcdbc58a0f2bf861a98a47 build(deps): bump go.opentelemetry.io/otel/exporters/otlp/otlpmetric/otlpmetrichttp (#3610)
  • fa3d879a162d71ba534c44388588927de54ee73a build(deps-dev): bump the npm_and_yarn group across 1 directory with 2 updates (#3555)
  • 5ccd9cac701f8c1a0d296ede3a5960e91bd2f897 build(deps-dev): bump the npm_and_yarn group across 1 directory with 4 updates (#3611)
  • 746225e90784bdbea43bd9aefd5790b7b2e4e657 chore(deps): bump embedded beads from v0.63.3 to v1.0.0 (gs-okp) (#3609)
  • 5e13dcc6fb2395cedb68ed1887be4fd9468b5311 ci(release): verify git tag matches Version constant (gh#3459)
  • 51abd3fee13d5954b0d4e1cb3755f5cc93b670d0 ci: publish gastown release assets from canonical repo
  • 488c14613eb1b605bd4e74d0abd65e5caa144789 daemon: add boot and deacon idle guards (#3519)
  • b6ac5a0960adc1834a8ab863c2cd31efc94be5f1 ix refinery convoy close routing (#3575)
  • 11f6278396459ceebe57918f1979c68000b0898c perf: parallelize gt status to eliminate N+1 bd subprocess bottleneck (#3504)
v1.0.0 New feature
Security fixes
  • SQL injection fix in dolt_remotes
  • polecat PreToolUse guard blocks `sudo` and system package installs
  • Unsigned binary rejection
Notable features
  • Workflow formula type (`gt formula run` with `type = "workflow"`) for interactive multi-step execution
  • Refinery PR merge strategy via native GitHub merge queue integration (`merge_strategy=pr`)
  • Rate-limit watchdog plugin that auto‑estops on API 429 errors
Full changelog

Gas Town v1.0.0

Gas Town reaches 1.0! This milestone release marks production stability after 14 releases (v0.5.0 through v0.13.0) of iterative development with a growing open-source community.

Highlights

  • Windows platform support — Full platform-specific signal handling, process management, and tmux descendant tracking
  • Workflow formula typegt formula run supports type = "workflow" for interactive multi-step execution
  • Refinery PR merge strategy — Native GitHub merge queue integration via merge_strategy=pr
  • Security hardening — SQL injection fix in dolt_remotes, polecat PreToolUse guard blocks sudo and system package installs, unsigned binary rejection
  • Mayor approval gates — Polecats must get mayor approval before expanding molecule scope
  • Rate-limit watchdog plugin — Auto-estop on API 429 rate limit errors

Community contributions

This release includes contributions from multiple community members across 75 commits. Thank you to everyone who submitted PRs, reported issues, and helped test.

Full changelog

See CHANGELOG.md for the complete list of changes.

Installation

# npm
npm install -g @anthropic/gastown

# Or build from source
git clone https://github.com/gastownhall/gastown.git
cd gastown
make install
v0.13.0 New feature
Notable features
  • feat: unique polecat names across rigs via global namepool (gas-21k)
  • feat(refinery): add auto_push config to control post‑merge push
Full changelog

Gas Town v0.13.0

Pre-compiled binaries for Linux, macOS (Intel & Apple Silicon), and Windows.

Installation

Homebrew (macOS/Linux):

brew install gastown

npm (Node.js):

npm install -g @gastown/gt

Manual Install:
Download the appropriate binary for your platform below, extract it, and place it in your PATH.

Changelog

Features

  • 6a4d74f44df49216a254cb56de68794f526663a2 Merge PR #2916: feat: add gt wl show command (#2792)
  • 801af44e66b9590df5df88cd7277eb610da2587d Merge PR #2986: feat: unique polecat names across rigs via global namepool (gas-21k)
  • 198f0fd532fff7bc26d17056640287fd7249c2b6 Merge PR #3011: feat(refinery): add auto_push config to control post-merge push
  • 25db7294a3d8b89cb63bb762420d456c63529cf2 feat(config): add list subcommand to default-agent
  • 8533f2a89b1b871dbbd0435f1b8e04a08edcb0d0 feat(convoy): add gt convoy watch/unwatch for completion notifications (GH#gt-12o)
  • b4fe4f75f1641fb180f0fc75e486d00e69ad74ea feat(daemon): add disabled_patrols town setting to disable patrols without editing daemon.json
  • ab940a4748cab3a8ef1fe7d308ac3efe14503e55 feat(doctor): add overlay health check
  • c171a391ae63d650f9a2befc8f7fa30ab3fccf4f feat(feed): add merge queue panel to convoy view (gt-et9)
  • b9978fb90f702e2f8204cfc747d0c6774308ccd3 feat(formula): add mol-pr-feedback-patrol formula (fix-merge PR #3261)
  • 4ddf5c48beaf548e20688162a97a40d9bcbff920 feat(formula): implement overlay loader and applier (gt-3kg.2)
  • a4611422211826550f6d4e4fcd565809d1da1a8d feat(handoff): prompt user before restarting session (gas-6z0)
  • 13328c0ff9967353d8457e2b1530b3df7e1331ff feat(prime): add formula overlay support
  • e7e646ac60da94db0a6ee051f875472353a5b901 feat(prime): add role directives output to prime
  • b06cad53fc15e53e701ebbc868e06e47f1eb3ec0 feat(refinery): add auto_push config to control post-merge push
  • 9ae750dcb79001e9ce5f1e8000ea54799a34d034 feat(refinery): add post-squash gate phase for pre-push validation
  • ba96fa0f86c4a9a8a13123b77a3b95c97124ec63 feat(rig): support local bootstrap via file URLs (#3325)
  • 9298634cd3e343721868a321687497d24e99e604 feat(wasteland): add charsheet, scorekeeper, and stamp loop integration tests
  • c66fa5a010f48a01a863eb5dd5f19c41e2bfdf34 feat(wasteland): add gt wl stamp and gt wl stamps commands for HOP pilot
  • 331e708a820719116c7d7c135725213e7c19e738 feat(wasteland): add pilot_cohort column and endorsement stamp type
  • c8d36a7d3ba18543feadabaaf533555f5bea8062 feat: add /done slash command and polecat Stop hook safety net (gas-lob)
  • 394d8df5f6b7cf878bc19b06ffbd3c34801e3558 feat: add CLI commands for directives and overlays (gt-3kg.5)
  • 848fe2025a558595b7f3a62cf98869fb716f61bc feat: add gate bead instruction template and GitHub API client (fix-merge PR #3311)
  • 2006f433794580bb48177d988f08f79edf8b15e4 feat: add gt changelog command with tests (gt-5jf) (#2971)
  • 30c243c1f62ac1e9cf9e929bcb5350ad9269a63c feat: add gt wl show command (#2792)
  • 289ab4794c6412ff45542a330ccd71689630db05 feat: auto-assign unique namepool themes across rigs (gas-21k)
  • 4fb084023134c9746dffd23cd623d717719e001a feat: checkpoint_dog — periodic WIP auto-commit for polecat worktrees (gt-0syu)
  • a5649fde31e3fd7c89cff4fd98004cfc64564ed7 feat: configurable window tint (window-style) theming
  • b0ee986159e9257c64c21db7f435f2233528ebab feat: gt mq submit enforces molecule step dependencies (gt-gtw)
  • 447d0c2c09562dee828f87f2b2dd32cd1f012d1e feat: gt patrol scan — detect zombie/stalled polecats via CLI (gas-esd)
  • 066f2a8af6c6428ef5409abf65a0d24e6c7d9e72 feat: gt up detects and recovers orphaned hooked beads after crash (gas-udp)
  • a26b020a5b84287e9f2b49c77b51927e83b2d8a2 feat: implement directive loader (LoadRoleDirective) (gt-3kg.1)
  • ae832352ee28ed420c984da155a51024f2eebf83 feat: make tmux theming configurable with resolver (GAS-jaid)
  • 865a8c9d0342e6695c37610291718a374d5ed6c6 feat: merge PR #3047 — lifecycle defaults test + dolt-backup/archive fixes + test runner patrol
  • 45192a687603e8c8f15fc32487ecb14685ce0721 feat: support .no-sync marker file to skip databases during sync (#3128)
  • 8fea7b84650f22ac96c3eacd78129de5e39bd883 feat: wire judgment_enabled and review_depth from rig config to refinery patrol

Bug Fixes

  • 38d38ac53ebc5d45183249c56bf87d18fd87a769 Merge PR #2893: fix: skip zombie detection for done/nuked polecats (#2795)
  • 8b85172abab8cd24c037075795f4cc18a70abce0 Merge PR #2894: fix: dogs get retry + startup fallback in gt prime
  • 574a31dd2322c8e93108352bea94a521776aea0b Merge PR #2895: fix: mail router missing --flat for bd list JSON output
  • ea19f416c4a2b0254564e205f5de944e486035c0 Merge PR #2899: fix: filter git worktrees from agent bead identity scans (#2767)
  • d3b3544d6acbd7722c9d4d3843b9e0c30102a20e Merge PR #2900: fix: disable dolt_transaction_commit to prevent read-only commit storm (#2685)
  • f545cf56aa2d1b769b4e3cbf75701308a41bfe74 Merge PR #2901: fix: skip crash detection for done/nuked polecats (#2795)
  • adb601cbc7f3dc5b0acfe043a1124745036e79a7 Merge PR #2903: fix: set cmd.Dir on all dolt sql invocations to prevent stray .doltcfg (#2537)
  • a8a347d203222508a094ea90896cf434623ae6bb Merge PR #2904: fix: daemon restart uses resolved agent instead of hardcoded claude (#2417)
  • bdb5223b362cbda9476180f53c5fab6c54ab0e4f Merge PR #2905: fix: skip VerifyPersistence test on Windows (#2831)
  • 073330f16c27b6bc8bcfe8fc06ffae59e1994e91 Merge PR #2906: fix: refinery checks no_merge flag before merging
  • 897cfd4f3088ff87ff29edf787ec661025f34fee Merge PR #2907: fix: prevent daemon restart during gt down shutdown
  • c07ad5b07a012741eb233b4771021d6885e29a2a Merge PR #2909: fix: reaper reads GT_DOLT_HOST/GT_DOLT_PORT env vars
  • 901b7ca4ae5e31cb338e7209d3973b64baa4271f Merge PR #2910: fix: move run_tests skip check to top of formula step
  • 084dd86204085bf61b05a089a89c5db041a65f7a Merge PR #2911: fix: set cmd.Dir on all dolt CLI invocations to prevent stray .doltcfg (#2537)
  • c6d6fcd0fc4c1789bf54376c06ce138ee5a51bbb Merge PR #2912: fix: clean dirty worktree before polecat reuse (#2536)
  • 8af507216e5866baf56978cf7509a763490c2585 Merge PR #2913: fix: remove legacy 'gt' database from reaper fallback list (#2385)
  • a6b01a45eecb637e4febb4b809426af7e224e592 Merge PR #2915: fix: refinery closes task beads after successful merge (#2321)
  • 25ff5af22f49f1604be9fd2495f11f943bfd2c48 Merge PR #2919: fix(deps): update go x/ packages
  • 765a4743090deade4d72f2a52e5fcba20314d43e Merge PR #2923: fix: start Codex nudge poller without cancel hook
  • 4cfb957241da5bae5786e1947f9cbeda7096b6c9 Merge PR #2926: fix(dolt): kill unowned port squatters on Start
  • 7041a764b99efcf430216f9c9eaebfcf5085bf25 Merge PR #2929: fix: compactor integrity check fails on concurrent writes
  • eec4799dc3920a9511fdafed05943ace0d59d9d0 Merge PR #2932: fix: bump compactor-dog default threshold from 500 to 2000
  • b08f6956c23c672e914990a74100411647ea63bd Merge PR #2934: fix: filter refinery MR listings by rig (cross-rig contamination)
  • 7c027a0fc4109fc368f31484d096043d53983bc3 Merge PR #2935: fix: add missing Handler patrol to lifecycle defaults test
  • 3e8fc2f2e760b467e8899ad7bc663636de235269 Merge PR #2937: fix: include dogs in findAgentWork startup retry loop
  • 3ccb242ebbf9d03c5108a8721cfd9a7c99ba39d3 Merge PR #2938: fix: suppress Dolt auto-start for Gas Town agents
  • f5ef5f956eeb4a47cc57c84f020f499ed1421578 Merge PR #2939: fix(prime): replace nonexistent /ralph-loop with inline instructions
  • f51cfa6c40673feebe94b0e1c4e42485a6c5e298 Merge PR #2942: fix(tests): stabilize flaky and stale test assertions
  • 4d454595157e86c2ecdc5fad4148325be7cd879f Merge PR #2953: fix(prime): remind polecats about gt done after compaction
  • 2c3b4c0d460d740aec7fb1a6b4ce4f10e16a0ad1 Merge PR #2955: fix(mail): drain crashed polecat notifications
  • f8fe68ff4aef43bedbf243ce25910a2ad14ec53d Merge PR #2959: fix: scan dolt_rebase.rebase_order as string to handle DECIMAL type
  • 3c1d752a4957bb6b337b3dc5a825b14e9fecaa77 Merge PR #2962: fix(tests): prevent Windows pipe deadlock in prime_test stdout capture
  • 89509e3792ee9e6f3ce2a00f206edc639a97197b Merge PR #2964: fix(convoy): add --allow-stale to bdDepListTracked
  • 6f577b0c42570b4786a0209fd3876a9910ecb2bb Merge PR #2965: fix: use --no-history instead of --ephemeral for agent identity beads
  • e057c470cdf9cb8d0d4f87df087262c662cd1156 Merge PR #2979: fix(test): explicit Dolt server shutdown in TestSyncDatabases_FilterSkipsOthers (gas-8uw)
  • c512115282d67c3e2aeb87861a2e7adeaa3af71e Merge PR #2980: fix(rig): scaffold default_agent config dir on gt rig add
  • b58344c10a51992836da584348561fb380b0ba29 Merge PR #2991: fix: align deacon heartbeat JSON field name in dashboard fetcher (#2989)
  • bcfd29850509fd16f91267a80889515a883b89fd Merge PR #2996: fix: gt upgrade repairs missing identity beads (GH #2766)
  • da2e2150c19fe1548a57c04738ca1b4119b84217 Merge PR #2997: fix: skip ACP/cleanup tests on Windows (GH #2716)
  • 677cbb8773d0e77014eb4c2c5dacfa28aab0391f Merge PR #3002: fix(doctor): route misclassified wisp fixes by workdir
  • 1ba64256f1433f5cfe18ebfbd5f786f6c77b61ce Merge PR #3005: fix(dolt): increase SIGTERM→SIGKILL timeout from 5s to 30s
  • 3c0d94f98f07dce29367bccf87c6aec2eb1b4101 Merge PR #3007: fix: resolve rig directory for epic children SQL query (gas-v80)
  • 2139c23174d44e9e7af7adbecc27d02349bd81f6 Merge PR #3008: fix: respect CLAUDE_CONFIG_DIR in gt costs transcript lookup
  • e9ee6ab4eff402f204e18accea0cf71d789671dd Merge PR #3016: fix: pass BEADS_DOLT_SERVER_DATABASE when invoking bd subprocesses
  • 51cc19e321a69c6b77c5a7710b83cdb067824bb4 fix(beads): validate all suffix chars in looksLikeBeadID (gt-5dz)
  • 76366e8f8f7538c5f0b804d2aea75a7e07402c72 fix(ci): fix 2 Windows-specific test failures (#3103)
  • 0efe86b4113c10aa390f16830928b6895477506e fix(ci): repair 5 pre-existing test failures blocking all PRs (#3096)
  • 9010b0a5bc8b7e70ab3f85164930f38f656321a5 fix(codex): wait for idle before draining queued nudges
  • 1faf78ee76cb9ba67cfc2726ccf426bc11824bd7 fix(config): apply --settings flag for Claude agents launched with --agent override (#3153)
  • d136c79ef06fbc7708cdae74c71917e1c4a3504b fix(config): dog sessions inherit env vars from base claude agent (#3012) (#3098)
  • 361a7b736d481ab8cb88d5e6354c12746d52b36c fix(config): update Copilot CLI preset for GA release (Feb 2026) (#3078)
  • 5b8b0a642a60f8dc72a6b3317b24935842c98cfe fix(config): wire up Provider and preset defaults for custom agents
  • 1da3ed6093db3d64876f6f5dc8bda5d9ba08893a fix(convoy): add --allow-stale to bdDepListTracked to prevent flaky CI
  • a328f4284a497166a1c25d5215c22a63f7e27714 fix(convoy): stranded scan now checks completion instead of logging
  • 5732af0a93265eae8d575cfe0abb5b3f50dedbf2 fix(convoy): use Unix epoch instead of zero time for initial event poll
  • 8319e63a56a270cc65c4b966982d46593965283d fix(crew): add explicit guidance that PR reviews are report-back, not post-to-GitHub
  • 7e152f3845f121bfce8405c57a43acd5c6ef3431 fix(daemon): clear agent identity env vars at startup
  • 2d16602cc12dd91802e1b9860c05ea553003a81e fix(daemon): clear agent identity env vars at startup (#3006)
  • e3b728f152d3020c33bc66a98a18419614576cb4 fix(daemon): gate dolt-backup patrol behind darwin check
  • b26faad57cb0cac45c917657744db07940b442bd fix(deps): update go x/ packages
  • b9875f1783b467517f55eac065583dee48117044 fix(deps): update module github.com/steveyegge/beads to v0.62.0
  • 036bb35f2aef55833bc1cc2a4df1168580ba8ece fix(deps): update testcontainers-go monorepo to v0.41.0 (#2921)
  • 55df0f725ac0f11010e6da279210a2fcebb28477 fix(doctor): add stale sql-server.info check + fix stamp test races (from PR #3129)
  • e27a6a8337a0b7d8ba282a10c7b992a294e4b149 fix(doctor): avoid slow filepath.Walk on Docker bind mounts
  • b01e89d2ed5f747ea3aa9828749e9f24a217aa8a fix(doctor): detect and repair relocated worktree gitdir paths
  • ed62422c6b90cf3e201f3ae4af257451aa16173f fix(doctor): extend hooks-sync check to detect stale gemini settings files
  • b3b16f1823c7acdd8da35d5a5cf90551ad3b984b fix(doctor): extend hooks-sync check to detect stale gemini settings files
  • 75e97835a0d0c8a78ef29e6ce801a87cfe889a45 fix(doctor): route misclassified wisp fixes by workdir
  • bbedeb5ac13a8bd5d85e4527eafbd2eaf0c15414 fix(doctor): use town-root routing when fixing agent beads (#3087) (#3099)
  • 15d5d5ebb8979ffee5de91fb93d540beee9138a9 fix(dog): auto-clear hung dogs and orphan sessions in health checker
  • c7b3f8d9f61be6e32572b8ddbf2b73fa4bc9977b fix(dolt): allow hyphens in validDBName regex (GAS-zb8) (#3053)
  • 5f8161dad2db250d7a5a73eadae3a519149a5bba fix(dolt): increase SIGTERM→SIGKILL timeout from 5s to 30s
  • e36bad51cb44b8e66cffc55a274299a46c0b3cc9 fix(dolt): kill unowned port squatters when Start finds port occupied
  • 7bb8bd8abbbf8467989ce3b4fdd4f2a6e477ce96 fix(doltserver): fix thundering herd in doltserver.Start() (gt-nkn)
  • 66e1adb5227fd6c6e88694761454fbbcf9bede8b fix(doltserver): fix timing race and lsof dependency in dolt startup (#2970)
  • fd6327c1d363a2e55395684bea45869151b2035c fix(done): auto-commit uncommitted work as safety net (gt-pvx) (#3172)
  • 251267bbaf2f31106a1530c2e92d0b5c220fb7cd fix(down): parallelize crew and polecat shutdown (gt-3w9)
  • 659693bb2bb993321bf8c2f1c187ea3501e2ee2d fix(down): stop crew member sessions during gt down (gt-hyg)
  • 2ec35b370811f66df1451284a80cea2610bd6d66 fix(escalate): filter phantom entries in gt escalate list after Dolt death
  • 85816bc0203ad175605dc7553beb2ae6c0adb8ea fix(formula): correct compactor database name defaults
  • 86a67876c573179f3ae0659881c9dc0016e61b69 fix(formula): remove go test default from mol-refinery-patrol test_command (#3113)
  • 802ef849f8ed5ebf8e59f2077c0f4595814ee0dd fix(formula): resolve refinery agent bead ID dynamically
  • a407ccbc6885e92636f67cb5c9fbc986ff0cc9f0 fix(guard): block polecats from pushing directly to main
  • 45acb657288f874abb83f152b4c4e8cc6721623c fix(hooks): JSON-escape GT_BIN path in JSON templates on Windows
  • 351ed002d4bc436b087a1b2feee73e997ecc25a7 fix(lint): mark unused receipts param in outputPatrolScanHuman
  • 5a18dc6a693e088ea5af8b5edaf09e7fde642a32 fix(lint): remove unused hooksDir param from writeTemplate
  • f814470f50f83ace7851632fe1803d8af4606732 fix(lint): remove unused params in stopAllCrew and runScorekeeperWithStore
  • c2c84935317c8bc2029941303b2ccc0d3ba8fff1 fix(mail): drain crashed polecat notifications (gt-84d)
  • 32774ee5c5278a5b6922ba2aa7777d27b17e808e fix(mail): fall back to explicit agent workspaces
  • 3b9b55d21a4e07247b1075bf0021d7c6c80b7413 fix(mail): prefer GT_TOWN_ROOT env var for town root detection
  • 681729993afa5239534e8b9a9a5fcbf62d728cd9 fix(mol): cap backoff before overflow in await-event and await-signal
  • f981ad1707a1e5889f99849a5ced25eaef44850f fix(nudge): add flock-based cross-process lock to prevent interleaved delivery (gt-6ywt)
  • 4d63c184e10b6dd548b725f412102ba44503cf94 fix(plugins): auto-discover databases instead of hardcoded list
  • 6cd7d349c1aac2650e1fc4b27d994d517be38d48 fix(plugins): use $HOME/gt as GT_ROOT fallback in dolt-backup (gt-l510)
  • fc4feb81b72b284e70060112e7b92c9f04f86dd7 fix(plugins): use --host= syntax for dolt 1.83+ compatibility
  • 91fd450b63ca6f287cca64fe5c77fed1f67e988b fix(polecat): append lifecycle instructions to existing CLAUDE.md
  • 5688be336860cdaac462a0412be85edad2a1cbfa fix(polecat): provision CLAUDE.md in worktree so polecats know to call gt done
  • afd703b071d8eb6b46a328ab0adade85375319de fix(polecat): provision CLAUDE.md on ALL spawn paths including reuse
  • e17c4686d0703b8537e9abe5aebd52fd647f2d70 fix(polecat): use IsIdle instead of IsAtPrompt in startup nudge verify (gt-1mk)
  • 7234027b1d1cefb5631805d3920b0f0a6c002fea fix(polecat): wire operational config into startup nudge verify loop (#3031) (#3100)
  • d08547efbd696db154dbd2b0c0a15998e8bb7f04 fix(prime): add gt done reminder to AUTONOMOUS WORK MODE directive
  • 969083b4afb5f76ab30557a64e0f629fb89e12dc fix(prime): add gt done reminder to compact/resume and strengthen startup instruction
  • f96cd14992b2cad54c843ab9c5f944a645132532 fix(prime): replace nonexistent /ralph-loop slash command with inline instructions
  • c3f0936794309ffaa10d4cf3e22d127742f2caa3 fix(reaper): DiscoverDatabases returns error instead of hardcoded fallback (#3013) (#3101)
  • 95c8b10af0b2be86bfab4146999a92254ded84d3 fix(reaper): close plugin dispatch mails in hourly reaper sweep (gt-qfq)
  • a4fc5f8d781b7ea488f803f7351f0135c2b9cd62 fix(reaper): register --port flag on databases subcommand (#2958)
  • 30839a1b6a81abeab58e4b0446956e2a0bedbbca fix(refinery): supersede MR on same-branch re-submission with new commits (GH#3032)
  • 176c3ec9499d2d2705829aa6d073ff05cf63e4fb fix(refinery): use commit SHA instead of branch name for MR dedup (gt-8qw)
  • 71c544bce798711931bf3d298f06ee79acfd3354 fix(rig): scaffold default_agent config dir on gt rig add (gt-vdx)
  • 81e53cb41aa0f0a86bd86a6e180c9b11cd6d2e0d fix(runtime): resolve wrapped agents and track refinery pid (#3326)
  • 9a2df767530633b28ab784c7f5de13e76ca2ee52 fix(security): enforce full suffix validation in looksLikeBeadID (GH#3110)
  • 6e46de618c9f9dbb72b3d8be7e882800096f8894 fix(security): sanitize --subject/--args before NudgePane injection (gt-sec-002)
  • decfc0981970f5a01e055abf64950137edcf40a7 fix(security): use bead ID as formula variable instead of user title (gt-sec-001)
  • 8287afd3aae0b2ee9737f4569b3c83c2ef430125 fix(sling): add --review-only flag to prevent assignee merging (gt-2vo)
  • 2eabd1292f50048c28518b259994fe2f850af68d fix(sling): kill session unconditionally when reusing idle polecat
  • 35005ba7f7203f302d17fb4e49051311b9886f6a fix(sling): serialize concurrent hook writes with per-assignee flock (#3114)
  • f6108acc237ec17a257f22eafef84e16ddfccbdb fix(sling): serialize concurrent hook writes with per-assignee flock (gt-ffg)
  • 5a8140226e0a9a42de28c6803596c2774fd2d2cc fix(test): add sleep to TestSchedulerMultiRigConvoyAutoResolve for bd stale check
  • 32f8c3430d34b37271b09f830fabcac8809b2fbf fix(test): bump scheduler test sleep to 2s for Dolt import cycle
  • 80dd0faca24d46a0aa8d5cfca4997158a238aa96 fix(test): refactor outputRoleDirectives to accept io.Writer, eliminating data race
  • 5c8b8649110c408e4094f24dc83df46cc894c571 fix(test): remove t.Parallel() from TestValidateStampInputs to fix data race
  • 48ecea97e08c29085bc70bf969c3e2b843e82511 fix(test): remove t.Parallel() from TestValidateStampInputs_* to fix data race
  • d66e283703c0a5756cb18b52aacde659ae7f2a74 fix(test): stabilize TestSchedulerDirectConvoyDispatch timing race
  • 853cc8e3194e8bca472a948c57ed3801b02e373b fix(test): update github-sheriff cooldown expectation from 5m to 2h
  • 512d32e6e438f77249abe2db5c9d933d03a7951f fix(test): use retry cleanup for TempDir in sync filter tests (gas-8uw)
  • 1ca870379be44a9c434c3a36be4f7fe26a04ace7 fix(tests): add CLAUDE.md to polecat worktree allowlists
  • bb797cd0bce06ed5120b6c9707a308d0af189155 fix(tests): prevent Windows pipe deadlock in prime_test stdout capture
  • 4c6fd7fee8ae6d407140473623227f8859fba449 fix(tests): skip process group tests on Windows
  • 64b2b6f2c8c2dde63aea3dc022af5ea7954724a6 fix(tests): stabilize flaky and stale test assertions
  • 998ddc08ac2d7cad8a81fd4ab712f0ef6c76e0c0 fix(tests): update bd mock scripts to expect --allow-stale in dep list
  • 853f9e931ec386bc42d70a88f2b76864e5989c13 fix(tmux): detect and dismiss Claude Code Rewind menu in nudge delivery (gt-8el)
  • 7db1d4486705d8b2cc565d5449628d120dc9fcf2 fix(tmux): replace timing-based Enter delivery with verification-based retry (gt-0b5)
  • 0dd1eaec78ac89386c2eac6d00202b582428b41d fix(tmux): restore per-town socket isolation reverted by 7ea8586a
  • 3b4460b9f96d0bd02b9003630b55debbbdf74081 fix(tmux): use terminal defaults for Mayor theme
  • 16cc705eed3cdb0eecfad97bd81e8933b3c1656b fix(vitals): distinguish sibling Gas Town instances from test zombies
  • 76a06b11be5fd046bd8c1fadd3a72da091af2368 fix(web): add circuit breaker to FetchConvoys and cache expanded views (gt-8ki)
  • c74602ba5c5128cf184f2693ac0ddaecabee118f fix(wl): add atomic counter to generateStampID for Windows timer resolution (GH#3104)
  • d5eb0c54104d81fee8e81fef69a4e5093ad00834 fix(wl): atomic counter in generateStampID fixes Windows flakiness
  • 28a6f61963f288f4f77dda8ec239ce937422adac fix(wl): drop unused townRoot param from runScorekeeperWithStore (unparam)
  • e9d432ef2db639729c1ec42d21b2c2effa25acc2 fix: GetRigLED checks operational state before session state (#2841)
  • dfeade1bd33cb95ba57e91302b8a13a311e157a1 fix: MeasureQueryLatency uses config host instead of hardcoded 127.0.0.1 (#3319)
  • 96b72f714f40a661768b3401085e4e3a24a3d859 fix: add --flat to bd list --json calls to guarantee JSON output (#2499)
  • e469f3ce3f1d5ec0fc40f6a4bbc6b1132c8c3a64 fix: add CLAUDE.local.md to gitignore patterns (fix-merge PR #3275)
  • 4bdfd6372edc55524426e46da95298a2f97fa63b fix: add ResolveCurrentSession and improve signalAgentReady (cherry-pick from #3154)
  • 0fa7fe971569439dfee3db16abf303315174c8e4 fix: add missing Handler patrol to FullyConfigured lifecycle test
  • a84977c0b3146876da67d4135a23b6bafd1d39ef fix: add named Dolt docker volume to avoid journal corruption on macOS (fix-merge PR #3259)
  • c900b49cbcad2648bdf6667c3a3603b2ed36a4ba fix: add response cache to dashboard to prevent bd process storms (#2618)
  • c46dbba81d91f1e2cd1ffa7c8afa3cc5000f22e4 fix: align deacon heartbeat JSON field name in dashboard fetcher (#2989)
  • ba639cd1ced9d8a37021182c4f47f0b561fc79d8 fix: also strip inherited BEADS_DB env in subprocess helpers
  • b0bb4ee7fba8cc4c1639d18f21ba94f92023c289 fix: beads v0.61 upgrade + plugin GT_ROOT fixes + remove pane background
  • 12719260fd27980f5ddbeeccd7e01f346511742c fix: bump compactor-dog default threshold from 500 to 2000
  • 25d18f1c69a42d09b5edca61bc9a61e1be690e0a fix: clean dirty worktree before polecat reuse to prevent checkout failures (#2536)
  • d9a3b9440739bde7ffe2b3bf0269f5ab5622e551 fix: clean up stale shutdown sentinel when PID is dead (gas-jsrl)
  • bc0131c64907322d41d601ba1547dc66267ea44e fix: compactor integrity check fails on concurrent writes
  • 7cda0bdd12157ffa3e4efd476cc00cfc0bd8e42e fix: compactor-dog log output to prevent dog agent over-escalation (#3061)
  • e7c7aae3b8430dc11edeb36589481f63927a494a fix: compactor-dog nothing-to-commit dead code + --set-upstream push (#3035)
  • adacea3be20e4081f5059f45166e74e1d769894f fix: convert dolt-backup to deterministic run.sh (stop false escalations)
  • 0e964b21039806b3178c94bd98f4694b0a536e8b fix: convoy create/add use town root for cross-rig dep routing
  • de3d6b96fbd6b35e10e58d81b70f340d6010fe68 fix: create convoy legs in target rig beads, not HQ (gt-d5w) (#3209)
  • 05ca00dac5d98ca57095e8f93bacc72b6681fba3 fix: custom agents inherit Session/Tmux from preset + rig add/adopt fail-fast on identity beads
  • fb06bbccb6f800880a68ab7600648a6495311bfb fix: daemon restart uses resolved agent instead of hardcoded claude (#2417)
  • cd59da7e98bda1e9b9daed8cf4bb81facd2e8fac fix: disable dolt_transaction_commit to prevent read-only commit storm
  • 32f4c55a5668f141257d060c033a082c39a39533 fix: dogs get retry + startup fallback in gt prime (GH#2748)
  • 33c163c5361c8740ef82d0c1f079f28f3e0968cf fix: dolt-archive grep -v exits 1 under pipefail when no remotes configured
  • 6aeb10aaf67152baebf6d88ac4248f60dbb30a8f fix: dolt-archive pruning crash + auto-discover databases
  • b58cc12091288bf757821f60a0ad95aa3e82a3a8 fix: escape backslashes in mol-refinery-patrol.formula.toml sed pattern (gas-csr) (#3044)
  • 46b4a7f7abca6368d1ae930bee7fb656149e3039 fix: filter git worktrees from agent bead identity scans (#2767)
  • fcd42a441cd5fe16386155f159f814c8248db56f fix: filter refinery MR listings by rig to prevent cross-rig contamination
  • c502fb86f023db7b6ec08cbcd283e627d2a15e39 fix: formatPeriod returns Week of on Mondays instead of Today
  • 6b6aadf30a70f10da2e74ca3b592a68f283495d7 fix: gt costs returns $0 when CLAUDE_CONFIG_DIR diverges from HOME
  • 0e6d7c917f384b047c12676a06fb82be7858358f fix: gt doctor detects and cleans stale sql-server.info files (#2865)
  • 00f77210b8270702b3375abd67eb9cf624efc111 fix: gt done falls back to fork+PR when origin push is denied
  • d4588aec628c6880613527e4c3ddd05e62079c57 fix: gt polecat list shows idle for actively working polecats (gas-8e3)
  • a24a26af8b3dbeb9ade0763686d2bb2b2e482c07 fix: gt upgrade repairs missing identity beads (GH #2766)
  • f4404d176ad7ccc648ed4e262973903708dedb5c fix: guard sha[:8] slice and skip .claude/ paths in submodule handling (gt-dg7)
  • f63c199893024a98586c9969decc6b7445005a07 fix: harden fork+PR fallback in gt done
  • 4c0f227be0dc15436eed244b5a3e91e770ea327a fix: implement Dolt failover/failback for multi-host setups (#2886)
  • 43434f27e7af2f57934597a53dc01044d4eaa899 fix: include dogs in findAgentWork startup retry loop (#2748)
  • 7336013047e0b3fa9cd63c06017d55f61ac6756c fix: inject merge_strategy from rig settings into formula vars (fix-merge PR #3277)
  • 2b51d0d76c2189ca33a63aa05f824ba2f62a1531 fix: mail router missing --flat injection for bd list JSON (GH#2746)
  • fe11b9e542c1a9febcc75dc34d66d7ce2aac60a5 fix: make hooks sync support non-Claude agents
  • 63c1c8e2583daefc3b1b776ee86d0ed05e7a720a fix: move run_tests skip check to top of formula step (#2603)
  • 3506f1118b048ce72b1cf760da65b0d54e46d770 fix: no_merge ProcessResult sends spurious MERGE_FAILED nudges (gas-rn0n)
  • 44fedf160d0ae30fa2c26c64cbbc3f8ce94a643f fix: pass --branch to bare clone in gt rig add
  • c01869d6755525c91819159091e4d84d8f3887a8 fix: pass BEADS_DOLT_SERVER_DATABASE when invoking bd subprocesses
  • d487de04bc7da9640eabed3ef57b36a1397022f1 fix: patrol molecules use TownRoot instead of rig WorkDir
  • cc666b54b5db2bdea88200e3b6e6a8ede11dd94c fix: prevent cross-town orphan cleanup from killing agents on other towns' sockets (GH#3192)
  • 9135939a9ad69a5d00c1fd6f7803eee1470e196a fix: prevent daemon restart during gt down shutdown (#2656)
  • f786e00ee0c33e77adf809ce503cd208b254e7e4 fix: prevent duplicate Mayor spawns during gt up (gt-7m8)
  • 5eedf1b293e7c0d0929510f1fea97bcba1b837fb fix: prevent slice panics on abbreviated SHA hashes (fix-merge PR #3281)
  • 32507e2e58025864771fb00b93294919f0ee7a2b fix: propagate BEADS_DOLT_SERVER_HOST so bd doesn't default to localhost
  • 20f42e0f9865d7b2fee84b92e391ca03c314a80a fix: propagate base_branch to MR target in gt done and gt mq submit
  • 760a2d82c34f02552a0c06930ee5517b4c2293c2 fix: push polecat branch before signaling completion — prevent work loss (gas-556) (#3203)
  • bd6dce11bc25c8e0b65cc8f07177335b9beb5b51 fix: re-apply atomic counter in generateStampID for Windows CI
  • 6acbca8aae4695c0250871ea9e251e21759eebae fix: reaper reads GT_DOLT_HOST/GT_DOLT_PORT env vars (#2601)
  • 5fd8db81e8c6b8c9821ee139c3290274ccc82402 fix: refinery PR mode must wait for CI and merge before sending MERGED
  • d18d8a47b7ab42e08cea4835674dbb35febf686e fix: refinery calls HandleMRInfoSuccess after merge to close task beads (#2321)
  • 3418ee1cfbbf45fe957e57776478806de1dc6886 fix: refinery checks no_merge flag before merging (#2778)
  • 3ba13db6b5568cad072d5bc38950bcbc8bc334a7 fix: refresh agents/feed bindings when rig prefix pattern is stale (#3306)
  • 40b4683195a3d061065c4472b17f9c536804a798 fix: remove --no-history flag and other plugin fixes (#3027)
  • 36fb1ec7c2570cab4bf65f4ca716eb247606932e fix: remove legacy 'gt' database from reaper fallback list (#2385)
  • a26928d1d358ac2eb29085453bd7e842f459fb48 fix: remove session-hygiene plugin (killed crew sessions 3 times)
  • 7267259df458ce67b9ff55a8451550e8cd0e9370 fix: repair PROJECT IDENTITY MISMATCH after crash or rig addition (gas-tc4)
  • be931ad56aa06b71dcec01a459fbad11f451255b fix: repair PROJECT IDENTITY MISMATCH after crash or rig addition (gas-tc4)
  • 1427d3c35de32a74b80413c171e8dac52d169dc2 fix: replace bd agent state with bd set-state (bd 0.62.0+) (#3283)
  • c2d8df6cf06839cc052f5f1c3713def9edafa27f fix: replace nonexistent bd wisp create with bd create --wisp-type
  • 1fddedbdf564ddc35613236557a1e2f814385d09 fix: resolve prefix-to-rig mapping in doctor checks (gt-2n28)
  • a731d56ee6c5a499ff7acbb98c0119656297bf0a fix: resolve rig directory for epic children SQL query + suppress unparam lint
  • 2009d3efa2fc3d0e35c99a380af11f74ed88d93a fix: respect global default agent when starting dogs (#2882)
  • 8674537b6014743c9d5b3cb5df2865afd1c6faff fix: retry Dolt testcontainer on transient reaper 'removing' status (gas-5i9)
  • 1836f872c9190df7a58336aef78fd14587e09a65 fix: rig add help text uses underscores instead of hyphens (#2769)
  • 25b7c540fb4380f07c87ae66358281151ee682d9 fix: scan dolt_rebase.rebase_order as string to handle DECIMAL type
  • 0c753d13e35179b8a75be3ba8b3dd198c9349b32 fix: set cmd.Dir in doltserver.Start() to prevent wrong-CWD server launches (#3029)
  • ad279b1ffcd881792e96c9617b3eebad6ea157de fix: set cmd.Dir on all dolt CLI invocations to prevent stray .doltcfg (#2537)
  • 09b489156878804517b7978ff425b6ef440a8ca2 fix: set cmd.Dir on all dolt sql invocations to prevent stray .doltcfg (#2537)
  • 50018cc9e7f5d780837522cbf607e77db5256bd4 fix: skip ACP/cleanup tests on Windows (GH #2716)
  • 252afed53ea3564ae3af77c9d099f6d630f9929a fix: skip VerifyPersistence test on Windows — uses Unix shell mock (#2831)
  • ffa1e6a83b4338f7cd59a072d16aa26bacaf5c82 fix: skip crash alerts for done/nuked polecats (PR #2798)
  • c9e54659c0b5da893dcc9339b53e8d3ecd4f98b0 fix: skip crash detection for done/nuked polecats (#2795)
  • 7f9b8632de5f996cc5b8191eb44bb76db05a2831 fix: skip zombie detection for done/nuked polecats with dead sessions
  • b794ca9c032ddbd790a0d4d9dc6ea263ee32e743 fix: sling --dry-run detects tmux session collision before spawn (#2880)
  • e6e0e87baae89f1bfb52a83e572bf55c58892c8c fix: start Codex nudge poller without cancel hook
  • 5a2240a971057fa5332b0ff3eb88f79f59ce2d4a fix: strip --allow-stale in runBdJSON when bd doesn't support it (#3050)
  • a5d67c8014d465373b37cfa11aa12ec25d260bae fix: suppress Dolt auto-start for Gas Town agents (dogs)
  • e58ac466b180a77e96effbd29b8b388b9f4271f2 fix: sync agent_state between column and description on state transitions
  • d58e9b03dd83ca9f64d54f13c9250eea05f8a5b2 fix: two recurring operational bugs
  • d1e75eb76680e0471c8bb016fc88c9c47cc91328 fix: update cost tier test fixtures for boot/dog roles
  • 9f5a5c970cc36f6e8eaca9578295520964e36364 fix: upgrade gt wl show with structured parsing, tests, and auto-fetch (#2792)
  • a401a59fd8f384fb5fd4a63c71c10d07b067f239 fix: use --no-history instead of --ephemeral for agent identity beads
  • 34873e774bfe133ca46708efffcfdf60c2994701 fix: use raw SQL for cross-database dependency lookups (#2832)
  • 2593498309d46ac0f47e0d6852fce4ea51a5fac7 fix: use underscores in beads_prefix comment to match validation rules
  • fb9a952a7c77f1eecf7b1dd0002e5f7013fd3a29 fix: validate git URL before crew clone (#2545)
  • a7e81a852d573c281d704385328e426011fdc0bd fix: witness buildWitnessStartCommand had same non-Claude agent bug as daemon
  • 56cc1d5d097119c5829b493efbda6d79f470207b fix: workspace.Find returns outermost workspace for nested workspaces
  • 60e9bb6a507ee1f5143f33a731431b0b47a5837a fix: write polecat context to CLAUDE.local.md, not tracked CLAUDE.md (#3305)

Others

  • d4ce2f34141fa510ec466af0812b9ea098be4318 Add boot and dog to cost tier system
  • 738f704fd8d0587a95480f0b96d896ca798d6229 Add memory system guidance to mayor template and townroot CLAUDE.md
  • 205fe1d5aaafa04f377297a57f33b66033becb00 Fix convoy close dedup after reopen
  • 3347a5b2c571cd8fcfe3bf0966320b8c3aaaec1f Mayor priming: make file-and-sling the default, not direct fixing
  • b6af52be0e9082dfa5f9ba9c7e4ca7d99d13c79e Merge PR #2917: chore(deps): update golangci-lint to v2.11.3
  • 54339a3e966af13b069fc15449d20be7fff9a6af Merge PR #2950: diag(test): add logging to flaky TestAutoRespawnHook_RespawnWorks
  • cfaae21a1388e63de027fb8eee7ddd2edb076582 Merge PR #2988: test(daemon): add regression test for GH #2417 non-Claude agent bypass
  • a406f5476f9a11f8293c7e8237f5663a07afea6b Merge PR #3010: Add boot and dog to cost tier system
  • 9cdd31f40e9bff2a8a20cecb31c4e424fd2bf9d2 Release v0.13.0
  • 18e0003cd556d88f578d2fe61b0ce7e4aeef07c5 build(deps): bump fast-xml-parser
  • 82550404ab8e49c579e58c0972aa770dac95b61a build(deps): bump fast-xml-parser
  • 7f498de15b8dd8e9f24d06084548a23c944176c0 build(deps): bump google.golang.org/grpc
  • 2bb07407a2f66c5784d97d07c59ca7ed0513dc31 chore(deps): update dependency golangci/golangci-lint to v2.11.3
  • 9c7c61d6a505aa4998bf123a5d9dd89342cedd98 chore(deps): update dependency promptfoo to v0.121.2 (#2918)
  • cb24c5bae385bc93eae4897a3fcc544d5d44de6c chore(deps): update github actions
  • b0752d82c354fc4470d2267e6e470c09333828af diag(test): add diagnostic logging to TestAutoRespawnHook_RespawnWorks
  • 12999c986f48ad1c8ba03f0d716bbe5f2743b700 docs(crew): recommend ephemeral beads for dispatch/orchestration work
  • 70af0aad7afbe0c77f907c418af3f376b8d00e03 docs(security): document dispatch security standard at StartSession
  • dba0f738b7b4a3587937c4c885892a7d02a19fd8 docs(security): formula variable security principle (gt-sec-001)
  • efe1b668a3d3555e7b22a818558fe75b1f86d89b doctor/rig-config-sync: use rig name (not prefix) as expected DB name (#3060)
  • 1b27cef45697406951ba3763228ac428fa77a6aa doltserver: scale startup timeout by database count (5s per DB) (#3059)
  • dcc2f46e27ad5a2984f16227c21089e6793053f8 fix(dolt-archive): replace mapfile with bash 3.2-compatible while-read
  • 4c5f269e3a92239cbc3c9f2c19e0432e7c222db3 fix(dolt-archive): replace mapfile with while-read for bash 3.2 compat
  • b6852908caa4bd430a83a8a6c83eb4bab918ed21 fix(dolt-archive): replace read -ra with while-read for multi-db discovery
  • e297e732b4b8c28a0c2b08f5e26381526b7df129 fix(dolt-backup): replace mapfile with bash 3.2-compatible while-read loop
  • bf2b51673c4939fbce1e6b3b780f11c2a377c6f5 fix(dolt-backup): update PROD_DBS to actual production databases
  • b77969708c4a9065b12876337e4b45a1ea4b79bf fix(hooks-sync): resolve role agent preset without binary validation
  • 4f523f1bc94ebb6eb18b7b3e9432b90ce9ca3422 fix(stuck-agent-dog): skip done/nuked polecats in crash detection (gt-y16j)
  • ebc016941051490fdf2ffc17ff3c616ac4c89a1c reaper: suppress dolt_commit_failed anomaly for 'nothing to commit' (#3072)
  • 2b8800b60e556e9081985aa8bdc278102d6b0d5d refactor: add test coverage for tmux socket isolation
  • 00ed2797ae3137ebe222e87ae15142f8ed53157d refactor: eliminate duplicated lookup and close pipelines
  • 927c935e736b7b3ce660ee6233928f2c1df92f0d revert: remove all DreadPirateRobertz contributions from this session
  • c18f3f33457eda6914d84ac1d0f9dfb25e529206 test(daemon): add regression test for GH #2417 non-Claude agent bypass
  • 7eee15b28909202dae8e85d8ff73d587f6a33261 test(hooks): fix Windows-specific installer test failures
  • 55ea74e8668a63927edf6b00670de016fc717d01 test(tmux): add unit test for adaptiveTextDelay scaling (gt-0b5)
v0.12.1 Breaking risk
Notable features
  • Add gt assign command for one‑shot bead creation and hook (gt-1v3).
Full changelog

Gas Town v0.12.1

Pre-compiled binaries for Linux, macOS (Intel & Apple Silicon), and Windows.

Installation

Homebrew (macOS/Linux):

brew install gastown

npm (Node.js):

npm install -g @gastown/gt

Manual Install:
Download the appropriate binary for your platform below, extract it, and place it in your PATH.

Changelog

Features

  • 4feaa540fc078fa1e2e272d770ced8ec46e337cd Merge PR #2681: feat: add gt assign command
  • 9a0f74cf414f88e44b2e1f4dc2ea7a355b3536d8 Merge PR #2688: feat: infer rig from crew member name across all crew commands
  • 41c41e547c505819e527c74ec941812987099831 Merge PR #2699: feat: auto-push submodule changes before parent repo push in gt done
  • a4f99b598fab100086da241972b9a632860712fb Merge PR #2740: feat: repo-sourced rig settings + polecat test awareness
  • ce95c27b20cb909beaa6bc4b7064d01fd6ca577b Merge PR #2775: feat: add handler (dog dispatch) to daemon.json lifecycle defaults
  • 0f7be9252077014bfe4c0b74033e3c8a008ca901 Merge PR: feat(convoy): auto-append validation bead as final wave when staging epics (gt-m65)
  • 317c960ccd7b4802596de1973e2d94b2ccdb10ce Merge PR: feat(formula): add inline eval/smoke-test bead creation to mol-idea-to-plan (gt-bxx)
  • bfa042aaa181b77a22adc4db62a26ac84d38d196 feat(acp): case-insensitive and multi-line propulsion trigger detection (gt-bu1)
  • 30a9106759e74f729540aa9a7e5af2278249d5a4 feat(acp): refactor runKeepAlive for testability and add propulsion suppression (gt-58p)
  • f28273a1e2f3393ef440a15c4eeb7cd49ac5c292 feat(convoy): add --from-epic flag to convoy create (PR #2771)
  • aaff1f1481c4843a22c8b873c9466debeda91bfd feat(convoy): auto-append validation bead as final wave when staging epics
  • eedb353be7fbf702c1f657861acb0ee56216fbbc feat(formula): add inline eval/smoke-test bead creation to mol-idea-to-plan
  • 6c300d48b9c52562c8fc07f51c71b854dea1821a feat(formula): mol-idea-to-plan v2 with iterative review rounds
  • c42daccfdafc68de02fac0235ee2a97320d385b0 feat(plans): draft codex-hooks spec
  • 9b1c3ef3481572c6e16123afb69bd6e6d90cfc8e feat(plans): enrich codex-hooks spec
  • 7eb479273559bae2cfb909cc10cc9a78c956ccd7 feat: Add Propelled state to Proxy for output suppression during propulsion (gt-gqb)
  • bfa4696c460ccca619172d579712284ee86ecbbd feat: Implement Agent Client Protocol (ACP)
  • 5f9493fce59fa8f05353aa6fdfd8aaa47b0d9822 feat: Implement MockAgent test infrastructure (gt-rsh)
  • b38e875571339434182da0ff573f805c489a88e8 feat: add exec-wrapper plugin type to plugin system (gt-5xg)
  • 2f3f2902c13812b783cdc3a97e775de1159c894a feat: add foreign-remotes doctor check and fix dolt-archive default DBs
  • 712c5b5f58d66aa4d2f9c1e793a417614c6bc9ac feat: add gt assign command for one-shot bead creation + hook
  • dd1a5e22d728d72d8bf79aef2eb546c35761065f feat: add gt mountain CLI command (stage + label + launch) (gt-1v3)
  • 3106337ab6d24ef84e978aae0ccbf21418a848e6 feat: add handler (dog dispatch) to daemon.json lifecycle defaults
  • c11da4d8bdb6a1c02144fa75ada09361b71b80f7 feat: add inferRigFromCrewName fallback for gt assign
  • 008b74f12c2516ad13b05d608d962c4935888fb5 feat: add metadata-driven ACP escalation handling
  • af08d79d13a296ae4c43a5d2b4227dfa7fd7497a feat: add test for standard agent output forwarding (gt-4c6)
  • b02e0b12587bcd1bfe52e6894bd1de5e729637ae feat: add typed memories to gt remember (--type feedback/project/user/reference)
  • 03254f53e7dfe4cca3f6ac061a7dd881fc4d0575 feat: auto-push submodule changes before parent repo push in gt done (gt-dzs)
  • 3324f10b87d3c3610a3767b41c7790aed1278019 feat: extend crew-name rig inference to all crew commands
  • 560a2c5c1c589b4b1abd5e3b7079d69a96c4944a feat: handle large messages in forwardToAgent with 1MB buffer (gt-395)
  • 482e20ff353a3c51804b2da3cb9bc5e1272b757e feat: implement Spider Protocol fraud detection for wasteland stamps
  • d0404d406a789207bccc7107cb6fa90b04b1a02a feat: implement integration test for full input-output loop (gt-af5)
  • 897e42df20a645c01a842e69fae3e26577b7b5a3 feat: implement propulsion trigger detection in forwardFromAgent (gt-ekw)
  • 04b347a29f17bdc3cab29f89c727113bb5a32fbd feat: implement trust tier escalation engine for Wasteland
  • f613ef14a8631eb6e6a2da6475c77692def9b25a feat: inject prior attempt context when re-dispatching to polecat (PR #2739)
  • 1916b73018c0c52aba91d62711a159eae3380aaf feat: polecats check CLAUDE.md/AGENTS.md for project-specific test gates
  • 1be20989376415663fbcf0fdf325308de9ce1410 feat: preserve escalation metadata in mayor mail copies
  • 1a77fd56cb174cd1126d2646e4df96a92993b87d feat: preserve escalation urgency in mail nudges
  • ee2d0ea153b2bef1d8c1eae3a590eb801413f122 feat: repo-sourced rig settings via .gastown/settings.json
  • e502a90cd8d809358ce42a2f6d382708c25dcf89 feat: warn when --nudge not used on gt assign
  • b6261fa2230f92dfbe97871165789a48a33a39c1 feat: witness polecat failure tracking for convoy issues (gt-cfq)

Bug Fixes

  • 07b593cc9d00aab725e677ae2e2c0345fcc2d694 Merge PR #2693: fix: compactor-dog hash validation accepts Dolt base32 hashes
  • edab6534e842e0c8e925e5813e47c070c4e7e0fb Merge PR #2694: fix: verify types.custom persisted before writing sentinel
  • 728e51231f8c1c47fd317b58408ebacdff6cf377 Merge PR #2703: fix: resolve rig default_formula before falling back to mol-polecat-work
  • bb2ef90a52cc6dfaca53bcc12ef6c8ebd35a2c37 Merge PR #2705: fix: nudge startup prompts for promptless role agents
  • a23b8b5ebc0a308e0fd22c5db07a8ec2d3897e08 Merge PR #2719: fix: filter MQ list by rig to prevent cross-rig wisp contamination
  • 70b5a8f26d85b77d33dc017bed9b2ce15b59351a Merge PR #2721: fix: auto-repair missing refinery worktree on startup
  • 609b7bdde5bce8f82a058a4658e5b3b3c7dc45f4 Merge PR #2724: fix: handle Codex trust dialogs on startup
  • 0ee39a90742a45d406dc5ab7aa171d186be279f8 Merge PR #2726: fix(polecat): use local git excludes for ephemeral worktrees
  • d72ea9be6e8112410d9e997f0cea66edf236039a Merge PR #2732: fix: skip Escape keystroke when nudging Gemini
  • 970c710b6567fd430589068518f17266b73b02d2 Merge PR #2733: fix: exclude views from compactor-dog integrity check
  • 651f36ad273781c348b4bf8c4ce33537b776de7b Merge PR #2734: fix(flake): Go 1.25.8 overlay, bump beads, fix devShell
  • 611fb8562826b3a87b9a39e949dc6fb09a88fbaf Merge PR #2735: fix: nudge mayor on merge failure, not just success
  • 0ea679821f137a587f326e819bc6d3234285a6c2 Merge PR #2737: fix: auto-supersede old MRs when new MR created for same issue
  • 5985d129cae963c15b68365a79979c22e5908ac4 Merge PR #2738: fix: Convoys created by gt sling no longer empty
  • beb147ee55766e6c691b8b4491efa93e18f4a9c4 Merge PR #2742: fix: resolve gt binary path in Gemini hook templates at install time
  • e21a299cfb15f24d367b3a6b0653036c78259dbc Merge PR #2745: fix: explicit idle-wait instruction for crew workers
  • 829c1510a067c9b218a1b454cc8be95d1d19885d Merge PR #2751: fix: shell-quote agent args and respect role_agents model flags
  • 3a4c64e62cb604b22b8a644a24f08627daa754ca Merge PR #2752: fix: use townRoot instead of townBeads for dep add in convoy create/add
  • efb11a5bde2bda52372fff8c1d8ffdbe7f7e2b33 Merge PR #2753: fix: clean stale /tmp/mysql.sock before dolt server start
  • 3191c59c94914b095bc5284559bd8393eb344591 Merge PR #2754: fix: add exponential backoff to convoy event poller on Dolt errors
  • 65be01d35422b6b7428b73dcbc57d93b4f3e1c37 Merge PR #2755: fix: session prefix bugs and stale dolt socket cleanup
  • 51aad97497a51b250d9d84778546ff924aaf8911 Merge PR #2757: fix: distinguish DB errors from empty hooks in polecat startup
  • db6f18ab11c62d510c62ae41427b10a6ad589c95 Merge PR #2758: fix: skip stale-binary warning for beads-only commits
  • 169af3fac12da2a768743341f81aa48f3a92e154 Merge PR #2759: fix: repair 8 failing CI tests on main + lint misspell
  • ad4c71e111f9a1913d123c108e8bec239ee75780 Merge PR #2760: fix: witness notifies Mayor on polecat completion
  • 7035b01341339293661807cb48a79a0d6672663a Merge PR #2762: fix(crew): set liveness env vars so non-Claude runtimes survive attach
  • f9ecb6fd3e200bbfb6c99926e49a042a7b5735f1 Merge PR #2763: fix(daemon): skip CRASHED_POLECAT alerts for closed hook beads
  • 2f0847c7d68b23a9b0cb7295ab15210f03df5de1 Merge PR #2780: fix: remove gt doctor -v from deacon patrol loop (blocks 60s per cycle)
  • f3183e6a01d5f3dd1300939688c13d100d352d2a Merge PR #2785: fix: auto-upgrade stale Gemini hook files on agent startup
  • 8416a38d846efa011dfc0b7ad536ee88b71ebd35 Merge PR #2787: fix: ParseSessionName handles hq- prefix collision with rig prefixes
  • 5480b6ce09422c41c6255a3d0bacf1e4935b21c3 Merge PR #2789: fix: handle unicode parse errors in gt compact
  • e07e3e562aa5e3e3c400b9d6183149b456b85c4b Merge PR #2797: fix: suppress clone progress output when --json flag is set
  • f1be385131e626123e76fd27f9474576aab9f4ed Merge PR #2799: fix: add tini to dockerfile for reaping zombies
  • fa336900061f1e3d03160b7d37415099ea8e568f Merge PR #2804: fix: isolate 5 tests from live Dolt server and sandbox env
  • bc9f4677948f6cfe0b1e7cb427ec8b89596e29f4 Merge PR #2809: fix: compactor-dog run.sh false positive on concurrent writes
  • bfc573aca200a5a0976e52b5659f9554f1ddca7b Merge PR #2810: fix(test): use sleep sessions in TestCleanupOrphanedSessions to avoid .zshrc node
  • 5b8dc2ccda407d08da42f81f76a1216cef756c91 Merge PR #2812: fix: idle patrol agents burning CPU/tokens in handoff restart loop
  • f451959f29c6097437a84843bbc6900d368cc695 fix(acp): address review findings for PR #2358
  • 3fde56168df23dcad41165ee3567c90c66730ca4 fix(acp): safety check in terminateProcess to avoid killing own process group
  • ef364e64a9b1e98ee6574e3c5f180ce88b6af712 fix(config): remove orphaned ResetHookInstallersForTesting function
  • ff5d447f6fb4d3c07af89331c17873ea7482b26c fix(crew): set liveness env vars so non-Claude runtimes survive attach
  • 754eb0cbd3710814749ccae9920f3eb44d94b47e fix(crew): set liveness env vars so non-Claude runtimes survive attach
  • 4acdad7fb5b7264ceedbad9a6f8342f7cf73bc3c fix(daemon): skip CRASHED_POLECAT alerts for closed hook beads
  • 50606bb78a07969f407a4ae183c9af4de851a4a3 fix(doctor): pass --destroy-token for bd init --force (bd v0.60.0)
  • 6c4b350b93fac228f64f03317e565ad9c9077e3a fix(doctor): use config.yaml port instead of hardcoded default
  • 765dde51ffc551d986a4cefbf2e6e1106b75d9b4 fix(dog): escalate session-start failure + verify work assignment delivery
  • 26eeb9858fa071eb9506711b949c9898336ca0fd fix(dolt): add server-aware database verification to workspace checks
  • a7060f99eb1f8f8eace4979c769fe195f4ba4daa fix(flake): Go 1.25.8 overlay, bump beads, fix devShell
  • aecdc21cb08a816856ceebd0891a180371ddabb8 fix(polecat): keep worktree ignore changes local
  • e6516e5c9e253292aa673f870508b29580a3575b fix(test): add .claude/ to polecat worktree allowlist
  • 704f84ca74bf07c825987e67716c05e650d8569a fix(test): use sleep sessions in TestCleanupOrphanedSessions to avoid .zshrc node (gt-it10f6p)
  • 85e16305900ba3523490fefc1f0ab5ab027d2833 fix: ParseSessionName falls through to rig-level parsing when hq- suffix is unknown
  • ca70658c371412c792c953259c54270befb2df46 fix: Windows build failure — extract Unix-only syscall to platform files
  • dc16936c14802f4cdd51aaa15e436b9937a15fba fix: add claude stub binary for Windows crew_agents test
  • a25fcc046cc24fc7bfa7f8224d94a8df5f2d8c68 fix: add exponential backoff to convoy event poller on Dolt errors (GH#2686)
  • 9c2f0d06b2071d45dd9a4be828578fe30050da61 fix: add tini to dockerfile for reaping zombies
  • 92a0582dc7a59522d6007810d331d5a21acba6ab fix: address codex-hooks review findings
  • 2d70c434c5f88094c8a083bf0e5824b357d282ee fix: auto-repair missing refinery worktree on startup
  • 3fa6d9e27480f1a5b02c5b689f0b77ef608188a8 fix: auto-supersede old MRs when new MR is created for same source issue
  • b91fdace4c5cc17b9126900c3cac902a83bcb02b fix: auto-upgrade stale hook files that use export PATH pattern
  • b03c4bb93dd120cd9503415fb91973d08dca3e02 fix: avoid codex session-start json parse errors
  • 39812adc39829c2e68a61cd506a38f6922bf34f9 fix: background codex stop hook cost recording
  • 87a479995145a53613475e386c7019ee197c32eb fix: cherry-pick beads redirect and crew setup hooks from PR #2702
  • 67cffe50fa6f45cb68146c92cf86b36fe0812f9f fix: clarify formula v2 file paths and flow chart notation
  • 2e058fa101353b9a49110390ef2692f4657ad405 fix: clean stale /tmp/mysql.sock before dolt server start (GH#2687)
  • 7e5dbf5927fb71d8245f5824725479138fdbe5e8 fix: clean up Codex hooks dead code and add missing test coverage
  • 496d69a861e49f7a91abd75756586e32782aac20 fix: close Dolt restart race with idle-monitor cleanup (PR #2698)
  • 9b64b0d327c58c33514a94af6791393df0e55ea7 fix: compactor-dog hash validation accepts Dolt base32 hashes
  • 9a29bfed5d8771f344976183187b69d7a2f1ce72 fix: compactor-dog run.sh false positive on concurrent writes
  • d2fb7f92f1d1babce4563cb082aa58c44c894547 fix: delete superseded polecat remote branches to auto-close GitHub PRs
  • b9b873ac44273a2cb208bc989f2e21f24a418abf fix: derive spider fraud scores from query data instead of hardcoding 0.5
  • 49dac4969250e4ca143962534b19223362da8c54 fix: distinguish DB errors from empty hooks in polecat startup
  • 35d6df1e096c21926709242a939394cd521d157c fix: exclude views from compactor-dog integrity check
  • 43cc1a5330b906bf682f298e951f5034d62385cd fix: fetch-verify-compact-push cycle for Go daemon DoltHub sync
  • ab0cbc01b024f6673f23fb2fba24c05f05404098 fix: filter MQ list by rig to prevent cross-rig wisp contamination
  • ac413c1ae76de84707fb975b9dcd33b0295483d0 fix: github-sheriff owner check gates bd list (prevents missing-db escalations)
  • a3e902c90413b32d86a11273fbcb712db6afb119 fix: gt down leaves orphaned Dolt processes and idle-monitors
  • 27e0fe3918bf4a637eeaf9fab51a89716fb12364 fix: gt hook status resolves correct rig database regardless of CWD
  • 4b0604ed79f111dedf6be4a13003073e8da372f0 fix: guard against closing rig identity beads on gt done
  • 3db786a41438d8d3d9a2e4edf3b352281897f6a4 fix: guard against nil Execution in GetExecWrapper error path
  • 5f5ce5150ac200a2bdb84563e40a3c32ef789fc4 fix: handle unicode parse errors in gt compact (hq-zw7g4)
  • c44432fdceabcf9c69d99ed9ada5eb34d6d5fa07 fix: harden Dolt server ownership detection (PR #2776)
  • 895c0d3d1f879d8e5191066cfc274e4ee3e46698 fix: isolate 5 tests from live Dolt server and sandbox env
  • bb36a57f1fdec9e547a00ce9b3d34ec3d8a68df5 fix: make crew idle-wait instruction explicit for non-Claude agents
  • b40682237156f5ea6f7defb31fa9682bcbf20590 fix: nudge mayor on merge failure, not just success
  • 7335e05b0c0dc893695641b9f13c5d4e9c91f674 fix: nudge startup prompts for promptless role agents
  • 8a61d94765146a37bb7e0b5ca66a1fa5e9fb575b fix: query Dolt server instead of embedded mode for JSONL backup
  • dc17941d984ac251d77af0318a95d585b032d868 fix: reaper fast-tracks plugin receipt cleanup (1h instead of 7d)
  • cba12f346c96eb5feb0a234cfe8f1b4609446509 fix: remove auto-seed of rig settings from gt rig add
  • aa188f1bb40a3620b24b2c00dac91e59226ecd58 fix: remove gt doctor -v from deacon patrol loop (blocks 60s per cycle)
  • f7c86cb7c44ef32731b808918b145551a894a5ed fix: remove unused fallback param from parseIntColumn (lint)
  • bb33adc8cb6b232a7198a3aba1420e66a2908cb5 fix: remove unused townRoot param from resolveExecWrapper (lint)
  • bfee956892a74ab42efe1dee8604e3cd42626527 fix: repair 8 failing CI tests on main + lint misspell
  • 71e6147e08fa21249e7200e55ff6b2a31e1aa54a fix: report escalation delivery failures
  • 33b4e42228ad9685ca686b10e1d1e9c606718859 fix: requeue undeliverable ACP escalation nudges
  • a47d883dc3b83a3d15c9b3f8e60e97cc6a35cf2d fix: resolve 2 pre-existing integration test failures
  • f8e99c7cbe8dc115dd4f354ab8d8ae4243a70342 fix: resolve 4 pre-existing test failures on main
  • 24654548f1c568393b86829fb9f0e6653f939a76 fix: resolve CI lint errors and data races in acp tests
  • 96717ec763edd9c554a6611c593fae6c88e416df fix: resolve Windows CI test failures (nudge poller, tmux, config)
  • 36bc81b7d9660c4ec0b2d60605724a000018b5a5 fix: resolve beads dir before EnsureCustomTypes/Statuses in convoy.go
  • 1d4ba3f8ba81777e014dd14b354c7f3e845513d2 fix: resolve gt binary path in Gemini hook templates at install time
  • cfa46f61916b264e5d6d07f85a159ab8cc45bdc7 fix: resolve rig default_formula before falling back to mol-polecat-work
  • 7ea8586a34773acd6e1c5dd5a5981302b011eb6f fix: revert InitRegistry socket to empty default, remove unused dbName param
  • 775dbc79df9c7eabc0dfd3112d6a4ed90e68412e fix: session prefix bugs and stale dolt socket cleanup
  • 91e592d46a3febf28328d91053d7fb9889ac5b32 fix: set window-style (pane background) at session creation
  • 7ae8fbe86cc7bb8d99eeb0a30874ec53ef7a0436 fix: shell-quote agent args and respect role_agents model flags
  • 894049afc7af40c8694cf7f8536fda390ff44bf4 fix: shell-quote agent args and respect role_agents model flags
  • ec99d68e99f330fd23c8b93de765bcd54e0438cf fix: show nudge stderr on gt assign failure
  • 3430fc42d140a0cdd6d201b6cf0de9a45595bbcd fix: silence codex stop hook output
  • d38d67c85c2ed469d4c2ec1f7d6cc0fca19fc37f fix: skip Escape keystroke when nudging agents where it cancels generation
  • 61248173257e0cd7c108d69830e6ef620a5e653e fix: skip executable permission test on Windows
  • b2234ac89ec9c5993e93a0f20a64918c85e35b04 fix: skip stale-binary warning for beads-only commits
  • 3bfb3b71f7a22bd774b1ac81ba599259dfc95af0 fix: spider SQL compatibility with Dolt only_full_group_by mode
  • 5bb139f2e5e0eb932379d382d132ca4580e62357 fix: suppress clone progress output when --json flag is set (#2793)
  • 4802d96ee95ba7c4d8fe5ef9ceff8ed17cdfa8e9 fix: suppress unparam lint for resolveBeadDir unused parameter
  • 5a5a753c5eaf65b68d54d4c9bf5d0b4cbd2fc284 fix: surface warning when server verification fails in dolt status
  • f7dc7e058ae0deb258e37081a0680f7b523dc8a1 fix: use path-boundary matching to scope process discovery to town
  • df94e46ee9fe71193cf72dd1c06b77497e9e7bb0 fix: use townRoot instead of townBeads for dep add in convoy create/add (gt-zsk)
  • c889e513d3460306f675c8b441852f642f16e4d9 fix: validate crew member exists before creating bead in gt assign
  • 85bf79678c114e5bdedc895967a031f3c7999e8f fix: verify types.custom persisted before writing sentinel (GH#2637)
  • da0d15ead9e895ffb8e7c21b4f76a26ca489f993 fix: witness notifies Mayor on polecat completion, Mayor verifies via CLI
  • 0ca2396eed6d77f7b308a4c504df9147ceade888 fix: witness notifies Mayor on polecat completion, Mayor verifies via CLI

Others

  • c4cb08277b00911f712d1585226715f9f647bea0 Add RoleDog case to buildAgentIdentity
  • db4a6dcb2a759807d8f97ac5ed408aa2636b2c0d Add comments for prime hook metadata helpers
  • 4bca135f0561f31f77b2eb3e3cbc574739c7bee0 Clarify Codex bracket parsing comments
  • cffa8b403da5ce3b73fdbc467b251d374709ae3f Convert Propeller from polling to event-driven
  • 33e58a2f8f80a7c6921c2600e0fc7865095c92f3 Fix Deacon phantom alert storm for nuked polecats
  • 22fa60f6c6fdbd18ede9937c7a96810da3246458 Fix Windows ACP process liveness checks
  • 490d3e3624d2a244708cb6ad019a6cd702f30c71 Fix idle patrol agents burning CPU in handoff restart loop
  • 6c737acce94821ba8e43685b338b6927e5bd44fc Fix idle polecat reuse with live sessions
  • 1a1f3f7b5f5c56945ae20721794e65a7836735b8 Fix sling bead lookup: use town root for bd routing
  • 00910d792d640e6b18145708bda7323cbb3c5c30 Fix spider lint helper signature
  • 77bea4aa7d025a5dede37db7b1b029ec6c6b68a1 Merge PR #2695: gt down: clean up orphan idle-monitors, rogue Dolt servers, and stale .beads/dolt dirs
  • 976cfc684088b0ddf53a7c44697dd377948eac55 Merge PR #2696: gt doctor: use DefaultConfig for port resolution
  • eb528ab675871e5e26604718a51fcbf083685c0f Merge PR #2697: gt dolt status: verify databases are served, not just present on disk
  • b62e2504657751a7613b09ba9da320b05e455da8 Merge PR #2700: Hardened Escalation Path for ACP-attached Mayor
  • e82c1d6fc4470d4a21be1dd8d642591ce50a78ea Merge PR #2704: Fix Deacon phantom alert storm for nuked polecats
  • 7fc7d1637abeff8b0254d0b68bb5330dc3fdfbbb Merge PR #2711: Fix idle polecat reuse when tmux session is still live
  • 92fc04c37b2a07ca7e67df3190fdd2f6cdbd19ad Merge PR #2743: chore(deps-dev): bump undici from 7.22.0 to 7.24.1
  • b9331690d893915ca2ba81c84761f28a542bd057 Merge PR #2750: Remove 'gt config show' from README
  • 8f2be972b4a63adb6a88d4ec166c741c62bf88ef Merge PR #2791: docs: Dolt login is required to join wasteland
  • a3b672dc3355a923545cf88d2a004f9125ad4f0a Merge PR #2805: Merge batch: convoy validation bead + mol-idea-to-plan eval beads
  • 2951a47bdff0f3ae87582d8a832c1f823c2c75f8 Merge remote-tracking branch 'origin/main'
  • dec6ec6da7c5361dc036b1af7df852c72133a303 Remove 'gt config show' from README
  • f59007d6918b4920da604d2e3460b07bd259642f Remove --flat flag from bd list calls
  • dc6751b3ec19f1d84787bee36a99b9930c9320bd Remove codex hooks planning docs from branch
  • cbe5cd0f47623d2c61b7789e947671641792eb29 Remove remaining --flat flag from all bd list shell-outs
  • fa4e33850e5d7a66ec427882ff50eabbded7b45c Revert formatting-only changes in agents config
  • c6a14d2761f23827d78bab604d60a1e65b2287f5 checkpoint: prepare codex-hooks for external review
  • d22e56720a71ab6fd3773b967cc4a300342de43b chore(deps-dev): bump undici
  • 101606f2fd721a71b2be344b4244b46672092041 chore(plans): correct codex-hooks review ledger
  • 2599d8873f41fc7cd574eb76a22949192ff2e0e0 chore(plans): finalize codex-hooks delivery
  • d18efe5f91147e829427a041965711dbfef0b024 doctor: document port resolution precedence in getServerAddr
  • e52155a948c459dd95780dedc1a1b0f0e6e51a7d doltserver: fix case-sensitivity and use retry for served-DB check
  • afaa3e0dbecaaed412355ca3a804846f6da8b952 down: address code review findings
  • b2315fa2f5020d5d3887eb856855078f29f169db fix(compactor-dog): auto-discover databases instead of hardcoded names (PR #2747)
  • 305f9ee0be29af287c93f51a6ebc68eea72c263f handle codex trust dialogs on startup
  • 5850beaa35373ec20cfab5bd0a012e689ccb8fd2 refactor(acp): extract shared proxy code with platform-specific files
  • 96008270edb1adb6f6f604ff08e798aecf89d8dc refactor: inject stdin and stdout into Proxy for testability (gt-6xy)
  • 3998fee1166abed39203dc9d198c8295fa686432 refactor: support codex hooks via custom profiles
  • f1fd7fd0364f2c6e91a505449e995d6857838c8a remove dead bd sync code (command removed in bd v0.60.0)
  • 1061041299304628c1a8c9b8e5cb596151dccc4a temp merge
  • b177af1335c47eb3b06013bd4b41f06fff5b267d temp merge 2684
  • da32d2c983cfd0a20f922a2221ab938f8e24cb0b test(acp): fix test flakiness by using setupProcessGroup and adjusting timeouts
  • 548a7b2d31177b35e027a54275382ff1d701f674 update beads input to upstream main (steveyegge/beads#2564 merged)
v0.12.0 New feature
Notable features
  • add configurable reply_reminder_delay to MailThresholds
Full changelog

Gas Town v0.12.0

Pre-compiled binaries for Linux, macOS (Intel & Apple Silicon), and Windows.

Installation

Homebrew (macOS/Linux):

brew install gastown

npm (Node.js):

npm install -g @gastown/gt

Manual Install:
Download the appropriate binary for your platform below, extract it, and place it in your PATH.

Changelog

Features

  • 98a2d06c8dd63928e21746e0f373e2ba358770b6 Merge PR #2370: feat(daemon): opt-in pressure checks before agent spawns
  • 4ba154a77ac49bb08e89f766b570de850b227095 Merge PR #2398: feat(convoy): add --base-branch support to convoy create
  • 92ab22d860feed0ba0151f1f4b87a5c58d8803de Merge PR #2466: feat: add gt plugin sync to auto-deploy plugins after build
  • 43ead392728f183f7d4362523cd227b18a387c37 Merge PR #2580: feat: add Witness dispatch message types
  • 207f1a5c72854d25c4cfd2e5df3c0d42b930d5c2 Merge PR #2609: feat: add merge_strategy config to refinery (direct vs PR mode)
  • 5dc606f291df0741774ca8a0dfa7cad055830ccb Merge PR #2633: feat: event-driven polecat lifecycle with FIX_NEEDED feedback loop
  • 2eebe50e2c939dee4756d535f696f7cd4f304eca Merge PR #2674: feat(mail): auto-nudge agents to reply via mail rather than in chat
  • 74f19f8252bcb874143155bf773d9f0699cf7a40 Merge PR #2676: feat: use --reference for submodule init in worktrees
  • efb16615854b5b9f960fe55a55c5d79338d4ac6a feat(config): add configurable reply_reminder_delay to MailThresholds
  • 7307240240d54848dbfc3dc3e2c0555935cd9da3 feat(convoy): add --base-branch support to convoy create
  • ae72e8e14d345b3818964207d1ddfab9de4ea908 feat(daemon): add opt-in pressure checks before spawning non-infrastructure agents
  • 94cd895dc0b8ef3ba06a24689880e057ea131913 feat(dog): add wait-for-slung guard to dog worker dispatch
  • 22a1630d3663344bc7d2097116caae3bd7edef7d feat(dogs): hardcode formula CLI paths and lookup order in dog priming
  • 7fcfe8e80908dd612e39b89c1b600daf9ed9d928 feat(formula): implement extends and compose/expand support
  • 7f3a8130ca9f93d188dc30dd91966a4e93df6414 feat(mail): enqueue deferred reply-reminder nudge after mail delivery
  • 3d5c721d438dde881350445bbbdad00a4e89325e feat(nudge): add DeliverAfter field for deferred queue delivery
  • 8da798be0663af74be7960844b90038e51769203 feat(sling): add --crew flag for targeting crew members by rig
  • 2fc2bab2dafa67bde9f7c1460001e5a4dafae4aa feat: add /reaper, /backup, and /patrol custom skills (gt-pv3k)
  • 77c6683f70462684d42fd22b96828a105f61d489 feat: add /review command with A-F grading and refinery integration (#2636)
  • 2e69cdfbb4205af5d322a30e8dd6d5cfdf0e1457 feat: add FIX_NEEDED protocol message for event-driven polecat lifecycle (gt-k0h)
  • 7ec0de9f7b77674f31191eaaefabda8d1005fd1b feat: add Witness dispatch message types (te-l0o)
  • 44fe386a96468719c187aebca17ea7172bce3d4f feat: add executable run.sh for compactor-dog plugin
  • 380fc9c23a540fb8550919c4cd1cac5b8080c583 feat: add git-hygiene dog plugin for automated repo cleanup (gt-cdm)
  • 7a4ac8f7321dcf9a2426cb78ba409adc5b8e2e65 feat: add gt plugin sync to auto-deploy plugins after build (hq-o9gna)
  • 07a89fcfd7bc1b46a8cb94e055dcad47b56bb641 feat: add merge_strategy config to refinery patrol formula (gt-fln)
  • 7b322036028ac647f5099de308a82a016babef32 feat: add run.sh for dolt-archive plugin, fix DB name beads to bd
  • 43c2253c1d6cb3ca0a42c37db5e25285f8c0f159 feat: add town-level crew_agents for per-crew agent assignment
  • 7228d54316b6ad5589172a173a9e3840422d4273 feat: background nudge-queue poller for non-Claude agents
  • 59783678d8720d9ab6e982ae45588ddf2bc98671 feat: github-sheriff v2 — single API call, PR categorization
  • 2c33d11d12addfc4aedba57add77f11a3e5d942a feat: implement escalation notification channels (email, slack, sms, log)
  • 33004801c3f532767db935a164011e66daca9100 feat: new doctor checks + agent bead creation on rig add/adopt
  • 716302d4bb157fe3e6f2573f7ffc3dd1e5004d96 feat: redesign mol-polecat-work for event-driven lifecycle (gt-k0h)
  • 58fcf69dfdc19d060897e57abf6c61b81861e6b8 feat: refinery sends FIX_NEEDED to polecat on merge failure (gt-k0h)
  • d2ac2842a0ca283afbc987c49d5eafa1b749b04e feat: support partial clones and sparse checkout for gt rig add
  • 93c36e5958a599d99c81b71268c123ce6388a47a feat: surface DND in gt status and auto-reset muted mode on gt up
  • 63ebe645fd8504b76c498ab9ee0aa5dcaec159c4 feat: upgrade Copilot CLI from informational to executable hooks
  • 6d1276ec6bb3ec79e60d0f21d8de768883b2df2d feat: use --reference for submodule init in worktrees
  • 6bdd92f7e4fe411c2604bf7f9ac1cddb0ea029de feat: wire --files flag in formula run command
  • 4b1181013a3307602d7f514b6a757789efd29ccc feat: witness handles awaiting_verdict polecat state (gt-k0h)

Bug Fixes

  • b163dd9796d593e8ec48498d01eca9b104c76088 Merge PR #2399: fix: guard against bd v0.58.0 non-JSON output in list/hook/mail parsing
  • a4117e99bb6e54d6bd8c3c56c113d9d08319c158 Merge PR #2403: fix: agent-beads-exist check now verifies polecat beads
  • 3627f0350f6bf552f006c20574f7d8b288258e77 Merge PR #2406: fix: sweep orphaned wisp_dependencies after compact
  • 3bfdcb409ebc724f5e6c22c018a25ed7afedb44e Merge PR #2413: fix: inject Dolt server port into agent tmux sessions (GH #2412)
  • ecc00df3b6b9019ca58b560d87b3b4dcf371f812 Merge PR #2421: fix: convert session-hygiene from plugin.md to deterministic run.sh
  • f0fb85918b10ae580fc53060ca2b36577f0d4678 Merge PR #2442: fix: prevent tmux socket split-brain causing nudge failures
  • adfdb0237aa703cfa0b8057075db440f610ee192 Merge PR #2459: fix: auto-purge closed ephemeral beads on session end
  • d39fb361e8fde7f70a0d6a1dd6e8cdae4bc6a51a Merge PR #2467: fix: check rig-level metadata before town-level beads redirect
  • c44fd7e50ebf9d28a458121c5090a7bec3f9fea2 Merge PR #2469: fix: reaper Sprintf bugs and missing schema guard
  • 04df5063124269815ec6ed0e0cdab2ca09a4b1ac Merge PR #2477: fix: include beads_prefix in gt rig list --json output
  • 814e08382ba86ae2ee78729c54d0df2935b96cc1 Merge PR #2479: fix: EnsureMetadata repairs stale dolt_server_port
  • 46b6f8eef7f05cc5a5987b8f9690839f3b9807d3 Merge PR #2487: fix: add --rig flag to gt crew start for consistency with stop
  • 3b8bf756c3d9aaff556ee8ac59aeca3a7f76918b Merge PR #2494: fix: prevent TOML env from overwriting AgentEnv identity vars
  • 07570b9f3955c3460b24494722790f31f48d7f23 Merge PR #2511: fix: DEFERRED exit incorrectly closing work bead
  • f86ff9f80697556ac14798de29c83bfe72850891 Merge PR #2515: fix(beads): add --flat flag to bd list for valid JSON output
  • 04e79ef8e7a0890a2e6965c7798a7ad7a9ab6855 Merge PR #2533: fix: restore hook_bead slot write on agent bead creation
  • cba8ac166612958c83462ec0419ddde534013f9a Merge PR #2542: fix: replace fixed 200ms daemon startup check with polling loop
  • 3cb14ceea559fcce559cdc1fb842512cc1ff26ba Merge PR #2547: fix: add warning log to DatabasePrefixCheck.Fix() (GH#2455)
  • 169278aeccf1739887d948bbfad5063f141f56a3 Merge PR #2548: fix(docker): detect arch dynamically and add gt to PATH
  • cb4675b6d6d90276dd2f1e17396bc7063bdc17eb Merge PR #2550: fix: remove nonexistent --global flag from gt enable output (GH#2543)
  • 67d3523203669215db4ba26e7d2b1ab2e0b43256 Merge PR #2551: fix: use CommandContext in dog done to prevent Cancel panic (GH#2528)
  • 01983a8f9260d153ad236210e3bd874ba9fc6280 Merge PR #2552: fix: add StripBeadsDir to convoy dep add/remove for rig-prefixed beads
  • 5d9bf02429d1fb831f87bed404fa756915775257 Merge PR #2554: fix: reject path separators in rig names (GH#2544)
  • 12ebee14d66e2acb1dded1d82e476488329d1c71 Merge PR #2586: fix: prevent bd from spawning orphan embedded Dolt servers
  • b865fb1524ee5874491b04b298494edee28ee081 Merge PR #2587: fix: make PrefixRegistry resilient to missing rigs.json
  • ef49140b356fb2268c8a08f8d284d472867a3953 Merge PR #2589: fix: FormatMailBody detects run.sh and dispatches script instead of markdown
  • c5c273f9b03784000c271ca6695a34dd8039db1f Merge PR #2591: fix: read rig beads prefix from rigs.json instead of missing config.json
  • 9adb42032937476e18dcb6495879e11661b343c8 Merge PR #2595: fix: persist formula --var context for assignees
  • 374222f8c3fa8119e8943bb0cc31e9cc87ec112c Merge PR #2611: fix: render hooked formula wisps as workflow work
  • 39ff68d2199875c334a8a4002be067c227562fd3 Merge PR #2613: fix: avoid race condition in Dolt startup readiness check
  • cedce11b3bf08af6ba91612762245f686f5ab454 Merge PR #2616: fix: add dog role to identity resolution and sling target
  • 58e32f0eda57aaa8bab9654cc0b9758e8a6d1770 Merge PR #2622: fix: clean worktree state before branch switch in ReuseIdlePolecat
  • a6b0da44451f60f491f0a8967877888471a005ac Merge PR #2625: fix(convoy): cross-database dependency resolution for multi-rig towns
  • 63914b7b79fd854e3ae1bad9fbf9cd4fd8f57f1b Merge PR #2626: fix: gt prime --hook compact path too slow for non-Claude runtimes
  • ef1d4ad5531967ce5f1e61bd02f622e3b9d88122 Merge PR #2627: fix(convoy): CLI-side cross-database dependency resolution
  • 5e39babc92e64f97d4a1e0027ab743260979bc42 Merge PR #2629: fix: add RoleDog to session identity for quota rotation restart
  • 37d1055ac43f9f457957bb8272e2b75d57868d85 Merge PR #2639: fix: add scope guardrails to stuck-agent-dog plugin
  • 36887a27dfa2053cf04183072bec4770592a45c6 Merge PR #2643: fix(dolt): normalize backslashes in config.yaml on Windows
  • f68b77e4c9f28b6975d668a77cc4543b425ad07a Merge PR #2658: fix(ci): restore cross-platform harness drift and deterministic convoy ID tests
  • 03473915f40050971ffbbeaecac90e1817db8cc5 Merge PR #2661: fix: use Beads wrapper in scheduler dispatch
  • 76311d6eb1cfdb571c0392e72eceff205009e21e Merge PR #2663: fix: back-link source issue to MR bead on creation
  • 6c68457a4ca87c44cf3e40399e7366ba6b3ca718 Merge PR #2668: fix: use rig name and correct DB prefix in EnsureAllMetadata
  • 8935a8e836d38d707ae00cc083afdc56709fd715 Merge PR #2670: fix: restrict remote branch deletion to polecat branches only
  • 2b5316bcf835561ca2b1b33fe268f0028c875ab4 Merge PR #2671: fix: remove unused dbName parameter in batchDeleteRows (lint)
  • eb2f5ecc2018ceec06312376466d75fcb5ab6e4f Merge PR #2672: fix: move --flat fallback into Beads.run to prevent re-injection
  • a3de309889f7123d30cd4b484451e6a3c9e63426 Merge PR #2677: fix: degrade wait-idle to queue for agents without prompt detection
  • 1efc1ecd4efc0dcbf0adc638ab17418e5cf0aa0d fix(backup): add spike baseline recovery to prevent permanent export blocking
  • cf565d0b7d481201d8b0f217772af8d36f2bee9f fix(beads): add --flat flag to bd list for valid JSON output
  • 4eba9d7f5264b00756ca768ebd4bc1f90c3da323 fix(ci): extract shared convoy compatibility foundation
  • 476b1a5aa605890717d099dd8a2c6f1e2c280c87 fix(ci): restore shared main-red failures
  • 87ed4920f2b9140c7bd4a01fe1b3ee1b2327afb2 fix(ci): restore shared main-red failures
  • 7801bb5f6ae7577c63cbc2ba55ca1c7d0444720f fix(convoy): CLI-side cross-database dependency resolution
  • afe2abb484eb7b3f9da116da981956b2d7504978 fix(convoy): count tracked externals in status and list
  • aaa467013329760d1cb7b28579ed09df95844b0f fix(convoy): cross-database dependency resolution for multi-rig towns
  • 3530483b6dd355df4b26beecd526521aaa15aa87 fix(convoy): route HQ convoy reads via town root
  • 2721ca2e392e2f5e18eb9ada2d54a7d1707073ff fix(convoy): share allow-stale tracked-issue reads
  • 5b7a37892d9c3f26e1bf9c1cd349886bbb43569c fix(deps): update go x/ packages
  • 5cb8a4111e829625ccd8a8f16734bc606158a775 fix(deps): update module github.com/go-sql-driver/mysql to v1.9.3
  • 9a547ff1ac135541db49fb886367f82917610fc4 fix(deps): update opentelemetry-go monorepo
  • ac4b65d1aba83529b5871db5de0e26bc239a4e8a fix(docker): detect arch dynamically and add gt to PATH
  • 01e4df5d067ae4469c20b8f90f072c365a3a0d7d fix(dolt): normalize backslashes in config.yaml data_dir on Windows
  • deb8a5252c933526d6cf769cc6d529df78cace23 fix(dolt): use TCP fallback for IsRunning on Windows
  • f09a1ddde138877e4b65e2ab322682dcd9beb1a1 fix(formulas): persist merge failure context to bead instead of losing it
  • fcb8f0e056be83d486ab7ce2c59dd90bae8f4fcb fix(hook): route gt hook show to rig DB for remote rig-level targets
  • 4d35143f02ebbde05b1de7ad09b3e0acb10e1393 fix(hooks): background gt costs record in Stop hook to prevent SIGKILL
  • 2abc36d7eae2e55ae6b3d822da3f93e0e3de962f fix(nudge): deliver queued nudges via hook trigger, not raw tmux send-keys
  • a358ef4e6fd2a9298cb85d0596cec37e1023ae87 fix(refinery): skip MRs with missing branches instead of fatal exit (rc-d46) (#2539)
  • a6e349b896236a1093528c4b2caa6e4123f13c0b fix(sling): load default_branch from rig config as base_branch formula var
  • 48aeff95f9701b10c6e54f0583fd8f408205e802 fix(witness): emit MERGE_READY channel event to wake refinery await-event
  • b965060d302887ac30064064767239114fadd34c fix: CI sling tests tolerate --allow-stale cache and WithAutoCommit
  • 6202ffc0e87b69dfc4ebf6e74db7613fe1516b8e fix: EnsureAllMetadata maps database names to rig names via routes.jsonl
  • a1ddecdbc90ca8116df2887e4603549e824fbc37 fix: EnsureMetadata repairs stale dolt_server_port in metadata.json
  • 7c40de01cf07186df2677adebe084a4feb277dd7 fix: FormatMailBody detects run.sh and dispatches script instead of markdown
  • 77092bb2c315c5e7374a33c6346ac1a36eb1d168 fix: add --rig flag to gt crew start for consistency with stop
  • 1a568fb1ac7777bd9de4f1134d882b3e8db80319 fix: add RoleDog case to resolveSelfTarget for gt hook (gt-t2zf)
  • 6c24586e10f3dbf33cc446329d1016c8e1e8ad95 fix: add RoleDog to session identity parsing for quota rotation restart
  • 3bf8a66e339c0d6f283ef77608706dddf0660ba7 fix: add StripBeadsDir to convoy dep add/remove for rig-prefixed beads
  • db0b9765bed5ddb7680395a2517b72fb0c9b4017 fix: add diagnostic logging to daemon env skip path
  • 014bb42821c46c3335f6299f0d456a1558a3f59b fix: add dog role to mail identity resolution and env setup
  • c3810c40015dabdd129a52530d6c79de6b17d923 fix: add dolt.idle-timeout default for Gas Town centralized Dolt
  • 37346f362ff683229d5a9df1016eceade05e3b9f fix: add explicit scope guardrails to stuck-agent-dog plugin
  • b734d532b2bdf43b7200b8eb227a5b003e971a84 fix: add nil guard on rigCfg and read boolean MQ vars from bead labels
  • f568c275282668793c2d57b6ba364d63ae88822e fix: add pressure stubs for Windows/FreeBSD (release build fix)
  • adee1fa6dd685c6a0bf8a2643cee3dbe7a59928e fix: add state.json to crew workspace gitignore patterns
  • 35a2697b920c1d23743c951e116639d5651ac521 fix: add state.json to required gitignore patterns for crew workspaces
  • 7a202c4eb67f62d5ae3a702c2444b0d13bcfa1f9 fix: add timeout protection to gt handoff blocking operations (gt-s9ib)
  • db32280faa9d5648f2b766f114167ec1e8727006 fix: add warning log to DatabasePrefixCheck.Fix() before prefix changes (GH#2455)
  • 62d45199b9a2b9486f5219083c53e2ebb2443bff fix: address PR #2430 review feedback
  • 4a69240a01d1d644b17e55fb600512c2d860c420 fix: address PR #2495 review — atomic writes, tests, style.PrintWarning
  • 7478fd2bdabdce1f19d15e36f5d9e0f0740e48cb fix: address review feedback on plugin sync
  • f587f7ad02b528e650918ee0d77226f990148df1 fix: agent-beads-exist check now verifies polecat beads (gt-5f1skfj)
  • 3c3cbd31bec1e82821af5ea9662760a4a0f4aec5 fix: apply same TOML env guard to daemon lifecycle path + add tests
  • bcc7ac1604b4554d025d5720021e0fe2ac642711 fix: auto-purge closed ephemeral beads on session end (hq-6161m)
  • 6a0f498853a1962cab8a7de06454acfd9b63929f fix: auto-start nudge-poller when degrading to queue for non-Claude agents
  • b017a47d48ef2c4ab6e7f6f505077f1f56ca91f9 fix: avoid race condition in Dolt startup readiness check
  • 8a509bbde6b036254668ec6ab0e48e4e09e01749 fix: back-link source issue to MR bead on creation (GH#2599)
  • 209e427d5696872d3aecf17838506ef7afaa5dbe fix: check rig-level metadata before town-level beads redirect (hq-x1ucu)
  • db23a4368006ba42f7038ed6c0e62d46634071af fix: clean stale dolt-server.port files on server start (gt-t642)
  • 25535b8e16c36cd8d05bb2e81698bf313eeb2dbe fix: clean up IsResolvedAgentClaude godoc and add nil guard
  • 13ad1a8ca5d4b5bea4e8cbc9e1ff9a5d9b7f51da fix: clean worktree state before branch switch in ReuseIdlePolecat
  • 61b88b0ea7648a47b8e4fdbe5191f1db32f0be43 fix: commit town-level config changes after rig add/adopt (gt-n2kn)
  • d5b5d209ff7852030f911b897dfd4d31712ddb40 fix: compactor-dog use DOLT_FETCH instead of DOLT_PULL for live servers
  • 879ea531f573c52deedccee387b57943adfeec64 fix: convert session-hygiene from plugin.md to deterministic run.sh (gt-rpkc)
  • b82a3782e8ac098e8efb35f4b4b9c834fbb11309 fix: correct comment example rig name and normalize issue references
  • d852cd4c3f2007f7b2758367c4aca38d8d4531af fix: correct default database name in compactor-dog (gastown → gt)
  • a40c358e975fb0b8da468d0c8099b8c3eeaf9aab fix: create wisps tables on gt Dolt server, not just bd's instance
  • cf3bdbeeb5021dfd0773b696ce36ca0efd744fe2 fix: daemon fail-safe when Dolt unavailable, suppress docked-rig warnings
  • daad4c901d43ed5b8e9297da64dd23719028bc96 fix: degrade wait-idle to queue for agents without prompt detection
  • d9a72a5abfb120d158cd37a9fa606a7f575b34d4 fix: display mail timestamps in local timezone instead of UTC
  • d7ef2d6ebc5263b49662978b9ddaa0ec413d3566 fix: doctor --fix reopens closed agent beads instead of recreating
  • ab71b3dba29edd7c935fe5651eaa5d37199fc8c4 fix: exclude agent beads from wisp reaper
  • 551582a17a219706bc3e9c4804aa42439ddb46b0 fix: forward dashboard port in Docker and bind to all interfaces in sandbox
  • 5265043c10c92f25a082f1a8375661f55c4c3677 fix: gt dolt sync pushes via SQL to avoid stopping server (hq-qo8ma)
  • de818831c6c7d49a096e1b8821482042262ceb03 fix: gt prime --hook blocks forever on non-Claude runtimes
  • 6b68f9070b09cdb11e836294a9f7282ea117c5c0 fix: gt prime skips patrol wisps on parked/docked rigs (gt-eqa9)
  • 4db877a0bbab5ec9638ea9d3fbe53cd503bb887d fix: guard against bd v0.58.0 non-JSON output in list parsers (gt-sl4)
  • 53567e6478ac7c82c9f11d6301f9bd060806f2d0 fix: guard against bd v0.58.0 non-JSON output in list/hook/mail parsing
  • 32298c6cbc71b981ca4b01493e129fe41ffcbf15 fix: handle --model=value equals form in runtime label parsing
  • 309e0b08e3c0f9e6e3b4b37e1a023a7a588348b8 fix: handle non-JSON bd output in ListOpenSlingContexts
  • fdff3cb6cbc8887954393ae3f4ae4c60109f9723 fix: harden AutoClose and doctor against destroying protected beads
  • 44452cc4c0dd4e27142fd7bf74580f2de2bfc2f9 fix: hide docked rigs from Mayor tmux status line
  • 64fc8ccffb3b83e3310f0e6992fed554d9c2144d fix: honor --base-branch in formula rendering and MR targeting
  • 67af59b360abb111fc22270e2d4e41fe63278d36 fix: hook show shorthand normalization and stale hook_bead lookup
  • 2660def8d416ea97089495712a01ba0a1b83341e fix: include beads_prefix in gt rig list --json output (hq-jz80q)
  • d8f6467edeb717b9f973e1206c38f77307b54d0c fix: initialize tmux registry in nudge for non-agent contexts
  • a871bf25cba4aea6d23eac6b903862e1f7cc21ae fix: inject Dolt server port into agent tmux sessions (GH #2412)
  • da38046e2bcae191aa88e52ed2db9da6f7264ecd fix: make PrefixRegistry resilient to missing rigs.json
  • f379e3b32f5b197e327de41bce9b1358d7fd0730 fix: make SyncPortFiles idempotent — skip writes when port matches
  • 08c22cdeb48546f231ab33d7abd0bd80db81cc8a fix: mount FOLDER to /gt with runtime workspace initialization
  • 19b224c55c4f3cff60c87a9b5b0b68969015bafe fix: move --flat fallback into Beads.run to prevent re-injection
  • 1be905bfe8afeedac60fa40dc01c3c5eec0cf517 fix: move compact/resume check before Dolt-heavy operations in prime
  • 847ee6b3e9c2f570a346014ea9396c4b99982b51 fix: mq list returns empty for merge-request wisps
  • 86d3c77ed74318ec2337d73e40d103afe9e6e581 fix: namespace tmux sockets by town path hash
  • 0fbc53e97c41bc4d2f1f4e097dc2c2412c37951e fix: notify mayor after refinery merge, always delete polecat branches
  • 4a8cfa6d9d0156ecedd9e33b9fc68bc5887d51e7 fix: pass rig beads prefix when reading layered config in patrol vars
  • e9c4c65ff62a759e5455bac73cc293199ee209eb fix: persist formula --var context for assignees
  • 8137131d00c476533305e9ddb8ffb0deecb4ba5c fix: persist home directory in a managed Docker volume
  • e940b2e5bdd6b13ca25d8ef4dabae358efdc7587 fix: pre-validate command binary in tmux session creation
  • d5713eec4a951afdd08d64e3f64446f2122973d9 fix: prefer structured agent_state in GetAgentBead
  • f1fea778a7a42fd542e267a99e2e47ba15c7f589 fix: prevent CLAUDECODE env var from blocking agent session creation
  • 58d0d0c8c0c946c8acfffee94b68f25b260229a6 fix: prevent TOML env from overwriting AgentEnv identity vars
  • e55e3f24c1cc8f421f33cbe669944180b224b1e0 fix: prevent rebuild-gt from downgrading binary (crash loop fix)
  • d09dc33353248b09ce69b7f72396bb1ae5acf0cf fix: prevent tmux socket split-brain causing nudge failures
  • f78643079509c0dde911553f0ebdecb034cf4ba5 fix: propagate BEADS_DOLT_PORT to agent sessions
  • 0dacd71b9525c4c5cbd8a27787efb4254252a7fd fix: protect standing-order beads from AutoClose reaper
  • d51f9970fa580d769e62579dc86f95ba29eb01f3 fix: protect standing-order beads from polecat removal status reset
  • 8280d79959c5bb68b608a924579b07633412fd23 fix: qualify GT_ROLE in role TOMLs and prevent TOML env clobbering AgentEnv
  • d06966a301eef4e0ff9e8f6feb6940f04ba95015 fix: query wisps table for ephemeral MRs and mail messages (#2450)
  • 039f8dae877f5139f3d756e54333767fc70c7505 fix: re-probe bd --allow-stale support by binary path (#2570)
  • 98b748d8b7eadcc6efeca487932f5d237033172c fix: read rig beads prefix from rigs.json instead of missing config.json
  • ff43fa7ab2b76f43f3f20fd50857e079cb9ee73c fix: reap idle polecat sessions to prevent API slot burn
  • e78cad1e62b985f4a1f0c52aedfa1d7cd7804daa fix: refinery patrol reads command vars from layered rig config
  • e26cc4087a593dc34a21102efbb685d9b29523fa fix: reject path separators in rig names and harden prefix derivation (GH#2544)
  • dc1d11db54cdc40f6944a92efb348bd2ecf18a9b fix: remove WithAutoCommit from hookBeadWithRetry
  • e9c29298187e66f7b6d475b320de4716f5b5412a fix: remove dead homebrew tap job, make npm best-effort in release workflow
  • f6935ac40cd0832a7bdecb2f4f8469b904d548b2 fix: remove hardcoded go test default from formula and config
  • c710279894a526125e888e51cdd32ec993927848 fix: remove nonexistent --global flag from gt enable output (GH#2543)
  • 334349500e2e7f2a186dbd798042c478501cee01 fix: remove orphaned RoleLabelCheck doctor check (gt-324)
  • 35ea9534f37219f46787eb9a32014b0fd7d4ca85 fix: remove stray dbName args from reaper Sprintf calls, add schema guard
  • 6645565027b031954033da596a45598b9d380128 fix: remove unused dbName parameter in batchDeleteRows (lint)
  • 85b6309a3e827eaea231fafcc4980a9f87dcc021 fix: render hooked formula wisps as workflow work
  • f6e17f436a4d5f96904800bf9f7d6ca50531d4fd fix: replace fixed 200ms daemon startup check with polling loop
  • f9ce9fc0daa74913b6528bdefdad58d75a80110a fix: replace grep -P with literal tab for macOS compatibility
  • a0d59455645afe01b1e5edf89ca0ef8cd85e0685 fix: resolve CI lint and test failures on main
  • 9de066d2ea984cd5497b4553327ae1e46f3a1281 fix: resolve mayor dashboard runtime from agent config
  • 56e6ddf369d69aad5d63f9379b0705caca79d551 fix: respect no_merge flag in polecat zero-commit check
  • 5e0d1c3322ebc1dc2113908d3ed0822ac3239794 fix: restore WithAutoCommit in hookBeadWithRetry
  • de2d8868f48c74e529ec938cbc07e6ee1cdb82c6 fix: restore gastown beads backup clobbered by PR #2324
  • 630e879b0ad628b050bb171819f03dcceb80e6ff fix: restore hook_bead slot write on agent bead creation
  • c2e21d13ae18221eb0646bf029a597202b0ff047 fix: restrict remote branch deletion to polecat branches only (GH#2669)
  • a3fb88a41f89d597366653b60683e861b201f98c fix: retry hook lookup in polecat context to eliminate race condition (#2389) (#2510)
  • 48ed998322bc86e1a933be1e8ed2ba13399d3a31 fix: review command followups — robust test lookups, wording, base branch detection
  • ab1d955d6a921596d02d2ccce34f4ac7021f8513 fix: route agent bead creation to wisps (ephemeral)
  • aac5cfca6d713b45f4cfd8914d714d1171c2b389 fix: route mail/delivery ops to correct beadsDir by bead ID prefix
  • d3a3df1196a921fdce82a3d26c0a8263dd685a7e fix: set GT_HOOK_SOURCE and GT_SESSION_ID in Gemini hook templates
  • 6819afacbdddef0856d8c493e745f18a55a0ddc5 fix: set beads.role to maintainer during gt install (gt-xnqf)
  • 18e04cc31d565ec67bae898e60ae8b0fb2e78e31 fix: skip --reference for shallow clones
  • 0f949769b845962bfd3981eafb9448a7f4f99137 fix: skip findAgentWork retries on compact/resume path
  • 45b3f1917a0877c058f10fc71546ce15a9fd57d4 fix: skip hardcoded Claude start_command for non-Claude agents
  • db851a5904ac57e837d0ed65bf2285a98a67e37c fix: skip redirecting rigs in DatabasePrefixCheck to prevent shared DB corruption
  • 70126b41762de7b62b9556852cd91dec7bf2851a fix: start Dolt before agents to prevent boot race (gt-t2zf)
  • 3164aad7a5e9fd1f653b8112268bd6e13bd7671d fix: strip bd stdout warnings to prevent JSON parse corruption
  • 8278b1dc4a573cde817c35156ab61b8548538557 fix: substitute rig vars into patrol formula steps at prime time
  • 554f4e92a9be7eb2178f4d5f00d7f9ca2f76cdad fix: surface JSON parse errors in ListAgentBeads
  • dd4f810fef0a95d3e8cd45f5fb8ea03de771d084 fix: sweep orphaned wisp_dependencies after compact (gt-7y37lsv)
  • 4eaca225fc790608de02fc434bfbf561770fc674 fix: sync dolt-server.port files to prevent orphan bd servers (gt-t2zf)
  • b97a04eaf016413034208d0f92f37cfd120b407f fix: sync port files to deacon and dog .beads dirs (gt-9t6y)
  • 41e50cc929b9cc515333a7fc3e720cb2c2881846 fix: sync with DoltHub remote before/after compaction (gt-mkd1)
  • 3fc2014252c43151aafa375c006743da77d44db1 fix: update stale TODO comment on polecat spawn cap
  • ce5a6a0ad9406cac1bdf3a78b122895d2eca059c fix: update stale database names (beads→bd, gastown→gt) causing backup failures
  • 2f8c55d2a3ffe57ccdfb729fb55f47e02d184dbe fix: use Beads wrapper in scheduler dispatch instead of raw exec.Command
  • 54b9eb264c9c9c9f83bdb77b79158eba157e0cf8 fix: use CommandContext in dog done to prevent Cancel panic (GH#2528)
  • 8eea55bbcf297b2873ae76190b3b0265b87aaf3a fix: use Labels (plural) in hook_slot_integration_test CreateOptions
  • 8358ade7f8ab3e654ef5932891034ae990169bd9 fix: use default tmux socket and disarm respawn hooks before kill
  • 252f12aafb576ec9d1801896e858f483cc0dcb9c fix: use native bd routing to read rig bead labels in patrol vars
  • 068b1dd8e5c4bacf5d99f4de2cf9712729f129f5 fix: use qualified GT_ROLE patterns in rig-scoped role TOMLs
  • 274f83b1617ee3e962bc3e94905b31a42e95e3b7 fix: use rig beads dir in prime_session hook detection
  • 444a6fb147c794dca65c7a0105695b7d67c9adc1 fix: use rig name and correct DB prefix in EnsureAllMetadata
  • c1b25f94c234278b9ade88fc3b07d9d2a02593c9 fix: use rig root for beads queries in prime hook lookup
  • 0f33903ba1b0c39b30031848e99bbeccf9ba4d3e fix: use test fixture in TestParsePluginMD_SessionHygiene instead of local filesystem
  • 38f7b3805ee73984a4ef8d9731cafb3798a60560 fix: validate db/remote names before SQL interpolation (defense-in-depth)
  • c7cfa2d66b2ad1bcb019d53bf8a7851060b851d5 fix: validate remote names and commit hashes in compactor-dog run.sh
  • 7272f84a63dcac98e90fa938dd2dc48049cbdfa8 fix: wait for Dolt MySQL readiness and always pass --server-port to bd init
  • 92082232c0aa5ecaffc5c231e7be8115f7274deb fix: witness startup fails with exit 127 due to env/exec ordering

Others

  • a0e0de2708a037fb2ac8e60a32cabbbb320dae40 Add agent framework survey (w-gc-004)
  • f428b4f54e01759c648dfe1c1d2a72d6435169c5 Add dolt-snapshots plugin: lifecycle-aware convoy snapshots (#2324)
  • d5bce7d5efaae7f97e501d059fcebc0b1064c5e1 Fix DEFERRED exit incorrectly closing work bead
  • 8cf48d084b649bde11c51c6fdab9a7b31d283ccd Fix daemon escalations misidentifying as overseer
  • dba1fa70f1b86ee0c292fb07a1a5209a5e65fa03 Fix false positive in health pollution check for ephemeral wisps
  • a246a57fda9a91c5139b3cd819c18ed877293225 Fix gt dog dispatch --plugin not starting dog session
  • e6808693138545c88f2c5e845ea63c0abb336466 Fix witness startup: env(1) cannot run shell builtin exec
  • eaa5d4e371ab6c9a094ce0cccfd86d7274861720 Merge PR #2514: Fix Docker dashboard port forwarding
  • ce3624b817c663bad3119b8109dc0d2cebf0b7bf Merge PR #2520: guard against bd v0.58.0 non-JSON output in list parsers
  • d8d8d67e8fec5cfde94b21df15012296e33f9776 Merge PR #2532: use rig root for beads queries in prime hook lookup
  • f856d1f76ae3cef73718c74530b978b7676affd8 Merge PR #2549: research: macOS sandbox-exec capabilities and limitations
  • 0264cb4759ad25be84a26b59b4e2b4137101b964 Merge PR #2576: bump filippo.io/edwards25519 from 1.1.0 to 1.1.1
  • 061399724b28cc1fc66d48ded12525ba05f1f2e0 Merge PR #2579: prefer structured agent_state in GetAgentBead
  • 75be0169416b13fe47d3b1671f8c6ab5635625af Merge PR #2581: agent framework research (w-gc-004)
  • f3850e6274a9392b693179b5a267697eeb85878c Merge PR #2584: gt prime skips patrol wisps on parked/docked rigs
  • 999bc0f5693eb70363f1523f948830dec62891bb Merge PR #2588: set beads.role to maintainer during gt install
  • d224dd2975800c7cdbb4344e5273ed796d0de3d7 Merge PR #2592: update github actions pin hashes
  • 40f448def6ca46eeb70d1a7a20280e8cda4296b0 Merge PR #2593: chore(deps): update dependency promptfoo to v0.121.1
  • 462f157e64dc9c6046d3a10765bae3512caaeea1 Merge PR #2597: update go x/ packages (sys v0.42.0, time v0.15.0)
  • b444ce15d86951aed8a57ba282b15c7f647aa6dd Merge PR #2598: update go-sql-driver/mysql to v1.9.3
  • fd821e711e49126a48a9f938a31c4ac382aceab4 Merge PR #2602: update opentelemetry-go monorepo to v1.42.0
  • 779a58c0a5122efe648ba04f56f98e307d8c8ecd Merge PR #2628: docs: add Gas Town communication instructions to AGENTS.md
  • 9a7a3a5e03616a294614a5cbf3a8361cf776e121 Merge PR #2653: build(deps-dev): bump hono from 4.12.5 to 4.12.7
  • 264893add889ef8337bf7e2cc4f6ecf089c6ce25 Merge PR #2665: docs: crew specialization and capability-based dispatch design
  • 1f9e270852ed4fb84994700e151ac48a1bd72f96 Merge PR #2666: build(deps-dev): bump tar from 7.5.10 to 7.5.11 in gt-model-eval
  • 5fc253229f5d6cf69a2cbec1b4ab159174dcf59b Merge main into fix/formula-var-context-standalone
  • 5a81ad331dd4ddadd183992f4f81f5ac278bc795 Merge remote-tracking branch 'gastown/polecat/furiosa/gt-nqy9@mmjtqdye'
  • cf582541b625dbb5b49e8628976244d6e2f2efa5 Merge remote-tracking branch 'gastown/polecat/nux/gt-pv3k@mmjtqumk'
  • 5009f9560a80f0fe9548b107f15983a346a6b716 Merge remote-tracking branch 'origin/main' into codex/convoy-town-root-routing-2604
  • 6b5f112517c23e5999f86b40ed5c337a29d25170 build(deps-dev): bump hono
  • 4c5dd1c9a157ad455c797a644ff8b8e70e4612a8 build(deps-dev): bump tar
  • 2620ad10cc28a96952a8770b73d7482152181679 chore(deps): bump filippo.io/edwards25519
  • c6f8fe121886f6feb6a8717ef597603974f8fa39 chore(deps): update dependency promptfoo to v0.121.1
  • 87897b106ea157b5befd4f8d11d896ddb245d378 chore(deps): update github actions
  • 4369ae3f1b47a4d5af3482ee7bdc51369295e094 fix(dolt-snapshots): add launched status and fix connection pool safety
  • 67d9b897de7334bb3aa97c767bbf994b177428a2 fix(refinery-patrol): embed Active Configuration block in formula root description
  • a42a03230637bc81dde5ea5a6d11ab074adf83ec fix(refinery-patrol): restore showFormulaStepsFull with var substitution at prime time
  • c0a06a6760413b043440c78e59319ed918e93e48 fix(refinery-patrol): substitute vars directly into Variables table
  • 8a9efdc098c197c1ad19aafc24560e56fe244400 refactor: remove shouldBeWisp heuristic (ZFC compliance)
  • e3a5f80a35b35a75db0d64252b7821a1b1dbd15d research: macOS sandbox-exec capabilities and limitations (gt-6qt)
  • 3c5c04a6f4f1dfcae0d2c38e0a3a071d1e25c8d0 research: macOS sandbox-exec capabilities and limitations (gt-6qt)
  • 5378421dfff0f2daf093c3e6d2d5d5d095c45fac test(convoy): remove short-id uniqueness flake
  • d15149c323d2602effa6c02002942d6f472d50e8 test(convoy): remove short-id uniqueness flake
  • 2f38bce7d518fa56964692ba96f943b4a430a48a test(mail,config): add reply reminder tests and update notify tests
  • 3e7a0696eb5318f3ada476eacef0c1581eb9e7e0 test(nudge): add DeliverAfter deferred delivery tests
  • 262708b0b344d9e7151c6fd16d5343f603751e3e test(windows): accept claude cmd paths in config tests
  • 6263d9ea316e40071570c8aa06c48faf3594e906 test(windows): accept claude cmd paths in config tests
  • ef4128554ed40348832234dd91a03cab36d1cdb0 test(windows): fix shared harness assumptions
  • 78c1c3f3641e7bcdc9abf79d030902e7821eaabf test(windows): fix shared harness assumptions
  • 2ef3f44c1442c5b02f978e6c58bd2ab982165232 test(windows): normalize loader claude path checks
  • 1d6d5b1af9786d063108fea8386ab398a536d91e test(windows): normalize loader claude path checks
v0.11.0 Breaking risk
Breaking changes
  • -- Removed deprecated "gt swarm" command (chore: remove deprecated gt swarm command).
  • -- Removed legacy SQLite and Beads Classic code paths (refactor/Remove legacy SQLite/Beads Classic code paths).
Notable features
  • Added --cascade flag to `close` for closing a parent and all its children.
  • Enriched convoy panel in dashboard with progress %, ready/active counts, and assignees.
  • Introduced Docker Compose file and Dockerfile for containerized deployment.
Full changelog

Gas Town v0.11.0

Pre-compiled binaries for Linux, macOS (Intel & Apple Silicon), and Windows.

Installation

Homebrew (macOS/Linux):

brew install gastown

npm (Node.js):

npm install -g @gastown/gt

Manual Install:
Download the appropriate binary for your platform below, extract it, and place it in your PATH.

Changelog

Features

  • 38bc447924e9d3610e9d9a3b5a849d90f8cf09bf feat(close): add --cascade flag to close parent and all children (GH#998)
  • 3b9b0f04db3439fd31fe25d483e9b2b0b0facbd2 feat(dashboard): enrich convoy panel with progress %, ready/active counts, assignees
  • dafcd2417fbbc9960f9527f39f60c3044ce9fdd3 feat(polecat): set POLECAT_SLOT env var for test isolation (GH#954)
  • 64bd736e13463004ba4f1092eb6b2dc3f7050c88 feat: Add docker-compose and Dockerfile
  • 86e3b89b3478872bef98c0ddd8570e1f6ae94c33 feat: add Cursor hooks support for polecat agent integration
  • 330aec8ea401fb5e3cf3ea77ce6705d14aaa87cb feat: add context-budget guard as external script (hq-48p) (#2008)
  • 3f533d93400114875cc4a26dedcc2b9cdaf0e52b feat: add schema evolution support to gt wl sync (gp-c7e) (#2388)

Bug Fixes

  • 1f9bfaf10e0662af155423354405a5bf0d3cee22 Merge PR #2284: fix: Build gt-proxy-server and gt-proxy-client on make build
  • b78d1981f8e875afabb31cd7324c01e01fd748cb Merge PR #2294: fix(reaper): replace O(n*m) correlated EXISTS with LEFT JOIN anti-pattern in Scan/Reap
  • d69d618a7cffe1d22a2abeb50dc008c0f4b302d2 Merge PR #2295: fix(rig): show actionable guidance when removing an orphaned rig directory
  • 2f379d242b2933d8e9f3a38bb6ad19a95d7f8eb4 Merge PR #2298: fix(ci): bump bd to v0.57.0 + add test timeout to unbreak CI
  • 6890d7bc8346f8c00ea1b2ee025575a70afddd5c Merge PR #2301: fix(rig): detect default branch from HEAD in bare clone
  • 00710018af45a9b8369c460607289bfa7c653baa Merge PR #2302: fix(ci): resolve lint errors and Windows test failures
  • 5dbcd80e90bc8af8d6bda0fbf273ca94317198b1 Merge PR #2310: fix: add branch contamination preflight to gt done (#2220)
  • 3a71782561ed64f1aa1276fa9da6108b7a4f10f8 Merge PR #2367: fix: add --chown=agent:agent to Dockerfile COPY
  • 4414e71b98721573cfbcc7628d41a6ebbb4d5729 Merge PR #2374: fix: normalize double slashes in GT_ROLE parsing
  • 335856ef27875cc0ab865f95dbf60872d62637f2 Merge PR #2377: fix(convoy): resolve external tracked IDs during launch collection
  • 8e7ee506bdaf10bb5e28be6f2d2dba6df86bcfc2 Merge PR #2379: fix(polecat): reconcile JSON state with session liveness
  • 0760714b65121ea252b996facd087b0e4d553d10 Merge PR #2396: fix: make --allow-stale conditional on bd version support
  • 6bc38c7b442a9f58e53caa280c6aaaff87ce5699 Merge PR #2397: fix(polecat): use ClonePath for best-effort push in nuke
  • f43708c293b2d5fe78cc47539a51656751915e59 fix(ci): bump bd to v0.57.0 and add -timeout=10m to test runner (gt-4v0t)
  • 5ff86dfdfba49e1cf9fa5ce4ff6753e1ab5f0490 fix(ci): resolve lint errors and Windows test failures
  • 2ca2494e0c193ee5022ac2b0953201b130b8ce5f fix(cmd): replace hardcoded isKnownAgent switch with config.IsKnownPreset (gt-7r3c)
  • 777b909138469d174318ea03337e35646478a74a fix(cmd): replace hardcoded isKnownAgent switch with config.IsKnownPreset (gt-7r3c)
  • 2a6a60fb5fb50533816281a03b44df854ea740fc fix(convoy): add omitempty to strandedConvoyInfo.CreatedAt
  • 7539e8c5eef593e84b2a2f6cd5d41a518ab35eaf fix(convoy): resolve tracked external IDs in launch collection
  • 72798afaeb654b591e1c768d1ac1cecfdcda2efc fix(daemon): add 5-minute grace period before auto-closing empty convoys (GH#2303) (#2305)
  • 037bb2d81f6423a221d84c7c351fa881ec35a357 fix(deacon): remove ZFC-violating dead pane distinction from Go (gt-4k12)
  • fbfb3cfa88e2281fef43ee35619c2ff01f4b9076 fix(dolt): add server-side timeouts to prevent CLOSE_WAIT accumulation (#2287)
  • 647283627532090944cea3b250b4165f9bbe33e2 fix(dolt): read port from config.yaml before env var
  • 04e7ed7c15c5aa1927eb249480d1caef04bc1294 fix(dolt): use configured host in admission control instead of hardcoded localhost
  • cdb2f04f8ae6a0070b19a6e7024034a876ad6c61 fix(guard): use portable reverse-file for macOS compatibility
  • 6bc898ce76d12831d15e408c0edb0f80572c599e fix(nudge): change default delivery mode from immediate to wait-idle (#2362)
  • 65c0cb1a6f2a62c8b7c1fdfc79b47fa25517a73e fix(patrol): cap stale cleanup and break early on active patrol found (gt-18dzn6p) (#2285)
  • 774eec9220eaba6c44f394f2bbd4a0fb55e03cf0 fix(polecat): reconcile JSON list state with session liveness
  • 91452bf035a16624f4e14546302efe222cda81c2 fix(polecat): reconcile JSON list state with session liveness
  • e861607297a4dd07ffe55938ddc6c5e94626518a fix(polecat): use ClonePath for best-effort push in nuke (hq-9pcb0)
  • e7a5e29c031851bb911dd242f2c4576efda89670 fix(proxy): truncate subForLog to 128 bytes to prevent CI hang (gt-4v0t)
  • 0c20f4d9806a5dadcc895fb6d274d2550d2338b7 fix(reaper): correct database name from bd to beads
  • b7d601aa2e589f4b03245bfea487833aea67bf9d fix(reaper): remove parent-check from purge queries to fix reaper timeouts
  • 6636f431b2599e35cff538857826ae0cd499cdf0 fix(reaper): replace correlated EXISTS with LEFT JOIN anti-pattern in Scan/Reap (gt-jd1z)
  • 8ac6bf39f74ede4b2e35a6a3699fc5ed61fded07 fix(reaper): update stale DefaultDatabases and use DiscoverDatabases in CLI (#2369)
  • 6d05a43f1b1c295e4a80d2ab65626b9a96928e05 fix(refinery): clamp negative MR priority to lowest instead of highest (gt-jg62)
  • e237a5cad276f0938e5cbeb912ec899364feb602 fix(rig): detect default branch from HEAD in bare clone
  • 2657cc5b4919110b42c3a33888638d423f90001c fix(rig): expand .gitignore to cover all Gas Town infrastructure directories
  • 9aa27c5d2dd78919d08f6d63652b3bd003fdaa95 fix(rig): show actionable guidance when removing an orphaned rig directory
  • 0516f68bb50729b35af6d5311ffd0a28b1cd476a fix(sling): add TTL to sling contexts to prevent permanent scheduling blocks (GH#2279)
  • 1c3b9718cd85bc52891a30f2fb5f464cd90a2de0 fix(test): configure git user in TestBareCloneDefaultBranch
  • 51cfea90b830732ebadb54cbfc1e54c67f87cff5 fix(test): configure git user in TestBareCloneDefaultBranch
  • e8d69598a39538d83eb8629a9f18f0f270a4ceb6 fix(test): configure git user in TestBareCloneDefaultBranch
  • 4fb79ccb313f180bc3f0476ea1095652f5328822 fix(test): configure git user in TestBareCloneDefaultBranch
  • cb6ce4159a004367f715e73b603ee5d71a9429ae fix(test): configure git user in TestBareCloneDefaultBranch
  • bae1b6089c632eaa2baba3d271189d7406554476 fix(test): configure git user in TestBareCloneDefaultBranch
  • e74e71017a09bca7c2ced7dc71d1ca3e6471d971 fix(test): configure git user in TestBareCloneDefaultBranch
  • 5ee0266e58a97bcf50d4461bea99ad2acf5323f8 fix(test): configure git user in TestBareCloneDefaultBranch
  • b1ee19aa22cb71438d21eeb23c6c7b1a29820c8e fix(tmux): refresh cycle bindings when prefix pattern is stale (#2300)
  • 3f699e7d0cd9a66144c28ed558ce003974bbc8ba fix(tmux): replace IsAgentAlive process-tree probing with sentinel env var in WaitForCommand (gt-sk5u)
  • 843dd9821c35af1564783c0f523762c8e5ba5b1c fix(witness): fetch agent bead data once per polecat in zombie detection (gt-2gra)
  • aa1239683d5859c3f13a9f88a8c3a8fc17b36410 fix(witness): use t.TempDir() in resetAbandonedBead tests to avoid stale respawn state (gt-r8tf)
  • beead3a1ed6ba863f4ad02e67e429b23ad380b7d fix(wl): let claim/done use joined wl-commons clone when server DB is absent
  • 0c827cacd9e5f3594244057f01c97a37339d44a8 fix: Build gt-proxy-server and gt-proxy-client on make build
  • dfd945e97bfca3feb0be486c41b03479f429c244 fix: WaitForIdle false-positive idle detection during active tool calls (#2363)
  • 480f00f0df11ab35f6fb9f1e682ee630172c279d fix: add --chown=agent:agent to COPY in Dockerfile
  • de45773a3fcb6938afcb11683848ef9d42de61c8 fix: add CI and release guards against go.mod replace directives (gt-qex2)
  • a4cb49d759f7b0ece80b04a608de29dfc39005d5 fix: add branch contamination preflight to gt done (GH#2220)
  • b45d1e979dae75b27064bf290579f87ebeac0aa8 fix: add cycle guard and depth limit to cascade close
  • f993d6ce75abbb57195b3035e2794f13fd0df3e0 fix: add regression test for crew mail send prefix mismatch (gt-brip)
  • 35929e81071dd01593bca4b521fbbb8629eb50f5 fix: address review feedback on Docker setup
  • 971310a76ed8551e66b08c33ef41534c528e7677 fix: broaden .gitignore patterns to cover all Cursor runtime artifacts (#2381)
  • b522976386169fb1e25b07323e5c6ac6b6e46f5f fix: consolidate GUPP violation threshold into single constant (gt-1emx)
  • c93bbd152e2c9632d51254a67f2a0c7e0cf4280c fix: create missing hq-dog-role bead and add to integration test
  • 2af747fb95eb6ee2de90e4dd2064a046f445171f fix: derive tmux socket from town name instead of defaulting to "default"
  • 60743cb33df3eab08cca67349b38c7c17e8b5193 fix: ensure hook write visibility before polecat startup (GH#2389)
  • 39f7bf7db5a15c4a6e24514db5d45641f7089b30 fix: gt done uses wrong rig when Claude Code resets shell cwd
  • b3e154ca415b8e385716c7ba153603e456f9427c fix: guard bd v0.58.0 non-JSON output in remaining parsers (gt-ac0i)
  • 366a245da71a4c7cd49c542a628c7ca7132837c3 fix: increase convoy ID entropy to prevent collisions (#2063)
  • 3a5980e40ba42fb23e461a4ff76f8145971c278f fix: lock.go queries correct tmux socket, gt down cleans legacy sessions
  • 907d587d31dc133aeaedc41c70e251d65530446d fix: make --allow-stale conditional on bd version support
  • 451f42f7e33f70ac0a0adbe61764c9fb8471aa84 fix: make gt done tolerate Gas Town runtime artifacts in worktrees (#2382)
  • 5a5deaac2f570229e8d4954fe0c0a1306e798ca5 fix: move stuck agent detection from daemon to Dog plugin
  • fa3b6ce7535fba0f0120f64051b7f23d3303d530 fix: normalize double slashes in GT_ROLE parsing
  • 5a263f8eabb7933ffaf2136b0fe49723fb30b4a9 fix: normalize hook show targets and prefer hooked bead over stale agent hook
  • 7084e376fd052b72517dddcbeb5859779d7fab16 fix: refinery PostMerge uses ForceCloseWithReason for source issue (GH #2321)
  • f339c01980d3e716cf2b8bbb90c88e3d20707c19 fix: reload prefix registry on heartbeat to prevent ghost sessions (#2338)
  • a5c5e31d9bd10bc208e88530c9200de4604259ba fix: replace hardcoded help-assessment escalation heuristics with keyword-based classification (gt-td6p)
  • 8001e0072755cd33fc6dcfe855300bf4999a6980 fix: resolve pre-existing go vet failures on main (gt-77xe)
  • 67b5723e8c83592b8620f48ad50b4478c29d8337 fix: update wasteland fork test to match DoltHub API changes

Others

  • df5eb13d83e3a39faf1c8b0859e2ee67dc868642 Add additional supported agent presets to README
  • 7ab253701df892911bdeda57d194649be3ccb934 Fix DoltHub fork API endpoint and field names
  • c54b5f04eb6660d123f2b4b54e7f96625108c789 Fix dog_molecule JSON parsing for bd show --children output
  • 83d2803a9cd84b9f31e90ca460da1e873d7da0b0 Fix rig .gitignore to ignore all Gas Town working directories
  • f3d47a9605b032396f5c311f86e52ca7014ae143 Fix serial killer bug: remove hung session detection for witnesses/refineries
  • bdb8c15ba8a38fe4203ff358fc77c3bd92f5b763 Merge PR #2314: chore: remove deprecated gt swarm command
  • fe0e45e74f714e51a2d724a2b11ca07c72d06fa6 Merge PR #2323: refactor: remove Beads Classic legacy code paths
  • 8c71b76fd58589760ab0305b003ad1488ba2ecec Merge PR #2327: docs: Add Wasteland getting started guide
  • af770eb44273507668855293f73b19785f9c3119 Merge PR #2333: Remove legacy SQLite/Beads Classic code paths
  • ee5c394d807a8e08cbc8e9a14b1ca6e4494e96b4 Merge PR #2334: build(deps): bump filippo.io/edwards25519
  • 3aec1d462168fc4ab64b4a131baa4ecc6a7311cc Merge PR #2335: build(deps-dev): bump basic-ftp
  • 5ef0d58b5c06a5aec76abde28a43392096be4616 Merge PR #2336: build(deps): bump npm_and_yarn group
  • d45aaa743de28ce1bdafd54c7e6a6f3724ac5c4d Merge PR #2337: build(deps): bump fast-xml-parser
  • 324c1b2e9c53c3fb4ab4b0ad5201383bfc5b387f Merge PR #2361: prime: add bd close to command quick-reference tables
  • 69de6b8f52ab68783fded0b4df468ce08e92630e Merge PR #2387: Add additional supported agent presets to README
  • d86494b46e81cabaf90d63ec4098d4f4df4b63e6 Merge PR #2394: Remove vestigial sync.mode plumbing and dead config
  • 2ee0a9a7741009661f8da9dbde666e29a1f27bd8 Merge PR #2395: Fix dog_molecule JSON parsing for bd show --children output
  • 8895ae4d830e1dfea3ff2aca21ee7742a2ae76be Migrate witness manager from beads.GetRoleConfig to config.LoadRoleDefinition
  • 67bf22a62542556dbabc986300213521de587421 Remove Beads Classic legacy code paths
  • fa9dc28792f55395c796b7d5458f89298d82b5c6 Remove agent bead hook slot: use direct bead tracking (hq-l6mm5)
  • 3dafc81b5f9cea54c0380fa188e9c6ad7ac4c9c2 Remove legacy SQLite/Beads Classic code paths
  • 279a1311a881951f71e687d0ec972091f17a6fee Remove vestigial sync.mode plumbing and dead config.
  • 2dd21003f3bc7c23a0318806b2f2236116d9daea Shorten reaper TTLs: auto-close 7d, purge 3d
  • e34ac7c591bdafef03cbd336c6d49d7b2702047f Should be make build instead of install
  • 2e14425acdc488610860b9db033113e7f0ed520d Update Makefile
  • 71b8b335e1d87588f536b2f62ba7f307921d2e7b bd: backup 2026-03-03 06:41
  • 7d7d6a2d75d333bb40e5a752b288d19cdeabc565 bd: backup 2026-03-03 07:02
  • b5849a428c7a3870fc015d2a69dbfac1fac115b7 bd: backup 2026-03-03 07:17
  • cacc6bbc711619c2b3c020c97cfbf05a4af51904 bd: backup 2026-03-03 09:16
  • 7c453ddcb992adf50297ba84c73a9218ab813ce4 bd: backup 2026-03-03 09:31
  • a878480e71c0a4dd6e890f83c440a9912d6bb2d4 bd: backup 2026-03-03 11:31
  • a141e9d527a80170a9c8bd54dcf56a545c9dfe5c bd: backup 2026-03-03 17:18
  • e13774c117c0e12f86715e0ea1396efb77a6ba3c bd: backup 2026-03-03 17:33
  • ed0d57d506bafeaeca2e621c94d24175e8965cf7 bd: backup 2026-03-03 17:48
  • 6352bf2957662386a43d4fc9e97f900947d65bbc bd: backup 2026-03-03 18:03
  • 46b230afd71d8280350c2b4199b89f9aad1e4874 bd: backup 2026-03-03 18:18
  • fcd4cedd4c9153aa5a75c7b421d2d19f2f0b02de bd: backup 2026-03-03 23:53
  • 910c5ca9a12de30bbcdde8eb82608b87851c9d6d bd: backup 2026-03-04 00:31
  • 72fd08670394d6ffb112bf03e1da38b0e62cb152 bd: backup 2026-03-04 01:15
  • f91b0dcc26d5fff0ca9cc416041c1a3a3daca0d8 bd: backup 2026-03-04 02:20
  • d21ac919feeb718f58668f617b77fa49f8be22aa bd: backup 2026-03-04 03:04
  • 6a61a434dc7e2614225d23c9e81dc012690d1e2f bd: backup 2026-03-04 03:19
  • bfb35f94d66414b61d2170a1acec0cee0e2b88f8 bd: backup 2026-03-04 04:19
  • 3bb76a233a4c166dd173646c1903bf348d4986bc bd: backup 2026-03-04 05:30
  • b517404be270c91744fd361d2e6077fb75480542 bd: backup 2026-03-04 06:16
  • fd0ce340248e2488497c39b6fd05e2dbf22b2293 bd: backup 2026-03-04 06:31
  • 1381a37dff912e921de7132aa0ee3c2e5f30868e bd: backup 2026-03-04 06:46
  • b909de17488dca96a64447a7dab6bc51fa0cbe7d bd: backup 2026-03-04 07:25
  • 8cee1cf833ca0ce7c2fe0228da1fdc1aab018e61 bd: backup 2026-03-04 07:40
  • 12fecc9d4ab3891490ae21afac17de2fbd540924 bd: backup 2026-03-04 07:55
  • 3f5b222d511d0d4bb47583c5a1caff3d9f42a83c bd: backup 2026-03-04 09:19
  • 68c4a70b8556c746e8844cf5ff53cc7ccfe72ced bd: backup 2026-03-04 09:39
  • 2e850c2286778b095308abc08f225726737c11a6 bd: backup 2026-03-04 15:46
  • bda902d77ede6a1ba9022dce9e684a7f3d9fa192 bd: backup 2026-03-04 16:08
  • 4f899244326ff1cb82295529f2ef271e4a2dc946 bd: backup 2026-03-04 20:06
  • 7cc2716b18b514572ce7488a4c5399caf02a38b7 bd: backup 2026-03-04 20:26
  • 51aa93e984ce9211786ea46adc13953578c75af4 bd: backup 2026-03-05 00:07
  • 0778f4b5905ad320d02621fbe08f6ee3d14d11c6 bd: backup 2026-03-05 04:45
  • d61b0491ec8948cd1d563e6e0721dbf4e29a4831 bd: backup 2026-03-05 14:58
  • 112ff2c4bd145de796d20f35d35e583832a72ce1 bd: backup 2026-03-05 15:27
  • 9ccb836f9001687bedd7e373d4f610454e27a190 bd: backup 2026-03-05 15:45
  • 3dfd13222c3c7b55a22477b966c125a510d1f746 bd: backup 2026-03-05 21:17
  • 9c4af4e20562abdce4aa5290b308e26cb40422c4 bd: backup 2026-03-05 21:32
  • 9e5faf90250b8560bacc1968e2e05e6916c8428f bd: backup 2026-03-05 22:33
  • 5603712c26a7311a78c3e379c475164d5bc51459 bd: backup 2026-03-05 22:48
  • cc62a8c6a9a368fa04d9fe3283cdad477a3fa2fc bd: backup 2026-03-05 22:49
  • ab30e469def96c723f89e18ddd57c9678266967a bd: backup 2026-03-05 22:50
  • dadbde86278e2734fdedffaf57e56fa8714bfc34 bd: backup 2026-03-05 23:03
  • 0d3a46142a8e32ebea890c48d6ea02c9e74429e7 bd: backup 2026-03-05 23:18
  • e50c18d96b7571a52905bd10bcdc8d56e4976c20 bd: backup 2026-03-06 00:23
  • 28f73f28d4b47507b7355226f2fe9a8e48e374b6 bd: backup 2026-03-06 01:17
  • 04a9044b2c3f5a3473200232dfebf8d443a6e646 build(deps): bump fast-xml-parser
  • 1d9a665bf6efb11ccef28f5915ef2a5baf930189 build(deps): bump filippo.io/edwards25519
  • a03f566c4f52c732dc86af6ed90b3e25dc60e9cd build(deps): bump the npm_and_yarn group across 1 directory with 1 update
  • 0f41e12d7fca403a4b115f5c2da3d5041ccd4531 build(deps-dev): bump basic-ftp
  • 2f3d1933e06901cbd5020c7b0a70598ba94cd3af build(deps-dev): bump the npm_and_yarn group across 1 directory with 3 updates
  • 8683461519125dfc26cb49cba90e358f44f72964 deps: upgrade beads dependency from v0.57.0 to v0.59.0
  • 1fc9804ee29089e54f39358f2f1136edb8e1a5b8 fixed typo
  • 9ff0c7e7c0948643cc349cea98f054fe08b16f01 perf(rig): reuse bare repo as reference when cloning mayor (GH#1059)
  • 56eb2ed6ed149f5daab4328efed1e33d7d08d5f2 prime: add bd close to command quick-reference tables
  • 515499739685ee37736877ae5381db7cf1d4d5e5 refactor: consolidate agent hook installers into generic declarative system (gt-071h)
  • f1170ff43196a4d7d474398bb2c1e4273a562a90 refactor: consolidate agent hook installers into generic declarative system (gt-071h)
  • 76ef3fa6e70520c97c6c540e73a0553954572c62 refactor: extract shared IsAutonomousRole into hookutil package
  • 4c9767a161096002c70549644a911fdd6af50463 refactor: remove per-agent hook installer packages (gt-071h)
  • 730207a03cfc67b6b6c69c98b884b6f853c65fa1 refactor: remove unused HookInstallerFunc registry (gt-071h)
  • 344bca856839e927ffe5061ea6ca66074485ad15 test(daemon): add unit tests for killDefaultPrefixGhosts (gt-obp2)
  • a9270cd9a2f45747c676be25a36191959a94e3c7 use local code for Dockerfile
v0.10.0 Breaking risk
Breaking changes
  • Minimum beads version bumped to v0.57.0
  • `setupSharedBeads` failure is now fatal (was silently ignored)
Notable features
  • mTLS proxy server and client for sandboxed polecat execution with gt command allowlist annotation
  • Agent memory commands (`gt remember/memories/forget`) backed by beads, persistent across sessions
Full changelog

150 commits since v0.9.0. Major themes: reliability hardening, telemetry, formula-driven architecture, and cross-platform fixes.

Highlights

go install fixed

The replace directive for the zfogg/dolt fork has been removed. go install github.com/steveyegge/gastown/cmd/[email protected] works again. (#2230)

Polecat reliability (clown show #22 resolved)

  • Per-bead respawn circuit breaker prevents spawn storms (#2203)
  • Duplicate spawn prevention for same bead
  • Stale molecule auto-burn unblocks re-dispatch
  • TOCTOU race fixes in name allocation, zombie detection, and respawn recording

Convoy & sling fixes

  • Non-slingable blockers respected in wave computation (#2228)
  • EnsureCustomStatuses with doctor check for staged_ready/staged_warnings (#2275)
  • Nil cobra.Command guard in runSling
  • Rig-prefixed bead resolution in gt show and gt sling (#2126)
  • bd stderr capture suppresses usage dump noise (#2270)

Merge queue pre-verification

  • New pre-verify step in mol-polecat-work v8
  • gt done --pre-verified flag for merge queue fast-path
  • Refinery pre-verification fast-path skips redundant CI

Telemetry (OTel)

  • Agent session, mail, and token usage instrumentation
  • Work context injection + agent conversation streaming
  • PII gating, orphan process cleanup, content limit cache

Daemon & witness hardening

  • Refinery spawn gated on pending events (avoids idle API burns)
  • Handoff cooldown prevents crash loop on idle rigs
  • Wisp reaper batches UPDATEs to avoid blocking hq queries (60-90s → fast)
  • Wisp reaper rewritten as Dog-driven via formula
  • ZFC-violating policy decisions removed from witness handlers
  • Heartbeat v2 with agent-reported state

mTLS proxy for sandboxed polecats

  • New mTLS proxy server and client for sandboxed polecat execution
  • gt commands annotated as polecat-safe for proxy allowlist

Agent memory

  • gt remember/memories/forget commands backed by beads
  • Persistent across sessions, injected at prime time

Per-town tmux isolation

  • GT_TMUX_SOCKET=auto for opt-in per-town tmux isolation
  • gt status shows dolt data-dir and tmux socket/PID

Custom polecat name themes

  • gt namepool theme with custom theme file support
  • Validation, preview, delete warnings

Other notable fixes

  • MR beads invisible to Refinery when setupSharedBeads fails — now fatal (#2282)
  • Refinery clamps invalid MR priorities to lowest instead of highest
  • gt doctor --fix provisions missing patrol formulas (#2105)
  • SHOW DATABASES result caching prevents thundering herd (#2180)
  • Cross-platform: Setpgid extracted for Windows, syscall.Flock replaced with cross-platform lock
  • make install works on tag checkouts (#2062)
  • Plugin cooldown gate fixed (used months instead of minutes)
  • Daemon PID=0 fix, dolt multi-town PID reuse fix (#2243)
  • gt mayor at aborts on dolt startup failure (#2246)

Breaking changes

  • Minimum beads version bumped to v0.57.0
  • setupSharedBeads failure is now fatal (was silently ignored)

Known issues

  • Orphaned sling contexts can block convoy dispatch (#2279) — manual cleanup available
  • Cross-machine Dolt not fully supported yet (#2276)
  • Context-budget tap guard PR still in review (#2008)

Contributors

Thanks to @kevglynn, @l0g1x, @trillium, @mmlac, @Random-Word, @dannomayernotabot, and the Gas Town crew agents.

v0.9.0 Breaking risk

Routine maintenance release for gastown.

Full changelog

Gas Town v0.9.0

Pre-compiled binaries for Linux, macOS (Intel & Apple Silicon), and Windows.

Installation

Homebrew (macOS/Linux):

brew install gastown

npm (Node.js):

npm install -g @gastown/gt

Manual Install:
Download the appropriate binary for your platform below, extract it, and place it in your PATH.

Changelog

Features

  • 0d264b2702693f33a5eca5096d991e487253757d Merge PR #2019: feat(doctor): make env-vars check auto-fixable via gt doctor --fix
  • a6829ee0d8a8f818c4b09d051d1600a6465592d4 Merge: feat: add automated response actions to doctor dog health monitor (gt-nek89)
  • 21e2b724b83935c1e754cbd71614223d18edeb66 feat(cli): show did-you-mean suggestions for unknown subcommands
  • 355f01124b4f5bdfc341cf14c6f8eeeace558da3 feat(cmd): write telemetry and cost logs to GT_HOME/.gt when set
  • 85887e8817448b9ad2799e8eeb24c724b4fcdc9f feat(compactor): add Compactor Dog for daily Dolt commit history flattening
  • c13cc276eb09b9ff20ee33a8ae8de69a2169a713 feat(compactor): enable compactor dog with configurable threshold (gt-l8dc)
  • 0611a69b3d9ba8321252ce4d11c848af752e0223 feat(compactor): move dolt gc from Doctor Dog to Compactor Dog (gt-emm4)
  • 7342fcdd227e7a8ddcef99c8ed6cca5cba15f11a feat(convoy): add merge-blocks dependency type for post-merge gating (#1893)
  • e060349be9ed1d9af79c7e380e2ec0c5529fa114 feat(crew): per-worker agent selection via worker_agents config (GH#2175)
  • 289a94a0bb4f487d552b0cdc1a521d302391ded5 feat(daemon): JSONL git backup Dog patrol
  • fcad605c692db7010fba3166232b822db50faa4f feat(daemon): add gt daemon clear-backoff command
  • 739a36b7e06ae7aaa25531cad41ee3a8c8fc80f5 feat(daemon): add janitor dog formula for test server cleanup (gt-8xgm)
  • 3243d688244676a97ca80ff7e885fdef78f20cba feat(daemon): add log rotation for daemon and Dolt server logs (gt-9w0d)
  • af4e172e3f9b0a8f58b40ae277e2b65af4a3c57d feat(daemon): add orphan DB and backup freshness health checks (hq-rjh)
  • 419f90a37f970c7463704e80a8f6b0c1e47e3925 feat(daemon): add wisp reaper Dog patrol for automated wisp GC (hq-j42)
  • 7def59fec354a0a153e538ea002087ad585fea18 feat(daemon): expand JSONL backup to all core tables (hq-u6t)
  • 370493a47841b9bf3c172e90408c21dc3833b530 feat(daemon): wire dolt backup sync into daemon ticker
  • 25d1b39e673886bba2007a7fe98453facecc4d2b feat(doctor): add --no-start flag to suppress daemon startup during --fix
  • b87b3f635b991716016cae7b50e15b9495f4c593 feat(doctor): add --no-start flag to suppress daemon startup during --fix
  • f50d0232bada280799ea6cd4393e0beeb1207427 feat(doctor): add Option B throttling for mol-dog-doctor molecules (gt-loah)
  • 9730e27161ad30defbbd94dc878193385193329d feat(doctor): make env-vars check auto-fixable via gt doctor --fix
  • e04237abf43db682271fe75baa3c0956d0a5b56c feat(doctor): purge misclassified wisps and detect JSONL bloat
  • 23d55b7060fb9150777e3ed98b1cbe3691e69969 feat(dolt): add WithScripts init SQL to testcontainers for root@% auth fix
  • 67e8d9a9cd6dbf641ab1d45a0736369fe9ef9b70 feat(dolt): add WithScripts init SQL to testcontainers for root@% auth fix
  • eac5be40ff46c2c2299c68f92bf5bf36461ca97a feat(dolt): default to loglevel=debug for query diagnostics
  • 341fa43aacdf4b2141106994153d4833e866bd0b feat(done): transition polecat to IDLE instead of killing session (gt-hdf8)
  • a539d6604a53e54db5d015a31223f0417cb5835a feat(formulas): add idea-to-plan pipeline formulas (#2071)
  • cfac706ead2125b982bd04459fbcff10bf6702bf feat(hooks): add dangerous-command guard and tap list command (gt-gow8b)
  • c85301611595bbed9bdf35e047a3209a384057df feat(hooks): cascade hook config lookup through GT_HOME then ~/.gt
  • db82820692555b42622ae95b665de88ebc3e9221 feat(install): add --dolt-port flag with preflight port check
  • b06df94d8a18cfd4ea3540481bdbe0aad5da69b2 feat(mail): add --to flag and allow sending to inactive agents (hq-muw7, hq-slnx)
  • 9d8c20138946c0ccc95ae6850020f03aa0712470 feat(mol): add 'gt mol await-signal' as alias for 'gt mol step await-signal'
  • ac38b1c9ff676d3501e47f97cf8dd4d25d6cd1d3 feat(plugin): add compactor-dog plugin for Dolt commit growth monitoring (gt-kk21)
  • d2350f271035fed18738777056315617c90d7e58 feat(polecat): add pool-init command and local branch cleanup in done
  • cb827ed187fefed1cc4c6f3bfad6bf098c285f3f feat(quota): context-preserving keychain rotation with preemptive swap (#2075)
  • 37d5715060b84c6cd9591dd791a64b2fa3513bb0 feat(reaper): add auto-close step for stale issues > 30 days (gt-ydds)
  • 6e0ff1c0ecb834de9d8e373f90580902a8a1a399 feat(reaper): reduce mail purge age from 30 days to 7 days (hq-qh4f)
  • c39372f482dbb50aa4945a63da1edebbcb88fae4 feat(refinery): add gt mq post-merge for branch cleanup after merge (gt-22ps)
  • 462e52695a95c7a2b0a16efae8cdebc409d9ff03 feat(vitals): add gt vitals unified health dashboard command (gt-fubw)
  • 90d08948f68904e02b48960304fafaf868b37af1 feat(witness): add DiscoverCompletions() for bead-based completion discovery (gt-w0br)
  • 38f3e9748d4b9253e76b5b554c68a92f3adaacc6 feat: Beads Flows end-state — lifecycle stages, health command, pollution hardening
  • d2f9f2af42bdf75c2940f2d9dfcdeba5d6e5f507 feat: JSONL Dog spike detection and pollution firewall (gt-ntf7)
  • 5d690f1a559cdecfd2631ef8aef2e457768c439e feat: acceptance criteria gate in gt done
  • 2728e702d0f275a71d4af052689c756b0336a2b6 feat: add --bind flag to gt dashboard for listening on all interfaces
  • 20e84a988d299c3b1d4781bacee9c68f096025a5 feat: add --verbose and --short flags to gt version
  • 1b2796ac1f10513565c93a735335eb5cbe31d2c7 feat: add 4 dog formula files for molecule-based patrol tracking
  • a4a42471cdbd4bed4adfe394da0e71afe21c9da6 feat: add Doctor Dog health monitor patrol for Dolt server
  • 68ebad7e287150742ab7989b66f1a19b7fbddaa0 feat: add GASTOWN_DISABLE_OFFER_ADD env var to suppress repo add prompt
  • 521ba2a6c56164aaaf3488d85a25c3a25b58ffd2 feat: add MQ verification to polecat check-recovery
  • b5553115c5d1efdc92f6a7d02fa5b0edf8401aa4 feat: add MQ verification to polecat check-recovery (#1035)
  • f911778f826028847f0fa9277d5906335843d0bd feat: add OMP as built-in agent preset and complete Pi hook installer
  • 3c1a918262cc14e103f94841b72bb4db9e043e68 feat: add OperationalConfig for config-driven thresholds (ZFC) (gt-8l3w)
  • 176b49632c75ceb7d95c92a8728228327c4b06dc feat: add automated response actions to doctor dog health monitor (gt-nek89)
  • 70743bc467d015a2bffc36c8224803a8f6dc05e5 feat: add best-effort push before --force nuke (gt-4vr)
  • 36540017eaf758ebe545dee9f698987246fc2db5 feat: add daemon scheduled maintenance window (gt config set maintenance.window)
  • fe0ac2bed829aa6a8bd5a5313c4082f00c8d9115 feat: add dog health-check command for lifecycle management
  • afe8020861609c637810705318846ebc976ce92a feat: add dolt-archive plugin to rig-level plugins
  • 048a73fe6f7a074251a2b395db67f12bb81c68fe feat: add duplicate check before refinery files test-failure bugs (gt-61em)
  • 655620a1bcf1f5a264b22fead8177a941bb005aa feat: add gt mail drain command and update witness patrol formula (gt-2rj2)
  • e79fbb6da0d67d1defbbe52deb277145dd87e440 feat: add gt maintain command for one-command Dolt maintenance (gt-8ubf)
  • 6ea1abf1d87d6f98344753ab00f158c1ade4d3f8 feat: add gt upgrade command for post-binary migration
  • 3ca7f00be2932e4caa082e57e3eae76d421d4490 feat: add lifecycle-defaults doctor check for missing daemon.json patrol entries
  • 8bba4b07b71fdcf664805055fc1e0d93473684c2 feat: add lifecycle-defaults doctor check for missing daemon.json patrol entries
  • 30532d7a732d53242311f16aff1eca0d2210c81e feat: add molecule lifecycle tracking to JSONL backup and Dolt backup dogs
  • 01fdc519176ac685b42f4b65b820516beba77f29 feat: add parked rig checks to sling and convoy commands (gt-4owfd.1)
  • 5117c91c00ada1523503e99e05966cd59c37126b feat: add phantom + stale DB detection as Dog formula molecules (gt-iq8w)
  • 9abd06034914a8087f2fd57a23466e6e8b51f604 feat: add test-pollution-cleanup step to deacon patrol (GH#gt-s1r)
  • 457178101fe88755b44cddb052139b5954084ecf feat: add testutil.CleanGTEnv helper and consolidate env filtering (gt-wsc4)
  • 6ab5046a8d5f5ab3afc2da50218c6e61cfab1a0a feat: add town-root CLAUDE.md version check to gt doctor
  • 3db32d915f65b97fe65fe9b0d60702f2e71da8a9 feat: add wisp deletion and stale issue auto-close to reaper
  • 427c6e8abf6d7ffeb7f015508fc4ac4f8ea4c9c4 feat: auto-configure six-stage lifecycle for new Gas Town installations (gt-q3or)
  • 91938728356b205e271c1c0c37f0c2abe7924233 feat: cross-socket zombie session cleanup and prevention (gt-olb4)
  • 61dfce08c66a26ac491551dd342a6c5b9fb8a495 feat: dedicated test Dolt server on port 3308 to eliminate zombie servers
  • 980cddd133f89628ad1109747d58cd222178ddd3 feat: default Dolt server loglevel to debug per Dolt team recommendation
  • c5ce08ed55eaa1d7cf35e4a53805e688502ca09a feat: define agent bead schema for polecat completion metadata (gt-x7t9)
  • 315e06fa403e0a4788bd9c7e831b44050f45e5b2 feat: enable data maintenance tickers by calling EnsureLifecycleDefaults at daemon startup (gt-7ul7)
  • 7097b85b0c091c7924a6d23b7c27984249d009c5 feat: implement batch-then-bisect merge queue (gt-i2vm)
  • 1123b96c8c764721f686ec874f44721f9a9e19eb feat: implement surgical interactive rebase in Compactor Dog (gt-jmur)
  • 0268c0fc28c0f7d685bf25982c88596e6b2e97c1 feat: offsite backup sync to iCloud Drive after each dolt backup cycle
  • c410c10a582b269b38bd89dae2024270e66133a6 feat: persistent polecats — stop nuking sandboxes after work completion (gt-4ac)
  • 0a653b116d7a09d70a0bf7d786eeb31e9be3b050 feat: polecat self-managed completion — transition to idle directly (gt-1qlg)
  • 1fa2e9e188156a3028740f90e86afc960aa9fdb3 feat: refactor wisp_reaper to use mol-dog-reaper molecule lifecycle (gt-nzkx)
  • b45d151140f03a380141f6731ca418f59e3e8d00 feat: replace POLECAT_DONE mail with nudge + agent_state bead update (gt-a6gp)
  • 6d04a84f8dee9c2e395d274571fa87d17315dda8 feat: root-only patrol wisps + gt patrol report command
  • b8f79dc86a75613773aa6189ac6c94465d35a6b4 feat: root-only wisps for all formula-based work (polecat + patrol)
  • 63ad1454b161e6bead2bb25fb5022e65177b6239 feat: sandbox sync — branch-only polecat reuse (gt-24j2)
  • 3924d560d9c2715149ea5ff2960acaf2d56cdf54 feat: use SQL-based flatten on running server, remove downtime
  • 8325ebffb74bc8dbe1c035252a9ad2590e106f93 feat: wire OperationalConfig into daemon, deacon, nudge subsystems (gt-8l3w)

Bug Fixes

  • 419a726aa4569cceb8ca046ecf6e5916b52c8a26 Merge PR #1980: fix(doctor): patrol-not-stuck queries Dolt DB instead of stale JSONL
  • 259a1d18d28bc841bedfa4bd7ddda6b1671b69d6 Merge PR #1993: fix(test): prevent test suite from leaking Dolt databases into production
  • e872b83c52a0d4082a0d991476698844845aff76 Merge PR #2001: fix(seance): find sessions in single-account setups without accounts.json
  • dccb5efe25f2f38d6de350b96555628a7dec1219 Merge PR #2002: fix(mail): include pinned agents in recipient validation
  • 5c4350c711b8c0f0595dd73b7b939418ff4ff5bd Merge PR #2012: fix(done): normalize polecat CWD to git root before beads resolution
  • 1b103216a2dde8e5812d42ac7e9137a4a086eeb8 Merge PR #2013: fix(doctor): detect stale agent beads from deregistered rigs
  • f660915edcec9fc3d29e650a1e015515c7cd2b7b Merge PR #2014: fix(doctor): use scoped Beads instance for agent label updates
  • 84939a303776a841444fc950243126d22f730a2d Merge PR #2015: fix(deps): set GOBIN when auto-installing beads to prevent stale shadow binary
  • c1ca918a80c6d66ee69bf6c99c51325fc61d2002 Merge PR #2017: fix(config): revert refinery settings path to parent directory
  • 7f15195dfb989436dc3b99ba864bbeaacda8c9b7 Merge PR #2021: fix: update nix package for v0.8.0 with ldflags
  • 0ac964fd15cbd5de7f3ec3b3c0dd39408f3ba6f4 Merge PR #2023: fix(deacon): correct commands and add heartbeat to patrol formula
  • 5a82f61cce6be4c4a04e5896cf43baf2de391979 Merge PR #2025: fix(sling): detect malformed wisp IDs and clean up orphans in formula instantiation
  • d394bf3a9d5051fdfaa4cd15747a0c784166b086 Merge PR #2027: fix(hooks): fail closed on settings integrity violations
  • 161b34321b38da9163bf19105d2c72bbe1ee3754 Merge PR #2030: fix(polecat): preserve remote branch when MR is pending in merge queue
  • a6e6d7ef29c7eb9738f1858dec7e67acfae558a8 Merge PR #2033: fix(mail): always queue mail notifications to prevent stuck nudge input
  • 6d33dc96ad8da3774963dfa05ce240bc67cbb2fb Merge PR #2039: fix(mail): validate recipient address before sending — reject unknown agents
  • 1d9d70b4f854526bade69c16466c0a54e98c1b01 Merge PR #2043: fix(mol): use handoff bead for auto-detect in mol attach
  • ba49986f466ef712e54372732ab7376d3e479d7b Merge PR #2044: fix(witness): prevent premature polecat nuke before refinery merges
  • 1721ada6e91ede47781e989fc775635d47f99829 Merge PR #2047: fix(doctor): don't flag absent env vars when expected value is empty
  • 6bdd6cf0eac0da460325202a589b91db729212ab Merge PR #2052: fix(test): isolate all test packages on ephemeral Dolt server
  • 5995d4850c9c57a6a27cd12aa261ee94e6afceef Merge PR #2053: fix(done): make gt done idempotent by checking wisps table for existing MR beads
  • 7d1af8b3ddd92d8d3a0500ac7f48fe86e89ae98d Merge PR #2054: fix(doctor): search full formula path in patrol-molecules-exist check
  • 3e6f881a3b8e7176a8aed17cf5d5aacb5705ce18 Merge PR #2057: fix(deacon): respawn dead pane instead of kill+recreate to prevent crash loop
  • dca030577b4ae26811ad24e3728bd8a6c2cb0c74 Merge PR #2070: fix(dog): add RoleDog constant and DogName field to fix dog template rendering
  • 0009a425b37647368f9074300ef3d0a28b90aa8d Merge PR #2076: fix(test): mock isRigParkedFn in TestDetectWarnings_Clean
  • dbe499976c498cc68701a97ad16c3f9845ff72fe Merge PR #2121: fix: resolve golangci-lint errors in daemon and handoff packages
  • 53bd67ea4d0ff1375e7dc17cfbfacc9e06c2799e Merge PR #2136: fix: batch reliability fixes (mail ID, polecat prune, crew remote sync)
  • 6e856d2e6680062483180e5cf14e785991a52bba Merge PR #2145: fix: workspace trust dialog blocks agent execution across all roles
  • 145db7b41e00c30bfe7412b3c4970ce3a6bf54f4 Merge PR #2148: fix(convoy): add recovery sweep after Dolt reconnect
  • 6a3adc62144e8db61bab62256bfcb5c720f16ae6 Merge PR #2149: fix(doctor): repair beads redirect targets with missing config.yaml
  • 92ed3f335e6b8e0c504651bbdf9720c320c0a6b3 Merge PR #2153: fix(convoy): route stranded scan warnings to stderr
  • 3db20a5402103e51f70d7a8952d6431691ff04fe Merge PR #2154: fix(convoy): respect decision-to-task blocking edges in waves
  • 17bafc06a3d3f9532855d9ec5cfb201881c4bd7b Merge PR #2156: fix(quota): detect API 429 + non-restartable session handling
  • 97ca757fc8bc4410e203df57347f0a055c263114 Merge PR #2159: fix(witness): spawning guard for zombie detection
  • b463873937abd91f6cf52e5bb0d002a183923ae4 Merge PR #2160: fix(sling): worktree validation + convoy cleanup on rollback
  • e397950957c64c4dc95e3b63b3b1a1d3009e1a60 Merge PR #2168: fix(nuke): make --force bypass unmerged commits check
  • c5722f1c1dc3bace26749df6611d624579555d1b Merge PR #2173: fix(formulas): remove duplicate review_id var in idea-to-plan formula
  • 821cbe057811f70b2032eb3dc2e4a7d3266efd2d Merge PR #2177: fix: EnableMouseMode respects global mouse toggle
  • 5744e9fb45597d71413f1641ae80ee51fc6d8424 Merge PR #2179: fix(quota): add API Error rate-limit pattern to scan
  • 7e2461f2ff5bfc596a6cbb3cafb58e69ad2aafd4 Merge PR #2182: fix(ci): lint fixes, integration test Dolt PID bridge, Windows test skips
  • a3aa76234164a0c740524f3bb9dffa21766aba2c Merge PR #2183: fix(test): skip bash-dependent daemon tests on Windows
  • cff36d80eb2a0d1427fc90a414fb98a21c2aa616 Merge PR #2184: fix: prevent testdb_* accumulation
  • ecfa322f7c43844ca0bafd4b1994dec322e31e72 Merge PR #2185: fix(refinery): make stale-claim thresholds and MaxRetryCount config-driven (ZFC)
  • 4a9fe4792644634e78463508e17f7324939fae1b Merge PR #2185: fix(refinery): make stale-claim thresholds and MaxRetryCount config-driven (ZFC)
  • 065593dcf707ce51613a3a608371c3b4d683294e Merge PR #2186: fix(refinery): remove hardcoded severity/priority logic
  • 3abaabea636c51656bde958109f76f6f97eee481 Merge PR #2186: fix(refinery): remove hardcoded severity/priority logic (ZFC gt-9xbg)
  • 2f11c0fec73d9affd17e58e7df1d62e132c7cd42 Merge PR #2187: fix(refinery): extract ConvoyFields typed accessor
  • f08db60647268e783a2a61ea0c4f1123bc9f3196 Merge PR #2187: fix(refinery): extract ConvoyFields typed accessor (ZFC gt-re2y)
  • 50af249f0b41936c26352eddcb792e0e7b14cfb7 Merge PR #2188: fix(refinery): remove dead findTownRoot
  • 4bdb642f392d890ddcffd397d6a403cb97ac7706 Merge PR #2188: fix(refinery): remove dead findTownRoot filesystem inference (ZFC gt-qago)
  • f29762dc718c4b47c91d2fadb61a43805cf1f603 Merge PR #2189: fix(witness): replace hardcoded zombie state classification with typed constants
  • 224b41363ca3b2476073dc8e86ca21805b0042b2 Merge PR #2190: fix(witness): remove hardcoded Mayor role refs
  • f6b50790c3bc00a5ab812ec336a0357e23d272f0 Merge PR #2191: fix(test): fix flaky TestVerifyStartupNudgeDelivery_IdleAgent session collision
  • 04f31e9ae93a299ba45a5f1c68792a17368071ce Merge PR #2192: fix: prevent auto-close of stuck convoys with tracked but unready issues
  • 94280c4c0f93bc8cb15a384194207afd232d35ed Merge PR #2193: fix(zfc): centralize hung session threshold
  • 0f6eba8e004e8d1964b33f01706bcff4bae52fc5 Merge PR #2193: fix(zfc): centralize hung session threshold
  • 0dd4937dc2709306677bc31a48a69c43f8ebd551 Merge PR #2194: fix: replace ad-hoc string parsing with structured field parsers in witness
  • 494676823274d5bb056f73a73ec11b31b1d73b71 Merge PR #2195: fix(beads): replace hardcoded state/status string comparisons with typed enums
  • f75a7db7a3437bf34d98b557320363f0bef7e09f Merge PR #2195: fix(beads): replace hardcoded state/status string comparisons with typed enums (ZFC)
  • cc975c27c82c16102df8af43fb5cd0e2a546a123 Merge PR #2196: fix(zfc): replace PID signal inference with heartbeat
  • 3455644756cb5ac728fd2e14959abb27280b8362 Merge PR #2197: fix(zfc): replace PID string matching with flock + port checks
  • 76dde5ad92f63aae369efdd4bc33125286620163 Merge PR #2201: fix(sling): let legacy bond proceed with malformed wisp IDs
  • 4d3098a8ef938292abacf67f3a81bbf33181c477 Merge: fix: stabilize flaky TestRunBdCmd_ReturnsStdoutOnNonZeroAndTimeout (gt-5kjn)
  • 71009346606cea805b143364eaad4c4bdc91220e fix(audit): handle Close error and add Sync in LogDetachAudit
  • 7b9864221a1e918b8b162621002953ceaa0a51f4 fix(backup): skip git push when no remote configured
  • a3dd60bf33ce97ae278ce1661389c38e2993ff8e fix(beads): FindMRForBranch now searches ephemeral wisps
  • 9d733acbe3427c73089bf4f24fa1a1dbfeee3559 fix(beads): replace hardcoded state/status string comparisons with typed enums
  • c5a0e719818d50adf374a33ea775083cdcb4dd67 fix(beads): replace hardcoded state/status string comparisons with typed enums
  • 3cee03c10ef4ab5d7c4a19967629696777438830 fix(beads): translate GT_DOLT_PORT to BEADS_DOLT_PORT for bd subprocesses
  • affaab89b64da9c5a3c9ba0aef019bd5d2610eba fix(ci): Windows test failures from backslash path separators
  • c377209f7c82355e7150db3c653558a6079b2541 fix(ci): create GOPATH/bin before installing Dolt on Windows
  • 0981134b97b2ac937bdfc72019433e09032f0a38 fix(ci): lint errors and port collision in integration tests
  • b429b655a178e15224b4027a5c4a7135b7aee014 fix(ci): update bd version from v0.55.4 to v0.56.1 to match go.mod
  • 15fdc03bad138f5fb9db0ff1865590ea6eadda58 fix(ci): use filepath.ToSlash for Windows path compatibility
  • 4f539431c8ad46bb78b2d6c1e09e3566d61c20fc fix(cmd): use env var fallbacks in persistentPreRun for InitRegistry
  • 20dbd6181f427e534920a08f7cd1071fbb36a17b fix(cmd): use env var fallbacks in persistentPreRun for InitRegistry
  • fe090573b1ade6df8fd9f4781b8c661206f1ce04 fix(compact): send daily digest to mayor/ only, not deacon/
  • f9a161fe0c69353100bde0ce0a05411af712efa9 fix(compact): send daily digest to mayor/ only, not deacon/
  • 2fa655bfd8199c7958bc8dc36f0af4e845ffc53e fix(config): RoleSettingsDir returns wrong path for refinery role
  • 5b8f7de7057acaf698b9aa46d47549cab6e4b693 fix(config): refinery settings path wrong in RoleSettingsDir and hooks subsystem
  • a29fdb61fdc610d33256a9b7c71b9571622caac2 fix(config): revert refinery settings path to parent directory
  • 7affd8872dc6012c0a739686c2d07cb525b940af fix(convoy): add recovery sweep after Dolt reconnect and at daemon startup
  • ab3af814bfe30b841f395d12ba225b0554db0a47 fix(convoy): address PR #2170 review feedback
  • 39962be0181fad0d9e773bfc00bba55a25c43167 fix(convoy): check both parked and docked rigs in all dispatch paths
  • 23c81f6aea1e012e05698369def5d900e189efb9 fix(convoy): respect decision-to-task blocking edges in wave computation (#2141)
  • c17c1d71bc212420aba36ccc93a14dcdad924164 fix(convoy): route stranded scan warnings to stderr, not stdout (#2142)
  • a4b381deab4b75ce6c6bfd4dd7adc929c0eb6639 fix(cycle): merge witness/refinery/polecat into one rig ops cycle group
  • cbb2273ca6f6511808867bad7c27d3a4ef6ed053 fix(daemon): derive orphan DB threshold from data dir, not hardcoded
  • 95eff9252be5e8a24676ab2b1e947ee2c11f73e8 fix(daemon): enforce rig dock/park lifecycle across all startup, patrol, and sling paths
  • 0a7c42552444d99305f78a86b3b692020f1bf1d6 fix(deacon): add heartbeat refresh steps to patrol formula
  • 6b4157dd473caa42c11d977cc879de39e6ae1a97 fix(deacon): correct gated check command in patrol formula
  • c5f3ef51df2b782094d4a21f13f557fdd61c8a34 fix(deacon): respawn dead pane instead of kill+recreate to prevent crash loop
  • bbd56a3724486a6b0888be50464a5d7f710e8aeb fix(deacon): use gt dogs list --json for stale dog detection
  • 984c066f6c0f7dda55717b33e6ca7f2b2250594b fix(deps): set GOBIN when auto-installing beads to prevent stale shadow binary
  • 2a7ca59831297d516039203715151dd947f98fa9 fix(deps): update module github.com/steveyegge/beads to v0.56.1
  • bc7c06876dae0100ef4f33bf9cdd0561e4a72e9f fix(deps): update module github.com/steveyegge/beads to v0.56.1
  • 2eb65283a06f3bccce442e5d75013033ad74b52f fix(docs): correct ~/.gt path references in formulas and role docs
  • 9a242b6cbbf8fb818c3bfb59212b42e5ab127815 fix(docs): correct ~/.gt path references in formulas and role docs
  • 2569060c3bbc4d84cc018db05dd16ff503f669a5 fix(doctor): add --include-infra to ListAgentBeads query
  • 58554b7fef006512094b00134fc84aa0a96da64f fix(doctor): check patrol formulas via filesystem instead of bd CLI
  • 5ab75523db2f075ca4757098861a07dc55c75172 fix(doctor): claude-settings check runs before daemon to prevent race
  • 01fb96b49b54e0ee35768596b2afbeb242541a16 fix(doctor): claude-settings check runs before daemon to prevent race
  • 2f6dcf5d50dd15097d161c8555c899e1fb20dca3 fix(doctor): correct claude-settings hint from 'gt up --restart' to 'gt up --restore'
  • 1ae58998de9649b707e565cf99b3aca7b92952bb fix(doctor): correct claude-settings hint from --restart to --restore
  • 83a0c7e76f5a9c74d706dcf5b8938572cb49b3d2 fix(doctor): detect stale agent beads from deregistered rigs
  • cd5984023a53ce8b40fe12b962b1878e57fa4199 fix(doctor): don't flag absent env vars when expected value is empty
  • 699f29c843c238e37ceecf044f1eb12ba33208e5 fix(doctor): exclude crew from persistent-role-branches check
  • addf9fc3226d419ddc4402e8e2857a53c6e3ae97 fix(doctor): exclude crew from persistent-role-branches check
  • 2ca2d45897c06a5f31398f1c9e7d94782a1abd62 fix(doctor): handle nested polecat worktree structure in redirect checks
  • 31a19f800681dfaa99175df8522048cecf8b53f6 fix(doctor): handle nested polecat worktree structure in redirect checks
  • fd86b973dab8d3e696b8cdb5fc13ad6a875aaa5e fix(doctor): handle worktree branch conflicts in persistent-role-branches fix
  • 219e56a31efc89078ad26b3ffda130919dc8097b fix(doctor): handle worktree branch conflicts in persistent-role-branches fix
  • 2e76dbb70cddc78df1cb816b7aac3d675225ec26 fix(doctor): make no_prime_hook fixable in priming check
  • 0bd6d03caadcf4ad05cb56ac3c6243d1ab35920c fix(doctor): make no_prime_hook fixable in priming check
  • 328b7394cf04a07757fe40f6450b88439b9edcc6 fix(doctor): propagate CSV parse errors in patrol-not-stuck Dolt query
  • 16c7ca0d1979bb29807eed469d85a0f4c8a67cf4 fix(doctor): repair beads redirect targets with missing config.yaml
  • 9af14fa528657b751000072a3c1ba1fb26b98203 fix(doctor): search full formula path in patrol-molecules-exist check
  • f494f7d58173ceb3377ed29fbcb6cec867534b2a fix(doctor): simplify parseCrewOrPolecatFromID return to single string
  • ed88f2741d04dcca6b3d28051720e3e296acb36f fix(doctor): skip rig dirs whose .beads symlinks to town root
  • f3acfa69892839c41fe00bf97c3b013f8cad79ef fix(doctor): use scoped Beads instance for label updates
  • 31452c01cf5cde0a799bb788a59cfcce4cac0bb5 fix(dog): add RoleDog and DogName to fix dog template rendering
  • ed194c1d55886bd147d59c3b356d45e4870228e1 fix(dog): remove invalid --role-type flag from bd create call
  • 59c82d27a1a34cee8d1e0cd2be3131a086823879 fix(dolt): bump DefaultMaxConnections from 200 to 1000
  • ece3eda8670a66aa8fdcd9f03c8260aaa2fd3a02 fix(dolt): make gt dolt start idempotent and fix server detection
  • 2ac99c0b4b05bcf72033b7b9b2204b99df0c5d58 fix(dolt): measure query latency via direct TCP instead of subprocess
  • 1e4263e9db27c8234c91e02c1df4a959827b8b0c fix(doltserver): clean up dolt_branch_control on RemoveDatabase
  • c7305e8b564b6f913f616ef602c5e4c1e6f3594e fix(doltserver): clean up dolt_branch_control on RemoveDatabase (gt-zlv7l)
  • aca9286685c2c7ec02f542ba2f8bcb20869b41c2 fix(done): check wisps table in FindMRForBranch to make gt done idempotent
  • 06250a006ffc7246fd18b7c1e8e10577be9e3956 fix(done): normalize polecat CWD to git root before beads resolution
  • 9d64c0aaac548b68ce70fc3b463c20967621c871 fix(done): prevent sleepwalking polecats from completing with zero commits
  • a3f697769dbcf2dfac4b2ba09fdd38c069f5b852 fix(down): make sweepCrossSocketZombies bidirectional for default socket (gt-y8x4)
  • 1c7ac45498b9471b9df8a8cb553904d60f2d8ddf fix(env): pass cloud API credentials from shell to agent sessions
  • cbc08f210d7c9d75875931106f788feebb87cacc fix(env): pass cloud API credentials from shell to agent sessions
  • 5eea1ea66a374006ed49c50f95760d825823fd99 fix(formulas): add missing review_id var to mol-idea-to-plan formula
  • bc143fe98c35a8ad9c727f8aa0c82479f5e579d2 fix(formulas): add missing review_id variable to mol-idea-to-plan formula
  • 5782d26b3b7f3c180ab7f385b61c5fd7d02b591e fix(formulas): remove duplicate review_id var in idea-to-plan formula
  • 8655a7e4bc8965490b2ab22850ca688ea35b3b65 fix(formulas): review fixes for idea-to-plan pipeline
  • 3bd241255e245788f63610239ee19fba75a46a5f fix(git): anchor exclude patterns to repo root to avoid hiding source code
  • 9a77c1cb8be1bc65127023c037f4ee889cbc759b fix(git): anchor exclude patterns to repo root to avoid hiding source code
  • 64725f83b9f39b030d06c3203e282d2db541aa02 fix(handoff): clean up orphaned bead on pin failure in GetOrCreateHandoffBead
  • a7254c0c85245b395226123a03dcae0d697554d4 fix(handoff): deterministic fallback for empty auto-handoff context (GH#1996)
  • 93387e799d77804d791d05a671939fb05b1f15e0 fix(handoff): make ClearMail continue on partial failure
  • 099044ba8686d0d9d5de4fa0b2c01798ccf73691 fix(handoff): preserve conversation context on PreCompact cycle (#2073)
  • 5d40c14e36690eff1ccba5f84444d22f1777b536 fix(hooks): add patrol-formula-guard to deacon and refinery roles (hq-3paz0m)
  • 9402ff10e0acf22d9b997ee3d430efc1ed8385cb fix(hooks): backfill DefaultBase into on-disk hooks-base.json
  • cc7035222ce6a8d17341c03c1d4a760ca5d57a3f fix(hooks): backfill DefaultBase into stale on-disk hooks-base.json
  • 41b333b400c661913c59134dc360881473b39b41 fix(install): clean port-conflict error — no Usage dump, suggest concrete port
  • 7e63f857e20c49d1056c5efaee97d1f0ade12be1 fix(lint): remove unused townRoot param from cleanupOrphanedWisp
  • 248da05c9276e13969685b73acd374f90c89a6fd fix(mail): add filesystem fallback and crew/name shorthand for crew member addressing
  • 8cf9d12f335c83ab07bf9a308eebddc2e56e4ec5 fix(mail): always queue mail notifications to prevent stuck nudge input
  • ad903bf300294cce2fdd697aec28520dd3da094f fix(mail): auto-nudge idle agents on mail delivery (fix-merge of #2125)
  • e93d7c952a892f9d5cd01ec48bee3f578bdc27aa fix(mail): fall back to workspace directory validation when agent beads missing
  • f77950edba059d412edcf853331be3b7931101e1 fix(mail): include pinned agents in active status filter
  • 8a54de69c46c542cf4cb680108081d5c051aee9f fix(mail): include pinned agents in recipient validation (#2002)
  • 5872d9afe244042b6fa862f440dbcdfe7908962c fix(mail): make LIFECYCLE and merge protocol messages ephemeral wisps (gt-vpy9)
  • b89cd4c893a86f221ed7d6a43ae804969e9d910e fix(mail): surface query errors in validateRecipient instead of swallowing them
  • 4ec543a8871d1a5e8473bccab892f1ec549549db fix(mail): validate recipient address before sending — reject unknown agents
  • c4faaa821a174a0177a04350b94494d57ec4a406 fix(metrics): emit gastown.polecat.spawns.total on polecat session spawn
  • 58fc666e38ab9abcc27d3ec068d92fe5a3c0a25c fix(mol): fix role extraction from agent identity for handoff bead lookup
  • 713064c6c23eeb7d365b99ed7399a84c773c1430 fix(mol): use handoff bead for auto-detect in mol attach (gt-t9li)
  • 2b8d6321f6d0809d4f1d9f528fe5e4d9c028fbab fix(nuke): use ResetAgentBeadForReuse and correct workDir for molecule cleanup
  • e5248e0f28c920c0e206e03bfc633b11836345e4 fix(patrol): remove --root-only flag dropped from bd mol wisp create
  • 105b5f545814f701689af5b63ffa94c00a24a046 fix(patrol): use gt dolt kill-imposters instead of hardcoded port-3307 kill loop
  • 0fb02e17ff2021c949c1ce46802c9212f916305a fix(peek): support 'gt peek mayor/deacon/boot' for town-level agents
  • 37521081b467220c155839c38d4bfa1f9808dc2f fix(polecat): persist findings to bead before closing steps (gt-ah2k)
  • edab16a9e36d3b9fe2e06b6bf4678bbe5c87296e fix(polecat): preserve remote branch when MR is pending in merge queue
  • f0660ab79f93bccb25fd4e1edbb70fbb2b917266 fix(quota): add API Error rate-limit pattern to scan
  • adb7fb321d6d46a4cb805f94f90989e6e1836b81 fix(reaper): escalations to ephemeral, reaper purges old mail
  • f61ff0ac0e0d48f230b55e658eba83cd8fbbe0d5 fix(reaper): restrict wisp reaper to ephemeral wisps only (ZFC violation bd-5frbt)
  • 1817c5851ab275669f29eff8970ec8a81fd7f3a8 fix(reaper): wrap all reaper mutations in explicit DOLT_COMMIT (gt-at0i)
  • 87caa55d76aa8a8a0eb6506cdf1fb15274c4af26 fix(refinery): address target-resolution PR review findings
  • 75b72064db222980e5f7b258bed333a56d66c87e fix(refinery): align process-branch rebase with MR target
  • c7de7daf46a4b61968e3de57806ee0633466d55d fix(refinery): close source issue after merge in patrol formula
  • d41febf6d526b5ac25123b8f36aecde17ace0e9f fix(refinery): close source issue after merge in patrol formula
  • edf3b96a047e07341f6031aa94ae66ad4d9c6825 fix(refinery): deterministic queue tie-breaker for equal scores
  • 3ebb5336fd0d9a289a8727eaf9b2cdd0dd4a5b32 fix(refinery): extract ConvoyFields typed accessor for convoy metadata (ZFC gt-re2y)
  • 15b4955df5bac9c4232d4d12befb34a2df7fc517 fix(refinery): finalize target-aware patrol guidance and eval guard
  • 8aa51c0401a6c708f3cf99fc55642e0d405ec7a0 fix(refinery): make stale-claim thresholds and MaxRetryCount config-driven (ZFC)
  • 12759b1c1e4f9c19a1f61598c8ed149877b55bef fix(refinery): make stale-claim thresholds and MaxRetryCount config-driven (ZFC)
  • f66eddc37972d97069704728822a4fc68de1e4fc fix(refinery): remove dead findTownRoot filesystem inference (ZFC gt-qago)
  • 4ddd1fe1cc9be9fac625a20496e0cab06c686209 fix(refinery): remove hardcoded severity/priority logic (ZFC gt-9xbg)
  • 6ba86827c4c40de228e07a0f394a4ba1d10b3f2b fix(rig): use IsRigParkedOrDocked instead of wisp config for docked check (gt-7uhc)
  • 70a6989687a2d72d6193e4a14bdf94cca84edd81 fix(seance): clear CLAUDECODE env to unblock --talk from agent sessions
  • 873dc759c23d51d159824292123bec189e8df2eb fix(seance): find sessions in single-account setups without accounts.json
  • 47a6541980b29f4e899222c17855f2e44d4814ef fix(seance): find sessions in single-account setups without accounts.json
  • 923b42cf1bfd3f8df9d6f7997e37484fe309b046 fix(seance): fix --print flag and clear CLAUDE_CODE_ENTRYPOINT
  • 97b5f114e0103757092426b2a568c5c994d330c7 fix(seance): resolve truncated session ID prefixes in --talk
  • 2930ba83d9d80180499495b63b770ec46f8f88f6 fix(session): update socket test to expect 'default' after 635916ab (gt-0jh0)
  • e5d540b9bccaf0dc27921e5cf6ea97dc833398b6 fix(settings): add skipDangerousModePermissionPrompt to role templates
  • 41a28cc0466165aa99ddb47fc2d0f4f44466b68d fix(sling): clean up git branch and convoy on rollback failure (fix-merge of #2139)
  • 7549512f600712b5b7ff5b0f2bfd3530e514bc26 fix(sling): detect malformed wisp IDs and clean up orphans in formula instantiation (gt-4gjd)
  • 890f67ac1c10fd4be9153d8cac9eabd82d022aa3 fix(sling): remove dependency bonds in burnExistingMolecules (#2093)
  • 8eb3d8bbaee93875c90d96bb58a5185f83f3f6cf fix(templates): remove personal names from mail examples
  • 45fba0756b85111d23b54bf329c669aac1f43372 fix(templates): replace hardcoded ~/gt with {{ .TownRoot }} in role templates
  • bdd6a70bfc7684d055d34e275f2baca22e9e0c2b fix(test): bridge Dolt PID to town root so IsRunning checks pass in CI
  • 58c8fd1472eca5632a9236a99783d27784932cd9 fix(test): capture stderr in TestWarnHandoffGitStatus (gt-ftl9)
  • 122eac3981d19bbd633e423c481984779b61bbb3 fix(test): correct convoy ID format assertion to match base36 implementation
  • d4360fa2cd520ac75a50f41c8a0b7efbdd80915e fix(test): fix flaky TestVerifyStartupNudgeDelivery_IdleAgent session collision
  • 1de7585f55079e3d6c629037a471f88f8a98bddc fix(test): forward GT_DOLT_PORT as --server-port to bd init commands
  • 8d6e8dba1c6a75435134084104dd5e8a2963ab1c fix(test): forward GT_DOLT_PORT in scheduler integration tests
  • 905be5a62e5ccd97205895089ddecefec4b6615b fix(test): forward GT_DOLT_PORT to bd subprocesses and adapt to bd v0.56.1
  • 80f3168edfc58cdf4bbc09892132aeb0e3f7b38b fix(test): isolate convoy and daemon tests on ephemeral Dolt server
  • f5688725d3447e215fcb93f062900627554ad3b0 fix(test): make TestVerifyStartupNudgeDelivery_IdleAgent deterministic (gt-eo8d)
  • 5f2157f81a526b4d4bedc89e39d0c945d06786bf fix(test): mock isRigParkedFn in TestDetectWarnings_Clean
  • 96ebd972247b0754fe2210c12499896896b3e22f fix(test): pre-kill stale tmux session in TestVerifyStartupNudgeDelivery_IdleAgent (gt-eo8d)
  • 0561f9f1842b33c1080cc5b2e6120581e81fab3e fix(test): prevent test suite from leaking Dolt databases into production
  • 15d47c0003704280217e7e9e37867187e234a6a5 fix(test): resolve macOS symlink in sling rollback test
  • f2b8deca8c6aba417c3bcb2f5505949b63d34db3 fix(test): restore correct testutil function names after rebase conflict
  • f7463a5e28cb5c2785533f6d5d9d0548c73bcdc1 fix(test): revert scheduler initBeadsDBForServer to upstream/main version
  • 8f557348fd8d59fb69264fa28f9a399077fc2fa5 fix(test): run squash jitter tests from temp dir to avoid workspace lookup succeeding (gt-emna)
  • a2e6cd7f7ae60a8ed0c74754bd9678b24dc36a15 fix(test): skip bash-dependent daemon tests on Windows (gt-94i9)
  • c4a010c38c2e277407fa2b7d1be80a2a57f47604 fix(test): skip gracefully when Dolt/Docker unavailable instead of failing
  • bfc62f4048bccb369a3d4645f7e78c06d9c3aa9b fix(tests): preserve GT_DOLT_PORT in filterGTEnv() (gt-ah9y)
  • a09d3b34f6c058d8dc9df81839ea33a06d24da71 fix(tmux): NewTmux() sentinel prevents silent wrong-server connections
  • 18c5b34d35039fabcc5aa1f4c9bb1c8978e2ab0f fix(tmux): auto-dismiss workspace trust dialog blocking all agent sessions
  • ab5f06f12f3b3189b7f719994a2a2d6a2cd20477 fix(tmux): derive socket from town name and add cross-socket agent menu
  • 1e8e5e0ff0bb6ebfc0eb1540c6112d19cd8cbbb1 fix(tmux): eliminate session creation race by running command as initial pane process
  • d06ee7cb7b3845afa7c2c9b89bd85ddf472a1c81 fix(tmux): harden auto-respawn hook with dead-pane guard and background execution
  • 65d4c9d228f782404e1bfdd612286a9421c8b6d2 fix(tmux): reset window-size after WakePane resize dance
  • 134c3a02188fd12840d1db2768c30d3115b7b48e fix(tmux): restore IsAgentAlive fallback in WaitForCommand
  • 3cf59c2b6d556d3cfb02d7f7d0f417e61a50babf fix(tmux): restore ctrl-b+g from personal sessions after cross-socket split
  • 940569218039fad0142c6a9ce9ff244539df1a65 fix(tmux): set GT_TOWN_ROOT in global env for run-shell cycle groups
  • 4b9b8874f474973a54a08bb8f26d6feab09a5312 fix(tmux): set window-size=latest on new detached sessions
  • 37441eed1587f0f637e3e49ae6c7fea4459a57f6 fix(tmux): stop daemon from creating separate socket server
  • 182718b6c4d7f8c5c4c76104d3fd9f5a294c7401 fix(tmux): use /tmp for socket directory instead of os.TempDir()
  • faa4c6863bd1897e1787aff761acf718e9b65439 fix(tmux): use TMUX_PANE targeting for session name resolution
  • 635916abb15f4606f0a50824fc130ee63e236e5a fix(tmux): use default socket instead of per-town socket
  • 96575e1641c01e3b3a2f3edce8e38a911c10a92f fix(witness): prevent premature polecat nuke before refinery merges (gt-6a9d)
  • 23b45a964e5679e248a35eb833c01d3e06383b5d fix(witness): remove AssessHelpRequest Go-level triage engine (gt-l7uq)
  • 3bf979dbf01b34041d2db0565202dc76edaac70e fix(witness): remove hardcoded Mayor role refs from cleanup handlers (ZFC gt-5rne)
  • f9466bbab1db6d3f43cd07ba92c0f9a4284544e9 fix(witness): replace hardcoded zombie state classification with typed constants (ZFC)
  • ddd53d81a14cbad5ebd5115e9207e955929009a4 fix(witness): replace screen-scraping with structured signals in DetectStalledPolecats (gt-idrl)
  • 896d610fdf484fdc81fb61b9b96aa72053c069a7 fix(zfc): centralize hung session threshold as single source of truth
  • 74cfe11f995a3affc7a7e50483206d6af8df76ff fix(zfc): replace PID string matching with flock + port checks
  • 7c0de7bd57eb9e26284865f9012d7d830c67f866 fix: 4 Dolt server bugs — phantom dirs, orphan detection, read-only recovery, stale locks
  • f75e4d38a9a019dfbfe5bd5da61900c6329a1aa1 fix: EnableMouseMode respects global mouse toggle
  • 94d9afc4c1460b5d85594645c308240619383d6f fix: JSONL git backup git-add fails on untracked subdirectories
  • 9a98dd6ec815fb4afc10cd45fc7bc4dd9103ed9d fix: UTF-8 safe title truncation + PrintWarning to stderr (fix-merge of #2140)
  • 1191b08083f40ebe4914bc204c0e7347185cab57 fix: accept bypass permissions warning in crew start and fix cycle bindings
  • 3cb4b8e90a2de07c73030a02545c057cdd68af3b fix: add BEADS_TEST_MODE=1 to convoy store tests to prevent DB pollution
  • 8bb315c0135ee7a599e61bf70844e00abe69476e fix: add G201 golangci exclusion for internal SQL formatting
  • 6698c25e846e88df9b9bd2cada9c295d6ee38078 fix: add concurrent write retry logic and hazard docs for surgical rebase (gt-7wyq)
  • 6acfb085ce1e247696ea1c08eb858e145b4ea51a fix: add deterministic git state to handoff context (GH#1996)
  • 3bb41ade2086a1645e7eee0d0efac4ac91294e0a fix: add deterministic tie-breakers to convoy scheduling
  • 00516d4d541bf5b5e2a3edc94382b0b604ae5d22 fix: add idempotency checks to compact report
  • c86bff623cf0f8eac4a1db43b46da6dbbe28b5fc fix: add idempotency checks to compact report to prevent duplicate digests
  • eaf9a3c9db14aecd93ca5a8b6a5e2753f15d9bd7 fix: add in_progress guard to sling dispatch to prevent polecat proliferation
  • a6df5fac3e4ce93c311890267f615ba07fe62646 fix: add in_progress guard to sling dispatch to prevent polecat proliferation
  • 146fa9f0901ab7ecdd9b7d85d917e6871f92a1f8 fix: add missing .gitignore patterns for Dolt database and runtime files
  • 79ad4b8033979260df38dd32fe119729f1b7ccea fix: add missing .gitignore patterns for Dolt database and runtime files
  • 68b1a75192680a48881b17769551ad869d3803c8 fix: add requireDoltServer and unique prefixes to integration tests
  • 2b6a37ff246ce7b9059c0c9e7e6ca9ab30997a0a fix: add startup nudge retry loop to fix polecat idle race (GH#1379 Mode B)
  • 3a5f424d93c157dbabe1d23cbd2b42793b8c4b63 fix: add t.Cleanup to drop scheduler test databases after each run
  • e14834abd8e1839cfaf230105b5085f80adfce62 fix: add teardown cleanup to drop beads_pt* test databases (GH#gt-qmp)
  • 2c6ff30c57350bb57eb1879d4f23812a23b0c809 fix: add tests for splitCamelCase and guard empty prefix config set
  • f99edf692bd6f1091c05cc15f9b909f860d533e8 fix: admission control uses TCP client instead of embedded dolt to check connections
  • 9f0902c20c543476b76b154d9279df5434972111 fix: align DogState fields and remove redundant status override
  • ce7af0ae2ddf0611876a0701017bc4ce38bc5b7e fix: bump compactor threshold from 500 to 10000
  • 34945dfc0d715f4ec821738e852c55e732dfad6e fix: capacity scheduler hangs by fetching only needed work beads
  • 4f582345442f4bc2f5d93e5ad50663279c7fc76b fix: capacity scheduler hangs by fetching only needed work beads (gt-46dn2)
  • f5af09c375d2840633ee15064d492dab4718259d fix: check active_mr before SAFE_TO_NUKE and sort mail by priority
  • 805f27535d0528668cc763578063b9009d9f40a4 fix: check bead status before zombie flagging and redispatch
  • a96c90e8e0ebc101042d59f81aae19eff72a2b61 fix: clean stale dolt-server.pid to prevent mail inbox hangs
  • 0a845a8dd0236ee52e3a3b43e118d3cf53e9a75a fix: clean up orphaned tmux sessions in TestVerifyStartupNudgeDelivery_IdleAgent (gt-mesu)
  • 4b1d2400a209098c299ef66c97c51628cb0d6b7d fix: close descendant wisps before closing molecule roots
  • 9b15a2a94c7fc60fc6634f2fb86d1c6f9e254884 fix: close molecule steps on handoff to prevent wisp leaks (gt-e26g)
  • 34b1204b8a9ca4afa6e75765c531e08495af9628 fix: close orphan step wisps before closing root molecule (gt-3o59)
  • af97a4ffd3a1e1658cae412c461032da5aee7d2e fix: complete persistent polecats design — stop doctor from undoing agent migration (#2055)
  • 8e689221b114f563d9313498194bffcd6f078edf fix: consolidate GUPP violation threshold into single constant (gt-1emx)
  • 919cac3e70d880971edede8abd2b2b4f2d23c289 fix: correct stale comment in down.go Phase 6 about tmux socket isolation (gt-qzjb)
  • caa04824820b6ec7d60113200e00373c8fc0afea fix: daemon backup discovery uses wrong dolt subcommand, add all 6 DBs to config
  • e4257210ea0a7ab27722710ae01782c5b1fbe0af fix: deduplicate agent bead IDs when rig name equals derived prefix
  • 58234c9bf34c49e9a456fcb37b57611f0b984812 fix: deduplicate convoy close handling across stores per poll cycle
  • f7439b03d2191b7624497f96faa7223a17478835 fix: detect stale custom-types sentinel to auto-update types on upgrade
  • e9e2923d106b8f1d015bcda8b433cb6b818e04a6 fix: disable polecat pre-sync — polecats are ephemeral, not persistent (GH#1973)
  • 8e5eaf141feff7be27c82a789657c692223cafad fix: disable remain-on-exit before tmux kill-session in dog done
  • ff6ba53659edfb95e580f1a5b6770a4bb97e0a5e fix: doctor --fix respects rig default_branch for persistent roles (#1430)
  • 9ea99c2231946f357064942cec3892042b8d5507 fix: doctor --fix silent failure for agent-beads and misclassified-wisps
  • c718b882c0b8c57bdf0fffb9ca07a887914e4342 fix: doctor agent-beads-exist check now finds wisps (#1935)
  • f415748e6195d6cb504006cd798886d023b8ce28 fix: dogs auto-terminate tmux session after gt dog done (gt-2yx7)
  • d42f633345dbaf612d118cb23c895bee299013d8 fix: dogs can't find plugin:dolt-archive despite it existing (gt-a0sg)
  • 3e690b79c30d9047002e51f9e8bf80afc4eb5c9a fix: emit session_death event and notify witness on polecat crash
  • f3f4fe719b575189dad58ad514e07c4899fee4e8 fix: emit session_death event and notify witness on polecat crash
  • 650e42d0620a2a56e2e8ea73b20549bd32bfb6ab fix: ensure dog agent beads exist before dispatch mail (gt-r8m9)
  • 0242002fa916b1c34728d33211989391ca7d775f fix: ensure dog agent beads exist before dispatch mail (gt-r8m9)
  • 1b9e23407c2c22da3320f00bb007cf5fffded793 fix: extract syscall.SIGUSR2 into platform files for Windows cross-compilation (gt-94i9)
  • 059ea16c2d1e8a642dbb29fc4ae2135d7001b179 fix: fall back to TownRoot when rig path doesn't exist in patrol-molecules-exist check
  • 4fe275c5bb932a601c614ae6f5180ef80f054a50 fix: fall back to TownRoot when rig path missing in patrol-molecules-exist check
  • cfa8b2caa592237cfcfabd1226cb1b3556bfd576 fix: fetch non-default branch in shallow bare clone for --default-branch
  • c10e442a67b6bf85e69d0883ee168c3b4a075bdb fix: formula lookup falls back to embedded for non-gastown rigs (gt-oir)
  • 7c4bacd26e98dd57891012814c1a366ab93a2d8b fix: gate sandbox nuke on MR creation success in gt done
  • e75de80785dbd2a4bf0274ec13654fec78e4dc85 fix: gate session kill on MQ submission success (GH#1945)
  • b4ed85bbf9e5794f9aec5a3ec2328ef4f7624575 fix: gt dog done auto-terminates tmux session to prevent idle-at-prompt (gt-2yx7)
  • f1322869830a91010641a42207f6dfea6619ec7d fix: gt dolt cleanup balks when orphan count exceeds 50
  • 87a5847ed8c40f6713c19a4ab70f26b3bbc1cbf8 fix: handle Dolt nil pointer dereference in gt doctor --fix agent bead creation
  • 43dc69db84e8dddba9acd48e8e931bc01a1b6539 fix: handle nil pointer dereference in gt doctor --fix creating agent beads
  • 3a6b6de61e432bd407dc446095eb35765534b77e fix: handle phantom convoys gracefully in gt done
  • bd680468e49359a4bab5204f0f3a09d0bfb733b7 fix: handle phantom convoys gracefully in gt done (gt-9xum2)
  • 09500e646e9d1b075de019c7f1339fe3d8508c10 fix: handle wisp format step IDs in molecule step done
  • b82603b73e8bd5818612ce7cc263b3e5a5f851ac fix: log patrol config parse errors, remove invalid health_check_interval
  • 98767fa2559b8c50690a15eccba2e8d9147c56ab fix: make WORK_DONE notifications ephemeral wisps, not permanent beads
  • 8e2151f7f2564ff009bf14e5f4137f3cb87d81f5 fix: make convoy close event processing idempotent (GH #1798)
  • eb530d85fadd8a50a89bafdc2f990495cccc0332 fix: make restart_tracker crash-loop params configurable (ZFC) (gt-jq7l)
  • e89a3b655415d563fe5b0ec9665c3e4ff1a33eb9 fix: malformed wisp IDs proceed with legacy bond instead of skipping
  • 330664c2895df4a9fd81a372a99c7cc71d7ad6a5 fix: nuke preserves remote branches + enable GatesParallel (gt-v5ku, gt-8b2i)
  • 67b0cdfe2352c88cb180a6597dee3abb9204cded fix: parse extends/compose/advice/presets/squash/gate TOML sections in formula parser (gt-1fje)
  • 209b47bc134d50c8d1206d090e9dadd746a22cd9 fix: parse tmux socket from TMUX env var instead of hardcoding town name
  • d69185407b22c12e56dedfee878038b1d9e8f737 fix: patrol-not-stuck check queries Dolt DB instead of stale JSONL
  • 088113df939c4e9381d8b6696e71139ad535dc56 fix: patrol-not-stuck check queries Dolt DB instead of stale JSONL
  • b373e8f31d48c22ccf9f90e87bcdb95b4c2df773 fix: preserve agent-bead metadata and harden crew bead creation
  • 4bd189be48e4c357d26ba6f82e8b5267066fdd52 fix: preserve remote branch with unmerged commits during polecat nuke (gt-rm9f)
  • ced820bc4cebbc49ab0d6754caa186d06f2a4d16 fix: prevent auto-close of stuck convoys with tracked but unready issues
  • ef12dd514f9ceaf1a5309ee17451bdd63d36f12c fix: prevent dolt-server zombie leaks from mail test suite (gt-qae2)
  • fa9145d0c8fb79809ce8b0268f71ef35835a4709 fix: prevent gt doctor --fix nil pointer dereference creating agent beads (GH#1769)
  • 53f667c68670c55f7df0277f4908af9de20a79d3 fix: prevent molecule step wisps from being promoted to permanent beads (gt-uzui)
  • bcf988f3f801c93a34bd92f46209c2b395bc08e1 fix: prohibit witness patrol from closing foreign wisps (gt-oei1)
  • dfed4c90c16d5d57929ce1ee9b44edc579343490 fix: remove --ephemeral from CreateAgentBead to write to issues table
  • 91249671a8410a8ac0a245ec519777f9102ee133 fix: remove --root-only flag from bd mol wisp calls (gt-th5n)
  • 00293138e296f10b254f6c50e3f72499c0127f5a fix: remove JSONL fallback in detectBeadsPrefixFromConfig and fix tmux tests
  • 383945fb3477c3ac8717e23ffa33e44275888d45 fix: remove ZFC-violating decision engine from degraded boot triage (gt-mcw2)
  • 915f1b7e148ff68ba9e80771dc7ceeae3fbac9c2 fix: remove auto-close of permanent issues from wisp reaper (gt-hln2)
  • 863a4c9d1970cb735dfa70fe952efbe89b1cf524 fix: remove dead cross-socket zombie functions after socket migration (gt-wrdz)
  • 34e4927780b32e5cea0982d9aca3edae84ee690c fix: remove dead findTownRoot function from refinery (gt-qago)
  • 6c6c397cfca58643097906a7736e83d8fa28d150 fix: remove duplicate AgentStateIdle/AgentStateStuck constant declarations
  • 0b091f239b974c678efdc95074c10342366e85a7 fix: remove explicit --id from mail creation paths, breaking all mail delivery
  • c3034f7b183c909dbd314e6ea117e8dd9cfd8e1e fix: remove hardcoded severity/priority from refinery anomalies (gt-9xbg)
  • 675ae280f5308489876ff344289a814af6746d57 fix: remove polecat from daemon pre-sync fallback switch (#1973)
  • be74dd994ef55e4731e167d48ff209779410119a fix: remove stale NPM_TOKEN from release workflow, add deployment docs
  • b7dcae35fd38c317ad0f6baa138677885d2ef75b fix: replace --format=jsonl with --json in dog_molecule bd calls (gt-ioiz)
  • f3bbc27db2bcf8440908feafecdfed90373b2a13 fix: replace PID signal probing with heartbeat-based liveness detection (gt-qjtq)
  • 1268e347883508c4e0e513611805a252eb4541d1 fix: replace ad-hoc convoy description parsing with typed ConvoyFields accessors
  • cf5b8aaa1813fbddad58c958a24e699f4a5238c1 fix: replace ad-hoc convoy description parsing with typed ConvoyFields accessors (gt-re2y)
  • 551d861ef161ddcb249789e38b930c693067eb1d fix: replace ad-hoc string parsing with structured field parsers in witness
  • 89ccc218dea9409fc096ba9bd66edd26a1ede98a fix: replace doctor_dog automated actions with configurable advisory recommendations (gt-sjzd)
  • 64a44eeed6a0fc646b60a18f934e6f965fac5bce fix: replace hardcoded state/status string comparisons with typed constants (gt-4d7p)
  • e167e0451ce86774ac294e4cecbce0dd4aceffb5 fix: replace ps string matching with nonce-based PID files (gt-utuk)
  • 7a578c2b8677ec6c1b94e7ce65b58aea6edfd768 fix: replace routine protocol mail with nudge to avoid permanent Dolt commits (gt-5hd8)
  • b07ecbdd04a52b5799a514b9d68d4a9e759ecf58 fix: replace screen-scraping with blind key-send in DetectStalledPolecats
  • 6e4738ebeab1b2c1e1a3f788a87dcde726325ec7 fix: replace screen-scraping with blind key-send in DetectStalledPolecats
  • e15d442d9ec3cbb4ec407be8c7889bfe2661a357 fix: require Dolt server for beads init and reorder doctor prerequisites (#2049)
  • ad95b30037a01b841dcb426444a9ca0342a50027 fix: resolve Windows build failure (syscall.Flock undefined)
  • fa81ecc4dbee5d938bb51d12a527cf20c292718c fix: resolve errcheck lint failures in testutil/doltserver.go
  • 088159de8d98880b492eb704458903f497050eaf fix: resolve golangci-lint errors across daemon and handoff packages
  • 362b06065b8ae1f2a72968f9816657e02d933287 fix: resolve gt mail inbox signal:killed by using per-identity Dolt queries
  • eb4608259d1b768389a38b91bedc919f06c7c4a5 fix: resolve lint unparam warnings
  • aaf19cef5fbd9e65d44ffaeeb43926cf6ac250fd fix: resolve pre-existing lint failures blocking CI
  • 0409ca8adf9fac665fcbcc7521c61be00b583fde fix: restore --ephemeral for agent beads and fix doctor to check wisps table
  • be347106d3fdcf1a19693c1f147ba5f799a5b3f3 fix: restore caret escaping in Windows batch mock (gt-4gjd)
  • 51bce9ee46b5a7c633a7efdb8da4bd9dbdee19ed fix: restore compactorGetHead, flattenGetHead, and compactorBranchName removed by concurrent merge
  • 43cdbf178f4aeda252c89cf080734fbb68fbcced fix: retry hook lookup and search town beads for rig agents (GH#1438)
  • 14fa92ff8d5b08002c8b2b4c8b25a36fbd43d24d fix: return HTTP 403 on setup CSRF rejection and warn on empty tokens
  • 360a3fc57083f0d89c1b5c1ac40f8a907b580f58 fix: review fixes for PR #2000 deterministic git state in handoff
  • 919616e7d51beb937f98cfc4b70133ea8f3f3816 fix: set BEADS_DIR explicitly in patrol wisp creation to prevent wrong-database writes (gt-ctir)
  • c5bae358c3e9a50809a520536474cec3197b77ad fix: set BEADS_TEST_MODE in daemon test setupTestStore for DB isolation
  • 16cad41b0af9ec1ef5fb92f8e7663008f4927818 fix: skip --prefix flag when prefix is empty and add camelCase prefix derivation (#1932)
  • c40dc0127aaf5def1e7317bbb3cd1961cc200b3d fix: skip LFS smudge filter during git worktree add
  • 9d38b03a692f61dbd46c45bfdeeacef721ff3f38 fix: skip closed records in gt health pollution scanner (gt-qv4v)
  • c9ee31dbcc0cc356cc0083f6a454819d90676cfe fix: stabilize flaky TestRunBdCmd_ReturnsStdoutOnNonZeroAndTimeout (gt-5kjn)
  • bcca5d8dc682e229e95006111232b49851dcf106 fix: stop hardcoding 'origin' as dolt remote name (GH #gt-1hfkr)
  • b10863da1131297bf30bfd0041106159faeb917c fix: stop witness patrol from nuking idle polecats (gt-s8bq)
  • 6859ee485854d2d7665c3a37677a2abc230683bc fix: suppress remaining gosec G201 in wisp_reaper.go
  • d16bd164fa9ac1590cbfac5bbcff3c91785ab94a fix: sweep legacy -L gt socket sessions during gt down (gt-l5js)
  • 8f62be1b2148176c2dfe78c6c2d2bd43d97a38c3 fix: testcontainers dolt setup — add mysql driver, downgrade image, fix stale API refs
  • 56d572c23ea39ec347863fc4d0d12c3c5021e44b fix: three reliability fixes (gt-ai9, gt-gmf2, gt-cseq)
  • 18f9b08557fe2773b92da6dfebbd6ca1e5862b44 fix: unassign work beads before releasing polecat name on removal
  • d7342dafada8fbed32d6708206824971643099a1 fix: unassign work beads before releasing polecat name on removal
  • b6d83e4239f2ecb6012a307c2734a66b90ae97a0 fix: unskip prefix mismatch test and support Docker Dolt in integration tests
  • 537c862b7bf437be1ee9e068fd8fe69cc4a940b1 fix: update cleanup_status after successful push (gt-wcr)
  • c67f9ae39a571042a5b3cf903dd6071f6d0f5204 fix: update daemon handler tests for config-driven threshold signatures (gt-8l3w)
  • 5942a656d1eceb7c6f47baf8c2916c8362013a00 fix: update nix package for v0.8.0 with ldflags
  • fe5d8fc9e4fb72c08ef038a363918fab24d5f86b fix: update stale Phase 6 comments in down.go to reflect shared tmux socket (gt-qzjb)
  • 73dfd999993ef7fd3f8a1ab4c8616eac82df2397 fix: update testutil API calls after doltserver refactor
  • 2533d5ca5bd28d356ab32acd574ed49a4973b53c fix: use --single-branch --depth 1 for all git clones to avoid branch overflow
  • a19d1e6b243e20e7760be46b08923dd89c5e1e96 fix: use /tmp for tmux socket paths instead of os.TempDir()
  • 45077f3f249b178a22e548f3038dc59995d85a1e fix: use 5-char base36 convoy IDs instead of 8-char base32
  • d02deeecb3d1f8b2e95f90d74187dbd653e78aff fix: use AgentBeadIDWithPrefix helpers to prevent double-prefixed agent IDs
  • 525201bc17165f965a05857bb44aed2beb5a3dc5 fix: use WithAutoCommit for convoy creation to prevent phantom convoys (gt-9xum2)
  • f1884c44a4bdb5cb067b7c82cbfac5a0dc283c1b fix: use calling tmux socket in gt cycle to fix cross-socket cycling
  • 16a87446f90129ea9c3e77d2546429d35007dae7 fix: use continuation directive after compaction instead of full re-init
  • 4d3dc2909cf43a13832a3f50531dba87a959cf8c fix: use continuation directive after compaction instead of full re-init (GH#1965)
  • 0fb1dd2b7e878350addc4031dbfdc35a5619cfd8 fix: use correct mail address for daemon plugin dispatch to dogs
  • ca91f7817d7d96388a6a549e3bc95b40a3cd45bc fix: use ephemeral Dolt server in tests to prevent production DB contamination (gt--uq9)
  • 225e96931fe7cc3237cb0495c61e6164be012c56 fix: use os.Hostname() for dashboard display URL when binding to 0.0.0.0
  • e53b4f6409322790fdf080731771eb1c3f11fd62 fix: use tmux :^ targeting for zombie detection in multi-window sessions
  • 3f751fe2080599bbf50483d12e025b3cc4c1cbfd fix: use util.SetProcessGroup for cross-platform compatibility in dog.go (gt-8qtk)
  • a0596409b2751f76f0674e45a0d6d9566aba6b78 fix: use wrapper struct for bd mol wisp list JSON output
  • a43ab4cddecdd43d351c772807272518dbe2e616 fix: verify MR bead persistence before worktree nuke in gt done
  • e8b59c4ced24d9a18b5c18e4a1170d07a2e1e501 fix: warnHandoffGitStatus outputs to stderr consistently (gt-otwv)
  • 2cf036e52b6164679e78871b060565218107620e fix: widen non-timeout test case timeouts to prevent flakiness (gt-z5je)
  • 28c6f5249d7998dab95aeca873006d66d4801423 fix: widen time window in TestCurator_ReadRecentFeedEventsLargeFile to prevent flakiness
  • 8c107ba162fd3da1248457194d4d7a9d149889b2 fix: workspace trust dialog blocks agent execution across all roles

Others

  • f59f39ad70b84b1c156b112ad39624ff0b635360 Accept any scheme:// URL in rig add for custom git remote helpers
  • 2cfc203ba30fefe1f3c5fa1820087e2efef499d7 Accept custom git remote schemes in web dashboard validation
  • 776d82e5c7e4aa9ca2613f5a1d36111297da503a Add --title flag to gt convoy stage with smart defaults
  • b9e084999682471588705ab5471cc1113d759825 Add LogLevel config for Dolt server (GT_DOLT_LOGLEVEL env var)
  • 89e827cb4ac65bccf2a4fcf0a970d4be0ca3ad9e Add Mayor nudge policy to deacon patrol formula
  • 2974f3018d0ae06aa0f0f677815e1934cbc3432e Add gt dolt dump command for goroutine stack dumps
  • f9fd1a0f8c3b92b4b6e84e25b6d79cd3e6a2c983 Add rebuild-gt plugin
  • 558318a2543ff21aecaa97d47716841ced3e4b56 Add test-database safety check to dolt push patrol
  • 221e8b9e11360f7c830fc2ff62e060d6563057a2 Capture goroutine dump before restarting unhealthy Dolt server
  • 7f851dd85ceafaca44a3dcff931d5680f00eb22c Fix gt handoff for hq-boot: wrong workdir and role
  • 017d26c9f10d7af6772ac14744261d1b7dbf7c92 Fix gt handoff from hq-boot session
  • 71d2f3ed2e06d38c90906383d1d08c00eabcd6ad Fix gt handoff socket confusion: use caller socket, not town socket
  • 187e514683131a075d511fbaa2dcaa997ef232b7 Fix gt handoff using stale TMUX_PANE after session respawn
  • 7cd31554876d879ecab1f85bd2328d1e5116a3de Fix sling rollback to burn stale molecules (#2009)
  • 7a484c5abe79627217af3f67b042b71721012e54 Harden dashboard API against cross-origin and unauthenticated access
  • 9d4ebbc489522f69b333f492c1a3b36b72eddf0e Merge PR #2010: docs: add Windows installation workaround for go install issue
  • 554aaac65794f6f36f00ca33960d09176adae101 Merge PR #2020: chore: update patrol formulas to use gt patrol new
  • 60faad9030145c3df606cbf1b50defc7bad63d2a Merge PR #2045: fix(unsling,prime): add town-level beads fallback for rig-level agents
  • e971ef24fec24ae94830d89899d54772a1a257a1 Merge PR #2046: fix(sling,convoy): prevent double-spawn from stale cross-rig convoy feed
  • b9a6dc6025457fb7307105c502d139da096ef46c Merge PR #2064: Increase convoy ID entropy to reduce collision risk
  • db0538114f6db6bc24f4c83aaf3bfc52816bdb42 Merge PR #2163: Add --title flag to gt convoy stage with smart defaults
  • a53b9234add3deb4d45380079901c2cecf54708b Merge polecat/furiosa: fix orphan step wisp leak (gt-3o59)
  • e9652d6fdde355bd6b725af43386ec1d200babc6 Merge polecat/nux: fix patrol wisp database routing (gt-ctir)
  • f19d2eabf28c8cb8705655c8d29b555de71d10f3 Merge remote-tracking branch 'origin/main' into fix/dolt-server-bugs-4
  • 56f85451a0f984205aa0bad41406079d79eaeb83 Merge remote-tracking branch 'origin/polecat/cheedo/gt-ni4e@mm7fyg3l'
  • 140ed09a63415b4df55c4fe50cee912c5e6f75af Merge remote-tracking branch 'origin/polecat/valkyrie/gt-i5pi@mm7fyjqx'
  • 8604277ef650ee42372ba81f421b15f53b1a299f Propagate beads git config to polecat worktrees
  • 38ea108a40598ebe51808691492772099341e477 Propagate beads git config to polecat worktrees
  • cf3b3a678fd3a5f0f7e6fe5ac653799ea7a9fd32 Revert "chore: remove .beads/issues.jsonl (Dolt-only backend)"
  • cc1cc4dd8c21a682abcaa061ed85e5ab6b636c7a Switch health probe from SELECT 1 to SELECT active_branch()
  • c3c9c7df1a76656c6afbd5fc9162a5cb67d40734 [agent] Check bead status before zombie flagging and redispatch (gt-sy8)
  • dab8af949544e73c26d7acdf549b1a50a293f8d6 [agent] Skip LFS smudge filter during git worktree add
  • 510457497f620145d9463508fdb7159147a2049c bd: backup 2026-02-28 00:52
  • 5dbda218120b32b96dfae3492b84e930d228bc1b bd: backup 2026-02-28 01:08
  • acfea8119f3efaf6aa34773990d064d3b471505f bd: backup 2026-02-28 01:24
  • 7e79f683c37f88a565e23f0dc1d4723f76e53bcb bd: backup 2026-02-28 01:40
  • 350942f64bc811b8c93cfd0afc1e9282da5b55c2 bd: backup 2026-02-28 01:56
  • 2fdc5a8f50052bf52d1a13eace96bf2fcde4568a bd: backup 2026-02-28 02:50
  • 5aac7e02e34f09502f1e1b530c053a53ef222e9b bd: backup 2026-02-28 03:06
  • f9929b5e437eed4abcab6f70df33b6b61af20ebc bd: backup 2026-02-28 03:23
  • fba5aba21b37a5d0641a22fd18f967f073955ed9 bd: backup 2026-02-28 03:40
  • 513b4777079055f94b92d49cf941c46ab3eefa7d bd: backup 2026-02-28 05:03
  • 1bd864e7a5dc512cc076e0d16f446adc55e7b0e1 bd: backup 2026-02-28 05:18
  • 23aba824188fc2a7304552a44b4d45092d6d71a6 bd: backup 2026-02-28 05:42
  • 0e63573f41ef188cbb8592c9ae3710b74402cf71 bd: backup 2026-02-28 05:57
  • 6e0509e6926bf926d48418ab483754c98ae0138b bd: backup 2026-02-28 13:07
  • b9b1dbe6731e200e8081b9283d52b6d42fd7ad05 bd: backup 2026-02-28 13:22
  • eebe8ce4ad3dd49f5d976b542c0b44bcece794d2 bd: backup 2026-02-28 13:41
  • 3ffb187ff7b494de9eea47aca351a1c9d6548ec4 bd: backup 2026-02-28 13:56
  • 68a2bb5a7a347465dc0a8cc712bdd4c7b9dbdf76 bd: backup 2026-02-28 14:13
  • 9332de3a07264e050dc87c5c7140d7d1aa1cc39e bd: backup 2026-02-28 14:40
  • 0845edd9a056cf1fcef8f2caf9ebe0465468487a bd: backup 2026-02-28 15:29
  • 23eee8ea490e1cfda6d14dcb69390e33b873e6b2 bd: backup 2026-02-28 16:57
  • 35fdae50512847379f976d490fb2bb61177008b5 bd: backup 2026-02-28 17:12
  • 200f25175d55cb3ff756d9e4119cce8dd4de0e69 bd: backup 2026-02-28 17:27
  • 7a6c818912c64948f7a0401d1c6be3db7b91ad32 bd: backup 2026-02-28 18:06
  • 13622266cb77f63917777377bc24ca872b6a36f4 bd: backup 2026-02-28 18:23
  • 5393dbc2306254eb4e78dbf0860c211b363c5e95 bd: backup 2026-02-28 18:38
  • c45015d2819c87b5190d57d5032968ecd9d871e0 bd: backup 2026-02-28 18:53
  • 4b96f3cf971ce4ff47fe16a29b83f46b64da6c7f bd: backup 2026-02-28 19:49
  • 78f366573bb5282b8fdf6e68e570d01762de291e bd: backup 2026-02-28 20:19
  • 2d8d71ee35fafda3bbdf353683692bfcc9165476 bd: backup 2026-02-28 20:34
  • 5d8888fab5e498c73b52133f4cfad7e031f7dd2d bd: backup 2026-02-28 20:49
  • b480fbae67846efd842d7c53ddb206786b45e75f bd: backup 2026-02-28 21:04
  • 8933e253ddd0a39604539f16f213ac96f76e47fe bd: backup 2026-02-28 21:19
  • df14ddd82dd1f9400be76590876e0656c7011a80 bd: backup 2026-02-28 22:06
  • b391ba34a99d2162630933e52e54246e60d30bb1 bd: backup 2026-02-28 22:21
  • 862cd117f3d9af073b8111932bb5397cba053c7e bd: backup 2026-02-28 22:42
  • fe7df1eb0709cc143e3f9aea809f7201b5d76e0e bd: backup 2026-02-28 22:57
  • fe656b904c9927cc0e896290b63139e868f50df8 bd: backup 2026-02-28 23:27
  • 0e301729f78b61c9ff3b55ddb8b42b1a009d4f29 bd: backup 2026-02-28 23:42
  • a19bb32f78d9f50a17ad44da20dc98ebac813bf1 bd: backup 2026-02-28 23:57
  • bbea9706b731a3647e75a8840f57e507ac8e44a4 bd: backup 2026-03-01 00:12
  • 87dd9d650ccc42d7c88fe3be29f5e8ae7ae21158 bd: backup 2026-03-01 00:33
  • 30ac069c9405fd8ef1563945503ecc075147b182 bd: backup 2026-03-01 00:49
  • 93dabb9f2ed2a8939e7b724ba1e6164f885b21ec bd: backup 2026-03-01 02:21
  • 873c086d59996dbdb9436b47f618d7a5ac878628 bd: backup 2026-03-01 02:36
  • 245ac2412ccee52912ce5f60cc8fb682fe871247 bd: backup 2026-03-01 02:51
  • b9a51b453fe5cc5f4cae3b5ef2df27a570028384 bd: backup 2026-03-01 03:06
  • aa2978c9fe3a9fb69453060f18bd4d004f04a69e bd: backup 2026-03-01 03:21
  • 6ead3e5d9a271e0ac596e7f11a501ba1c76bef88 bd: backup 2026-03-01 03:59
  • 51a610da373a21e08bd94b2b313a92937a4e3c69 bd: backup 2026-03-01 03:59
  • b150b7f6a4b6a81d855e2f59f811e21a3806e52c bd: backup 2026-03-01 04:14
  • d51d5791dae2a7693f8385862b80338ca306b917 bd: backup 2026-03-01 04:29
  • f13eb9a472f852bc2aab48c3fb524e611a6a59c5 bd: backup 2026-03-01 04:44
  • 3ac1c5b5689c5b18c8002ff09c1257aef65508bc bd: backup 2026-03-01 04:59
  • 0284e6f44f17a815b4fa43cb520df83f392bd142 bd: backup 2026-03-01 05:14
  • edc496f0f6f1d8bd53fb1dec868f632a6ba95876 bd: backup 2026-03-01 05:42
  • 5d8d4b709f7c14611210ea1c94be22cf3df165ab bd: backup 2026-03-01 05:57
  • a144c02676e7a0589c4bd21d0cf9692e565cc19f bd: backup 2026-03-01 06:12
  • 97cfbf290e066548cda634a626afd63d0dcadc56 bd: backup 2026-03-01 06:27
  • 03538082c5d4be0ef48f1a62899937341f6a8920 bd: backup 2026-03-01 06:42
  • 3bccbd5cce2946b37a3cf4075bd93d4ce02dc558 bd: backup 2026-03-01 07:16
  • 4fa668e6fd524b4cd8663dce363e5710a2f71436 bd: backup 2026-03-01 07:31
  • 9b918476561226d0ddea156ce330c55bd52525a4 bd: backup 2026-03-01 07:46
  • f870977c26a8d62db2ab52e2ffd6460fb77bd2cb bd: backup 2026-03-01 08:01
  • 4ae4598ca640ee4ed26bbdc70ca34200c931fb55 bd: clean JSONL export from Dolt (post-reap, post-pollution cleanup)
  • ba2ca9b048f33a41929b0152697d61c7ce4f69df chore(deps): update goreleaser/goreleaser-action action to v7
  • 33d2025897a95abf358dc610af6453c24d913a03 chore(deps): update goreleaser/goreleaser-action action to v7
  • bb761db97e558d924bee92dbb6de56d73edf251a chore(refinery): keep patrol formula version unchanged in PR
  • b8e7c6683a23cfb625559fae5df8b8ea93a62d2e convoy: increase generated convoy ID entropy (#2063)
  • 76721e9993df7600f7d89bef21df738b5d95abf5 docs(design): add polecat self-managed completion design (gt-0wkk)
  • 4c9309c87151d82a931b0a7da1332af5dab798b6 docs(mayor): add Rig Wake/Sleep Protocol to mayor template
  • ad618b4f5cdb4d9a6424cd82e1d927d85b545f28 docs(polecat): clarify that status arg is '/' not two args
  • a315ffe640a806f75644c500b578d6996cb50fdc docs(polecat): clarify that status arg is '/' not two args
  • 9fb00901b514b5b31db2c8791beb18df76b02dd3 docs(templates): improve mail instructions in crew and polecat priming
  • faf45d1c287309a81c5695d104f1f63237d29e10 docs(templates): require Co-Authored-By for community contributors on fix-merges
  • 26a570c03272a35d513c111afdf572159eb141f2 docs(tmux): add keybinding design doc and update cycle group comments
  • 33362a752f9fbe55445e701763667b64000bf238 fix(multi-town): isolate tmux sockets per town and validate Dolt ports
  • 8d5264fdac7fcd97f2024c67811e3f85f5bce566 fix(multi-town): migrate remaining tmux callsites to socket-aware API
  • d8e8f594401ba983e2e655f871765d9c9a577251 fix(sling,convoy): prevent double-spawn from stale cross-rig convoy feed
  • 84dcbf4454431bfc407d29583db67fc7b74e57c4 fix(sling,done): close dispatch TOCTOU race and wire up MR checkpoint
  • 9e15ae0abbd3bef28d994d2651eabaf57cf15702 fix(unsling,prime): add town-level beads fallback for rig-level agents (gt-dtq7)
  • 163b48ced7cd3afa6f7276eff40aeb9321c6ade7 gt dolt sync: park rigs during push to prevent witness interference
  • 41717082e4be44def9eb03e9feb827cd88d07274 hooks: fail closed on settings integrity violations (#2026)
  • 9f6dc24b7964285ba7348db7738326b0b33f1a17 perf(test): speed up internal/web and internal/util tests (gt-pp2t)
  • c71c90ad935e7092506228db562023c5c4bd4305 perf(test): speed up internal/witness tests from 22s to ~8s (gt-l7x9)
  • 12cf3217708aaa9589876f453b2041068023e141 perf: drop full test suite from polecat formula, let MQ be authority
  • eb226ea339859d6825982d8f9ef82c3ce2a46390 perf: replace per-PID pgrep calls with single ps-based process tree
  • e7efd35cf78fda582396ef068b5d46f6a34dfe5b perf: replace per-PID pgrep calls with single ps-based process tree
  • cf4898214695cc3909949aa837c52a6c5dc7a1bc perf: replace shell script bd mocks with Go function mocks in witness tests
  • 8eb5d167b159bd39dc4376a4f8eaa694bb201c76 perf: replace shell script bd mocks with Go function mocks in witness tests
  • 79bf766f6a1eda7b398252b6b2be42ec17192676 perf: speed up internal/tmux tests from 156s to 82s (gt-ienv)
  • cff1b180be08e8d22ca0a0c5a9e15b5df623eee3 perf: speed up internal/tmux tests from 156s to ~82s
  • 9499c7ebb6b3677849dff09268378040ed159d2f perf: use --root-only for patrol wisps to cut Dolt churn
  • 604d85f408980f8b132e07d5a88201a11cb2edbf refactor(beads): consolidate FindMRForBranch and FindMRForBranchAny (#2074)
  • 3912802f98ae5f29a3bae80340d78178d67c211c refactor(beads): remove unnecessary ParseAgentFieldsFromDescription alias
  • d11408d3420e9068ec4764ec6303cfec1d1bf92e refactor(compactor): strip imperative Go, use formula-only pattern like janitor dog
  • a935e5974aa1b4ab5aed5ae4c5104b587fb7d7b6 refactor(test): trim tmux tests from 3075 to 374 lines
  • 016381ad8123d3de5e9b44efc6f48e8389d3e298 refactor(witness): stop nuking polecats, restart/escalate instead (gt-dsgp)
  • 2484936a632fe70e81dbabca9a4d3086c48719e4 refactor: add role registry with autonomous/emoji properties from TOML configs (gt-2e5q)
  • 435e9e9be6a65ba79743cecf564d047a8ddf6650 refactor: doctor dog reports structured data, removes hardcoded thresholds (gt-0cxc)
  • bc9f395a179e7b19b72ff8f359a5b5e78820d7e7 refactor: doctor dog reports structured data, removes hardcoded thresholds (gt-0cxc)
  • f50246a2cea6142643cef62646580b4df0715aba refactor: migrate test infrastructure from manual Dolt server to testcontainers
  • b4d141454acc4d0975018e43d207f68a3e04b77e refactor: remove JSONL fallback paths in favor of Dolt-only operations (#2051)
  • 9d7c75e8f4e5d661e968933263f92b5ddab4a0fc refactor: simplify GetAssignedIssue to loop over statuses
  • 335348233ff914528ff54006f207252437b3cec7 refine(refinery): consolidate target rule and apply review triage
  • ccd14b3648f207eb9457b9f406c4b023becc6600 refinery: add deterministic queue tie-breaker (#1938)
  • ee31fe24213764a3e88426178332c290f8bef23e test(convoy): use external id format for cross-rig dependency
  • bdae72c427c72fe32725b969cdc6316b8e64c86b test(doctor): add tests for config.yaml repair and extractRigName
  • 2f2a1b2279fc9a84c5dd6b0c1f537458f3acddb1 test(refinery): cover integration-flag behavior and expose config vars
  • 77e9c11de128c9662d2336139927b5186d479705 test(sling): add unit tests for executeSling flock acquisition
  • a1c9ad7549e6d99ff9ae00c0ddcefd2c66fc3254 test(templates): align refinery default-branch assertions with target placeholders
  • 003f302582fac986abfa6b5c789bfcdc12830640 tooling: add CI state classifier command (#1978)
  • 1940897323c9c85c4bb261961d1e48e55c35a4f7 tooling: add deterministic CI state classifier command
  • 562dd6b3978a6d3c3b717a7ef968610f41394a43 tooling: tighten CI classifier state mapping (#1978)
v0.7.0 New feature
Notable features
  • Convoy Ownership: `--owned` flag, merge strategy selection (direct/mr/local), `gt convoy land` for owned convoy cleanup
  • Agent Factory: data‑driven preset registry enables new AI runtimes via config without code changes
  • Gemini and Copilot CLI Integrations: first‑class adapters for Google Gemini CLI and GitHub Copilot CLI
Full changelog

What's New in Gas Town v0.7.0

135 commits since v0.6.0. This release brings convoy ownership, agent resilience improvements, new runtime integrations, and significant dead code cleanup.

Highlights

  • Convoy Ownership--owned flag, --merge strategy selection (direct/mr/local), gt convoy land for owned convoy cleanup. Skip witness/refinery registration for owned+direct convoys.
  • gt done Resilience — Checkpoint-based recovery from session death mid-completion. Polecats no longer lose work when sessions die during gt done.
  • Agent Factory — Data-driven preset registry replaces provider switch statements. Adding a new AI runtime is now a config entry, not code.
  • Gemini + Copilot CLI Integrations — First-class runtime adapters for Google Gemini CLI and GitHub Copilot CLI.
  • Non-Destructive Nudge Delivery — Queue and wait-idle modes prevent message loss during agent turns.
  • Submodule Support — Worktree and refinery merge queue support for git submodules.
  • Beads Classic Removal — -924 lines of dead SQLite/JSONL/sync code eliminated.

Dashboard & UI

  • Rich activity timeline with chronological view and filtering
  • Mobile-friendly responsive layout
  • Toast notifications and escalation action buttons
  • Escape key closes expanded panels

Agent Lifecycle & Witness

  • Auto-dismiss stalled polecat permission prompts
  • Dead crew agent detection and auto-restart on startup
  • JSON patrol receipts for stale/orphan verdicts
  • Orphaned molecule detection and auto-close
  • IN_PROGRESS beads assigned to dead polecats automatically recovered

Infrastructure

  • Merge queue --verify flag to detect orphaned entries
  • Cost digest aggregate-only payload (fixes Dolt column overflow)
  • Rig-specific beads prefix for tmux session names
  • Mayor GT_ROLE Task tool guard
  • Server-side database creation during gt rig add
  • Session prefixes now registry-based (replaces hardcoded gt-* patterns)

Bug Fixes

  • Race conditions fixed in web dashboard, feed curator, TUI convoy/feed
  • Convoy lifecycle guards extended to batch auto-close and synthesis paths
  • Rig remove now kills tmux sessions, aborts on kill failures
  • Signal stop hook infinite loop prevention
  • Polecat zero-commit completion blocked
  • Role inference no longer incorrectly infers Mayor from town root cwd
  • 50+ additional bug fixes from community contributions

See CHANGELOG.md for full details.

v0.6.0 Breaking risk
Notable features
  • Add GT_COMMAND env var to allow configurable CLI name
Full changelog

Gas Town v0.6.0

Pre-compiled binaries for Linux, macOS (Intel & Apple Silicon), and Windows.

Installation

Homebrew (macOS/Linux):

brew install gastown

npm (Node.js):

npm install -g @gastown/gt

Manual Install:
Download the appropriate binary for your platform below, extract it, and place it in your PATH.

Changelog

Features

  • cf3055c8fe76e2f28fd5b9c7c19476be2be06201 Merge PR #1195: feat(dashboard): show convoy titles alongside IDs
  • 346ddaa3cf2a8a6120c3692072c213940b49dd1b feat(compact): add compaction reporting with daily digest and weekly rollup
  • 847d0b9bb8a17762a35047ed1ce5df9ee5a57b39 feat(config): add LintCommand/BuildCommand fields and parameterize formulas
  • 0792a093828562bea3149cf5108712a16de7b0a2 feat(convoy): add --merge flag to gt convoy create and gt sling
  • b5a1ed7ba17164adfee015f8e7511e5ccd3e40db feat(convoy): add --owned flag to gt convoy create and gt sling
  • 955da9c80e7b54922bb8d5f1d5cdcb70d44f1b30 feat(convoy): push completion notifications to active Mayor session
  • ab3995d3d50c46195d207edc826d5771f78b4671 feat(daemon): add Mayor to daemon supervision
  • 67194fa3d9ec1be84d45354e6bca08ec5d741e89 feat(daemon): add exponential backoff for agent restarts (#687)
  • cad33ca51e39db2608c1acf9dc5cddb9fccd15fb feat(daemon): add launchd/systemd supervision support (#681)
  • 8b6b6be77a9b2e5de50e3d371f0470a5291e5fb8 feat(dashboard): add interactive command palette, mail compose, and API performance (#1018)
  • 3382a945ca0393bc31049cdee3339ed5ce74ebd4 feat(dashboard): comprehensive UX overhaul with crew notifications
  • bb562b06bb0d542a54a5fe967ddfc8c4270d69d1 feat(dashboard): show convoy titles alongside IDs
  • 8dcd12bb392a5d8ab11a0ba808c7f7ce1e07f7f3 feat(deacon): add feed-stranded-convoys step to patrol (#1092)
  • fd3342f604d153092f91d0dc633e8bbaf4616c14 feat(deacon): auto re-dispatch recovered beads from dead polecats
  • 8f88e30959d1708334ed8b1ea32dff79c9f79649 feat(doctor): add --slow flag to highlight slow checks
  • feab01661d7c3a02bc6d5d597e9a878078f744be feat(doctor): add beads-sync worktree health check (#796)
  • ff2c5fe81d9e4596b9fb945a9c81535f0667eb63 feat(doctor): add beads-sync worktree health check (gt-mihct)
  • 72d20e2e0f5ee330618aefa68a8c664f51dadae5 feat(doctor): add database-prefix check for rig config mismatch (#1030)
  • 9a721e8aea5458c93d61905d3d955c770f57edb4 feat(doctor): add migration readiness checks for SQLite to Dolt migration
  • bf3296e7136a3343f139a975021b97f0bc01535f feat(doctor): add rig-name-mismatch check (#1137)
  • 6a5261e142689709907f1f1d13912b6e511cd7fb feat(doctor): add stale-agent-beads check for removed crew (#1036)
  • 5c7e6c4d69b2bc0b5b3c7c7cb2f4f13689a6e2a9 feat(doctor): add stale-beads-redirect check
  • eec8b91fc2343bce181ac851472df456417693fd feat(doctor): add streaming output for real-time check progress
  • 4500f1968e280c44b7c188ba99f83cd9d38f54bb feat(doctor): add timing display for slow checks (#995)
  • 931b27ec5390a7c55b1865c2d40dcb00c67a6b9a feat(doctor): distinguish fixed vs unfixed in --fix output
  • 0e2ba67958344bb1b4efb6ee1149ad415246b206 feat(doctor): extend stale-beads-redirect to verify redirect topology
  • f78ea7f6b687445c7eb7091652fa2f1e02011c5e feat(dog): add 'gt dog done' command for dogs to return to idle
  • a6825698b8dc3231a457d72f72438eaafdc712b4 feat(dog): add dog template and update convoy-feed formula
  • ebb8e42b39735b5eeb8c05969d257e4003d81070 feat(dog): add gt dog done command for returning to idle (#1001)
  • 0da8dad741b5656a2a83c14103091bc97956d032 feat(dog): add session management and delayed dispatch (#1015)
  • 2ee5e1c5ad0a8a94321dbf200022cfa6c4026cc0 feat(dolt): add gt dolt command for server management
  • a5b61ad801a8f5a0821841dacf1d754b1e0b0c22 feat(dolt): add gt dolt sync command for DoltHub remote push (#1324)
  • 912ba2f1a0b8f2bddb02a20c8132894c774ab07c feat(dolt): add max-connections and admission control to prevent connection storms (gt-1obzke)
  • 580e1954724b0c82fe4f8db3b5858002fff35f08 feat(dolt): auto-create DoltHub repos and configure remotes (#1416)
  • 12ecab3b33d56f4abc04124e2e7a1c3a474aaaaa feat(formula): add Go text/template rendering for convoy prompts
  • 92bff20039fc1e14081b1f5d7a6d011142e6ef5d feat(formula): add Go text/template rendering for convoy prompts (#962)
  • c1b106ca16fca824b6a0992b287c2e25051e08d4 feat(formula): add mol-migration formula for agent-managed upgrades (gt-a7fq)
  • 72fc0709c6137bef35bb9b2eadaea9bb24d853e8 feat(formula): add mol-migration formula for v0.5.0 → v0.6.0 upgrade (gt-abomd)
  • 581ab8b30fe47368b9dfe22a0fd5086eabdc4568 feat(formula): add mol-migration formula for v0.5.0 → v0.6.0 upgrade (gt-abomd, gt-a7fq)
  • 13461161063bf7b2365fe5fd4df88e32c3ba2a28 feat(formulas): add wisp_type=patrol to patrol formulas (gt-7mqd.3)
  • 7f3cf261fc0287a55334139d6b068ff5e8669091 feat(handoff): add --auto flag for PreCompact auto-handoff
  • c241e01f3cfeeb8b33fe12544b92f32a2d040b06 feat(hook): add 'gt hook clear' as alias for 'gt unhook' (gt-fu8t)
  • c62d4da0884345439108b393456c09e3a87ca5ab feat(hooks): add centralized hook management skeleton and data model (gt-ja40n)
  • 5b41eabe5f894e2579364b28d67b34abd36525f0 feat(hooks): add sync command and centralized hook management (gt-pga9m, gt-ja40n.2)
  • 15429af157c2111cac637b63c269a09b28c5e9df feat(hooks): implement sync, diff, list, and merge logic (gt-ja40n)
  • 76db6562e8f35cdd76a1914daf249c6ef56ea54e feat(hooks): integrate hooks with rig add, doctor, and add init command (gt-9pwyj)
  • 27ad03af99afd0be77a76bd581db59d340614421 feat(install): fold Dolt identity, HQ database, and server start into gt install (#1447)
  • c493c9242109013a655ed4c94bf885c0431d095a feat(krc): add Key Record Chronicle for TTL-based ephemeral data lifecycle
  • 37feff84f6ad04811302a9987eb983e3049eecff feat(krc): add forensic value decay model and auto-prune scheduling (gt-krc)
  • 07ebc1a2a21089a6db2fc3f5d5ad6acd14e9218b feat(make): check repo is up-to-date before install
  • 7eb364f3dc17867decdea4373f663d621f2eae29 feat(molecule): add DAG visualization command (gt mol dag)
  • 4493ebad055c42a8920acba3c75d91a4a51feeb4 feat(molecule): add DAG visualization command (gt mol dag) (#980)
  • 4435655a9a675803ff5b1ab58071b99fbd2722e8 feat(nudge): add --if-fresh flag to suppress compaction nudges
  • 2b1854433bb1b6aa96969c00f588a490e8150ea2 feat(opencode): add compaction and session lifecycle handlers
  • a543ee5339c7769e51a6424b79e9da40ef8e787b feat(patrol): implement fan-out/gather pattern for parallel steps
  • 835a4bbddcd9645113382655f244436cb387cb39 feat(patrol): implement fan-out/gather pattern for parallel steps (#979)
  • 9dcddaf13d013bb0c3007c920e7e05b93da3810b feat(polecat): add explicit lint/test step to decommission checklist (#934)
  • 12ade34652526fe7f227ea386c8d765e4416e088 feat(prime): add compact/resume detection for lighter post-compaction prime
  • e64407621ea2ddeaf56438bfd79097df5aaadda3 feat(prime): add role-aware command quick-reference to gt prime output (gt-up10)
  • 87d73470f2ecc6796a960db128a202986e37b19e feat(release): add newsletter generator to gastown-release formula
  • 5f7c16586c12c6b9afb543825a343af1de6da3b1 feat(rig): add --adopt flag to register existing directories
  • 2eb11ce52509183fb1f106b5bae9408a67179f5b feat(rig): copy overlay files to refinery during rig creation
  • 7d5b145bdf148bdb52deda9cc80e5007cce5187a feat(rig): copy overlay files to refinery during rig creation (#1069)
  • a6609243241099f3f1783f76fcd9189d3fccd3d9 feat(session): add GIT_CEILING_DIRECTORIES to prevent umbrella commits (#1114)
  • 212b6af13b8430d867e65b5be152fc334f58d696 feat(signal): add gt signal stop — Stop hook handler for turn-boundary messaging
  • 92ccacffd993ea29a4b2291b429b33ce0d9ae240 feat(sling): add --no-merge flag to skip merge queue (#939)
  • db02dd81969f9bbea64c3939d468644b0903a804 feat(startup): add nudge fallback for non-hook agents (#978) (#1029)
  • baf9311bfe35399eb888711a64c07d347e47447a feat(theme): add dark mode CLI theme support (#911)
  • 2ce42ead13bb0818ea436ece0cc3e6ef271c048f feat(tmux): add C-b g keybinding for agent switcher menu (#1111)
  • 429f8e96ef33b445f1c49c89df1c38bd1fe181de feat(tmux): enable clipboard integration in mayor sessions
  • aca753296b272f7e0073d3fd00fb3562932a1205 feat(web): comprehensive dashboard control panel with 13 data panels (#931)
  • 5a61fd53ca00c994d3830ad6abb8b9b65f871f72 feat(wisp): add promotion criteria helpers for compaction (gt-7mqd.10)
  • c260bde6bfbb92e3093a4215ba6263c9519d1c06 feat(witness): implement MERGE_READY protocol for event-driven refinery processing
  • 4fe389c931a3e49e503e29e7a09595df3cf20efd feat(witness): reset abandoned beads when dead polecat detected
  • 84d455d0bf01928f0f297b64cc3481bf20a99aa7 feat: Add GT_COMMAND env var for configurable CLI name
  • 096c96836f2033e10717a337ffc554d3d20f1573 feat: Allow repo-specific .claude files (#550)
  • bfd2f2dd808b6bf8fe075df9e5b2ceae53b89dc6 feat: add --dry-run to gt dolt migrate (gt-kscdo)
  • 014b22eb0c3e47fb9eed194ee23e836017a551f8 feat: add --stdin flag to gt escalate, warrant file, mq reject
  • 3f63d241674933d5c45ef6a6b7e79bec7f2c7ba4 feat: add --stdin flag to gt handoff --message for shell-quoting-safe message bodies
  • 7a0b9e18c69dfbca9a1759246392411e849e35be feat: add --stdin flag to gt mail send for shell-quoting-safe message bodies
  • be023102cf214fd09846bd6df791348513cc1d4f feat: add --stdin flag to gt nudge --message for shell-quoting-safe message bodies
  • ceb084cfdea453065dcade234021b9fb6da211f8 feat: add --stdin flag to gt sling --message and --args
  • 6b263ae79a7dd1b7c5dddfa499bb5359ca6e2c93 feat: add CONTEXT.md auto-injection to gt prime
  • 6a2dd9af44c384f323e5693a31f3b9afec20b8cc feat: add Dolt server resource monitoring to daemon health check (gt-wsfzka)
  • c8032853d85953ff3d8eec16dc8e757df8622350 feat: add Dolt-only guardrails to prevent SQLite from sneaking back
  • b2d64b3533e511aa3bc58bbdba231dd560b6f433 feat: add PID tracking for spawned agents (gt-430oy)
  • a81623627a831d13a154cf0009d7faa948aa3bd9 feat: add RigState type with constants and validation (gt-4p791p.10)
  • 1c64afefaef727c841b2aa0bdf022fcf4bbf0dc6 feat: add ZFC-compliant queue health visibility for Witness patrols
  • cd467de5676d91a64fbc40b7992f1e90fc92ba0d feat: add agent ID validation and simplify patrol/convoy formulas
  • 119c38fde6e89161e7e0ccb0dd408747c2702cce feat: add complete CRUD API for rig beads to match Group pattern (gt-4p791p.8)
  • ceb2fb5a3445cfba321e2c20b57c5de44bbcc190 feat: add dolt_remotes patrol for periodic push to git remotes
  • faa148c5c517e2b90cde0dc115ca054f2f7c1a4e feat: add file locking to crew/ package to prevent race conditions (gt-m1aj1)
  • a558f2f3bbdf0030cb6f2b92e2859a3f2cf87daa feat: add gt dog clear and gt warrant commands (#1127)
  • 6a9bb02b32e827e8391ba67999466046d8e549a2 feat: add gt dolt rollback command for migration backup restoration
  • d7678aa36a59e496dda8ea32ecf0e7d6779c8d49 feat: add gt prime as step 1 in startup protocol, add Landing the Plane session end protocol
  • 9d54eac37988255ed3a643a032573a168c415c34 feat: add gt run-migration command for orchestrated SQLite-to-Dolt migration (gt-wo1py)
  • d7533f68b65297433f4401bcc16568ac4cfcdaa5 feat: add interactive convoy management to dashboard #1288 (#1340)
  • 870ef30a08f8489cf28ce806078f8a46c514b9e9 feat: add interactive hook management to dashboard Hooks panel (#1341)
  • 201df81eadac85501805725293a18b8373499018 feat: add issue management actions to Work panel detail view #gt-spw (#1342)
  • 3120578047869b8b8da61d4d0569fa11878aa50c feat: add migration hardening agent team setup
  • 7cf6e82dcca510c4e1e62d2c9fe3ef1e31139386 feat: add migration test harness scripts (gt-lx5b)
  • 4291faebdd6d11143f6ab8c9151658b447381566 feat: add mol-wisp-compact formula and deacon patrol integration (gt-7mqd.7, gt-7mqd.8)
  • 2bbf87250c327a4b7af9c3bf7641787be310ec05 feat: add proactive Dolt server health alerting to daemon (gt-br4zdu)
  • 2c78f6fe0897ea5820f949933503d0d55b475378 feat: add role bead TTL override support for wisp compaction (gt-7mqd.5)
  • 91ef875f2aca562925f306bb62eadd889991dba8 feat: add safety checks to gt convoy close with --force override
  • 2944c3e2c8f8c2b2baebb51a01160bcbdc0a3cdf feat: add sling buttons to dashboard work panel and issue rows (#gt-kb1) (#1339)
  • 3541933fb435d89e5315813ceef58f2cd17061d2 feat: add wisp_type='gc_report' to mol-session-gc formula (gt-hp5p)
  • cf09e85c4e784238d8a872bb3f6a03d16e1b8aea feat: agent beads as persistent identity, not lifecycle artifacts (gt-fkgda)
  • 47871fdf5f3f85ec5c5ba754389b576d5d7f9d8e feat: agent-agnostic command provisioning (#1099)
  • c78c4af245c63672a20ed1720de4de06a89cd2b4 feat: branch-per-polecat for Dolt write isolation (gt-twqgs)
  • 6af0f8d96ae3ce1911e5c9282a8c25c6a6c415c6 feat: centralize hardcoded timeouts and thresholds into TownSettings config
  • de1ca7e7715e2dd8f5c8b79fbf2260fe5b18b721 feat: detect and clean up orphaned databases in .dolt-data/
  • 535db349172e0953841aa2e4d63fc7117f1a3c76 feat: enhanced command palette with autocomplete, recent history, and contextual suggestions (gt-ggl) (#1365)
  • 42c6573cb67162f2e0dbd2881fe3fd13ffeba874 feat: enrich gt convoy list --json with tracked issues and completion counts
  • 7705a4b379793287996600c381a3eb652918009e feat: implement gt compact command for TTL-based wisp compaction (gt-7mqd.6)
  • d6b08aed2e7e087d284c257c476e5836ee8e8dcf feat: implement gt rig settings command
  • 5ee9abcc529185a46477fb392fc48b6f195276fa feat: make integration branches end-to-end across the pipeline
  • 9a8ae05fea381b46002e7a407598d7c79b69940f feat: priority-based mail notification framing to prevent agent derailment (#1256)
  • e86803774c927424e7ea994b53662377d3756090 feat: replace 10s polling with SSE for real-time dashboard updates (gt-tjy) (#1352)
  • 853531e9cdcad332d9b5e3be5f77fdfce220eb93 feat: replace Mayor "does NOT edit code" with balanced sling-vs-fix guidance
  • 07e3011e3091c81e18d71aa7d89be0b525298cd5 feat: update liftoff test timestamp in manager.go (gt-iva20)
  • adf41b4096a74436469c870e3f9bddc218f11105 feat: update to use core tap for gastown installation (#872)

Bug Fixes

  • 2636de6267d59ea12f5baa301c7136be89ff6bf9 Merge PR #1110: fix(ci): use make build for integration tests
  • 24f8687ebc49e63d1be7bb69f09f0250961c3b5b Merge PR #1172: fix(done): retry molecule close with exponential backoff
  • 5fb1a2ba1fcf968b5a36dca4e13121930a9b3007 Merge PR #1193: fix(boot): skip IDLE_CHECK when Deacon is in await-signal backoff
  • 9742a58568bb37cd90913afb90aaacbeb6e70412 Merge PR #1196: fix(web): remove os.Executable() to prevent test fork bomb
  • 227a664c68da65e4ef3af717fd64fb29c4e417f1 Merge PR #1198: fix(witness): add await-signal backoff to prevent tight loop when idle
  • 1796c0d6c228d4e86e4d7be229dd19fbac797e45 Merge PR #1204: fix: parameterize target branch in refinery patrol formula
  • 83d39829b9c274f90671eaf2b2033f64ea1517e2 Merge PR #1205: fix(role): remove incorrect /rig suffix from crew/polecat paths
  • 37e1cb4d8fbdf6474432226ccedaffb339123dbe Merge PR #1225: fix(skill): Update handoff skill to always collect state
  • b7c581197d29cdf0d8d2fe7fd750f55556225653 Merge PR #1236: fix: doctor env-vars false positive for boot session
  • df128b07992191e752e64e1b25ee51b2e403d98d Merge PR #1238: fix: prevent duplicate patrol wisps by checking hooked status
  • df40beacf740b54d975a2bb869a09ff94d534ff7 Merge PR #1241: fix: preserve --agent override across handoff
  • a7c3a9be04ff9db196878ae012e93221d74369b9 Merge PR #1251: fix: remove .beads/ from gitignore required patterns
  • 4e6544f343054fdf74d9ee9c1107c8148c9ff01e Merge PR #1259: fix(crew): sync remotes from mayor/rig when creating crew clones
  • 423cd78079d614f760695506565bc3c327f6dff6 Merge PR #1280: fix: prevent feed curator OOM and unbounded file growth (#1233)
  • fc426ef0fa26e978419a15549f4a83f916fbaff5 Revert "Revert "fix(tui): add timeout to CombinedSource fan-in goroutines to …" (#1435)
  • f759ed0b22f886ed71e9aa57949851406d764b3d Revert "fix(tui): add timeout to CombinedSource fan-in goroutines to prevent …" (#1434)
  • ca42177460f05c6876ef7564767f5a9e873b6f9f fix(activity): relax dashboard thresholds (green <5m, yellow 5-10m)
  • 4590e983afa35015ec56f0cdee3f3da03f07c5f1 fix(api): add input validation and tests for issue creation
  • 28023db06ad02deab61aa03b49eb03c1f90e7009 fix(beads): add flock-based locking to AttachMolecule/DetachMolecule (gt-5xhzs)
  • e781f2ca96290a5974ecbf930e973a8fa2c9d4cb fix(beads): fix findTownRoot and absolute path handling in rig scanning
  • 5e2d54c27dd4ce05372b813cc7cc8b9f0e533400 fix(beads): prefer named-role over rig-level-role in right-scan parse
  • e2116bbd96bdfa6d36e19374dac64e079d011283 fix(beads): redirect to mayor/rig/.beads when rig root has no database
  • 8283f985bcd3353c1f6717c6a08e6b53b5a7c239 fix(beads): reject flag-like titles to prevent garbage bead creation (gt-e0kx5)
  • 05f7d82af8649308b731e8224e11a270912e4a11 fix(beads): try reopen on any create failure instead of parsing errors
  • edb948e8672ca72cedb50e65c8233551f9611af0 fix(boot): add idle detection to triage for alive-but-not-patrolling Deacon (#1125)
  • dcc582519a3bba6fb2fc4c87b1881df64b045185 fix(boot): detect stale molecule progress for idle Deacon
  • c8663d2fdac98b9e5ab1faab567c9fecb5147f63 fix(boot): ensure Boot is ephemeral (fresh each tick) (#1126)
  • a59a60d9da35e8a1ddeea2f5bc27fb41f7fd6f26 fix(boot): move backoff check above hook-empty check in degraded triage
  • 1c98bc8cc0ca445b39931b101b7ec35282979f50 fix(boot): skip IDLE_CHECK when Deacon is in await-signal backoff
  • 3f1aa5fef814eae0e4f50acffa6f0190e053ffab fix(boot): skip IDLE_CHECK when Deacon is in await-signal backoff
  • 9f64d4cd99afe00da05d157f93a7aefcef4c6056 fix(boot): use flock instead of session check in AcquireLock (#1123)
  • a7a23b1a6bfaa7994b88b56e656679270469e756 fix(boot): wire Boot into GUPP startup pipeline (#1370)
  • b1e8b11948aa24c8415e947a793f6526122a1114 fix(build): error on raw go build, require make build
  • e937717147d2f04ee69b99f6dd9393fedf733259 fix(build): make install now properly builds, signs, and installs to ~/.local/bin
  • 2f0f0763cc6e0462528280681b76f6ad5c583b82 fix(build): use GT_ROOT for build error path hint
  • e88981d1f28581dbfd03a86e308239fb8d30a054 fix(ci): add MSYS2 mingw64 to PATH for Windows test step
  • bcf8bf186fe19cf4876657ea3b90095e195106b5 fix(ci): copy built binary to GOPATH/bin for PATH discovery
  • c19f186722f2744dd602952091169f5ef6a5039f fix(ci): install ICU and GCC for Windows dolt CGo build (#1309)
  • 93272c828ba2bfd62c91211217f645fba0980feb fix(ci): install ICU headers for Windows dolt CGo build
  • efe31e0769a4b0730c6faf6d354e0387690225d2 fix(ci): install mingw64 gcc toolchain alongside ICU
  • 4aadf656901b70425c3736fda785b71199dc22b6 fix(ci): resolve lint errors and sync embedded formulas
  • 59d8a9a4906da9ad4020cf7bdad4a08188802c95 fix(ci): use make build for integration tests
  • d9f1fe9e48680703eb68a67a7ef4282263fad0f4 fix(cmd): add more commands to beads version exempt list
  • c4d8e26dcbecff75fcbd7a400c83d58441a28561 fix(cmd): exempt most commands from beads version check
  • d80dd5305d79fd552b134869e8babf3bf69a59d3 fix(cmd): handle --help for commands with DisableFlagParsing
  • 75ec5b18d8b288a71c0316290720f3e63ab2827f fix(cmd): handle --help for commands with DisableFlagParsing (#1003)
  • 1b24651edcddfb88e0f1960024951599265dff7d fix(cmd): improve checkHelpFlag to avoid false positives
  • 1ee3018c5e4509471502399aac0700e7cb718946 fix(cmd): replace os.Exit() calls with SilentExitError to allow deferred cleanup
  • 8e86d0b290b7c57002622e8e63b13ab3c6de798c fix(cmd): update stale os.Exit comment in done.go
  • fa1c2d25d8a7a36d8ae0f07bf26f18cd257e53b3 fix(config): Respect --agent override when town root not found
  • 6f4031b775555c5b2d39dfafd4c04cb27eb48f20 fix(config): auto-fill Hooks and Env defaults in fillRuntimeDefaults
  • c911fd84c1d13e62174075977e57416b85ae906d fix(config): inject --settings flag for roles with mismatched session directories
  • 065d428f7604261f1f90500dc90df904fc4e7116 fix(config): preserve all RuntimeConfig fields in fillRuntimeDefaults (#971)
  • 73d2f8392e4aa3740e237f1fe7b7548bcdcfff9e fix(config): replace all LoadRuntimeConfig usages with ResolveRoleAgentConfig
  • 52588f2fa1771e61654677ab95af30bfb71d3610 fix(config): separate heartbeat/mayor thresholds from worker stale threshold
  • 307d6f73ef2032986ef5103c4485c9c0192d556d fix(config): skip --settings flag injection for non-Claude agents (#1369)
  • ea511f91c9edb8020efcde1955b5f72f789a8fee fix(config): use --prompt flag for opencode in BuildCommandWithPrompt
  • f7082cb40587210dcda70e8c9eca567d2be0d3f6 fix(config): use GT_ROOT from envVars before cwd detection in startup commands (#1391)
  • 8247c9e08e9a9bd31b71f5ca2cc616f304cc8bf7 fix(convoy): auto-close empty 0/0 convoys and require tracked issues on create
  • 73019a8acf709b49a2d53c06fe2068f666f03ee8 fix(convoy): auto-convoy tracking link broken for cross-rig beads
  • ecf0d7a9ec771ae32de01149741d6709d9f9ddfb fix(convoy): detect orphaned molecules as stranded (#1118)
  • 73d577e3c339ff83c84e34e4e29589de75fa8511 fix(convoy): ensure custom types registered before creating convoy
  • 5e757d5ebb6f3f26e29c79b24a420fac3e8bc099 fix(convoy): replace sqlite3 CLI calls with bd commands for dolt compatibility (G4)
  • 9fb8d2583914831ebe6ab623b8ca607f03773be9 fix(convoy): use issue-level blocked state for stranded detection (#1358)
  • a86c7d954f7e997392583f333401caee1e2f31c1 fix(costs): read token usage from Claude Code transcripts instead of tmux (#941)
  • 7fde15a40d17e59f5496b819a0dbbab6c3356239 fix(crew): sync remotes from mayor/rig when creating crew clones
  • 082aaaaf4f005b5fd809effc5a770f84967344ad fix(daemon): PATCH-005 heartbeat age check + PATCH-006 PATH resolution
  • 1e5c9be821d9b0544af4b0c0b6c2ed9be887d04f fix(daemon): check flock status instead of file existence in isShutdownInProgress (#1117)
  • e256fa4f8a868ea83c59efc3af5c3fdc07288697 fix(daemon): clean up errant .beads in town-level service directories (#1113)
  • 45ffac6e920a07f1b7c1435b3dca8ac1622ea5af fix(daemon): cross-platform build for Dolt server management
  • 15495607ded900e24184544d8bbe10096fcc07c4 fix(daemon): faster Deacon recovery via reduced thresholds (PATCH-002)
  • 6acd75cf124a22034a144ad370a6c8ca5c3c5405 fix(daemon): kill stale agent sessions when patrols are disabled (hq-2mstj)
  • baec5b6147eed8c63a0b4cef3529b4ebb520e910 fix(daemon): respect rig bead docked status in isRigOperational
  • 46ff998c0ad199b4d015bdd2b43bf0f39acb8d28 fix(daemon): respect rigs filter in patrol config
  • aa7656e6264309586625b7aab669cbaef7df51b5 fix(dashboard): distinguish crew from polecats in Workers panel
  • 232fc79cd5810278f6169074fd795cf9d7086804 fix(dashboard): filter polecats by registered rigs
  • 85c293301ab375ea997194792b953655a2ae0670 fix(dashboard): use townRoot for bd commands in cross-rig routing (#1161)
  • 9fc36909edf80d240fc0c058db49d0bb82bfa1a7 fix(deacon): PATCH-010 add global respawn hook for reliability
  • 8e73936a44902792d1fa6908df65ba6b28ccbe31 fix(deacon): PATCH-010 auto-respawn on crash
  • 07af0267e1aa1699763f67fa900f3ab57d568b95 fix(deacon): improve session stability with startup consistency (#1156)
  • 349cee165fd4b991b18f061070e39917e8cf84bc fix(deacon): prevent session-started nudges from resetting await-signal backoff
  • c4f030541cd82aa45c8bfd400bdd24138e6fbac8 fix(deacon): remove session-started nudge from static config templates
  • 21e464dc2a2538b1b18e4c25e4f172e9f2cf5653 fix(deacon): update heartbeat on every startup, including resume (#1119)
  • be0a064512340b6c584b7f4aaf8eca056635dee4 fix(doctor): add bare-repo-exists check to detect broken worktree references (gt-fmnml)
  • fc609665d681916670f77bee66264b809b31ac3b fix(doctor): add verbose logging for unexpected errors in redirect topology check
  • 895955426e568d523cbb7264b4d434de2dfe8f9d fix(doctor): add worktree-gitdir-valid check for broken .repo.git references
  • 37c2db9f3f76a5a6242b2fc508a1ea8199ed98f6 fix(doctor): address PR review feedback for stale-beads-redirect check
  • e2c0d312bb9c519122f7e4bdee7b1ffffa3788e8 fix(doctor): allow identity anchor CLAUDE.md at town root
  • d9d239af15b28ab20f0fc8a9e113ef500dd6709b fix(doctor): continue on error in agent/rig bead fix methods (#1318)
  • d001e749f0722e0f901066b73023a02eec59bb00 fix(doctor): correct shell integration install hint
  • 3bd6da610547881be9cd8e4e347faa0676004e26 fix(doctor): detect and fix suboptimal routes that rely on beads redirect (#1441)
  • 4c3a17dd50aa520cc8754c4eb0ad4a4b0c610205 fix(doctor): exclude closed beads from stale-agent-beads detection
  • 0cd8bc859c20d50c70e33a501ae0e22bdcbce758 fix(doctor): exclude closed beads from stale-agent-beads detection
  • d7d84caca22ebf3fb0a1eba453441f0dbd42f6d3 fix(doctor): extend rig layout detection to PrefixMismatchCheck, add safety
  • 9db9fc2af8f9d02b0d1a5f55d70e9c00a4fd8c88 fix(doctor): implement Fix for misclassified-wisps check (#878)
  • 7e6b88eaf70e7ccca6ed56dcdb58373ddd3ede7b fix(doctor): make claude-settings check respect gitignored files
  • 74654ce9f2600b7913c3f397e72e1562ab7dc9c8 fix(doctor): run bd from rig directory in DatabasePrefixCheck
  • b5e6eefa07adc85ac0d2017e817aedfcfd21447e fix(doctor): show wrench icon for fixed items in streaming output
  • 00a4e40bb0e57bebcd3efd6f4824190182654e78 fix(dog): add name validation to prevent path traversal and empty-name deletion (gt-6cft8)
  • fe44fd2d7fd05184fc1c154728dc4fb68a20fd5d fix(dog): migrate from claude.EnsureSettingsForRole to runtime.EnsureSettingsForRole
  • 3ccc609c71efd4d7afcc63a3c495cddcfd247d01 fix(dog): use IsAgentAlive for agent-agnostic zombie detection
  • d9af5a5d5aba5c1c3263533e32a88701d8973b9a fix(dog): use correct method name IsAgentRunning instead of IsClaudeRunning
  • 6a7a660e6969d17f16739fd0fe351f34fb237017 fix(dolt): harden database verification for correctness and resilience
  • a9b6431a9054b0e1752be936922a0c885695afe1 fix(dolt): prevent read-only mode under concurrent load (gt-lfc0d)
  • 203daadee4dfdbcc4169a711182abe3526adb8c9 fix(dolt): verify databases are served after migration and start (#1319)
  • 9ed9d3a743cf90243a3aa7348beedcd5f9bd47a2 fix(doltserver): follow .beads/redirect in FindMigratableDatabases (#1040)
  • e54a255219e15d321440e23a10b9f738f62fa2e0 fix(doltserver): validate empty rigName and townRoot in FindRigBeadsDir
  • 8cde4a30e2634e5ba7b95bea80fe89558271d619 fix(done): bare-repo push fallback and post-push verification (#1349)
  • b4976c230703561510f3a51c2c0d06489d81bba1 fix(done): close issue on no-op completion, prevent formula change discard (G15+G16)
  • 92b99159355359f6a58aeb007e993a9f713eb6f5 fix(done): force-close issue on no-op completion to bypass molecule deps
  • e23bc503b9856452c41444419ef52c1bf5fde6a8 fix(done): prevent zombie polecats with done-intent labels, deferred kill, and soft errors
  • ce0e958a9e8761761cd4513871670ef5744ee1c5 fix(done): retry molecule close with exponential backoff
  • 74ed5e2b15dfaa8725983b152f00afb094a47358 fix(done): use explicit refspec to push polecat branch, not to main
  • c8ef15d7bb662a1dad00ea4d1de273cba49c3bcf fix(e2e): adapt containerized tests for current codebase
  • 6268e318a0894f92609888f10a47c5145ba4114b fix(formula): add missing skipped_count variable declaration
  • 9515aeca6c43fbf892df852a874cfcabb1c3a389 fix(formula): add missing variable declarations to formulas (#1133) (#1134)
  • 35b759a26cac72add8a230eb1808d2e5e5c1815d fix(formula): declare computed template variables and fix TOML parse errors
  • 8034a0876c84d64c015745067276d3d0f6b30adc fix(formula): remove idle polecat references from mol-convoy-feed
  • 7544537949fa72b691f9f33083d86844625aee43 fix(formula): restore deacon patrol changes overwritten by go generate (#1386)
  • 3b1d7c31f9d0fc3b28ddfc211a6acfef3d16528e fix(formulas): add bd sync calls to ensure status updates are persisted
  • a9a1cf18d6a897ada80218a2af66190f0a9b26e9 fix(git): add periodic cleanup of stale local polecat tracking branches (gt-gsakye)
  • 489053d8eaa933b5fe5e5d282abf2a4dff8721c0 fix(git): preserve symlinks when moving directories across filesystems
  • 859a2c31ba0e98264411ad4b589c6e38ec8615a0 fix(git): preserve symlinks when moving directories across filesystems (#1057)
  • 9d8825903a0b153dead6629f2f88cfa84a2c6336 fix(git): remove duplicate ls-remote call in BranchPushedToRemote
  • 7338319b8ee89e9873f9a387e0e6df6360e80d27 fix(git): use RemoteDefaultBranch() instead of hardcoded 'main' in BranchCreatedDate
  • 1dc660c5d802be8efbd2be8704a57ff61a41c42a fix(git): use post-checkout for branch protection (git has no pre-checkout)
  • 0c791a4d40626ce92005871fbbd4fc1965c0250c fix(handoff): don't KillPaneProcesses on self-handoff
  • 36c7222d5ba59d3d7d30b3fab2f29fa6da3eb539 fix(handoff): preserve tmux session by setting remain-on-exit before kill
  • 7926d7b3e8e6358eda9aac1c2b03643bae8fe159 fix(handoff): prevent self-kill during gt handoff (#881) (#882)
  • 177094a2335786d1d450fd9e14b935877291c004 fix(handoff): remove KillPaneProcessesExcluding race condition
  • f635555f9323f74f1ff3399499a29a35b9a8848b fix(hook): complete convoy hooking implementation (#897)
  • 809b0eb028cb57d4c56dad8a5b1e03bfa8c1ef41 fix(hook): fall back to GT_ROLE when cwd detection fails
  • d043e012827f64e3effe580456f39c35a9cc82f3 fix(hook): persist hook_bead on agent bead when hooking work
  • 653583b9799834bb3349a6007943701454b36e2b fix(hook): persist hook_bead on agent bead when hooking work
  • e3d2b95937e32a2452f960b6ff104f9a06c89e5c fix(hooks): add PreToolUse guards to match EnsureSettingsAt templates
  • e89fedb144066fc5e0be261a17ba65a8a43860ab fix(hooks): add deacon nudge to DefaultBase SessionStart hook
  • b158ff27c25efa02ad2a6948a923186a99c6a429 fix(hooks): allow tag pushes in pre-push hook
  • 493507ad4e4e546e41e6df032f8e5e5ad3b3c9ec fix(hooks): discover crew-level and polecats-level settings
  • bfc8285afd407fa2b73e3818bd839ab158dbdfb2 fix(hooks): per-matcher merge logic, error handling, rename runHooksList
  • 45371dd1119669a06b873164ab2a2177703d62fd fix(hooks): unify type systems, fix list alignment, add tests (gt-ja40n.3, gt-ja40n.4)
  • 4133d487cf4df37c30aec42de20a0701c67e0746 fix(hooks): use MarshalSettings in tests instead of json.Marshal
  • 1acf754929fa9fa4b7479b2bca1e91eb4470faa3 fix(hooks): use approve instead of allow for Stop hook decision
  • d820a7e34563e6ad9226c373aec9fa9b1790bdd1 fix(install): refuse to create HQ inside existing workspace
  • 543d1194f04a1032f667fb037cb292c0f9d5cebd fix(krc): resolve conflict markers from PR #1112
  • 4d1d38582d741a068bba85a7dd1f5434a209f50c fix(lint): address errcheck, gosec, and unparam warnings
  • 4b6255601634c3f278e098c67563adeaa6fa576e fix(lint): address errcheck, gosec, and unparam warnings
  • c37ab81547049650784feb99a953f6ef03375712 fix(lint): address errcheck, gosec, and unparam warnings
  • 2c57df3c68410f314286f401d4dd979eea860909 fix(lint): remove unused issueID param from parseIssueShowJSON
  • 71077e93dd53799da7b0cbdbca97c8dac6904752 fix(mail): filter by read status in ListUnread for beads mode (#936)
  • db60489d0fac7b34ef64a44f7f57c60759ca1695 fix(mail): handle crew/polecat ambiguity in notification session lookup (#914)
  • 38224006ac6ac359ac06add7efeca82156c4891d fix(mail): handle hq- prefix in agentBeadIDToAddress
  • 82904fa62aebee47bd3dfe3e1aed221ee89d5c54 fix(mail): handle hq- prefix in agentBeadIDToAddress (#1009)
  • 75739cbaaf98a2d4c1cdc75b44c776aa1542953c fix(mail): handle hq- prefixed agent IDs in recipient validation
  • f41de0d3228390f64767e0e0bb5e6e2b44230e11 fix(mail): mark messages as read when viewed via gt mail read
  • 0e0547b3e124b76348d157d8f4ef9c2af96a962e fix(mail): prevent message type failures (#960)
  • 47cd7aa1484baa3daf9db035aee19f0185f17735 fix(mail): remove unused error return from isRecipientMuted (gt-ow2gb)
  • 8a9738e55edc6f371a1ffe5c79a38eece3bbb2d7 fix(mail): resolve cross-rig agent addresses when description is missing (#1385)
  • 7946b14fb9133054fc21ceee827c01f62d861c86 fix(mail): resolve sender identity from .gt-agent metadata (#1208)
  • 16bff911ec59c806fa9629e59f32401b3a83da1a fix(mail): search rig-level beads when resolving agent addresses
  • c6a8d44dd8e54fe15fbec3dcdce09da0f18d50dc fix(mail): soften inject wording so agents process mail before going idle (gt-9xfn) (#1414)
  • af18b40a3b85897122cd2ddfdc545a6c87eb002a fix(mail): use -- separator before subject in bd create calls
  • 4e4824a6c680fc2f7c38ecdf91e6fdcdbd7b2c1c fix(mail): validate recipient exists before sending (#886)
  • fb4e29217e043fff340421271efa7745844d16b7 fix(mail): validate rig-level agent recipients (#1013)
  • 3aafa0ee7de97821643e88e1bd5df7e85a7f0609 fix(mayor): run session from mayorDir instead of townRoot
  • 3da0d5a7c8fff3d504878d5524272f5bcc14cdc7 fix(molecule): use Dependencies from bd show instead of empty DependsOn (#901)
  • 63d60f1dcdb9f7f533852f2aee43f34193fd8a33 fix(namepool): display correct theme from config.json (#890)
  • 6d32c6206f25a5cfcdf1ef9ea2d17527798315a1 fix(npm): use NPM_TOKEN for npm publish authentication
  • b4399bb308e40971d9fe9b6d6cf7855ea839b571 fix(nudge): correct backoff cap, reduce retry timeout, improve tests
  • ea765f95f125643971da60233265c7b5209f5924 fix(nudge): resolve short addresses by trying crew then polecat
  • 3eca275edbba28d9db35693cb01d3f334af5c23c fix(nudge): retry on transient "not in a mode" errors during startup
  • 3442471a93a322f9d529daef40678aee5e5f2b06 fix(orphan): protect all tmux sessions, not just Gas Town ones (#924)
  • 82d84b2c316b7821ba26075315fa60e407a4fa35 fix(orphan): skip IDE extension processes (VS Code, Cursor) in cleanup
  • e35d64adbb5378a2da37cfa8e195ff6b3fb6108b fix(orphan): skip interactive terminal sessions in zombie cleanup
  • 3c14ef6ef15d0b401582aa849e82d496b0a5ac30 fix(patrol): hook new wisp after squash in witness and refinery formulas (#1372)
  • 7a67dc096e2a715aaedf9cdd0cb2cf14b7339332 fix(patrol): use gt convoy commands instead of bd list for town-aware convoy detection (#1106)
  • 8753219fc92b4d11426e0b95ab5c7b100f73c46e fix(polecat): clean up orphan state during name pool reconciliation
  • 936fd41e3aa3be0057bf586a85ffaa245d43dc8b fix(polecat): clean up orphan state during name pool reconciliation (#1073)
  • acc720e1b318e2d0c36b1874bac12f922214379f fix(polecat): clean up polecatDir when worktree creation fails (#1144)
  • 464c912f7dce66794093b6cd1318ccad3d1de389 fix(polecat): close open MRs before nuking to prevent orphaned queue entries
  • 212f08ad0311a7ea0d3426802b054388b4d8c083 fix(polecat): detect when shell is cd'd into worktree before nuke (#969)
  • ef4250747d4f4abcde947024bdda19be572cbfff fix(polecat): emphasize bd ready and molecule steps in template
  • bebf425ac5b970bd87bb6bca276fad9e0125aa76 fix(polecat): kill orphaned Claude processes when nuking polecats
  • e6cdb2d9eda8f37984a5082f309c4df50702a1c5 fix(polecat): prevent orphaned hooked work during concurrent sling (#1122)
  • afbcefb156634f024e933c11be4cc771561caa6c fix(polecat): resolve cross-rig beads in session manager (#1056) (#1130)
  • ccd0700aba4be5c5c626642aac6bdb60af4319d6 fix(polecat): transition issue from hooked to in_progress on polecat start (#1149)
  • 30e61fbd3951c04608a8dc63730dfd3e367a236c fix(polecat): use ResolveRoleAgentConfig for proper role_agents resolution
  • c72c117fc9c5b395b650d27efc5144a5f7c2c768 fix(polecat): verify and force removal of worktree directories during nuke
  • 71c865599c10e0a573dcfc94df3fac8d80033ba9 fix(polecat): verify and force removal of worktree directories during nuke (#1074)
  • b4212f11bc843e5ecac5932cf27db40f9eb79b7d fix(polecat): verify worktree creation in SpawnPolecatForSling
  • 943a8865a82f869303749f47e6105ac571374524 fix(polecat): verify worktree creation in SpawnPolecatForSling (#1072)
  • f276b9d28ad6615a684f4ba7bf796185046d9a87 fix(prime): show molecule instructions BEFORE bare bead instructions (#920)
  • c80eb4e50dd7609489efffe7de8a3e2530384fd3 fix(priming): add town root CLAUDE.md to gt install and gt doctor
  • b050acf5ef11908c4ec2050c44251434294360f4 fix(ready): filter identity beads from bd ready output, simplify formulas
  • b7f84fb1661bd58a553cbc59cf995587309deb36 fix(refinery): add await-signal to patrol loop to prevent stall on idle MQ (gt-0hzeo)
  • 279b5c94b2541a52a61ae8d0bea8dc7b9370f393 fix(refinery): auto-sync crew workspaces after merge (#1147)
  • 5ce42b13fefd887f8fdfa8853a17770c2381aa84 fix(refinery): implement stale claim timeout to prevent stuck MRs
  • 26541afa78ce3e73507dc84188a294394e4c79df fix(refinery): nudge refinery when MR is created, not at sling time (#1168)
  • 13a0c7c78cb2b999a10fbf3a2eef24b362b36ee4 fix(refinery): reopen source issue on rejection
  • 583ecfad5b01580f413b4e31fa595468666af199 fix(refinery): serialize main pushes with merge slot
  • d7a6d5265e301034d175c76b1956d4afb2882a19 fix(rig): bootstrap Dolt, fix tracked beads, enhance rig list (#1433)
  • cbd9ad3e471da304ddaff3ecd558dcdcf1a79abf fix(rig): check parked/docked status before starting agents
  • 83ddef4f88ecd3a4098cb27306673138c6a146c4 fix(rig): dock/undock require main branch to prevent silent failures
  • 621bbd3245485fae97b395d46b45f2e82f32de1c fix(rig): gt rig dock now stops polecat sessions
  • fc6aea5f35c6d685b3c3b6236f2ade9f10e7020c fix(rig): map rig/polecats assignees to tmux sessions
  • 77514a3f8d50555fac6640fd4640929397084052 fix(rig): normalize trailing dash in beads prefix at intake (#1136)
  • 2fb787c7a21b49e039bc5210c28708a1fe57d9bd fix(rig): remove route from routes.jsonl on rig remove (#910)
  • 4b3afc73959fc83fab06166d7f59f970bd9e2915 fix(rig): scaffold .claude/ in polecats/ during gt rig add (gt-ke4mj)
  • 2de9fe3baf39974f7a8499b0cc3dc682470f4884 fix(rig): validate git URL in gt rig add to reject local paths (#1138)
  • b90a338214f2bb3741080fe360fbea349fee28ca fix(role): remove incorrect /rig suffix from crew/polecat paths
  • a5554b867bb1b54f9d7878431b5a509d70e8532f fix(session): remove redundant gt prime instruction from start/restart beacons
  • 1468b03ba587861c5333efaeae0eb7d3d7e1c258 fix(session): use hq- prefix for town-level dog and boot sessions
  • 6c86616273b4c5c254c458456771fa99f8d5267c fix(settings): set editorMode to normal for Claude sessions (#929)
  • cf544aa54e6ac481bac0e594163cc0404e134100 fix(shell): use detected shell RC path in activation message
  • 8013ec0e0c1b89d8fdee0f009b9393e5e8550943 fix(skill): /handoff now always collects state
  • b74fef15384c2cc7e0735688d7b94c2fdf07dd64 fix(sling): add cross-rig guard to prevent slinging beads to wrong rig (gt-myecw)
  • f19b410d4b1c8f9d7a31c22c6bf30d987ac5bbd4 fix(sling): add rollback on partial failure to prevent zombie artifacts (gt-jn40ft)
  • 1f293e57199b0c98ec08f5e637f6b6461b3fe588 fix(sling): defer polecat session start to prevent race condition
  • 05148e9ebc8651864616f77dfdeaa8bc2261337c fix(sling): pass GT_ROOT to bd cook for formula path resolution
  • 8167085b5c35b0c625614bbf2710baff1da47d87 fix(sling): retry hook with verification on Dolt concurrency errors (#1012)
  • b7e8c1edc56255e0a35c5795205368572b8c2826 fix(sling): rollback spawned polecat when wisp creation fails (#1390)
  • e4a40fad727bbe86eb4c1e775e60a7de0ec11f78 fix(sling): route standalone formula wisps to target rig beads (#1155)
  • 5abaeba138b6b4eb95e3281e93ee65a7507faebb fix(sling): skip nudge when self-slinging
  • c897b6f21225101c43ed2280e0dc6f5d5ef013b7 fix(sling): trim trailing slashes from target arguments
  • 67e148ef23294dfbe91898d549351e321f3e06a0 fix(sling): trim trailing slashes from target arguments (#1068)
  • 90a67872e779735bc134ad86391b334a2e11b415 fix(sling): wait for young sessions in ensureAgentReady (hq-t7gm)
  • e7514bc5e0cbd8114995731c63619f3c80e09ea6 fix(spawn): clear NODE_OPTIONS to prevent polecat debugger crashes (#1375)
  • 889c5863faba5cda7701ca10f91071d9ef065f69 fix(stale): enable stale binary warning and fix source detection
  • b229fde48756f601a6447dc9639df6365eea901b fix(startup): add minimum readiness delay for zero-delay presets
  • ce49e68c292707d0b6c0a8b33d0332413c39154f fix(startup): handle unknown agent presets with minimal fallback config
  • 232e3d92293798731c36f39bb0e33e450a6e7a33 fix(startup): normalize empty agentName to claude for default sessions
  • 31bd120077fb24e36f6407b7efdb13d14ca59b77 fix(startup): unify agent startup with beacon + instructions in CLI prompt (#977)
  • abc93a083bdc3c97020ff4e09317ddecca240157 fix(style): replace incomplete stripAnsi with regex, remove dead code (gt-qecxc, gt-eedlh)
  • f886dab8b9d865a932e3f93a19c1c2cfbe83b990 fix(templates): add directory discipline, fix gt mail hook command
  • fd25b519dd74d71f2dc844ce12e02ff78ccbf884 fix(templates): directory discipline, bd create clarification, command fixes (#953)
  • 319e0f77aed030f09d61f96b15d0812f03b329c8 fix(test): add --adopt flag to integration tests using local paths
  • 5c21e110d0e1896eceadc59e782ac212ab59bde4 fix(test): add opencode stub binary for agent config tests
  • 96a2423970b35ffcddc95d21d836e2a580949b25 fix(test): fix sling test command pattern matching
  • 41045f203fef0a9038a2ec722be0f7126e741bce fix(test): handle bd warnings in JSON output parsing (gt-ow2gb)
  • 8bb8e48a8ae8ad0b4c289f1f43a1c472136e944d fix(test): log commands in Windows fake bd for TestInitBeadsSetsIssuePrefix
  • ca3276a1c1e251c6a05ccac64c57ccb8ace24bb5 fix(test): migrate integration tests from SQLite to Dolt backend (#1304)
  • f768c55d372e419a82ed0f5e7dd2ab1c28df7620 fix(test): resolve macOS /var symlinks in integration tests (gt-ow2gb)
  • fdbf04eb1e129d7605c97f3f7d6b519c0caa0fc6 fix(test): set BuiltProperly ldflags in test helper
  • bc65fa4b981ef3ba8496708451fe1e667d556d52 fix(test): skip Windows retry test due to 8.3 short path issue (gt-ow2gb)
  • e751e6855767bbd74bb82f25a4f3e965bb50d97f fix(test): update tests to expect compound GT_ROLE format
  • 57f062a9b674426756ea92d1ed119a406144ab95 fix(tmux): add -- to kill commands to prevent procps-ng argument parsing bug (#928)
  • e0a4e5a9555c4086f6b8b32d6ecd15f242555e51 fix(tmux): add defer cleanup to kill tests to prevent session leaks
  • 2cb7dd667c33a80137f2798938073535c0d07ac4 fix(tmux): detect Claude when pane command is version string
  • fccac5eabdbf15ba0abc053b07e7ee160b8af781 fix(tmux): eliminate TOCTOU race in EnsureSessionFresh (gt-1nfip)
  • b5ba951e644391bc0ed71b6c53a056bbb15eadf4 fix(tmux): handle deleted working directory on respawn
  • be96bb005037ae86fbcc27bdf854442da1540b63 fix(tmux): kill process group to prevent orphaned processes
  • 3519f58cde2d18aa108f64881b5bd9bd6882635c fix(tmux): require explicit opt-in for cleanup session tests
  • bd9e2336405bfbe16960038df38fb55d4b312ea2 fix(tmux): target pane 0 explicitly in health checks to prevent false zombie detection
  • 70faa3f24433ac433e7e5b3fdf23f58e13741c1d fix(tmux): tolerate 'server exited unexpectedly' error (#1440)
  • 0605db970befb5e0189aa038e6234e92f3125ec7 fix(tmux): use syscall.Kill() for process group termination
  • cc326d4e07ced95f0b4f33a8ebce58b5e0646586 fix(tmux): use unix timestamp for session creation time parsing
  • fe09e59c8cb77d7731d6aa03877e126349e5a951 fix(tmux): wake Claude in detached sessions by triggering SIGWINCH (#976)
  • aae35e2ba49361b795494bc216b6b2a226cc1aa9 fix(tui): add timeout to CombinedSource fan-in goroutines to prevent leaks (#689)
  • 67cce7e97fc6210469c870b4b4ebf629c1b21d64 fix(unsling): clean up stale hooked beads when agent hook_bead is null
  • cf722195301e6739f971f3096f724df8f0467ad2 fix(unsling): update bead status to open after clearing hook
  • f3728379e0c4bb3d1f74276d6e7c601bc8fec5e9 fix(version): change stale binary advice from 'gt install' to 'make install'
  • 4eab8ba1c340caf762d8ccf133e0774e68f977c4 fix(version): improve bd version check resilience during multi-agent startup (#984)
  • cdcde82cd61b274b10b645f613535a55d27afbc5 fix(version): use --no-daemon to avoid bd version check contention
  • 717478d71b83b04bd335050f4c655eb3dbe6d411 fix(web): buffer template output to prevent superfluous WriteHeader
  • 112226757c01a961590fc2ac7b8bca8cf97d4348 fix(web): remove os.Executable() to prevent fork bomb in tests
  • e0a0368c63d897b1a05f29c4dc616e5d6da35533 fix(witness): add await-signal backoff to prevent tight loop when idle
  • 69cfab8af68aacb15758f17325a3ddb9c3f14b3a fix(witness): add grace period before auto-nuking idle polecats (#1182)
  • eb017c707837ba51eb3e499ad03a27f23bcb85fc fix(witness): fire CheckConvoysForIssue from zombie detection paths (gt-nsteq7)
  • 72c0528503339a5f8d2aa13e084c4848b92baa2f fix(witness): fix ParseSwarmStart docstring, double TrimPrefix, and missing BeadIDs parsing
  • c9718086f5690f78ba86f1dab11f076a451b428d fix(witness): prevent crash loop when rig is idle
  • 97a7bb07d20592cf7b3d96336abaf96ac2581004 fix: Add missing deacon/dogs/ pattern to .gitignore template
  • 95ae2dd923e1ae1bbdbe32dfe86ecfc98831acb6 fix: Allow .mcp.json in worktree sparse checkout
  • f868250d3b35bf28c461646f52966010c393d57d fix: Allow .mcp.json in worktree sparse checkout (#1067)
  • e65e9113de2b9a901bac44147eff8dcb38fc4716 fix: Change 'Gastown' to 'Gas Town' in all ASCII art and titles
  • 75b7e3bce31a2cb6c40df7f0dd33ab51b94d43b1 fix: MarshalSettings no longer mutates input and can clear editorMode
  • 2c3d6bab7a551b1e986d3aea9ff42fafb86484a6 fix: PATCH-003 push verification + PATCH-004 tmux UTF-8
  • 8925ac64111faec9dec8875033abd6454de35fe5 fix: Phase A lifecycle fixes (G11, G15 retry, G20, A4)
  • 0d86358c6973d6c6297fc545d7b0267fc6123636 fix: Prevent startup race condition and isolate polecat settings
  • f43de726a9bb12430db6b51defe2a73867bfcc15 fix: Prevent startup race condition and isolate polecat settings (#1077)
  • 014480e5c9bd60f2958a9c9280250ce99dc434e2 fix: Skip Windows-incompatible tests when binaries unavailable
  • 4c6ba8230e117878d55891457946cff92077c23e fix: TestEnsureRunning_UnhealthyTriggersRestart race condition (gt-1wwbk)
  • 8941e7b0496fffed90071cf1b72f41c9e3ebe00d fix: Updated setup brew command to use correct formula (#903)
  • 7e299ee2c7317138fe8c241c368eeaec76f8e85a fix: ValidateTemplateVariables now scans Prompts, Inputs, and Output fields
  • 58022ba6286aa4af42c1c5cab9cfeb6227e9dbd3 fix: abbreviate rig names to beads prefix in tmux status line
  • 3da410fd0d99e1d6a47e64b3a79915ecfb406c34 fix: accept all bead prefixes in gt cat and clean up on move failure (gt-2q24f)
  • 13c1394a8bac4e21980a639ff05245d6c0672fe7 fix: add --force flag to hooks install for disabled hooks (gt-qzwds)
  • e724ad0d276a196d3dcaeb6feea2d8b38b57f617 fix: add --limit 0 to queue listing for correct FIFO ordering (gt-mo4xj)
  • db2123141659867e3071df4282b15f3f78af4157 fix: add --no-boot flag to gt sling to avoid witness/refinery lock contention (gt-xu9g)
  • 8493430293444ef290a5d57305e45bde825afb73 fix: add 10s timeout to GetActiveConnectionCount to prevent hanging (gt-20heet)
  • 57ec9f56d16d2b214ae7966a56d8f6b1dd4ed580 fix: add 30s timeout to bd commands in plugin recording
  • a643e95265d9ebc93f77b4b940002bf7ced1f994 fix: add 30s timeout to bd subprocess calls in polecat session_manager
  • 4e5d269a47a71a50c033e9c9dbff5c6ee49672c1 fix: add 4-hour session age circuit breaker for refineries
  • 2499d26d5bb1bab5e03648e94b7a226d50ae68af fix: add Ephemeral field to Issue struct and fix misclassified wisp check
  • be4f3329b6f9b1ff8695e09ae44fbcb27153528f fix: add GroupBeadIDWithPrefix for consistent ID helper signatures (gt-4p791p.11)
  • e12aac8472998513fb1766f4af964529caceff26 fix: add TOCTOU re-verification before destructive cleanup actions (gt-23rl1)
  • 08589e2be487cea8530f8f5cee43e74f7061ee8e fix: add auto-respawn hook to mayor session for tmux detach survival
  • 61ef6819bd162618e7233010a0eee900c0d42e32 fix: add bounds checks for string indexing panic points (issue #1228)
  • 9e10fb3bbe610ee518cbfa787b5eec644a474ee4 fix: add concurrency protection to polecat Manager and dog Manager (gt-0wugq)
  • 743b6065edcaa27f3cbe735425d1dfebcccdcac4 fix: add configurable timeout to migration step commands
  • b4ad5ea197553bcfd49c1d083aed67e56223c252 fix: add context timeout to bd subprocess execution to prevent hangs (gt-ferja)
  • 5425645d7622b83c4afd966d7d574d88a3d414f1 fix: add crew and polecats to reserved polecat names to prevent session name collisions
  • 9f7051149570f8214da0b40bca6291731cf25494 fix: add cross-rig routing to ResetAgentBeadForReuse and CloseAndClearAgentBead (gt-2iqk5)
  • 201b45088bda34e9abfff5350e79b9201bb82ec4 fix: add daemon running check to gt dolt migrate to prevent race conditions
  • e82dc0c492df4a6a7ccebc249a006472826c2c03 fix: add dedicated Dolt health check ticker (30s) separate from 3min heartbeat
  • 725227c40b8cee8bc7a4b2d41a450c4280a22449 fix: add dependency cycle detection for expansion formulas
  • 0cd135c744a31ae6caade422c236dd5d5770689f fix: add error logging in done.go and file locking in curator.go (gt-i8yi8, gt-s6xvl)
  • 75e8911b512a2fb5ed7a6888079c8954ae4ef6d4 fix: add exponential backoff and max-restart cap to Dolt server restarts (gt-s2rdt7)
  • 33439e94033f949174ecb417f3fd4419f91c2114 fix: add extractIssueID unwrap to TUI convoy consumers and simplify test (gt-yp2pxc)
  • dac91232f66efe0db0567e46216fd42fc79284ac fix: add file locking to EnsureMetadata to prevent read-modify-write race
  • f9cf61233cbbc496ed62f2a7d45f8567beba9279 fix: add flock locking, atomic archive, write error checks, and corruption detection to legacy JSONL mailbox (gt-uglmm)
  • 55f5eb178f360fb22f040e8e257f9b5d681c0920 fix: add flock-based coordination to prevent TOCTOU race in lock.Acquire (gt-o6t54)
  • 5d273acec4efa9aacbaeabdb2ba3ac9553032264 fix: add gt dolt init to detect/repair workspace pointing at nonexistent database (gt-3k2h5)
  • 66ae73dfa3fde91eb9fe47e0b29c3361c23a200e fix: add input validation for group names in CreateGroupBead (gt-4p791p.12)
  • c86fce1180e4369528dd406f9c196fd577081ba4 fix: add input validation for path traversal and argument injection (fixes #1229)
  • 315a0bdd87401052d5d0ca0f8fbfbe855e9e3c75 fix: add input validation for web dashboard handlers (#1328)
  • 6241834b2e9d1748d070ec9a2483cac30686c068 fix: add missing [vars] declarations to 9 formula TOML files (gt-54tbh)
  • 045c3fbdcf11f5a7c14b15a4c679378f7b6c2112 fix: add missing [vars] declarations to 9 formula files (gt-tfr3en)
  • 184af2b46f3272a988e07da3f11fe339dc5f36e2 fix: add mutex protection to NotificationManager for thread safety (gt-vae5f)
  • 703f83dfd3863c7c9b2950ee5fae0977f8cfe905 fix: add per-bead file locking to prevent read-modify-write races (gt-joazs)
  • c8918a78d1b75fefd11bc34ac5993cc486e4761d fix: add post-claim verification to prevent TOCTOU double-processing (gt-l29bi)
  • 602ee8aed9ddabbc744fbedc5bc8a42d4c3e81cb fix: add proactive zombie detection to witness patrol (gt-kj71zk)
  • e928f971e20ed638e7d76689a7ff6abc05d619c3 fix: add proper error handling to mail commands that silently swallowed failures (gt-mhaiq)
  • 38b6678cd13e5920d655947012f1de84b2a1b0c4 fix: add reactive convoy continuation feeding to observer (gt-mlfjm)
  • 41a1e303236e60f7c80377972d2f4bc6ebe9e041 fix: add regex nil checks in callbacks, remove unsling globals
  • 0d9997cd478244ea82fe38d340adf54d77c5387b fix: add reserved rig names, metadata tests, and recovery hint (#1346)
  • f73a7647ff088bf2194eb7f6a7651067f39efc55 fix: add retry logic to SetAgentState and CreateOrReopenAgentBead (gt-94llt7)
  • b6ce2a212914c6673aa91ff2611e6afc847acd64 fix: add retry loop and error checking to run-hardener.sh nudge delivery (gt-cxvei)
  • 4f5d4268a1e5ba6b855ed985f287427850c1dda2 fix: add retry with backoff for merge slot acquisition and fix Windows CI
  • c086d0f08b8b555dbb6462f3062f991af3b83da2 fix: add session name validation to tmux creation and shell-interpolation methods (gt-zmxbj)
  • af5100c3f68e51a95a8593d0aa3ad6212954d09e fix: add timeout to NudgeSession/NudgePane per-session locks (gt-z4drj)
  • 2360837f5adbf9f6743ac97d84e7cdbd5251b7d9 fix: add warning logging for silent routing fallbacks in ResolveRoutingTarget and LoadRoutes (gt-s66sh)
  • 331ee74e36a845b6779bdcdb376191e952c57609 fix: add warning logs for silently swallowed errors (fixes #1231) (#1281)
  • 44d034248c26541f800278f73da386dc917f2a56 fix: add working-dog guard and atomic per-rig refresh to dog Refresh (gt-94mvj)
  • a66d960a451a399fbe71c086d373c4fef3aaa5fe fix: address CodeRabbit review feedback on PR #25
  • cc9a17a61eba21a393fa4a6a2c4c1577843daef3 fix: address code review findings for input validation PR #1283
  • fa09fcccacd9cb73b50b194857fb83949a5f6f1e fix: address review feedback for stale claim timeout
  • 66245f60ee663357d4fb9ddd967bbe27d10770b4 fix: address review findings for Mayor daemon supervision
  • 4e7de88e87647ebe87d0904b19c3d7dfcbf5c92d fix: agent bead read-modify-write race, audit log path, and redirect safety (gt-fcqj7)
  • 2c264b9abe1260615f23c917b9960efbd5a625db fix: agent registry cache invalidation and setup hook timeout
  • d2bb84ec1f9b52b18873d325146ad59fb4556d11 fix: align CreateRigBead and CreateGroupBead signatures (gt-4p791p.9)
  • c94a2301ebd1a25b9e90ba68e79d353d7539a3cc fix: align assigneeID format with hooked issue format (#946)
  • 57f8b062a3cb1b8320c6ae6e83a19502ea5e6d33 fix: align gt shutdown kill order with gt down (gt-cqytb)
  • dc957bcd4413490fa921ec6595ab9bf1aed4f9b9 fix: align molecule dep type filter with beads AffectsReadyWork semantics
  • f38e5bfb7115602f0afefb691404266f53843a99 fix: allow polecat to delete its own worktree on gt done (#1023)
  • 0ff092ae9f74945f63b8c001049186c3c2abf0a5 fix: allow vars with formula-on-bead slings (#966)
  • 072c4649de69fba5d2c8e9c670c8fd76656d6683 fix: always send handoff mail (#973)
  • 49cb8ed292571f43b14eb5732a194e9a5952727a fix: always set jsonl_export to canonical value, detect stale values in doctor (gt-m781w)
  • 76821730708375dbed85be815b227fe39e92b8cc fix: apply ZFC formula changes to canonical source
  • 064b9d0d205e6c2132e729bd176ac5b0c436c9f5 fix: apply d11560d7 ZFC changes to canonical formula source
  • 657eed94b5715e8629f34dce26517c3f997f29b9 fix: atomic label removal in queue release to prevent orphaned claims (gt-qpkwh)
  • 6862cc3a39944daca31ebe3bf05b9458067b011a fix: atomic lock writes and checked Close() in file copy
  • 2e41baad14cf31f878f20193d7eb02f8fccbb150 fix: auto-create dogs on pool dispatch when no idle dogs available (gt-jxoym)
  • c34a42f4c084ca460a18bb57fc1ba9c19ac700b1 fix: auto-force re-sling when hooked agent session is dead (gt-pqf9x)
  • 29d4b7ddbff116b55e21b690296e32940828fc51 fix: avoid close/reopen cycle for agent beads on Dolt backend (gt-14b8o)
  • 896d77deed05cd32bf815c7f69befa5f567a324b fix: batch sling starts polecat sessions and cleans up on failure (gt-vd6lg)
  • f90fd3babee5b9fd6b88fb3ebebb5cb0e3632f83 fix: boot starts Deacon directly when detected missing (gt-mlmys)
  • 206aa100cf0584c041c7e1e1386c27da7317d352 fix: call extractSimpleRole in BuildStartupCommandWithAgentOverride
  • 149e2984921fca8eb587a0a33f794ae837bd3d4c fix: capture ctx.Err() before cancel() to prevent timeout detection race (gt-olvcx)
  • 0db30eecdd67fd865420eddb01a5f40b5aafb90d fix: change BuiltProperly check from error to warning
  • 1de1fe7cbb3f2f50ab8cc71bbc122205ccfb3839 fix: check DND/muted state before sending nudges in mail, broadcast, and channel paths (gt-3fk1m)
  • 611f3b866387650fa4a1561104d751426daa0b4e fix: check beads.db presence in verify_zero_artifacts and remove dead code (gt-bzu9f)
  • 2684662dea293fecfc49cf72c8f645401eae9d25 fix: check convoy tracked deps to prevent duplicate auto-convoy creation (gt-9qcum)
  • fa4877032b756d7fba26de6b880b5486f472675e fix: check positional arg before flag validation in mail reply (gt-m7z0x)
  • ee5221889f57bb342d68f450b2ff136e81c60172 fix: clean up orphaned tmux sessions at gt start time
  • 35238c531b63ef80b3c5d60c999d7e3ea43253b3 fix: clean up polecatDir on agent bead retry failure in RepairWorktreeWithOptions (gt-ye70dz)
  • ce2dbbbbeaa1dd198efdf93781f2a9b1185090c2 fix: clean up stale SQLite references and tech debt in beads package (gt-76oep)
  • 80d42585964326835c97f094792359029ddbf28c fix: clear message ID on fan-out copies to prevent shared IDs across recipients
  • 8a390528a2d3eb1a97332f774d0620b9cbb31d90 fix: close TOCTOU race in Dolt server startup (gt-ppksl)
  • 5b72e84c86d4c600c55c13beeb7119fedbd89c18 fix: close TOCTOU race in FindOrCreateRigBeadsDir
  • 77027850da59b9c22522c5f99d49600c4989b1db fix: collect errors on fan-out delivery instead of silently losing messages (gt-sog56)
  • 25775fbbbe4bfb2b909a707b6abedfdc070bfa60 fix: complete type-to-label migration for mail queries #1288
  • dd8632a5da80126f818c7d704fc718393f54298e fix: complete type-to-label migration for mail queries (221ff022 missed read side)
  • 8d493ea82d5eadd6def4c67ab167d8801247cb51 fix: consolidate Merge to use applyOverride/mergeEntries from merge.go
  • dc8a2ce0b1054d47334448121f043979164d36ab fix: copy RuntimeConfig in normalizeRuntimeConfig to avoid mutating input
  • 223cb66f53cf62d919a8a832bfdda8aa6a122e49 fix: correct 'ephemeral' framing — sessions are ephemeral, not polecats (gt-ww9bf)
  • befd1e5bf910341c721c8e50a0898ed5c8aa7f00 fix: correct bd list/create flag syntax in witness patrol formula (#493)
  • 350c2f0a26b19d851c81f069c34a48a1041a6804 fix: create new worktree before removing old one in RepairWorktree
  • 29bdb184bbbb5eb84549d471cda99b462e1455d8 fix: crew shell inherits parent GT_ROLE instead of session-level env (#1292)
  • 3f00c6f9c96c2516673932a1d2d93642d86a8040 fix: cross-rig routing in Beads.Show() and dolt prefix detection on adopt
  • d483a319735662733fa2187ead1983710eb8b3f0 fix: deacon resolves idle polecats instead of escalating to mayor
  • 62a5bbb722a258a806012d32a4770d9c3e30c350 fix: derive rig name from cwd in runDone instead of calling findCurrentRig
  • 76499ce70c98704589fddfa3c199456b26a8148c fix: detect and auto-recover from Dolt read-only state (gt-yfk8s)
  • 8fa1ef2be94ad14703d898c1de341c1f4005747e fix: detect and auto-recover from Dolt read-only state in gt commands (gt-chx92)
  • f7640a90881554020e9667749f9829add622f589 fix: detect polecat with closed bead still running in witness patrol (gt-h1l6i)
  • d2d781ba22dd662b6351851b09f18626c68a753c fix: detect running agents when argv[0] is version number
  • 799efae255031fb4c24c7a0648573ff811055465 fix: detect tmux-alive-but-agent-dead zombies in DetectZombiePolecats (gt-kj6r6)
  • 98067e2f62dae75bdc1aac8241b39d937255a7ae fix: detect zombie tmux sessions in gt polecat list
  • f8ee412c873907ecde86a27de18479b62cf8a9e1 fix: detectBeadsPrefixFromConfig misparses multi-hyphen issue IDs (gt-mawit)
  • ac5e3b9f653014fd19bdca2ae36668ee8fa1c6bb fix: dolt_remotes patrol correctly disabled when config is nil
  • 77f8c57bf055aa3cbb945149d6979770f1eed8ba fix: don't TrimSpace git status --porcelain lines in isBeadsOnlyChanges (gt-7j2zb)
  • 7f80913c9ae0548a4f6b0db9486b90f4c15cd9a1 fix: eliminate FindRigBeadsDir TOCTOU race with atomic FindOrCreateRigBeadsDir (gt-k10wf)
  • 5c2863e224dcd412e4f72d2be9647645efdc6402 fix: eliminate deadlock in TestRestartWithBackoff_SkipsIfStartedDuringSleep (gt-m5ju2)
  • 75c1898d8cd6d3ec994a6ca3f74622a81ea5e6d5 fix: eliminate sling description read-modify-write race and add --no-daemon (gt-kphi9)
  • b3cb8d8c6a2221b542431e337f6117733857eaa8 fix: ensure dog lock directory exists before flock (gt-f2h87)
  • 7241fc39a73c4b634a74989d39080eb62989e114 fix: ensure metadata.json has dolt server config in all worktrees (gt--srg)
  • 8795f9a6d545f408e31a9f3ddcb6430b56602f3d fix: eradicate Beads Classic sqlite references from gastown codebase
  • daf2d270c0acc0c5057fb379972470796c9db3d2 fix: extract isCloseEvent method and rewrite test to call it (gt-7xh0y)
  • da488914b22b9259b38983e33e84271f7492eee7 fix: extract issueToMRInfo helper, replace joinFlags with strings.Join
  • 23b35b53d6766f496b76108b32df27cb48377466 fix: fail fast on config errors in Dolt retry loops (gt-2ra)
  • f482a276a8abb5dd707052c54fc3cfc370b441a2 fix: filter dot-prefixed directories from crew scan in rig manager
  • 8cc143186051d879927a13de45cff593c628f4be fix: findCommonHooks intersection and RequiredUnless validation (gt-zt8df, gt-b8wh1)
  • 2aa1e082c17cca3ee7798f5a67ae26fdbbeb01ee fix: five code-review bugs — nil deref, orphan processes, path safety, error loss, throttle
  • 7abd14a026499244330fb323e624f8087b14b893 fix: generate message ID at creation time in gt mail send (gt-rud3p)
  • 920740acbff9b2ae14955eeac1dec2e3678e8cb2 fix: generate message ID before Validate in sendToSingle (gt-8vw)
  • 24b47563cf08b3d3e21b6c82fd61605e50bc81a3 fix: give rigRebootCmd its own flag variables instead of sharing with rigShutdownCmd
  • f9f60c853f0aba127b3d74baf508b62894f08685 fix: gt dolt init-rig runs CREATE DATABASE on live server (gt-0pa6z)
  • 61e0367a305aea05a5a334d797dbe39e8766a0aa fix: gt rig add now updates daemon.json patrol config
  • d414e6dbd354d058c8801e63d82a2da304861ee0 fix: gt status checks agent liveness, not just tmux session existence
  • 8abde53d3128239dad288e3dbc0aca06a79bf7ef fix: guard minAggregateCount against zero value from partial config
  • 85dba4abd40756bfa27e30dc384696e37f8da3df fix: handle ErrSessionNotFound when cleaning stale sessions in gt crew at
  • e8dfddc4bd25e90dafa8d9bc1e3e9b5b26dc3a5b fix: handle dirty working tree in daemon syncWorkspace (gt-jtia8)
  • 5655543b310783fcca24c80025e973351ad4a5ee fix: handle gt-boot in ParseSessionName and add crew/polecats to reserved names
  • fc78764b71b03cd8b9b79412690755299d3f32fe fix: handle legacy session format and fix test failures
  • d610b065f8a4a39a2c359b144723fde8a2cc1a17 fix: handle overseer address in notification routing (gt-afthf)
  • 2598a87ca8d680778640ed1e98cb0d04357ac104 fix: harden pane-0 targeting and extend to remaining callsites
  • b63786a5619dc0a5c8f39a31adfdd958d928d423 fix: improve error handling across polecat/dog/session cleanup paths (gt-v9bb0)
  • bbc9c7d8c69d4602e9582132f3fa4d24abc6d76a fix: improve error messages for gt orphans and gt peek from non-rig directories (gt-7ios)
  • 0cb0d3e898397934e97f24d4ca495734a36b6b34 fix: increase Dolt retry to 10 attempts with exponential backoff + jitter (gt-nv8bk)
  • 0ae452101c7c691798c0ea82a3ca1f8eb084793f fix: increase MRID hash from 6 to 10 hex characters to avoid collisions (gt-0a9vy)
  • ff56f5f1bcea7c754c6c80aa4ef63af630ea4969 fix: increase graceful shutdown grace period from 100ms to 3s with polling (gt-wyayy)
  • 0fb3e8d5fe657b173a4732ac9c249c6edfe5fd8f fix: inherit environment in daemon subprocess calls (#876)
  • 457c600d8755433d99e4b042d7136081f035bd6c fix: integration branch bugs from test plan run 3
  • 4f10c1fd6b2344979147596ac78be81897d7a3f4 fix: kill process group on migration timeout to prevent orphaned children (gt-yqlb3)
  • 88666ecb7a7a53adfebd410d319096019c9daa4f fix: limit concurrent bd processes to prevent dolt lock contention (G1)
  • 04727efe422c43831ee60dab2ecf5548b9d5f6da fix: log transient tmux errors in DetectZombiePolecats instead of silently skipping (gt-4len6)
  • bb99f399e13193308bb3a0c7a8436eaf77f9501b fix: log warning on convoy completion notification failure (gt-p3pdv)
  • 13763e5c32ae2d9671361a8cb88224827dff925d fix: log warning on invalid override files, return ReadDir errors (gt-dhp3u)
  • 173538e7829ddd57703e8b2caa7170f631ce8cee fix: make ParseLabels idempotent - clear state before re-parsing (gt-nzrvk)
  • 637581bc012b7e7f1a89d8bff146d4aa866f4b36 fix: make beads version check non-blocking with 2s timeout (#1140)
  • 0a6af565964bd2351f365e81b1df7fbd29b6af4b fix: make catalog SaveToFile and routes WriteRoutes atomic
  • 2079efb29a0890ecaef089ad9704257bef1f8086 fix: make group CRUD methods consistently return (*Issue, error)
  • c5e7365ef69775ec5e79ecd3beac68b8e82c3b61 fix: make gt shutdown always clean up orphaned Claude processes (gt-wd3ce)
  • 9f57a35a93d4393a9deaaa6ee5826d63307c546f fix: migrate doctor checks to label-based bead verification (gt-x9bdy)
  • 221ff0221e96ad34b9e0f3820109144344c131d8 fix: migrate mail/daemon/TUI from type-based to label-based bead queries (gt-uxwyw)
  • d2665ab1470f6408343864c3c2f0570a4dae8a9a fix: migrate settings to settings.local.json and remove redundant bootstrap files (#1082)
  • 15be674ffa242d0ac01d881dc33cb4133a1d948d fix: molecule step ordering - treat unknown dep types as blocking + sort by sequence
  • e3113ffc687d41681f9f2b8e05cd54e407c60c2e fix: move process group kill to platform-specific files for Windows compat
  • 1e4ea5e9e897718d37b080b1689b3522ca2bf024 fix: multiple P1 bug fixes — race condition, mutex timeouts, dry-run flag, dot-dir filter, test fixes
  • 36520966acfed328e0b0e01726ae804b5e5c7ae2 fix: new rigs share HQ dolt_database for cross-db bead visibility (gt-42zaq)
  • 462ea4fac64afe730ab46db1df2e16438cafe3b2 fix: normalize NBSP in prompt matching for Claude Code readiness detection (#1442)
  • 2dde8092bceb034322779aae3d64386616340cdd fix: nuke stale go-install binaries + embedded removal docs + refinery hardcode main
  • aa3633994e219d84907bf31292de4d4b76d3ea88 fix: only update lastHealthyTime on initial detection and after reset (gt-ju8wja)
  • 7695b0c11f9ec5f28026ddaddec5b420ac1c03db fix: parameterize target branch in refinery patrol formula
  • c20fbce05621ac7d3a5fd9f9ca783e9f26fd6c38 fix: parse bd show --json as array consistently (gt-4jahjt)
  • c4889b752bb2a89452438529b167d135d2122267 fix: parseValue type inference falls back to string on unmarshal failure (gt-b9iky)
  • 77db5b7e410fefc7d6a955390a1035dcd4cd7072 fix: pass --backend dolt --server to all bd init calls (gt-enott)
  • 04e2b856a95a9a3b92f8640d8f83cec81a4de59d fix: pass r.Path instead of townRoot to NewWithBeadsDir in getBeadLabel (gt-brmfz)
  • 9f30b80ce75fa6c2fb4a4363eda3ba4ec45b77b9 fix: polecat nuke, shell-alias cwd, dolt PID staleness (#1408)
  • de2fa6c6c1e837ac092355e7ce0d95e2f23b3cd0 fix: polecat with no work on hook now terminates instead of escalating (gt-jen3b)
  • 96d2bc21554b8f597ec661aee51ab292e94d2637 fix: populate GT_BRANCH/GT_POLECAT_PATH and arm cleanup on branch detection failure
  • 4dfc59b4235dc3376c03f92d6b66c17bfaa0bc42 fix: preserve --agent override across handoff via tmux session env
  • de048ee69b594b2169db3048dd01788d7d35c98e fix: preserve RoleThemes and Custom when saving rig theme (gt-vri31)
  • e6fd8d62d4537815eb5aedbfdcc1f2d9cd6b6fad fix: preserve existing CLAUDE.md files during install and rig add
  • 3c6d694f715af790f7eb0b87acea9b2b73ea559a fix: prevent dog Refresh from leaving inconsistent state on partial failure
  • 813811d6e22448c30fcdc5ba6aa340a841c2f858 fix: prevent duplicate auto-convoy creation on sling
  • bf732714ffeed5ec000ed163a5fa1f0c31092b41 fix: prevent duplicate patrol wisps by checking hooked status
  • 03259ea891d2b49459d2659b75e13f4509b8d577 fix: prevent feed curator OOM and unbounded file growth (fixes #1233)
  • 7824dd11ca21b89d6ce50f17b85d6d5deab07809 fix: prevent polecat respawn from destroying unmerged MR work (#1008)
  • 802353b9732ac9ba78dbf294724325befd3e4f41 fix: prevent polecat respawn from destroying unmerged MR work (ne-rn24b)
  • 367fb6729006f4646899e8e9279769440f70d558 fix: prevent refinery from re-implementing polecat work instead of merging
  • b894d92fdc9e4e70e0bcc34889fe8819fe348e00 fix: prevent split-brain risk when bd used before dolt server starts (gt-ceq7b)
  • 5aecbc0f1c0da5186b001e483717350aabb53f48 fix: prevent zombie detection race, spawning invisibility, and escalation loops (gt-3ltnm)
  • 72201b007ef438c2c1d392039f2cc44b6bbef63e fix: prevent zombie polecat on RepairWorktree creation failure (gt-9zzuh)
  • 82e4e7b25f5034bb7c9799d93f3ebdb6a115a253 fix: propagate errors from ShowMultiple and add missing flags to slot commands
  • 83a08714f1ca34065f26b332f05b7f7690c8a23b fix: reconcile polecat display state with tmux liveness in gt rig status (gt-1qyne)
  • 4e290ce94bbc818b8b0bf4f8f76d84ab11171070 fix: reconcile polecat display state with tmux session liveness
  • 314477afd3f3cf4f68f88d39a57f92c10ce07536 fix: refresh cross-rig issue status in convoy tracking (gt-b14z6)
  • cccfc2719b45fb694af833d6275b8b6f9a52fa03 fix: remove --no-daemon from convoy/observer.go (missed by PR #1279)
  • c08d09945e1174c158694e8ea41397058faf24b6 fix: remove --no-daemon from sling paths lost during rebase
  • 881dd7e6c8c0f8874574201dc5e5d76d6adc77fc fix: remove .beads/ from gitignore required patterns (regression from #966)
  • e429812dd5a383c2d4d67bd1f419c6eccdb69745 fix: remove bd daemon references from gt down help text
  • c6832e4bac82874cf1d03da374f0cb21af937619 fix: remove bd sync references, Gas Town is Dolt-native
  • 5aea5fa508d77dea99727da4972a7a5dd26116d2 fix: remove broken dolt CLI flags from daemon health checks
  • 70ca511ee21629f0e2545d1af3b181328ce101eb fix: remove conflicting required+default in mol-session-gc formula (#919)
  • e1d139365ff013bae24c84c093fc064c5dce84ba fix: remove deacon health monitoring from witness patrol
  • 6940763e3bfb7ac603b86d43ce8c690383b0646d fix: remove dead GetUndefinedVariables, add backoff to dolt recovery (gt-oz5qe, gt-qgin3)
  • b30cc9d525385da1a82e617a7196ffe91d4fa42e fix: remove dead code in molecule and cmd/up (gt-7nogk, gt-6khuy)
  • 941dad17218188a89c3ddde9ec0177b0828d7e30 fix: remove dead mail functions from statusline, deduplicate crew session parsing
  • 06a6186211bf4454465f3d139636f682bc9b65cf fix: remove deprecated --no-daemon flag and BEADS_NO_DAEMON env var (#1301)
  • 4cd8a77666544ad5af609a331a51de8d691e05c0 fix: remove deprecated --no-daemon flag from all bd command invocations
  • 003f162c75d18707bd5decb5d250bc749ab7e923 fix: remove deprecated DeleteDogAgentBead that hard-deleted dog identity (gt-c89tv)
  • 304f2c32b079c257f625ccc1e0009e2f9a5bd51f fix: remove hardcoded repo names from role templates (#1107)
  • 7e289859f8dd16f386241792ebb01075c96d24d8 fix: remove push-to-main from polecat work formula quick-fix path
  • 136f84144bdb616a8c7a0b1fdd872e0ad813380c fix: remove sqlite3 doctor check from gastown
  • d41b3c3bd0cc5205e01b611306f388234dfe291c fix: remove unnecessary fmt.Sprintf in patrol_helpers.go
  • a326f7ab874ad8c4b69b8d14571c845baaec186e fix: remove unused themeApplyFlag variable in theme.go
  • 91c9e1404be948f9b2bd77fce63f02e5e2fa6e88 fix: rename 'Active Polecats' to 'Polecats' in polecat list output (gt-b396c)
  • cd3523ea9280b00f4b3d7239598e31d5a9d11db6 fix: rename misleading variable in TOCTOU guard (gt-23rl1)
  • fc77e86bb8af3b992d2d5f3e37b02f161b69fbb5 fix: replace WITNESS_PING mail with passive Deacon health check (gt-bwism)
  • 979ebf36a234c7bdb01b0598a8b30730ac8d9f8a fix: replace blind PGID kill with verified group member enumeration (gt-2dp2i)
  • 04d0130d234a692cc6ea1417eb99bee9d4eecc80 fix: replace exec.Command(test -d) with os.Stat in IsRigDocked
  • 3a424c388a4b3a377947692af3fa2bb00936e293 fix: replace flock with sync.Mutex for EnsureMetadata goroutine sync (gt-o9lsz)
  • e32b16d80b861218e42f9146572acd128faa944e fix: replace fragile string parsing with json.Unmarshal in findCleanupWisp (gt-kke3r0)
  • 84f244d0b9b11a8064c5f9cf33ccfb16027cf85d fix: replace hand-rolled TOML parser in formula.go with formula.ParseFile
  • d11560d7cf9151d49c55dc394a28bd2cd2efc281 fix: replace hardcoded session cycling thresholds with agent judgment (ZFC)
  • b88dce62f938e3af53faa87e5b014dd4528e755d fix: require space or end-of-string after protocol message type prefix (gt-3kezl)
  • cdd533f88dd0ce965aaa5bf3dd98498dd539e6d1 fix: resolve 2 Windows CI feed test failures
  • 82ac242dca0e88fb66a5354fa1aa56162f14126c fix: resolve 4 Windows CI test failures
  • ad7deeca7dc0a7df2a815c6415f8f8540c9a3c80 fix: resolve CI lint and test failures on main (#1436)
  • 7a3974d2f0e4f5e8a2bd2f12d22c1d0efa80b5de fix: resolve circular redirect warning in rig add
  • 73e0565aadead85d7fe89e9541d57ee9117dc0a0 fix: resolve polecat Dolt branch isolation gaps (sling + done)
  • 17d02c0b68d59834692cfe63f37cdbcb69b6e93e fix: resolve pre-existing build errors (missing strconv import, extractSimpleRole rename)
  • f5232ceeb95ee2eb6073a748bed98d4eb7849c38 fix: resolve rig-level beads in gt sling via rigs.json prefix fallback
  • 19283359427c9a6e2f53a5ce728eae995347a409 fix: return (true, ErrNoHandler) for recognized-but-unhandled protocol messages (gt-ts0jp)
  • d7ead92f008295e9bc92ad6fe2d194c329640c21 fix: return ErrNotFound instead of nil,nil,nil in group bead lookups (gt-4p791p.3)
  • 6885119844bd1d2e3897ec31962a2f345b10c300 fix: return cleanup errors from HandleMerged instead of swallowing them (gt-twy74)
  • 78fb4ef8fe4976ecc460633c39042075197d633f fix: return error from DefaultAccountsConfigDir on UserHomeDir failure (gt-7v3rx)
  • 1c0e9ed373c7bd445e3b4986ce7052dc9a229042 fix: return error from KillStaleSession instead of silently swallowing it (gt-4s25eb)
  • 841c3067549141c18e3f1e1f1a9a457ff694b6fc fix: return error when role override TOML parse fails (gt-e4e4l)
  • 9d8bbd98c5e682ac37910db33ed9ff49b188a94a fix: return errors from getTrackedIssues instead of nil (gt-uryn7)
  • d0441843cff473d4617814430fbbcecf7837aab9 fix: return errors from json.Unmarshal in UnmarshalSettings instead of swallowing them
  • fec5264b20c635477ebf6db76f67dae79d7ef8e6 fix: return errors from protocol parse functions for invalid input (gt-zk07q)
  • 7ac676b74ff0a1a4b72ae0118f2490992bceab56 fix: route cross-rig agent bead operations to correct database (gt-mh3tb)
  • fd4bd3158de713ef5b7e7002f9e8319532a57a4b fix: route routine ops mail to witness/deacon instead of mayor (gt-dxkuwy)
  • 2179611d331fde1680ef0e8e6d492e6dfc542599 fix: route slot operations through Beads wrapper for proper BEADS_DIR (gt-wrnwq)
  • 7d74b7905862ad0d51a9c9a57cbf98dfbc354628 fix: sanitize branch names in Dolt SQL operations to prevent injection (gt-5qxuk)
  • baddb4032004e98accd90f762688fef7389e4576 fix: scan for dolt databases instead of hardcoding 'beads' subdir (#1297)
  • 8b72b48f5262078561b95fed013f2ed4397dd26e fix: scope process cleanup to Gas Town processes instead of all node processes
  • 13adf5b76c46612dbc1aa2ae32552e6a4f89ea97 fix: security hardening for test command execution and error handling (#1245)
  • ccd7757e19a4ad06a8d1ec913abde007e58cc970 fix: selfNukePolecat verifies remote push + RemoveWithOptions checks open MRs
  • a7534d5073864f2bd46f8db4e686bb11c8254dc8 fix: separate empty cleanup_status from clean in DetectZombiePolecats
  • 233c74ce1c0f306ff25672b5cf3d25a7cb557384 fix: session name parsing for hyphenated rigs; splitLines trailing empty; restart race (gt-f0rog)
  • 6fac2d7ba0e50f7a7ab3bce5cbde75ee052910b6 fix: set BD_DOLT_AUTO_COMMIT=off for polecat environments (gt-5cc2p)
  • 5e455a3a542cf064a5022ee31369f324350dc714 fix: set BD_DOLT_AUTO_COMMIT=off for sling bd commands (gt-u6n6a)
  • adcbbb1b82b87d1a7c22229820982d72c0af4127 fix: set issue_prefix in Dolt config during gt rig add (gt-aic) (#1337)
  • 464c82f582af7cae71c430e1bf97dfe746d334ad fix: set sync.mode in DB during dolt migrate/fix-metadata (gt-dookzl)
  • 27c2ced89fb09b9f95dedb28a6df56bc7b64f192 fix: set type=agent when reopening agent beads in CreateOrReopenAgentBead (gt-dr02sy)
  • 64fcda2d08e3ffafdf10915dac9bd4a38e426557 fix: six code-review bugs — misleading log, fragile parsing, ordering, cleanup
  • 2f4336055b0f0d48a1371945eafaf75942b4135c fix: sling env var and flag mutations are now scoped locally
  • 95e122bbaec8dc1277613c5b035155c3e486b9f9 fix: sort keys in checkDependencyCycles for deterministic cycle detection (gt-e99a4)
  • 5eb4f5b8146fbe6fd12e3146d7ee3da215a99709 fix: stale --cleanup now performs full nuke sequence (gt-pnygi)
  • d188fcb95d7e507daa682ae35fc52f6cb830cde3 fix: stop overwriting qualified GT_ROLE and fix Windows touch cmd (gt-ow2gb)
  • 41840298469ba02c1d90e9e0fc20c63d9f246d4e fix: stop removing flock files to preserve concurrent lock protection (gt-vm7g2)
  • 67e97f11f55ddf12ee43cb8cdc2a85a74de1f2b7 fix: surface os.Stat errors in ProvisionFormulas and add Error counter to HealthReport (gt-2dtpx)
  • 052dc8eee6bb247fd38414248a6265547aacbac2 fix: surface partial work warnings in stale hook scanner output (gt-ajx6l)
  • 55c51df3a3a4cf79652ab0c89261de6b324d7ca6 fix: surface source errors in gt ready, remove dead stopCh (gt-y3bfi, gt-btpbz)
  • 864277924b8b9768e51922959d8efc5481405571 fix: sync dog persistent state in session Start/Stop, clean up orphaned sessions (gt-h0jiu)
  • 51f6f3dfcbd69e1188bc16007dfac64120c9eb47 fix: sync source formulas with patched embedded versions
  • b05be882407938a78fa2b1b012af375c47384774 fix: thread visited map through all resolution paths to prevent cycle bypass (gt-64wh5)
  • fcfea69c8d64f51f391aee886c894293541a7a4d fix: three P1 bugs — wrong db target, case-sensitive parse, slot leak
  • 90bc27e8aa6b610bd56146a53668240403c61aca fix: track per-command progress in migration steps for safe retry (gt-1e907)
  • d9eb63a1125edf0788d3bdcde7c022a4498fcdc7 fix: unify dolt server PID file path to dolt.pid (gt-qi1oz)
  • 103121b9e9e11f02602ba6c41e8c9a9ca4263d56 fix: unsling falls back to status query when agent bead missing or hook_bead empty (gt-dzbyd)
  • ff4f1a2a060e5a43533a1498addfbf7f6a105579 fix: unsling uses ResolveHookDir for correct beads path in crew workspaces
  • de78fd8bedfa3a1337efb0cd4379ac52bb3c2061 fix: unwrap external:prefix:id format in convoy getTrackedIssues() (gt-qg6s06)
  • bf417af80fadc39a857bdfac023763157dec76a8 fix: update run-hardener.sh to use gt nudge for reliable prompt delivery
  • 14435cacadc236b2eb12c6a6724d8624b101f321 fix: update test assertions and set BEADS_DIR in EnsureCustomTypes (#853)
  • f85355d268640f8a73a94ed432db6f3e82216575 fix: update web activity color tests to match 5/10min thresholds (gt-xa5sf)
  • fe6007aa94bcd4e8eaeda45bf613c884a5b45389 fix: use *int for MaxReescalations to distinguish explicit 0 from unset (gt-p8dq0)
  • 47d1214c92f58cb587fa1c9f8878b373d7d9dd0c fix: use AddressToIdentity normalization in isSelfMail (gt-epgmw)
  • f00ce81667e2d58388447eb807ac5041e3e0ae1a fix: use IsAgentAlive in mayor attach to check descendant processes #1315
  • c015226f15fbe38b790977510da1d55fa4bb441e fix: use IsAgentAlive in mayor attach to check descendant processes (gt-7zl)
  • abe14bbe085b496ffb98be0c4460ee2103fd3729 fix: use ParseSessionName for session parsing to support hyphenated rig names
  • d27fd3eedeb20be9491224b498eddc56c47e62cd fix: use ResolveBeadsDir to detect rig layout instead of hardcoding
  • 4fa22986f0a46a1145062c2aaab52b2bdcaea83b fix: use agent bead hook_bead as authoritative source for polecat issue in list (gt-ckk12)
  • 0619d09b35c70e56b593f0fd1c39a03bcc82dc12 fix: use cross-filesystem safe move in MigrateRigFromBeads (gt-cpqxa)
  • 3f08908dd4570a19693d4bc4864873fdf90f2d02 fix: use dolt auto-detect instead of broken CLI flags for server queries
  • 4823dab88bc84a5913fa74edf07d8f7ae0a92d28 fix: use flock for cross-process locking on events/feed JSONL writes (gt-p14p4)
  • 6d18e0a88bccc37295be2a079261530feead34dd fix: use gt handoff flags for mail (#957)
  • 7689534f5edb50e5a0f9b6931d3427d7d912da01 fix: use prefix-based routing in unsling and mol status for agent bead lookup
  • 6b3a903e3815365877d33816f5882ad69377d1bf fix: use strings.TrimSpace for git branch output in rig_dock.go to prevent panic on empty output
  • a8192fa721a0925efc23e026f04b74377a01c87b fix: use t.Error instead of t.Log for test failure conditions
  • 67a20d365fafe0f29419dbc61c09fe6de222bcee fix: use tmux session state to prevent false 'done' status for running polecats (gt-o01h4l)
  • 1938c1290f7f299581de5ab1fbaebaf3f134b918 fix: use unique temp files in AtomicWriteFile to prevent concurrent corruption (gt-dcq7v)
  • e3a4b022acfad888dad4b863f3dce70c40b910a8 fix: validate From, Subject, and ID in Message.Validate() (gt-bo4nv)
  • 3e99a16969904ae9b1e76e86c3d9bcd248ea417b fix: validate dog name in Remove/Add to prevent kennel deletion and path traversal
  • cc199c91c35e14bcb25a7624aefa5cd25ccfcd33 fix: validate newName in crew Rename() to reject invalid names (gt-gt3zv)
  • 6e9d8bf26f052560676e725ecbc42ac841139a50 fix: validate rig settings key path to prevent false success
  • a2c5ee8175899dcefc7a258db86cb156402ed349 fix: verify bead worktree state before unhooking stale hooks (gt-ajx6l)
  • fb8541b0be3bd1ca55e1de445646e46b621509b7 fix: warn when --reply-to thread lookup fails instead of silent fallthrough (gt-n3yh9)
  • 95173acf8d160219f488775a4a45a2542cdc2f9d fix: warn when workspace lookup fails during sling rollback bead unhook (gt-eikjsv)
  • eb71f9bebad4f4954400abc541721a0fbb03de27 fix: wire cross-rig routing into Beads.Show() and add dolt prefix detection to rig adopt (#1308)
  • 03f1a850e7a63e5066f066f16b5f9bb0ee389acc fix: zero struct before unmarshal in unsetNestedValue to properly remove keys (gt-1oub9)

Others

  • 22bcf17be2654b3550fa58387d595b6b374573f1 Add gt doctor check for stale JSONL-sync hooks with Dolt backend (#1293)
  • 8b621ec62092489bf1870e6ca57898bf6fa8f872 Agent-agnostic zombie detection (gt-pf96) (#1026)
  • 533caf8e4bcab1d3c1df313b8b35e69b13626441 Detect and clean stale POLECAT_DONE messages (#913)
  • f147b6daacdc9bef8a26b5fe6e33df23a958fca2 Fix Kimi polecats not inheriting GT_RIG env var (ga-6s284)
  • e885ace722b28a438ce0b4aa8bdce203938cea30 Fix SessionManager treating witness/refinery as polecats
  • 377b4877cd1d4c4e84a87bec451fe72ce0161e4c Fix convoy check to query external rig databases for cross-rig tracking (#916)
  • 3dc935a54d251713806566f2edc0e4230cb7c4db Fix crew --agent override not provisioning correct hooks/plugin
  • d90bfa8f938a01f7d0fc0c60c548ef14acf37edd Fix doctor env-vars check false positive for gt-boot session
  • 8a8603e6dfd95c9f403fae07c6aaa0668097f477 Fix gt ready using wrong beads path for rigs (#963)
  • 0096abd58de380d3ab044db011153bd2ed32acf3 Fix race condition in agent startup by replacing sleep with polling
  • b51b3f879217d815b511566c8bbd9c982f502f1b Fix witness LIFECYCLE:Shutdown to parse polecat name from message
  • 24acc0256b13d0e32459c1a9a899c0307ab01a1c Fix witness LIFECYCLE:Shutdown to parse polecat name from message (#1075)
  • c5e82adaeeb833fb5b132d2dd8f760e3d19e01f3 Implement gt rig settings command with comprehensive tests (#1005)
  • a8500ec8cfff0ff16bfe19fc17d67128a7105586 Improve dashboard performance and UX
  • 6026d99abeafba3485896e399b625ff8d4af2f0d Merge PR #1176: Fix: Add missing deacon/dogs/ pattern to .gitignore template
  • 79db7478c8268ebb3b11d7aa6791a6fef4e17e1c Merge PR #1199: docs: add PR branch naming guidance to CONTRIBUTING.md
  • b0e731f707a37117e3461c36181a19116fd7d778 Merge PR #1224: docs: Document formula invocation patterns
  • 9d50aa771e86da379236444064e134d50300020a Merge PR #1321: web: stop swallowing bd show failures in convoy fetcher
  • 439189ff2419fca8b5b69a8bcee9a6b4cc7c0c7e Merge commit 'refs/mr/gt-32rbw' into HEAD
  • c83cf535fd9828b7a51963d5afeeda7f978c68bf Merge commit 'refs/mr/gt-4jz5x' into HEAD
  • 0ee725a16e440f4b60644e6c5392f19ecf019570 Merge commit 'refs/mr/gt-7xw1y' into HEAD
  • 14882f8fc60b420e6b09d4eb7afe37c80f95eac6 Merge commit 'refs/mr/gt-9y0aj' into HEAD
  • 003320698883f9617f5ea4067b5c4d6424545949 Merge commit 'refs/mr/gt-bwt9j' into HEAD
  • 9361746bdf22b2017613734ab28374d4409757c9 Merge commit 'refs/mr/gt-dgkah' into HEAD
  • ca61edb77af13bc3d9811391c22e0c5ff1757f9f Merge commit 'refs/mr/gt-ghwg5' into HEAD
  • 4dc8507a6702d87feba3c57a17d5afcb9ce51e57 Merge commit 'refs/mr/gt-iastj' into HEAD
  • 3279ba6beae347fd4e7399d815a8d674ab0fe4e4 Merge commit 'refs/mr/gt-if4wl' into HEAD
  • 1e13556c38ff6ccf9db6abcd10054ebedfdc793f Merge commit 'refs/mr/gt-k0xft' into HEAD
  • 3c3a02fe570cf386630846627c84f92daa7e001d Merge commit 'refs/mr/gt-quggy' into HEAD
  • b953cf8a30412fb8e830f9d97e00b88148fbc4e5 Merge commit 'refs/mr/gt-r52sl' into HEAD
  • 1f03a99cc743ca10bc358ee87f7fdd1aa2a7c002 Merge commit 'refs/mr/gt-rgk7b' into HEAD
  • 0d35c6868e8430d2f670c716b66c13ebf2a19f25 Merge commit 'refs/mr/gt-t34oz' into HEAD
  • 9d3f962d9743fcae1ea17c288c41b9dbca4d6def Merge commit 'refs/mr/gt-tyci8' into HEAD
  • 758b51d0294105f15a0d90d308b507241dd0a909 Merge commit 'refs/mr/gt-ve0uh' into HEAD
  • 93e3fcca03d48764890b108cbcbec10d92fecd43 Merge commit 'refs/mr/gt-w7ww5' into HEAD
  • eda2567520dd5d49f9e76cb652a09a150cd45ef5 Merge commit 'refs/mr/gt-wd3c6' into HEAD
  • b664382218c0bf0419ff54981d51955d1cc7a7a9 Merge commit 'refs/mr/gt-wfnte' into HEAD
  • 5c89d2bf59834bd2ae10798c3f4e8844b676e2ba Merge commit 'refs/mr/gt-x38i9' into HEAD
  • e4024a2f484cc959b05aff6d3b902341dd3c8121 Merge commit 'refs/mr/gt-z2yug' into HEAD
  • 246cbf1c1541ac98e4771351d401b0ce8db882eb Merge polecat/dementus/gt-xoxt9 (resolve dolt.go conflict: keep both migrate dry-run and rollback flags)
  • e2339a08aff9607fbe4e7fc7bd6b574f4aa6c671 Merge remote-tracking branch 'origin/main' into HEAD
  • 18890ad5514a0a9ae3e87770dcc07f1e59d49cec Merge remote-tracking branch 'origin/main' into HEAD
  • 7cafcc135dfb4b694dd9c1cd9455226fb6c56c55 Merge remote-tracking branch 'origin/main' into HEAD
  • 1233e1978c5d1865a93922a8a6d257dcefb0e641 Merge remote-tracking branch 'origin/main' into HEAD
  • 7bf647986b4fcaaaf359d0f7ad052ac4d1c67657 Merge remote-tracking branch 'origin/main' into HEAD
  • d6d6fe73a5977861ec66f98a57faea9bcb09e6e8 Merge remote-tracking branch 'origin/main' into HEAD
  • 81ae7753a404cfdbc206e8527d1afaee2ddc01e3 Merge remote-tracking branch 'origin/main' into HEAD
  • 8082630bbd908a7d71dc1c74e55966f315a0daad Merge remote-tracking branch 'origin/main' into HEAD
  • d2e81b9e1e1a84cfc14e7bf9d447e06c421426a2 Optimize --fast mode from ~5s to ~2s (#1065)
  • 0e26df4785ecc84f7e1f9470018e9218f2601bff Remove dead code in web, refinery, and types (fixes #1232)
  • 5dd072fa207229eb34843bc78258a730f3079f74 Revert "release: bump version to v0.6.0 with CHANGELOG"
  • 5bb74b19ed489e82b842d429594edaee19e646f3 Revert erroneous addition of .beads to agent .gitignore template (#891)
  • a88b859b622db64dded7a0f5445ecc69c55490a8 Test/tests failing on windows (#1164)
  • 44fbd6eac759ee616ec13737ae83f8b591f2504f Update .gitignore (#922)
  • bd0f37217423dbd710961ed176ff5e51585dc5f2 Update styles in README for better visibility
  • 7268e5efa3b18feee70f10c9b03a2632d4f02aeb [DOCS] Add some setup steps (#1148)
  • 525fa504325f7e889e1a456159cdfd6ea79e20ac add gosec G104 exclusion for internal/
  • 42d0d6a5810f0d753c9b734c92bd75eeadf736a3 chore(brew): add tmux as recommended dependency in Homebrew formula (#1313)
  • c88d16378c2570df124d0cb312aecc3cb2cfedc1 chore(ci): pin beads (bd) to v0.50.2 (#1443)
  • b316239d123547ab34d97a8f09866eaeafef2a3f chore(gastown): scorched-earth SQLite removal from codebase
  • 1112c906746de71f174221fc2decdb809b02e8ea ci: auto-close needs-info/needs-repro issues after 14 days (#1401)
  • 0f202783ed58f943e00e2cf9e3c75edfc0c36f99 ci: auto-label new issues and PRs with status/needs-triage (#1398)
  • 7693977d14e0f003cc9ffc0b1721b702939d20ec ci: bump beads from pinned v0.47.1 to @latest
  • 1a5f8803eeaed1422a0cc29023fccdcf08482780 cleanup: remove G1 BdSemaphore and G11 --no-boot flag (gt-fzgct)
  • 42f4e5ff34a0c3ee7ae0d467660d9387ad0d02b3 cleanup: remove G1 BdSemaphore and G11 --no-boot flag (gt-fzgct)
  • 860ab8a66c9fa204b458caaf6e42aec6f4e03aba cleanup: remove mail check cache test (gt-xutcm)
  • b92082d5f7b12e8c04485f2c7f2d1a4181b004ff cleanup: remove migration formula, simplify patrol formulas
  • 1157fd3b70971947d41161ebd59a46fe4f63ea1b cleanup: remove unnecessary dedup map from listFromDir
  • b988865ac3a33e4a24a173b359e5c446452adca5 createAutoConvoy: fail loudly when tracking dep fails
  • 479f9583384c05aaa7d4039dcf02daf522d67a67 design(hooks): registry and management system analysis (gt-gow8b)
  • 88789748672a8c4e6987b1e879ffc2a9f0356de2 design: ledger export triggers for Level 1 -> Level 2/3 transitions (gt-ayk)
  • 01059dbcf240deaa33df65bbfd83ec8237b2b99a docs(cli): add Long descriptions to 9 remaining commands
  • 46f660975213e0940fbcc0d0ab1ad179520b7d14 docs(cli): add missing --help text for commands with sparse descriptions
  • e651704438a768bb35443e3519a207231ce5a06a docs(dolt): distinguish Gas Town server-only from standalone Beads embedded default
  • b49f08f7730d6399cf44ea0cdc7b9a75089cbc10 docs(federation): add Dolt remotes configuration guide
  • 9aff946acde5e42889749e8fc29d9e0e792c6dfe docs(mayor): add PR instruction to use origin remote (#1050)
  • 1d260d377b76f688943cc6114421974cc9a123e1 docs(priming): remove bd sync references for Dolt backend
  • 9238635c830b3eb2075970c9e7eaa28fe91493fe docs(templates): clarify bd create is not a gt command
  • f2e99820bba39b8f3b13bfaaf58857b8e377955f feat(claude-md): add command quick-reference to role CLAUDE.md templates (gt-5e6k)
  • 56e19ca9dd14a0c350c613ca1ec0fc195d28f86f fix all CI failures: lint, integration tests, formula sync, and Windows compatibility
  • d8408e3da7f70ea2c75588870e63a98ae96809f2 fix all Windows CI test failures across 5 packages
  • 4e24e9afdcedb84f7cbbbe823b43dcff2868dcd5 fix missing strconv import in tmux.go
  • ee605b51626a67cb7d8ce31199387e35f06e7376 fix nudge to target agent pane in multi-pane tmux sessions
  • 40753626da6f17db0f7b63d7fbbdd4db52551a82 fix prefix detection from issues.jsonl and clean up stale WAL files
  • 107bc68e8ade4b5f2a2a71982a50a207ac9512f3 fix remaining 3 Windows CI test failures
  • cdd7e0c03ac826c0fde372ce95d22b9d589c23a7 fix(await-signal): handle empty stdout when querying agent bead (#1201)
  • 1e90801084a9a9be61350cee130558894f238c0b fix(git-init): update beads fingerprint after git initialization
  • 52da3dba2797bbd5d52745383b7e063292e6323f fix(gt done): prevent incorrect main/master detection when cwd is unavailable
  • 353b015a1c6b90e1736c507176e24b5542a2e0c9 fix(patch-010): Re-enable remain-on-exit after respawn-pane
  • a25437ffd464b9b6d27e3a8d7a12c5b92c474e59 fix(patch-010): Use per-session hooks only (global hooks unreliable)
  • 72625934c81d5af79ead86a8ab5aa755a8b10d21 fix(rig add): include dolt_mode and dolt_database in .beads/metadata.json
  • 990f4500abda5b4ac68ca33acc981772c0e964e5 fix(rig add): include dolt_mode and dolt_database in .beads/metadata.json (gt-ex8p)
  • 70cd7bb382d3f7ae65a5d94b9f4b2582f8775274 formula improvements that claude forgot to commit
  • c7661cba575d33af2151fe16f6066e907ce98aed perf(doctor): bypass bd daemon for town-root subprocess calls (#1043)
  • daa768912c65c679934f09d8b7c87f5f6b878fca perf(mail): batch hook mail queries into single bd list call
  • a3eca2afb16b5a33f5649efc92522ea2c6e82103 perf(status): optimize --fast mode from ~5s to ~2s
  • 317b0df88dbd119a625e23cd646b8f6492d7d80f refactor(config): remove deprecated LoadRuntimeConfig function
  • 30e65b5ca7e7ff6c00f6395322eb6e3a2a89453f refactor(convoy): replace SQLite queries with bd dep list commands
  • dc3fd47a32f495faee354b7ac83248d7a77efb30 refactor(costs): decouple cost recording from Dolt database
  • 2a0420177e130f5897fbab9ebd32bcdb2c6ad962 refactor(costs): rename wisp references to entries
  • 6f71b5a55c6c957ff057fbed7193b867f3a26c0f refactor(env): set GT_ROLE in compound format for bd hooks
  • eb233b2df5d2ef43d17cff0721690caa1da1e7f4 refactor(session): unify session lifecycle into StartSession API (gt-0j3jo)
  • a3cc214e64de067ad041246ee34b31e06b95d6f9 refactor: break up god functions in prime.go and consolidate files
  • ccbeea683610bdfa0f9dd7ade37ff193d8bc0a12 refactor: consolidate duplicate atomic write and slice utilities
  • d15a3d87d4e9fe34651eab36e418d9044e754e3a refactor: consolidate findRigBeadsDir into single exported function
  • 0d159ce1534f5e00799059eba8b25443eda463d8 refactor: extract resolveTarget and hookBeadWithRetry to eliminate sling dispatch duplication (gt-8gvrz)
  • a850c40fe5c5a562ce34e619850abc7fac9001a7 refactor: extract shared cmd helpers from crew_helpers.go into helpers.go
  • dfec0701bef62d70b49f334c6116b655316ff641 refactor: migrate from claude.EnsureSettingsForRole to runtime.EnsureSettingsForRole (#1020)
  • 97fab23f1d9dc5699f6f541618edf845be3a82e5 refactor: move Claude settings from customer repos to parent dirs via --settings (#1418)
  • b178d056f61bffa0710b1823749e5e358fb22cc4 refactor: remove bd daemon code from gastown
  • 2db1f7d2dbc8a8e65a0933748e50072965879993 refactor: remove deprecated gt-prefix role bead ID functions (gt-4p791p.7)
  • 453583893f8dfeadb94d43648fca022fe558d6c1 refactor: rename GetGroupBead to GetGroupByName for consistent API naming (gt-4p791p.4)
  • a8e0685392793cfd6363ebef36aca0eedd655dd3 refactor: unify duplicate isSessionStale/isSessionProcessDead functions (gt-qgzj1h)
  • 7755a45f29b37349c820352bd4837232db490905 refinery: detect stale claims and orphaned MR branches
  • eb3d81c86e998e2c167898d5bc17cf7cc0e4ff78 refinery: detect stale claims and orphaned MR branches (#1285)
  • 5240a00033483513a4775775821904f828174eb0 refinery: exclude closed merge requests from queue output (#1284)
  • 2b09e0ee9eddbe7506a74a4bf95153e308124d5c release: bump version to v0.6.0 with CHANGELOG
  • 09f931184bb86b7c15a6cb46d2fbac7099adfdd7 remove --no-daemon from docs and migration script
  • af0ea37fe3bb5669f3220b8500040db67a33c699 remove BeadsNoDaemon env var (daemon mode no longer exists)
  • 3f1e940a4f94dc576ac30fe22f7f7cede495e809 style: apply gofmt formatting to molecule_step files
  • 016fe2d550e4dd44ed1661d2ac96b07b66192228 style: run gofmt on all files touched by PR
  • cefbba625ca741d7b3908c01f8d6e87cc6005170 sync embedded formulas after rebase
  • 0e6c9174b940016fc6c6d08fbb2f7a0f32327c28 test(beads): add tests for catalog and handoff packages (gt-klm1q)
  • c4748c04e9a102857df93f9b08b43a4f5982f7ae test(beads): add tests for escalation, rig, and synthesis field parsing (gt-klm1q)
  • d4126bb876f0664540d748e666b66f5a795af95a test(config): add hook configuration validation tests
  • e8b04d40330b573036f7fc32abe03e18d5f2a3e3 test(config): update tests for LoadRuntimeConfig -> ResolveRoleAgentConfig migration
  • ee04e2b93d098799b315a54cabf0da654ff2df54 test(dog): add tests for gt dog done command
  • e6c83fea1e413ef1cd7e227da56423d4fdc46ed6 test(dolt): add tests for VerifyDatabases and extract testable helpers
  • db6cddf275a34f01ac941e2fe4db7749191f81f0 test(e2e): add containerized install and daemon tests
  • ffcd5fc32aa788b903786e629cc6b78a12db0a47 test(escalate): add unit tests for escalation command logic (gt-o9l1h)
  • b88ed95fd87c1ee6ccfec60bc0bf014c8f3e98f6 trail: implement real hook activity from events log (#1282)
  • 3a79af30a00d4b6fdc5a6537a61fc5231ce503c0 tweak mayor template
  • c1ccb9a56f35edc77bc4e64fc155062fa740fb02 update architecture and dolt-storage docs to reflect current ground truth
  • 4fc8c6dcab72d50e03e9743ac0ce88d502fcc976 update beads fingerprint after git initialization (#1064)
  • e24947e517a66203d7169daee3ce77a1caf4c2a0 web: report bd show failures instead of swallowing errors
  • d8ae4c2f4c1cee822fbda014967e91628eaf0451 web: report bd show failures instead of swallowing errors
  • 91cc46e7916ff28c50a2dfa176dd1249c521b848 wip(convoy): add ConvoyConfig with NotifyOnComplete to TownSettings
v0.5.0 Breaking risk
Breaking changes
  • Removed legacy 'role beads' and switched daemon to config‑based role definition system (Phase 2+3).
  • Default owner in convoy commands now falls back to the creator when unspecified.
Notable features
  • Added Env field to RuntimeConfig and AgentPresetInfo.
  • Introduced OpenCode as a built-in agent preset.
  • ShellQuote helper for safe env‑var escaping.
Full changelog

Gas Town v0.5.0

Pre-compiled binaries for Linux, macOS (Intel & Apple Silicon), and Windows.

Installation

Homebrew (macOS/Linux):

brew install steveyegge/gastown/gt

npm (Node.js):

npm install -g @gastown/gt

Manual Install:
Download the appropriate binary for your platform below, extract it, and place it in your PATH.

Changelog

Features

  • cd347dfdf93e70ac995cf75d01cb794f953a94c8 feat(bead): add 'read' as alias for 'show' subcommand
  • f6fab3afadf7b936a30533e0a71cad4bb60cc8a4 feat(cmd): add --comment as alias for --reason in gt close
  • e12aa45dd68ea23e415395aca0f9b903a86d0375 feat(config): add Env field to RuntimeConfig and AgentPresetInfo (#860)
  • f00b0254f224ac026d0f660169874677a3de489d feat(config): add OpenCode as built-in agent preset (#861)
  • 7a2090bb15b70cbd352992cedcbc2452e690d553 feat(config): add ShellQuote helper for safe env var escaping (#830)
  • d0a1e165e55bab28d949164a8e25107b83a132a5 feat(convoy): add redundant observers to Witness and Refinery
  • aef99753dfd3d70982853a9498f57b95f4ad243b feat(convoy): add specific convoy ID check and dry-run flag
  • 9b412707ab7dbb031bff12936a5b6f15c79e9fad feat(convoy): default owner to creator when not specified
  • 0db2bda6e6d815da66de7bdec8e17941a5f31a6a feat(deacon): add zombie-scan command for tmux-verified process cleanup
  • 5791cd7e34db7ea6cb6ae5058910d5c6fc997ef8 feat(doctor): add auto-fix capability to SessionHookCheck (#857)
  • 6c5c671595b00adcd79488b5764434f65a4c31fb feat(doctor): add routing-mode check to detect .beads-planning routing bug (#810)
  • afc1ff04b1657d8332ddf0ee94032fdd75b365e9 feat(formula): add verification legs and presets to code-review (#841)
  • 37f465bde5148518772d883a87319e4c69cf49c0 feat(hooks): add gt block-pr-workflow command for PreToolUse hook
  • d0e49a216aaf2dd2d3f429792b491721401ec07b feat(hooks): add hook registry and install command (bd-qj9nc)
  • 1dc31024ca2e1fff45ff6157ea6683f59ed484b7 feat(mail): accept multiple message IDs in delete command
  • d610d444d78cf03f8e6f824d84380ff3d53e5bf9 feat(mail): add --all flag to 'gt mail inbox' command
  • 3d7b1093954b477187a2b68bd50c2d0edcf18cae feat(mail): add --body as alias for --message/-m in gt mail send
  • 785d9adfef7eb2bd58114ddd1242a09bc59d44f4 feat(mail): add gt mail hook as alias for gt hook attach
  • b612df0463ada48fb1590496538e11aa1f768fb4 feat(mail): add numeric index support to 'gt mail read'
  • 6616a4726cd2ecac8eaa84c00641c624ab3ebcdb feat(mail): support positional message arg in reply command
  • 44d5b4fdd2f8cda92bc2724a6f5e7db692edbf29 feat(orphans): add --aggressive flag for tmux-verified orphan detection
  • 6e2169de7f88b3c3849ed72f967b6a6f1cab7ae8 feat(orphans): add gt orphans kill command
  • d67aa0212cb40ae6deab04b0fee816dc0867409b feat(refinery): use squash merge to eliminate redundant merge commits (#856)
  • 544cacf36de74979b43a3ca592a534f96914cfd9 feat(roles): add config-based role definition system (Phase 1)
  • a6102830785430065d79c908563a691fb14da44c feat(roles): switch daemon to config-based roles, remove role beads (Phase 2+3)
  • 9f06eb94c4f0fea3ca24b9125c540c30e540670e feat(seance): support cross-account session access
  • 7c2f9687ecf1840c450cfb36bb3f1fedb8e0f429 feat(wisp): add misclassified wisp detection and defense-in-depth filtering (#833)
  • 02390251fc6135aebc3baa166ac8b0cffacdb62a feat: Add configurable polecat branch naming (#825)
  • dff6c3fb3c23a1fbf2feed7c6a21346a2a62857c feat: add aliases and deacon status line display
  • fd6125933628db3fca35baf67ec1f8df8ebcce9d feat: add initial prompt for autonomous patrol startup (deacon & witness) (#769)

Bug Fixes

  • fa1f812ce987052e6fb8bf6ea4bca9030e428337 fix(beads): multi-repo routing for custom types and role slots
  • a8be623eeb10aaabd396a4040de89d6f03453ca6 fix(cmd): extract orphan cleanup to platform-specific files (#835)
  • 55a3b9858a73049e1e039d3c1ee0bf5d7469eb87 fix(config): correct Claude prompt prefix from > to ❯ (#765)
  • 35abe21c504f3d81097e110eb407dcbc229cf39e fix(convoy): pass specific convoy ID in ConvoyWatcher check
  • a8bedd2172d51ac50a9229f718e7c4d2f75f9980 fix(costs): add event to BeadsCustomTypes constant (#731)
  • 45951c0fad399b937d7248334ceb886b31421b87 fix(costs): skip test affected by bd CLI 0.47.2 commit bug
  • fb4c415127484ac479c48e70e730928ef9feb228 fix(crew): auto-recover from stale tmux pane references
  • e57297cb1b1d6248d2d47b776e0c4cb55f4c4141 fix(crew): don't kill pane processes when creating new session
  • 183a0d7d8d9b06684ec396f272792492ef3ae879 fix(crew): use directory name as source of truth in loadState (#785)
  • 0cdcd0a20b2dcf07a11422001ecbff5e70ad18a0 fix(daemon): spawn Deacon immediately after killing stuck session (#729)
  • 3931d10af369e695a8e6d531127e9afbc44a71b0 fix(dashboard): use registered rigs for merge queue instead of hardcoded repos (#863)
  • e59955a5804c762819bdeb9bca83ef499edc9daf fix(docs): link for go install (#792)
  • 2119841d57d98d166e86d6bd55799e66da788e3e fix(doctor): check patrol formulas instead of placeholder beads (#715)
  • 77126283dd9c76ecf4eaff348a48f51a073ea78c fix(done): allow completion when work pushed directly to main
  • 9a91a1b94f2c3e42a8620fc03e5f322d5a3e7acf fix(done): restrict gt done to polecats only
  • 2fe23b7be5b98b29eff42b61e38674e7591b4516 fix(done): terminate polecat session for all exit types (#800)
  • 1a0f2d6b3be7a37be8680eea67b0d45f28d0f2d0 fix(formula): clarify WITNESS_PING routing in witness patrol (#854)
  • 987502ebb39b6dfced314415c7a85a1de4202746 fix(formula): sync source formula with embedded changes (#845)
  • e591f2ae2512d68265e535f39a3f514095e107b9 fix(formulas): replace hardcoded ~/gt/ paths with $GT_ROOT (#758)
  • 08cee416a40b30286389483d3af61a223cf762f9 fix(handoff): normalize identity in sendHandoffMail (#780)
  • 48ace2cbf36ce242e28d4b8f0ec297b5bcab310c fix(handoff): preserve GT_AGENT across session restarts (#788)
  • 39b1c11bb66ecb743bc7b34303b9025116cd0763 fix(handoff): use env var fallback when town root detection fails
  • c42b5db7ab9c3cd98aaa69d5a60a2629de7e7fd6 fix(hook): normalize agent ID trailing slash in agentIDToBeadID (gt-az3jjb)
  • 77ac332a413638ba1a44c359f223b5d33cad25c0 fix(hooks): add PreToolUse pr-workflow guard to settings templates
  • 7016b33b39a934d48dbc71540fe30341e6e0efbb fix(hooks): allow feature branches in contributor workflow (#850)
  • 40cc4c9335bbd7d3320bffa705392eeebee7d3fa fix(identity): copy all agent fields during polecat identity rename
  • b333bf814690bac63590f4912345e6baffef3b37 fix(install): Makefile uses go install to match docs (#851)
  • 4dd11d4ffa173895ab8b0b37e1795024f2e8912f fix(mq): use label instead of issue_type for merge-request filtering (#831)
  • 7564cd599730c4f92ef5a0bf0101d27b9af41318 fix(patrol): use gt formula list instead of bd mol catalog (#827)
  • 3afd1a1dcd451851f43d58453fb029c5b333a880 fix(polecat): exclude reserved infrastructure agent names from allocator (#837)
  • b14835b1407fd2810f126728b3e9bb96da63d672 fix(refinery): pass convoy ID to convoy check command
  • b9f5797b9edf01a9f422d7bfc65f40fb045a18c8 fix(refinery): use role-specific runtime config for startup (#756) (#847)
  • aba0a5069cefbc579ca0d77f7acc49a9b4bf367a fix(seance): add tests and fix race condition in session index (#864)
  • 08bc632a0323a423c982e79fe3659b5433aa329c fix(session): add instructions for attach topic in startup nudge
  • 65c1fad8ce8d0b043a272d9fafd936a31da26f88 fix(shutdown): Improve gastown shutdown reliability
  • f4072e58cc86886f6ac3c14b53b7ab6f8d6d28a0 fix(shutdown): fix session counter bug and add --cleanup-orphans flag (#759)
  • d2f7dbd3ae4e88b735358011fc05e177ffdf5729 fix(shutdown): use KillSessionWithProcesses to prevent orphans
  • 195ecf75789cc0c5647322b5759f21d3165ac90b fix(sling): allow auto-attach mol-polecat-work on open polecat beads
  • 0dfb0be3688d8e4547fa67afd9caa98a0e3680fc fix(sling): auto-apply mol-polecat-work (#288) and fix wisp orphan lifecycle bug (#842) (#859)
  • 126ec84bb3ea6d36d87778a9f1bbddd61faec5ac fix(sling): check hooked status and send LIFECYCLE:Shutdown on --force (#828)
  • 53fd6bad33026a29f6d18d15762cb7c41d460d7b fix(sling): don't show closed convoy tracking
  • 82079f9715e18e3ad4c89bf4d07ee7a03f48adcc fix(sling): handle agent bead not found gracefully
  • b8eb9362190d6f91f551c593c0e24126c069f85e fix(sling): prevent agent self-interruption during tests
  • f58a516b7b21eca646098bca424d401dff86dcb9 fix(test): remove stale TestInstallTownRoleSlots test (#819)
  • 405d40ee4bed2bf2eed2b335914bf1c3938dcf4a fix(tmux): KillPaneProcesses must kill pane process itself, not just descendants
  • 94c2d71c1355e5d5ab8dd2c9ea90aed11b43b2e6 fix(tmux): kill pane processes before all RespawnPane calls to prevent orphans
  • f82477d6a6d37bfcf92e4c077c3d7445e9014b26 fix(tmux): prevent gt done from killing itself during session cleanup (#821)
  • 63a30ce548f9447478e69f7f79182d9be216d893 fix(tmux): resolve claude path for alias installations (#703) (#748)
  • 9caf5302d44059524e782b3c36f9e4d746644b1f fix(tmux): use KillSessionWithProcesses to prevent zombie bash processes
  • 3c44e2202dab2a59120e5ce8193e0b96760cfc4c fix(witness): run convoy check regardless of cleanup status
  • 560431d2f58bb24e4aa631a42c977a8117493b02 fix: ExpectedPaneCommands returns both node and claude for Claude Code (#740)
  • 8b393b7c3907fa6a4f3001f3c88fbb6b644aeb33 fix: cherry-pick lint and formula sync fixes from upstream
  • 61e9a36dfdf9d46f7304a7aab4ac323a5733c547 fix: create boot directory on install and make fixable
  • e2bd5ef76ce77e7b9ec782a21a8a12b82440881b fix: create daemon.json on install, make templates check informational
  • b28c25b8a26baeb2f95a62ca01639475835c905a fix: create plugins/ directory during install
  • 2aadb0165b7e6b7711e80ece526c49e897c82581 fix: ensure gitignore patterns on role creation
  • 2333b38ecf8caa766681870f328230d9cab072dc fix: explicitly set issue_prefix config during install
  • 035b7775ea703a93c44671c1ebea6e84c76b588a fix: handle error return from os.RemoveAll in defer
  • 7421d1554d9c5f989e4b845f148d448f8af1a32d fix: include queue in custom types during install
  • 6f9bfec60f0b067ef757390a7efff1d9d94bcaf7 fix: install pre-checkout hook in gt git-init
  • b73ee91970fcae0ea6b2d659d2567c59841ba765 fix: isolate git clone operations from parent repos
  • 4eb3915ce9e072fa7d3830d359aa8f52321172e1 fix: kill orphaned bd daemons before beads init
  • 05ea767149fceb15cf82c8ed22b4f0d427c07384 fix: orphan-processes check only detects Gas Town processes
  • 4fbe00e224ea2f2c281e175be083a2acbfc4dea6 fix: respect GT_TOWN_ROOT in quick-add command (#840)
  • 78001d2c014b631a4c723bd85b4d59ba023ea465 fix: update patrol_check tests and add cross-filesystem clone support
  • 3588dbc5e443e443f29459d6bf8af0936fc1e8a4 fix: use exec env for startup command to fix WaitForCommand detection (#844)
  • 8c200d4a83c2242f1c95d1d3751369e36d5e9f2d fix: use gt prime --hook in session hooks
  • b71188d0b4df0bdbf62900a7a371ab3e9220bcaa fix: use ps for cross-platform daemon detection
  • b41a5ef24354fc9e42346a2c0a4af8642f411444 fix: verify .beads directory exists after bd init

Others

  • 5c45b4438a71983503c59523b09236a9e2965b6e Add Windows stub for orphan cleanup (#808)
  • 7e5c3dd6951d4e239a98cafd65f464ef0f26d9f7 Add comprehensive tests for internal/dog package (#737)
  • 477c28c9d19c21188db12b92d9fbb4b3fcfb29d2 Create initial commit before gh repo create --push
  • 6966eb4c28c4070e7d96f0f43c806c575b650d9a Escape backticks and dollar signs in quoteForShell (#777)
  • 2514507a49a0ad6547b15c1545f99ffb8236170e Fix GT_ROOT export for beads formula search compatibility (#718)
  • 6bfe61f796d51db95f9def16a29bb1547cdd791d Fix daemon shutdown detection bug
  • 1b036aadf51450d39b4f381fd528e8d4fc4ec0b0 Fix deacon patrol process leak by killing pane processes before respawn (#745)
  • 1e97d1e6372a89ca55f8a936876feec67f975f76 Fix go-19z: updateAgentHookBead uses wrong directory for rig-level beads (#733)
  • 9de8859be0bebaf86d6ca0339fc1151c2057effc Fix orphan detection to recognize hq-* sessions (#744)
  • e4ebd0784ab5728721d316f74fdf3d0966c903e5 Fix settings templates to use 'gt prime --hook' for session ID tracking (#719)
  • 371074cc67a35d210ff8d854c693f8ee703893af Fix tmux error handling for "no current target" (#755)
  • 3d5a66f85096030b5213e5531cde2f278ca9a29d Fixing unit tests on windows (#813)
  • b2b9cbc836f222ac360163e72ffe310c7819939a Merge upstream/main into fix/fresh-install-fixes
  • 748fa739318876c16c5b7e7a1dd0a43bbc380031 chore(formula): trim verbose witness-patrol description
  • 5cc2995345508906702dfd6a631700a48387243a chore(release): v0.5.0
  • 5a14053a6bd32444bb4a297feb7b89acda53035e docs(templates): add explicit bead filing guidance to role templates
  • 6a22b47ef6f8c91243dc64398ea94bcc1f82af0e fix(await-signal): update agent last_activity on signal received (#774)
  • 78ca8bd5bfa5d5cf0bfe15de97b31ee05ab5b642 fix(witness,refinery): remove ZFC-violating state types
  • 0a6b0b892f38c99d0f830a4c28ce8234a696500a fix(witness,rig): code review cleanup
  • a5bbe244445c5c9319d42ede784da8714155f6ae perf: parallelize mail inbox queries for ~6x speedup
  • dcf7b81011b61bbc027c87c8669431dd48a18931 refactor(hooks): rename to gt tap guard pr-workflow
  • 5218102f4916a9d20e54797f823bf2aba3f724f4 refactor(witness,refinery): ZFC-compliant state management

Beta — feedback welcome: [email protected]