Gas Town v1.2.1
Pre-compiled binaries for Linux, macOS (Intel & Apple Silicon), and Windows.
Installation
Homebrew (macOS/Linux):
brew install gastownnpm (Node.js):
npm install -g @gastown/gtManual Install:
Download the appropriate binary for your platform below, extract it, and place it in your PATH.
Changelog
Features
- 59edd71 feat(daemon): per-bead cargo target clean hook (hq-x0v7v)
- 5e31df8 feat(witness): detect polecats stuck at startup without heartbeat (gt-uk7)
Bug Fixes
- 64ad5ed Revert "fix: clean standalone formula wisp on hook failure"
- 9d47611 Revert "fix: complete opencode agent logging adapter (gt-gh-3833)"
- d161182 Revert "fix: parse OpenCode step-finish usage (gt-gh-3833)"
- e34cf5a fix(daemon): clean legacy tmux sockets on startup
- bf1ec5d fix(daemon): distinguish Claude usage limits from real crashes (hq-j6hur.4.1, gh#3398)
- 306d142 fix(daemon): prevent BD_ACTOR=daemon from leaking into polecat sessions (pa-xyr)
- a395fed fix(daemon): set BD_DOLT_AUTO_COMMIT=off for read-only bd subprocesses (hq-j6hur.4.3, gh#3596)
- a3a2c3e fix(diskspace): include APFS purgeable space in available bytes on macOS (#3854)
- 4fc8b6d fix(doctor): add boot as managed hooks target; detect rig-root stale settings (#3852)
- 84da049 fix(doctor): rig-config-sync accepts prefix-named Dolt DB (gt-5hd2)
- 2eafac9 fix(dolt): disable auto-gc + stuck-agent-dog null-guards (extracted from #3831)
- 1ad4e66 fix(dolt): set server time_zone to UTC after start (hq-57jr8)
- 2ea89d5 fix(done): auto-rebase polecat branch onto target before push (gh#3400)
- 36ff5ea fix(done): close workflow step beads on DEFERRED exit
- 085d158 fix(escalate): pass description via stdin to bd create (#3890)
- dffc189 fix(formula): infer rig from workspace instead of hardcoding gastown
- 3b76db8 fix(formula): pass --no-convoy when slinging convoy legs and workflow steps
- 7e1e183 fix(gt): socket-first Dolt DSN across internal commands (wa-d6f)
- c1fd5a5 fix(handoff): merge full agent preset env into respawn command
- 8bb2c21 fix(hooks): seed Claude autonomous settings (#3000)
- 34c51db fix(hooks): seed Claude autonomous settings (#3000)
- d381a35 fix(init): run hooks sync + create hooks-base.json during rig/pool init
- ca2bfd1 fix(lint): correct misspelled behavior comment
- 109bb12 fix(lint): correct misspelling behaviour→behavior in polecat manager
- e794912 fix(mail): infer reply-to from inbox to clear reply-reminders (gt-zzob)
- 112866f fix(mq): propagate remote branch deletion errors in post-merge (gh#3868)
- 3c3b292 fix(polecat): kill session during worktree repair (#3961)
- 2ca7d2b fix(polecat): use SetAgentStateWithRetry in pool-init to close MVCC race
- 2e2cdc9 fix(prime): bound external tool injection
- 72928c8 fix(reaper): raise open-wisp alert threshold 500→800 (hq-57jr8)
- 5237e5c fix(refinery): strip stray merge-conflict markers from .gitignore
- 387942b fix(refinery): unbreak TOML escaping in consolidation-failure-handler (hq-j6hur.3.7)
- 3d7d88b fix(release): age-gate npm self-update
- 0cbcb58 fix(rig): detect dead tmux panes in status and start
- 41c2917 fix(rig): drop correct orphan Dolt DB on rig init (gh#3562, hq-j6hur.4.2)
- cb4352c fix(shell): make repo add-offer opt-in and stop it nagging every prompt
- 5010f11 fix(sling): allow standalone formula slinging in deferred dispatch mode (gh#3917)
- cfbdf3c fix(test): update TestBuildBdInitArgs assertion for --force flag (gt-hfg5)
- 9f4f6ba fix(web): prevent duplicate ready sling submissions
- 9bd54ed fix(web): serialize convoy fetch breaker retries (gt-gh-3117)
- 56fe0de fix: auto-save uncommitted implementation work (gt-mn3u-env-leak-fix, gt-pvx safety net)
- e4347f8 fix: auto-save uncommitted implementation work (gt-pvx safety net)
- 47a4e20 fix: auto-save uncommitted implementation work (gt-pvx safety net)
- bd17e0b fix: auto-save uncommitted implementation work (gt-rca-alias-batch-timeout-recovery, gt-pvx safety net)
- 192ecfd fix: auto-save uncommitted implementation work (gt-rca-alias-foreground-mode, gt-pvx safety net)
- c1831e1 fix: auto-save uncommitted implementation work (gt-rca-alias-nuke-refusal-predicate, gt-pvx safety net)
- dfef694 fix: auto-save uncommitted implementation work (gt-rca-alias-preserved-classifier-audit-v4, gt-pvx safety net)
- 0b6c910 fix: auto-save uncommitted implementation work (gt-rca-alias-route-resolve-audit-v4, gt-pvx safety net)
- dfd9d92 fix: auto-save uncommitted implementation work (gt-rca-alias-safety, gt-pvx safety net)
- 08edad0 fix: auto-save uncommitted implementation work (hq-j6hur.3.6, gt-pvx safety net)
- 8e41b94 fix: auto-save uncommitted implementation work (hq-j6hur.3.7, gt-pvx safety net)
- 371e9b6 fix: auto-save uncommitted implementation work (hq-j6hur.4.2, gt-pvx safety net)
- fdbcd2e fix: auto-save uncommitted implementation work (hq-sa8de, gt-pvx safety net)
- 07545b5 fix: auto-save uncommitted implementation work (nitro-pr, gt-pvx safety net)
- a395d7c fix: avoid duplicate inherited slash commands
- 29e90d2 fix: avoid false unpushed polecat cleanup
- c6eab2a fix: avoid submitted idle false positives (gt-gh-3055)
- 607218d fix: block Deacon patrol cycle batching
- fcad6d3 fix: block recovery on rename conflict dirt
- 6b62766 fix: bound bd list read throttle wait (gt-rca-alias-crash-load-audit-v4)
- 60207dc fix: bug: mol step await-event blocks context-check patrol step — refinery never hands off (#4016)
- 4254830 fix: bypass prefix routing for agent-bead operations (issue not found bug)
- 9cb1db9 fix: centralize polecat workstate reuse verdict
- 067d644 fix: clarify direct workflow branch advice (gt-rca-pr-policy-convergence)
- 02b7861 fix: clean standalone formula wisp on hook failure
- 7a19153 fix: clean up statusline lint params (gt-pr-main-routing-rebuild)
- d95cfcf fix: close Dolt recovery review gaps
- a9745eb fix: close no-merge completions
- a52b25d fix: close stale hooked mail beads before each handoff (GH#3859)
- 738dcb0 fix: complete opencode agent logging adapter (gt-gh-3833)
- 2a7c903 fix: complete scheduler hook verification path
- 69f1c81 fix: consolidate bd subprocess hardening
- 5c90c7c fix: converge polecat workstate decisions
- 4496807 fix: cover sling target database guard paths
- 367bfa4 fix: daemon augments PATH with user bin dirs at startup (hq-olcb)
- 64a5e5a fix: dashboard polecats panel empty — use per-town tmux socket
- 88896b4 fix: detect submitted polecat ghost sessions (gt-gh-3055)
- e3d026c fix: diagnose ambiguous Dolt config (gt-rca-alias-dolt-config-doctor-v2)
- 0fdffb6 fix: disable Dolt stats in managed server config
- 3914371 fix: dolt-backup plugin honors GT_TOWN_ROOT (hq-huub)
- 7436223 fix: emit feed event for pane crashes (gt-gh-2534)
- f5d80d9 fix: enable OpenCode LSP by default (gt-rca-alias-opencode-lsp)
- ee2f379 fix: enforce polecat cap admission
- a80591a fix: enforce polecat cap admission
- 665a764 fix: enforce route append prefix ownership (gt-12-land-4096-routing)
- 2d9de94 fix: fail closed on corrupt hook worktrees (#4025)
- f9cac04 fix: fail fast on Dolt sling circuit errors
- ae89197 fix: filter '(not set)' sentinel from bd config output (gt-kbi) (#4022)
- 2478ffc fix: finalize scheduler visibility cleanup
- ad240f5 fix: force deacon patrol handoff after cycle (gt-12-deacon-liveness-noise)
- 0b023ad fix: gate slot-open on recovery safety (gt-rca-alias-slot-open-safety-v2)
- 28f19b2 fix: gt dog done honors GT_TOWN_ROOT/GT_ROOT env vars (hq-zyvo)
- 50f3c7a fix: gt done early returns bypass hook clearing — polecats stuck in 'working' (za-o9e)
- 6d3adcd fix: gt done's UpdateAgentActiveMR uses ForAgentBead routing (hq-e73z)
- 98fd59f fix: guard autosave runtime artifacts (gt-12-autosave-runtime-artifact-guard)
- 15b99f6 fix: handle empty rig repos without masking bad refs
- 221f839 fix: harden GT against Dolt subprocess storms
- 8d95d98 fix: harden bd subprocess environment
- 401c3fe fix: harden daemon and convoy bd subprocesses
- 8d0bca1 fix: harden hook and bd command recovery
- c722326 fix: harden managed Dolt server config
- 24c7c7f fix: harden stale active_mr recovery safety
- a1489f7 fix: honor explicit done target
- aeef54e fix: honor force in nuke dry-run refusal check (gt-4vy4z)
- 6ba30bc fix: honor workflow step dispatch targets (gt-gh-3798)
- ab55026 fix: identify convoys by label
- dc96cae fix: isolate TestDefaultWitnessHandler from production mail system
- ae30520 fix: isolate bd routing from polluted env (gt-12-env-routing-isolation)
- bda229c fix: keep explicit done target authoritative
- 9f52f8b fix: keep formula convoys town-scoped
- 087f2b8 fix: load OpenCode startup through hook prime
- 38b186b fix: make Dolt diagnostics non-fatal (gt-65t8)
- 381f293 fix: make beads init recovery robust (gt-gh-2922)
- dd67014 fix: make polecat admission liveness check cross-platform (gt-12-rebase-4081-admission)
- ddca424 fix: make ready-rig rows slingable by shown ID (#4020)
- b8cb39a fix: mark live no-issue polecats review-needed (gt-rca-alias-working-no-issue)
- 0d46c86 fix: parse OpenCode step-finish usage (gt-gh-3833)
- 461de14 fix: pin bd init to rig databases
- 12aea89 fix: pin bd subprocesses to resolved beads database
- eb719b2 fix: pin daemon's getAgentBeadInfo lookup to town .beads (hq-3kri)
- da5609d fix: populate dashboard rig options from JSON
- f24021e fix: preserve OpenCode compound role display
- 2e2122b fix: preserve bd timeout diagnostics after process-group kill
- ff103c2 fix: preserve beads metadata during redirect setup
- fc5ce8c fix: preserve idle session reuse during admission rebase (gt-12-rebase-4081-admission)
- 5ca8d05 fix: prevent rig add from hanging on existing beads remotes
- 8391c80 fix: protect global beads database from orphan cleanup
- 9a7f1a9 fix: provision Gemini context for rig worktrees
- c75ea5d fix: query rig db for remote hook show
- 0a38aa7 fix: quiet deprecated effort env startup notice
- ba2caf6 fix: rebuild routing convergence for main (gt-pr-main-routing-rebuild)
- b381f60 fix: reconcile polecat recovery git state (gt-recovery-false-positive-clean-closed)
- eaeba03 fix: recover launchd Homebrew path
- 73341af fix: reduce startup mail churn for patrol agents
- 48706a5 fix: refresh Dolt PID state on discovered live server
- a031d56 fix: reject cross-database sling targets (gt-gh-3899)
- f7d1720 fix: remove bd from status-line hot path
- e2c9802 fix: remove bd prime from startup path
- 3fccd33 fix: remove unused statusline args (gt-rca-pr-policy-convergence)
- 39e5d2f fix: require recovery-safe polecat reuse
- eeca16d fix: reset export auto drift state
- 593f9aa fix: restore OpenCode hook startup
- 42ea0a8 fix: rollback spawned polecats on hook failure
- c50df75 fix: route agent bead lifecycle writes through town db
- 7b03eb9 fix: route bd create repo aliases canonically (gt-bd-create-repo-routing-rework) (#4180)
- 0cd8907 fix: route bead creation to target database
- c92c65a fix: route doctor prefix checks through metadata db (gt-rca-alias-stale-redirect-audit-v5)
- 730a957 fix: satisfy statusline lint on policy PR (gt-rca-pr-policy-convergence)
- e862b0d fix: scope bd env during rig prefix seeding (gt-12-rig-init-issue-prefix)
- 218344a fix: serialize route mutations
- 160bba7 fix: skip empty stuck-agent restart loops
- 45fedb3 fix: spawn explicit polecat shorthand create targets (gt-rca-alias-create-target-v2)
- 9f1adab fix: speed up scheduler latency paths (gt-12-scheduler-latency-current-build)
- 25d45e2 fix: stall assigned polecats when sessions die (gt-rca-alias-working-no-issue)
- 518f668 fix: stop tracking opencode runtime output
- 541423f fix: supersede PR workflow policy guard (gt-rca-pr-policy-convergence)
- 5d57936 fix: suppress auto-export for molecule beads
- 01ffb0e fix: suppress boot spawns when deacon is healthy (gt-qu883c)
- 09d8b7d fix: suppress mail bd auto-import
- 2543ad5 fix: suppress satisfaction survey and away-recap for autonomous agents
- 6fe3fa1 fix: throttle GT bead list subprocess storms
- fdd91a5 fix: tighten PR workflow policy convergence (gt-rca-pr-policy-convergence)
- 625bcf8 fix: tolerate reaped active MR during cleanup (gt-rca-alias-no-merge-cleanup)
- b0677cf fix: use town root for scheduler hook verification
- 45506cf fix: validate nudge pane session (gt-gh-3563) (#3950)
- 0796780 fix: validate resolved polecat sling targets
- 4552403 fix: verify hook prompt beacon delivery
- 4a82a63 fix: warn when gt install is shadowed
- 3d16dde fix: warn when gt rig config set writes to ephemeral wisp layer
- fef905b fix: warn when prompt_mode none drops startup prompts
- c1ac1d0 fix: wisp_reaper gt sling inherits os.Environ() not bdReadOnlyEnv
Others
- 3107bf5 Add command description to bd timeout errors
- f15ca6a Clarify Gas Town hq beads routing (#4181)
- f01d8b2 Record origin main in gt 1.2 release RC
- 955aaea Render ready work panel
- 76587a1 Revert "WIP: checkpoint (auto)"
- c347751 Revert "WIP: checkpoint (auto)"
- a3dfaa3 Revert "WIP: checkpoint (auto)"
- 578e6d2 Revert "WIP: checkpoint (auto)"
- 0195ce9 Revert "WIP: checkpoint (auto)"
- 12ac9d5 Run setup_command during polecat worktree creation (#3960)
- d8192d5 WIP: checkpoint (auto)
- 9f73522 WIP: checkpoint (auto)
- 9e98233 WIP: checkpoint (auto)
- 96e7821 WIP: checkpoint (auto)
- 6d9fe1f WIP: checkpoint (auto)
- f9eae9c WIP: checkpoint (auto)
- 43964bc WIP: checkpoint (auto)
- 5a4a1eb WIP: checkpoint (auto)
- 658bac1 WIP: checkpoint (auto)
- d4dddc1 WIP: checkpoint (auto)
- 88539ac WIP: checkpoint (auto)
- 98cdd10 WIP: checkpoint (auto)
- a1ab41d WIP: checkpoint (auto)
- 0a70fc4 WIP: checkpoint (auto)
- 8821c1f WIP: checkpoint (auto)
- 006fae9 WIP: checkpoint (auto)
- 6b27a3f WIP: checkpoint (auto)
- d93046a WIP: checkpoint (auto)
- 8cd0dc6 WIP: checkpoint (auto)
- 3ce2391 WIP: checkpoint (auto)
- 0e431d1 WIP: checkpoint (auto)
- 4de8ebc WIP: checkpoint (auto)
- 2c72f56 WIP: checkpoint (auto)
- 2470afe WIP: checkpoint (auto)
- 60df40d WIP: checkpoint (auto)
- f67b933 WIP: checkpoint (auto)
- 55124a4 WIP: checkpoint (auto)
- 3a41f59 WIP: checkpoint (auto)
- 644fce3 WIP: checkpoint (auto)
- f0a323a WIP: checkpoint (auto)
- c581014 WIP: checkpoint (auto)
- a0bbb61 WIP: checkpoint (auto)
- 43fc3bf WIP: checkpoint (auto)
- 327d549 WIP: checkpoint (auto)
- 62c2cef WIP: checkpoint (auto)
- 55336ce WIP: checkpoint (auto)
- 79608d5 WIP: checkpoint (auto)
- c8371c3 WIP: checkpoint (auto)
- 161e03d WIP: checkpoint (auto)
- cf25a52 WIP: checkpoint (auto)
- 514014d WIP: checkpoint (auto)
- e99f3b7 WIP: checkpoint (auto)
- 92cfc37 WIP: checkpoint (auto)
- d84f9ea WIP: checkpoint (auto)
- ddb0951 WIP: checkpoint (auto)
- 371679e WIP: checkpoint (auto)
- 623d457 WIP: checkpoint (auto)
- 7f128a0 WIP: checkpoint (auto)
- 88970eb WIP: checkpoint (auto)
- 16fa977 WIP: checkpoint (auto)
- 226ff2e WIP: checkpoint (auto)
- 556404c WIP: checkpoint (auto)
- c0b3d6f WIP: checkpoint (auto)
- 03b1fc5 WIP: checkpoint (auto)
- 8ae9a1c WIP: checkpoint (auto)
- edf2b9e WIP: checkpoint (auto)
- 23470fc WIP: checkpoint (auto)
- 5a3bb16 WIP: checkpoint (auto)
- 393e533 WIP: checkpoint (auto)
- 65626ca WIP: checkpoint (auto)
- 562534d WIP: checkpoint (auto)
- ee527bc WIP: checkpoint (auto)
- 0e4d4bd WIP: checkpoint (auto)
- 2ba3fc9 WIP: checkpoint (auto)
- de06ccf WIP: checkpoint (auto)
- a87c405 WIP: checkpoint (auto)
- e3ba21a WIP: checkpoint (auto)
- 448f90e WIP: checkpoint (auto)
- 16efa83 WIP: checkpoint (auto)
- 08acb85 WIP: checkpoint (auto)
- 6803409 WIP: checkpoint (auto)
- 5e92bb2 WIP: checkpoint (auto)
- 1feaf81 WIP: checkpoint (auto)
- 6094430 WIP: checkpoint (auto)
- bc1786b WIP: checkpoint (auto)
- cf3d57b WIP: checkpoint (auto)
- f49cb6c WIP: checkpoint (auto)
- 7537dd1 WIP: checkpoint (auto)
- be718db WIP: checkpoint (auto)
- 059b641 WIP: checkpoint (auto)
- 7085296 WIP: checkpoint (auto)
- 779c643 WIP: checkpoint (auto)
- 9f31cac WIP: checkpoint (auto)
- a7069c9 WIP: checkpoint (auto)
- 04e3cba WIP: checkpoint (auto)
- 8a74365 WIP: checkpoint (auto)
- d613a5a WIP: checkpoint (auto)
- 29f8748 WIP: gh#3602 sling --branch/--pr — pre-recovery snapshot from dead rictus session
- 70cd4c4 WIP: split ResolvedAgent override fix
- 241a72c ci: add nix flake update workflow
- 32c6574 docs(changelog): add [Unreleased] entry for stale hooked mail bead fix (#3859)
- 40a9f8a docs(diskspace): add explanatory comments to int8SliceToString and parsePlistUint64 (gt-jlu)
- 407d572 fix polecat recovery after merged MR
- baca5fc fix(test-leakage): stop sling guard + protocol/nudge tests from hitting prod (gt-gbu)
- be8d398 harden gt done against spurious refinery nudge on DEFERRED (gh#3885)
- e1b9140 improve timeout diagnostics in OpenCode hooks
- 6b13cf0 refactor(rig): dedupe rig discovery helpers and correct misleading error
- 445fd8f revert: remove stray main commits
- 95483f1 show polecat reuse eligibility in list
- 18b1f41 test(beads): cover AgentStatePatrolling/Paused in state predicates (hq-sa8de)
- 054527b test(formula): replace string-concat JSON with encoding/json; add malformed-JSON subtest (gt-v56)
- f36ab41 test(web): cover convoy fetch failure backoff (gt-gh-3117)
- 85c72f7 throttle reaper database scans