Skip to content

gastown

AI Agents & Assistants

A workspace manager that coordinates multiple AI coding agents, persisting their work state in git-backed hooks for reliable multi‑agent workflows.

Go Latest v1.2.0 · 4d ago Security brief →

Features

  • Persistent context tracking via git‑backed hooks
  • Coordinated orchestration of Claude Code, GitHub Copilot, and other LLM agents
  • Scalable to dozens of concurrent AI workers (polecats)
  • Built‑in monitoring with Witness/Deacon/Dogs watchdogs
  • Merge queue processing with Refinery for automated PR handling

Recent releases

View all 13 releases →
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)

Weekly OSS security release digest.

The CVE patches and breaking changes that affected production tools this week. One email, every Sunday.

No spam, unsubscribe anytime.

About

Stars
15,711
Forks
1,463
Languages
Go Shell JavaScript
Downloads/week
66 ↓4%
NPM Maintainers
2
Contributors
360

Install & Platforms

Install via
brew

Beta — feedback welcome: [email protected]