Gas Town v0.12.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
- 4feaa54 Merge PR #2681: feat: add gt assign command
- 9a0f74c Merge PR #2688: feat: infer rig from crew member name across all crew commands
- 41c41e5 Merge PR #2699: feat: auto-push submodule changes before parent repo push in gt done
- a4f99b5 Merge PR #2740: feat: repo-sourced rig settings + polecat test awareness
- ce95c27 Merge PR #2775: feat: add handler (dog dispatch) to daemon.json lifecycle defaults
- 0f7be92 Merge PR: feat(convoy): auto-append validation bead as final wave when staging epics (gt-m65)
- 317c960 Merge PR: feat(formula): add inline eval/smoke-test bead creation to mol-idea-to-plan (gt-bxx)
- bfa042a feat(acp): case-insensitive and multi-line propulsion trigger detection (gt-bu1)
- 30a9106 feat(acp): refactor runKeepAlive for testability and add propulsion suppression (gt-58p)
- f28273a feat(convoy): add --from-epic flag to convoy create (PR #2771)
- aaff1f1 feat(convoy): auto-append validation bead as final wave when staging epics
- eedb353 feat(formula): add inline eval/smoke-test bead creation to mol-idea-to-plan
- 6c300d4 feat(formula): mol-idea-to-plan v2 with iterative review rounds
- c42dacc feat(plans): draft codex-hooks spec
- 9b1c3ef feat(plans): enrich codex-hooks spec
- 7eb4792 feat: Add Propelled state to Proxy for output suppression during propulsion (gt-gqb)
- bfa4696 feat: Implement Agent Client Protocol (ACP)
- 5f9493f feat: Implement MockAgent test infrastructure (gt-rsh)
- b38e875 feat: add exec-wrapper plugin type to plugin system (gt-5xg)
- 2f3f290 feat: add foreign-remotes doctor check and fix dolt-archive default DBs
- 712c5b5 feat: add gt assign command for one-shot bead creation + hook
- dd1a5e2 feat: add gt mountain CLI command (stage + label + launch) (gt-1v3)
- 3106337 feat: add handler (dog dispatch) to daemon.json lifecycle defaults
- c11da4d feat: add inferRigFromCrewName fallback for gt assign
- 008b74f feat: add metadata-driven ACP escalation handling
- af08d79 feat: add test for standard agent output forwarding (gt-4c6)
- b02e0b1 feat: add typed memories to gt remember (--type feedback/project/user/reference)
- 03254f5 feat: auto-push submodule changes before parent repo push in gt done (gt-dzs)
- 3324f10 feat: extend crew-name rig inference to all crew commands
- 560a2c5 feat: handle large messages in forwardToAgent with 1MB buffer (gt-395)
- 482e20f feat: implement Spider Protocol fraud detection for wasteland stamps
- d0404d4 feat: implement integration test for full input-output loop (gt-af5)
- 897e42d feat: implement propulsion trigger detection in forwardFromAgent (gt-ekw)
- 04b347a feat: implement trust tier escalation engine for Wasteland
- f613ef1 feat: inject prior attempt context when re-dispatching to polecat (PR #2739)
- 1916b73 feat: polecats check CLAUDE.md/AGENTS.md for project-specific test gates
- 1be2098 feat: preserve escalation metadata in mayor mail copies
- 1a77fd5 feat: preserve escalation urgency in mail nudges
- ee2d0ea feat: repo-sourced rig settings via .gastown/settings.json
- e502a90 feat: warn when --nudge not used on gt assign
- b6261fa feat: witness polecat failure tracking for convoy issues (gt-cfq)
Bug Fixes
- 07b593c Merge PR #2693: fix: compactor-dog hash validation accepts Dolt base32 hashes
- edab653 Merge PR #2694: fix: verify types.custom persisted before writing sentinel
- 728e512 Merge PR #2703: fix: resolve rig default_formula before falling back to mol-polecat-work
- bb2ef90 Merge PR #2705: fix: nudge startup prompts for promptless role agents
- a23b8b5 Merge PR #2719: fix: filter MQ list by rig to prevent cross-rig wisp contamination
- 70b5a8f Merge PR #2721: fix: auto-repair missing refinery worktree on startup
- 609b7bd Merge PR #2724: fix: handle Codex trust dialogs on startup
- 0ee39a9 Merge PR #2726: fix(polecat): use local git excludes for ephemeral worktrees
- d72ea9b Merge PR #2732: fix: skip Escape keystroke when nudging Gemini
- 970c710 Merge PR #2733: fix: exclude views from compactor-dog integrity check
- 651f36a Merge PR #2734: fix(flake): Go 1.25.8 overlay, bump beads, fix devShell
- 611fb85 Merge PR #2735: fix: nudge mayor on merge failure, not just success
- 0ea6798 Merge PR #2737: fix: auto-supersede old MRs when new MR created for same issue
- 5985d12 Merge PR #2738: fix: Convoys created by gt sling no longer empty
- beb147e Merge PR #2742: fix: resolve gt binary path in Gemini hook templates at install time
- e21a299 Merge PR #2745: fix: explicit idle-wait instruction for crew workers
- 829c151 Merge PR #2751: fix: shell-quote agent args and respect role_agents model flags
- 3a4c64e Merge PR #2752: fix: use townRoot instead of townBeads for dep add in convoy create/add
- efb11a5 Merge PR #2753: fix: clean stale /tmp/mysql.sock before dolt server start
- 3191c59 Merge PR #2754: fix: add exponential backoff to convoy event poller on Dolt errors
- 65be01d Merge PR #2755: fix: session prefix bugs and stale dolt socket cleanup
- 51aad97 Merge PR #2757: fix: distinguish DB errors from empty hooks in polecat startup
- db6f18a Merge PR #2758: fix: skip stale-binary warning for beads-only commits
- 169af3f Merge PR #2759: fix: repair 8 failing CI tests on main + lint misspell
- ad4c71e Merge PR #2760: fix: witness notifies Mayor on polecat completion
- 7035b01 Merge PR #2762: fix(crew): set liveness env vars so non-Claude runtimes survive attach
- f9ecb6f Merge PR #2763: fix(daemon): skip CRASHED_POLECAT alerts for closed hook beads
- 2f0847c Merge PR #2780: fix: remove gt doctor -v from deacon patrol loop (blocks 60s per cycle)
- f3183e6 Merge PR #2785: fix: auto-upgrade stale Gemini hook files on agent startup
- 8416a38 Merge PR #2787: fix: ParseSessionName handles hq- prefix collision with rig prefixes
- 5480b6c Merge PR #2789: fix: handle unicode parse errors in gt compact
- e07e3e5 Merge PR #2797: fix: suppress clone progress output when --json flag is set
- f1be385 Merge PR #2799: fix: add tini to dockerfile for reaping zombies
- fa33690 Merge PR #2804: fix: isolate 5 tests from live Dolt server and sandbox env
- bc9f467 Merge PR #2809: fix: compactor-dog run.sh false positive on concurrent writes
- bfc573a Merge PR #2810: fix(test): use sleep sessions in TestCleanupOrphanedSessions to avoid .zshrc node
- 5b8dc2c Merge PR #2812: fix: idle patrol agents burning CPU/tokens in handoff restart loop
- f451959 fix(acp): address review findings for PR #2358
- 3fde561 fix(acp): safety check in terminateProcess to avoid killing own process group
- ef364e6 fix(config): remove orphaned ResetHookInstallersForTesting function
- ff5d447 fix(crew): set liveness env vars so non-Claude runtimes survive attach
- 754eb0c fix(crew): set liveness env vars so non-Claude runtimes survive attach
- 4acdad7 fix(daemon): skip CRASHED_POLECAT alerts for closed hook beads
- 50606bb fix(doctor): pass --destroy-token for bd init --force (bd v0.60.0)
- 6c4b350 fix(doctor): use config.yaml port instead of hardcoded default
- 765dde5 fix(dog): escalate session-start failure + verify work assignment delivery
- 26eeb98 fix(dolt): add server-aware database verification to workspace checks
- a7060f9 fix(flake): Go 1.25.8 overlay, bump beads, fix devShell
- aecdc21 fix(polecat): keep worktree ignore changes local
- e6516e5 fix(test): add .claude/ to polecat worktree allowlist
- 704f84c fix(test): use sleep sessions in TestCleanupOrphanedSessions to avoid .zshrc node (gt-it10f6p)
- 85e1630 fix: ParseSessionName falls through to rig-level parsing when hq- suffix is unknown
- ca70658 fix: Windows build failure — extract Unix-only syscall to platform files
- dc16936 fix: add claude stub binary for Windows crew_agents test
- a25fcc0 fix: add exponential backoff to convoy event poller on Dolt errors (GH#2686)
- 9c2f0d0 fix: add tini to dockerfile for reaping zombies
- 92a0582 fix: address codex-hooks review findings
- 2d70c43 fix: auto-repair missing refinery worktree on startup
- 3fa6d9e fix: auto-supersede old MRs when new MR is created for same source issue
- b91fdac fix: auto-upgrade stale hook files that use export PATH pattern
- b03c4bb fix: avoid codex session-start json parse errors
- 39812ad fix: background codex stop hook cost recording
- 87a4799 fix: cherry-pick beads redirect and crew setup hooks from PR #2702
- 67cffe5 fix: clarify formula v2 file paths and flow chart notation
- 2e058fa fix: clean stale /tmp/mysql.sock before dolt server start (GH#2687)
- 7e5dbf5 fix: clean up Codex hooks dead code and add missing test coverage
- 496d69a fix: close Dolt restart race with idle-monitor cleanup (PR #2698)
- 9b64b0d fix: compactor-dog hash validation accepts Dolt base32 hashes
- 9a29bfe fix: compactor-dog run.sh false positive on concurrent writes
- d2fb7f9 fix: delete superseded polecat remote branches to auto-close GitHub PRs
- b9b873a fix: derive spider fraud scores from query data instead of hardcoding 0.5
- 49dac49 fix: distinguish DB errors from empty hooks in polecat startup
- 35d6df1 fix: exclude views from compactor-dog integrity check
- 43cc1a5 fix: fetch-verify-compact-push cycle for Go daemon DoltHub sync
- ab0cbc0 fix: filter MQ list by rig to prevent cross-rig wisp contamination
- ac413c1 fix: github-sheriff owner check gates bd list (prevents missing-db escalations)
- a3e902c fix: gt down leaves orphaned Dolt processes and idle-monitors
- 27e0fe3 fix: gt hook status resolves correct rig database regardless of CWD
- 4b0604e fix: guard against closing rig identity beads on gt done
- 3db786a fix: guard against nil Execution in GetExecWrapper error path
- 5f5ce51 fix: handle unicode parse errors in gt compact (hq-zw7g4)
- c44432f fix: harden Dolt server ownership detection (PR #2776)
- 895c0d3 fix: isolate 5 tests from live Dolt server and sandbox env
- bb36a57 fix: make crew idle-wait instruction explicit for non-Claude agents
- b406822 fix: nudge mayor on merge failure, not just success
- 7335e05 fix: nudge startup prompts for promptless role agents
- 8a61d94 fix: query Dolt server instead of embedded mode for JSONL backup
- dc17941 fix: reaper fast-tracks plugin receipt cleanup (1h instead of 7d)
- cba12f3 fix: remove auto-seed of rig settings from gt rig add
- aa188f1 fix: remove gt doctor -v from deacon patrol loop (blocks 60s per cycle)
- f7c86cb fix: remove unused fallback param from parseIntColumn (lint)
- bb33adc fix: remove unused townRoot param from resolveExecWrapper (lint)
- bfee956 fix: repair 8 failing CI tests on main + lint misspell
- 71e6147 fix: report escalation delivery failures
- 33b4e42 fix: requeue undeliverable ACP escalation nudges
- a47d883 fix: resolve 2 pre-existing integration test failures
- f8e99c7 fix: resolve 4 pre-existing test failures on main
- 2465454 fix: resolve CI lint errors and data races in acp tests
- 96717ec fix: resolve Windows CI test failures (nudge poller, tmux, config)
- 36bc81b fix: resolve beads dir before EnsureCustomTypes/Statuses in convoy.go
- 1d4ba3f fix: resolve gt binary path in Gemini hook templates at install time
- cfa46f6 fix: resolve rig default_formula before falling back to mol-polecat-work
- 7ea8586 fix: revert InitRegistry socket to empty default, remove unused dbName param
- 775dbc7 fix: session prefix bugs and stale dolt socket cleanup
- 91e592d fix: set window-style (pane background) at session creation
- 7ae8fbe fix: shell-quote agent args and respect role_agents model flags
- 894049a fix: shell-quote agent args and respect role_agents model flags
- ec99d68 fix: show nudge stderr on gt assign failure
- 3430fc4 fix: silence codex stop hook output
- d38d67c fix: skip Escape keystroke when nudging agents where it cancels generation
- 6124817 fix: skip executable permission test on Windows
- b2234ac fix: skip stale-binary warning for beads-only commits
- 3bfb3b7 fix: spider SQL compatibility with Dolt only_full_group_by mode
- 5bb139f fix: suppress clone progress output when --json flag is set (#2793)
- 4802d96 fix: suppress unparam lint for resolveBeadDir unused parameter
- 5a5a753 fix: surface warning when server verification fails in dolt status
- f7dc7e0 fix: use path-boundary matching to scope process discovery to town
- df94e46 fix: use townRoot instead of townBeads for dep add in convoy create/add (gt-zsk)
- c889e51 fix: validate crew member exists before creating bead in gt assign
- 85bf796 fix: verify types.custom persisted before writing sentinel (GH#2637)
- da0d15e fix: witness notifies Mayor on polecat completion, Mayor verifies via CLI
- 0ca2396 fix: witness notifies Mayor on polecat completion, Mayor verifies via CLI
Others
- c4cb082 Add RoleDog case to buildAgentIdentity
- db4a6dc Add comments for prime hook metadata helpers
- 4bca135 Clarify Codex bracket parsing comments
- cffa8b4 Convert Propeller from polling to event-driven
- 33e58a2 Fix Deacon phantom alert storm for nuked polecats
- 22fa60f Fix Windows ACP process liveness checks
- 490d3e3 Fix idle patrol agents burning CPU in handoff restart loop
- 6c737ac Fix idle polecat reuse with live sessions
- 1a1f3f7 Fix sling bead lookup: use town root for bd routing
- 00910d7 Fix spider lint helper signature
- 77bea4a Merge PR #2695: gt down: clean up orphan idle-monitors, rogue Dolt servers, and stale .beads/dolt dirs
- 976cfc6 Merge PR #2696: gt doctor: use DefaultConfig for port resolution
- eb528ab Merge PR #2697: gt dolt status: verify databases are served, not just present on disk
- b62e250 Merge PR #2700: Hardened Escalation Path for ACP-attached Mayor
- e82c1d6 Merge PR #2704: Fix Deacon phantom alert storm for nuked polecats
- 7fc7d16 Merge PR #2711: Fix idle polecat reuse when tmux session is still live
- 92fc04c Merge PR #2743: chore(deps-dev): bump undici from 7.22.0 to 7.24.1
- b933169 Merge PR #2750: Remove 'gt config show' from README
- 8f2be97 Merge PR #2791: docs: Dolt login is required to join wasteland
- a3b672d Merge PR #2805: Merge batch: convoy validation bead + mol-idea-to-plan eval beads
- 2951a47 Merge remote-tracking branch 'origin/main'
- dec6ec6 Remove 'gt config show' from README
- f59007d Remove --flat flag from bd list calls
- dc6751b Remove codex hooks planning docs from branch
- cbe5cd0 Remove remaining --flat flag from all bd list shell-outs
- fa4e338 Revert formatting-only changes in agents config
- c6a14d2 checkpoint: prepare codex-hooks for external review
- d22e567 chore(deps-dev): bump undici
- 101606f chore(plans): correct codex-hooks review ledger
- 2599d88 chore(plans): finalize codex-hooks delivery
- d18efe5 doctor: document port resolution precedence in getServerAddr
- e52155a doltserver: fix case-sensitivity and use retry for served-DB check
- afaa3e0 down: address code review findings
- b2315fa fix(compactor-dog): auto-discover databases instead of hardcoded names (PR #2747)
- 305f9ee handle codex trust dialogs on startup
- 5850bea refactor(acp): extract shared proxy code with platform-specific files
- 9600827 refactor: inject stdin and stdout into Proxy for testability (gt-6xy)
- 3998fee refactor: support codex hooks via custom profiles
- f1fd7fd remove dead bd sync code (command removed in bd v0.60.0)
- 1061041 temp merge
- b177af1 temp merge 2684
- da32d2c test(acp): fix test flakiness by using setupProcessGroup and adjusting timeouts
- 548a7b2 update beads input to upstream main (gastownhall/beads#2564 merged)