Gas Town v0.9.0
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
- 0d264b2 Merge PR #2019: feat(doctor): make env-vars check auto-fixable via gt doctor --fix
- a6829ee Merge: feat: add automated response actions to doctor dog health monitor (gt-nek89)
- 21e2b72 feat(cli): show did-you-mean suggestions for unknown subcommands
- 355f011 feat(cmd): write telemetry and cost logs to GT_HOME/.gt when set
- 85887e8 feat(compactor): add Compactor Dog for daily Dolt commit history flattening
- c13cc27 feat(compactor): enable compactor dog with configurable threshold (gt-l8dc)
- 0611a69 feat(compactor): move dolt gc from Doctor Dog to Compactor Dog (gt-emm4)
- 7342fcd feat(convoy): add merge-blocks dependency type for post-merge gating (#1893)
- e060349 feat(crew): per-worker agent selection via worker_agents config (GH#2175)
- 289a94a feat(daemon): JSONL git backup Dog patrol
- fcad605 feat(daemon): add gt daemon clear-backoff command
- 739a36b feat(daemon): add janitor dog formula for test server cleanup (gt-8xgm)
- 3243d68 feat(daemon): add log rotation for daemon and Dolt server logs (gt-9w0d)
- af4e172 feat(daemon): add orphan DB and backup freshness health checks (hq-rjh)
- 419f90a feat(daemon): add wisp reaper Dog patrol for automated wisp GC (hq-j42)
- 7def59f feat(daemon): expand JSONL backup to all core tables (hq-u6t)
- 370493a feat(daemon): wire dolt backup sync into daemon ticker
- 25d1b39 feat(doctor): add --no-start flag to suppress daemon startup during --fix
- b87b3f6 feat(doctor): add --no-start flag to suppress daemon startup during --fix
- f50d023 feat(doctor): add Option B throttling for mol-dog-doctor molecules (gt-loah)
- 9730e27 feat(doctor): make env-vars check auto-fixable via gt doctor --fix
- e04237a feat(doctor): purge misclassified wisps and detect JSONL bloat
- 23d55b7 feat(dolt): add WithScripts init SQL to testcontainers for root@% auth fix
- 67e8d9a feat(dolt): add WithScripts init SQL to testcontainers for root@% auth fix
- eac5be4 feat(dolt): default to loglevel=debug for query diagnostics
- 341fa43 feat(done): transition polecat to IDLE instead of killing session (gt-hdf8)
- a539d66 feat(formulas): add idea-to-plan pipeline formulas (#2071)
- cfac706 feat(hooks): add dangerous-command guard and tap list command (gt-gow8b)
- c853016 feat(hooks): cascade hook config lookup through GT_HOME then ~/.gt
- db82820 feat(install): add --dolt-port flag with preflight port check
- b06df94 feat(mail): add --to flag and allow sending to inactive agents (hq-muw7, hq-slnx)
- 9d8c201 feat(mol): add 'gt mol await-signal' as alias for 'gt mol step await-signal'
- ac38b1c feat(plugin): add compactor-dog plugin for Dolt commit growth monitoring (gt-kk21)
- d2350f2 feat(polecat): add pool-init command and local branch cleanup in done
- cb827ed feat(quota): context-preserving keychain rotation with preemptive swap (#2075)
- 37d5715 feat(reaper): add auto-close step for stale issues > 30 days (gt-ydds)
- 6e0ff1c feat(reaper): reduce mail purge age from 30 days to 7 days (hq-qh4f)
- c39372f feat(refinery): add gt mq post-merge for branch cleanup after merge (gt-22ps)
- 462e526 feat(vitals): add gt vitals unified health dashboard command (gt-fubw)
- 90d0894 feat(witness): add DiscoverCompletions() for bead-based completion discovery (gt-w0br)
- 38f3e97 feat: Beads Flows end-state — lifecycle stages, health command, pollution hardening
- d2f9f2a feat: JSONL Dog spike detection and pollution firewall (gt-ntf7)
- 5d690f1 feat: acceptance criteria gate in gt done
- 2728e70 feat: add --bind flag to gt dashboard for listening on all interfaces
- 20e84a9 feat: add --verbose and --short flags to gt version
- 1b2796a feat: add 4 dog formula files for molecule-based patrol tracking
- a4a4247 feat: add Doctor Dog health monitor patrol for Dolt server
- 68ebad7 feat: add GASTOWN_DISABLE_OFFER_ADD env var to suppress repo add prompt
- 521ba2a feat: add MQ verification to polecat check-recovery
- b555311 feat: add MQ verification to polecat check-recovery (#1035)
- f911778 feat: add OMP as built-in agent preset and complete Pi hook installer
- 3c1a918 feat: add OperationalConfig for config-driven thresholds (ZFC) (gt-8l3w)
- 176b496 feat: add automated response actions to doctor dog health monitor (gt-nek89)
- 70743bc feat: add best-effort push before --force nuke (gt-4vr)
- 3654001 feat: add daemon scheduled maintenance window (gt config set maintenance.window)
- fe0ac2b feat: add dog health-check command for lifecycle management
- afe8020 feat: add dolt-archive plugin to rig-level plugins
- 048a73f feat: add duplicate check before refinery files test-failure bugs (gt-61em)
- 655620a feat: add gt mail drain command and update witness patrol formula (gt-2rj2)
- e79fbb6 feat: add gt maintain command for one-command Dolt maintenance (gt-8ubf)
- 6ea1abf feat: add gt upgrade command for post-binary migration
- 3ca7f00 feat: add lifecycle-defaults doctor check for missing daemon.json patrol entries
- 8bba4b0 feat: add lifecycle-defaults doctor check for missing daemon.json patrol entries
- 30532d7 feat: add molecule lifecycle tracking to JSONL backup and Dolt backup dogs
- 01fdc51 feat: add parked rig checks to sling and convoy commands (gt-4owfd.1)
- 5117c91 feat: add phantom + stale DB detection as Dog formula molecules (gt-iq8w)
- 9abd060 feat: add test-pollution-cleanup step to deacon patrol (GH#gt-s1r)
- 4571781 feat: add testutil.CleanGTEnv helper and consolidate env filtering (gt-wsc4)
- 6ab5046 feat: add town-root CLAUDE.md version check to gt doctor
- 3db32d9 feat: add wisp deletion and stale issue auto-close to reaper
- 427c6e8 feat: auto-configure six-stage lifecycle for new Gas Town installations (gt-q3or)
- 9193872 feat: cross-socket zombie session cleanup and prevention (gt-olb4)
- 61dfce0 feat: dedicated test Dolt server on port 3308 to eliminate zombie servers
- 980cddd feat: default Dolt server loglevel to debug per Dolt team recommendation
- c5ce08e feat: define agent bead schema for polecat completion metadata (gt-x7t9)
- 315e06f feat: enable data maintenance tickers by calling EnsureLifecycleDefaults at daemon startup (gt-7ul7)
- 7097b85 feat: implement batch-then-bisect merge queue (gt-i2vm)
- 1123b96 feat: implement surgical interactive rebase in Compactor Dog (gt-jmur)
- 0268c0f feat: offsite backup sync to iCloud Drive after each dolt backup cycle
- c410c10 feat: persistent polecats — stop nuking sandboxes after work completion (gt-4ac)
- 0a653b1 feat: polecat self-managed completion — transition to idle directly (gt-1qlg)
- 1fa2e9e feat: refactor wisp_reaper to use mol-dog-reaper molecule lifecycle (gt-nzkx)
- b45d151 feat: replace POLECAT_DONE mail with nudge + agent_state bead update (gt-a6gp)
- 6d04a84 feat: root-only patrol wisps + gt patrol report command
- b8f79dc feat: root-only wisps for all formula-based work (polecat + patrol)
- 63ad145 feat: sandbox sync — branch-only polecat reuse (gt-24j2)
- 3924d56 feat: use SQL-based flatten on running server, remove downtime
- 8325ebf feat: wire OperationalConfig into daemon, deacon, nudge subsystems (gt-8l3w)
Bug Fixes
- 419a726 Merge PR #1980: fix(doctor): patrol-not-stuck queries Dolt DB instead of stale JSONL
- 259a1d1 Merge PR #1993: fix(test): prevent test suite from leaking Dolt databases into production
- e872b83 Merge PR #2001: fix(seance): find sessions in single-account setups without accounts.json
- dccb5ef Merge PR #2002: fix(mail): include pinned agents in recipient validation
- 5c4350c Merge PR #2012: fix(done): normalize polecat CWD to git root before beads resolution
- 1b10321 Merge PR #2013: fix(doctor): detect stale agent beads from deregistered rigs
- f660915 Merge PR #2014: fix(doctor): use scoped Beads instance for agent label updates
- 84939a3 Merge PR #2015: fix(deps): set GOBIN when auto-installing beads to prevent stale shadow binary
- c1ca918 Merge PR #2017: fix(config): revert refinery settings path to parent directory
- 7f15195 Merge PR #2021: fix: update nix package for v0.8.0 with ldflags
- 0ac964f Merge PR #2023: fix(deacon): correct commands and add heartbeat to patrol formula
- 5a82f61 Merge PR #2025: fix(sling): detect malformed wisp IDs and clean up orphans in formula instantiation
- d394bf3 Merge PR #2027: fix(hooks): fail closed on settings integrity violations
- 161b343 Merge PR #2030: fix(polecat): preserve remote branch when MR is pending in merge queue
- a6e6d7e Merge PR #2033: fix(mail): always queue mail notifications to prevent stuck nudge input
- 6d33dc9 Merge PR #2039: fix(mail): validate recipient address before sending — reject unknown agents
- 1d9d70b Merge PR #2043: fix(mol): use handoff bead for auto-detect in mol attach
- ba49986 Merge PR #2044: fix(witness): prevent premature polecat nuke before refinery merges
- 1721ada Merge PR #2047: fix(doctor): don't flag absent env vars when expected value is empty
- 6bdd6cf Merge PR #2052: fix(test): isolate all test packages on ephemeral Dolt server
- 5995d48 Merge PR #2053: fix(done): make gt done idempotent by checking wisps table for existing MR beads
- 7d1af8b Merge PR #2054: fix(doctor): search full formula path in patrol-molecules-exist check
- 3e6f881 Merge PR #2057: fix(deacon): respawn dead pane instead of kill+recreate to prevent crash loop
- dca0305 Merge PR #2070: fix(dog): add RoleDog constant and DogName field to fix dog template rendering
- 0009a42 Merge PR #2076: fix(test): mock isRigParkedFn in TestDetectWarnings_Clean
- dbe4999 Merge PR #2121: fix: resolve golangci-lint errors in daemon and handoff packages
- 53bd67e Merge PR #2136: fix: batch reliability fixes (mail ID, polecat prune, crew remote sync)
- 6e856d2 Merge PR #2145: fix: workspace trust dialog blocks agent execution across all roles
- 145db7b Merge PR #2148: fix(convoy): add recovery sweep after Dolt reconnect
- 6a3adc6 Merge PR #2149: fix(doctor): repair beads redirect targets with missing config.yaml
- 92ed3f3 Merge PR #2153: fix(convoy): route stranded scan warnings to stderr
- 3db20a5 Merge PR #2154: fix(convoy): respect decision-to-task blocking edges in waves
- 17bafc0 Merge PR #2156: fix(quota): detect API 429 + non-restartable session handling
- 97ca757 Merge PR #2159: fix(witness): spawning guard for zombie detection
- b463873 Merge PR #2160: fix(sling): worktree validation + convoy cleanup on rollback
- e397950 Merge PR #2168: fix(nuke): make --force bypass unmerged commits check
- c5722f1 Merge PR #2173: fix(formulas): remove duplicate review_id var in idea-to-plan formula
- 821cbe0 Merge PR #2177: fix: EnableMouseMode respects global mouse toggle
- 5744e9f Merge PR #2179: fix(quota): add API Error rate-limit pattern to scan
- 7e2461f Merge PR #2182: fix(ci): lint fixes, integration test Dolt PID bridge, Windows test skips
- a3aa762 Merge PR #2183: fix(test): skip bash-dependent daemon tests on Windows
- cff36d8 Merge PR #2184: fix: prevent testdb_* accumulation
- ecfa322 Merge PR #2185: fix(refinery): make stale-claim thresholds and MaxRetryCount config-driven (ZFC)
- 4a9fe47 Merge PR #2185: fix(refinery): make stale-claim thresholds and MaxRetryCount config-driven (ZFC)
- 065593d Merge PR #2186: fix(refinery): remove hardcoded severity/priority logic
- 3abaabe Merge PR #2186: fix(refinery): remove hardcoded severity/priority logic (ZFC gt-9xbg)
- 2f11c0f Merge PR #2187: fix(refinery): extract ConvoyFields typed accessor
- f08db60 Merge PR #2187: fix(refinery): extract ConvoyFields typed accessor (ZFC gt-re2y)
- 50af249 Merge PR #2188: fix(refinery): remove dead findTownRoot
- 4bdb642 Merge PR #2188: fix(refinery): remove dead findTownRoot filesystem inference (ZFC gt-qago)
- f29762d Merge PR #2189: fix(witness): replace hardcoded zombie state classification with typed constants
- 224b413 Merge PR #2190: fix(witness): remove hardcoded Mayor role refs
- f6b5079 Merge PR #2191: fix(test): fix flaky TestVerifyStartupNudgeDelivery_IdleAgent session collision
- 04f31e9 Merge PR #2192: fix: prevent auto-close of stuck convoys with tracked but unready issues
- 94280c4 Merge PR #2193: fix(zfc): centralize hung session threshold
- 0f6eba8 Merge PR #2193: fix(zfc): centralize hung session threshold
- 0dd4937 Merge PR #2194: fix: replace ad-hoc string parsing with structured field parsers in witness
- 4946768 Merge PR #2195: fix(beads): replace hardcoded state/status string comparisons with typed enums
- f75a7db Merge PR #2195: fix(beads): replace hardcoded state/status string comparisons with typed enums (ZFC)
- cc975c2 Merge PR #2196: fix(zfc): replace PID signal inference with heartbeat
- 3455644 Merge PR #2197: fix(zfc): replace PID string matching with flock + port checks
- 76dde5a Merge PR #2201: fix(sling): let legacy bond proceed with malformed wisp IDs
- 4d3098a Merge: fix: stabilize flaky TestRunBdCmd_ReturnsStdoutOnNonZeroAndTimeout (gt-5kjn)
- 7100934 fix(audit): handle Close error and add Sync in LogDetachAudit
- 7b98642 fix(backup): skip git push when no remote configured
- a3dd60b fix(beads): FindMRForBranch now searches ephemeral wisps
- 9d733ac fix(beads): replace hardcoded state/status string comparisons with typed enums
- c5a0e71 fix(beads): replace hardcoded state/status string comparisons with typed enums
- 3cee03c fix(beads): translate GT_DOLT_PORT to BEADS_DOLT_PORT for bd subprocesses
- affaab8 fix(ci): Windows test failures from backslash path separators
- c377209 fix(ci): create GOPATH/bin before installing Dolt on Windows
- 0981134 fix(ci): lint errors and port collision in integration tests
- b429b65 fix(ci): update bd version from v0.55.4 to v0.56.1 to match go.mod
- 15fdc03 fix(ci): use filepath.ToSlash for Windows path compatibility
- 4f53943 fix(cmd): use env var fallbacks in persistentPreRun for InitRegistry
- 20dbd61 fix(cmd): use env var fallbacks in persistentPreRun for InitRegistry
- fe09057 fix(compact): send daily digest to mayor/ only, not deacon/
- f9a161f fix(compact): send daily digest to mayor/ only, not deacon/
- 2fa655b fix(config): RoleSettingsDir returns wrong path for refinery role
- 5b8f7de fix(config): refinery settings path wrong in RoleSettingsDir and hooks subsystem
- a29fdb6 fix(config): revert refinery settings path to parent directory
- 7affd88 fix(convoy): add recovery sweep after Dolt reconnect and at daemon startup
- ab3af81 fix(convoy): address PR #2170 review feedback
- 39962be fix(convoy): check both parked and docked rigs in all dispatch paths
- 23c81f6 fix(convoy): respect decision-to-task blocking edges in wave computation (#2141)
- c17c1d7 fix(convoy): route stranded scan warnings to stderr, not stdout (#2142)
- a4b381d fix(cycle): merge witness/refinery/polecat into one rig ops cycle group
- cbb2273 fix(daemon): derive orphan DB threshold from data dir, not hardcoded
- 95eff92 fix(daemon): enforce rig dock/park lifecycle across all startup, patrol, and sling paths
- 0a7c425 fix(deacon): add heartbeat refresh steps to patrol formula
- 6b4157d fix(deacon): correct gated check command in patrol formula
- c5f3ef5 fix(deacon): respawn dead pane instead of kill+recreate to prevent crash loop
- bbd56a3 fix(deacon): use gt dogs list --json for stale dog detection
- 984c066 fix(deps): set GOBIN when auto-installing beads to prevent stale shadow binary
- 2a7ca59 fix(deps): update module github.com/steveyegge/beads to v0.56.1
- bc7c068 fix(deps): update module github.com/steveyegge/beads to v0.56.1
- 2eb6528 fix(docs): correct ~/.gt path references in formulas and role docs
- 9a242b6 fix(docs): correct ~/.gt path references in formulas and role docs
- 2569060 fix(doctor): add --include-infra to ListAgentBeads query
- 58554b7 fix(doctor): check patrol formulas via filesystem instead of bd CLI
- 5ab7552 fix(doctor): claude-settings check runs before daemon to prevent race
- 01fb96b fix(doctor): claude-settings check runs before daemon to prevent race
- 2f6dcf5 fix(doctor): correct claude-settings hint from 'gt up --restart' to 'gt up --restore'
- 1ae5899 fix(doctor): correct claude-settings hint from --restart to --restore
- 83a0c7e fix(doctor): detect stale agent beads from deregistered rigs
- cd59840 fix(doctor): don't flag absent env vars when expected value is empty
- 699f29c fix(doctor): exclude crew from persistent-role-branches check
- addf9fc fix(doctor): exclude crew from persistent-role-branches check
- 2ca2d45 fix(doctor): handle nested polecat worktree structure in redirect checks
- 31a19f8 fix(doctor): handle nested polecat worktree structure in redirect checks
- fd86b97 fix(doctor): handle worktree branch conflicts in persistent-role-branches fix
- 219e56a fix(doctor): handle worktree branch conflicts in persistent-role-branches fix
- 2e76dbb fix(doctor): make no_prime_hook fixable in priming check
- 0bd6d03 fix(doctor): make no_prime_hook fixable in priming check
- 328b739 fix(doctor): propagate CSV parse errors in patrol-not-stuck Dolt query
- 16c7ca0 fix(doctor): repair beads redirect targets with missing config.yaml
- 9af14fa fix(doctor): search full formula path in patrol-molecules-exist check
- f494f7d fix(doctor): simplify parseCrewOrPolecatFromID return to single string
- ed88f27 fix(doctor): skip rig dirs whose .beads symlinks to town root
- f3acfa6 fix(doctor): use scoped Beads instance for label updates
- 31452c0 fix(dog): add RoleDog and DogName to fix dog template rendering
- ed194c1 fix(dog): remove invalid --role-type flag from bd create call
- 59c82d2 fix(dolt): bump DefaultMaxConnections from 200 to 1000
- ece3eda fix(dolt): make gt dolt start idempotent and fix server detection
- 2ac99c0 fix(dolt): measure query latency via direct TCP instead of subprocess
- 1e4263e fix(doltserver): clean up dolt_branch_control on RemoveDatabase
- c7305e8 fix(doltserver): clean up dolt_branch_control on RemoveDatabase (gt-zlv7l)
- aca9286 fix(done): check wisps table in FindMRForBranch to make gt done idempotent
- 06250a0 fix(done): normalize polecat CWD to git root before beads resolution
- 9d64c0a fix(done): prevent sleepwalking polecats from completing with zero commits
- a3f6977 fix(down): make sweepCrossSocketZombies bidirectional for default socket (gt-y8x4)
- 1c7ac45 fix(env): pass cloud API credentials from shell to agent sessions
- cbc08f2 fix(env): pass cloud API credentials from shell to agent sessions
- 5eea1ea fix(formulas): add missing review_id var to mol-idea-to-plan formula
- bc143fe fix(formulas): add missing review_id variable to mol-idea-to-plan formula
- 5782d26 fix(formulas): remove duplicate review_id var in idea-to-plan formula
- 8655a7e fix(formulas): review fixes for idea-to-plan pipeline
- 3bd2412 fix(git): anchor exclude patterns to repo root to avoid hiding source code
- 9a77c1c fix(git): anchor exclude patterns to repo root to avoid hiding source code
- 64725f8 fix(handoff): clean up orphaned bead on pin failure in GetOrCreateHandoffBead
- a7254c0 fix(handoff): deterministic fallback for empty auto-handoff context (GH#1996)
- 93387e7 fix(handoff): make ClearMail continue on partial failure
- 099044b fix(handoff): preserve conversation context on PreCompact cycle (#2073)
- 5d40c14 fix(hooks): add patrol-formula-guard to deacon and refinery roles (hq-3paz0m)
- 9402ff1 fix(hooks): backfill DefaultBase into on-disk hooks-base.json
- cc70352 fix(hooks): backfill DefaultBase into stale on-disk hooks-base.json
- 41b333b fix(install): clean port-conflict error — no Usage dump, suggest concrete port
- 7e63f85 fix(lint): remove unused townRoot param from cleanupOrphanedWisp
- 248da05 fix(mail): add filesystem fallback and crew/name shorthand for crew member addressing
- 8cf9d12 fix(mail): always queue mail notifications to prevent stuck nudge input
- ad903bf fix(mail): auto-nudge idle agents on mail delivery (fix-merge of #2125)
- e93d7c9 fix(mail): fall back to workspace directory validation when agent beads missing
- f77950e fix(mail): include pinned agents in active status filter
- 8a54de6 fix(mail): include pinned agents in recipient validation (#2002)
- 5872d9a fix(mail): make LIFECYCLE and merge protocol messages ephemeral wisps (gt-vpy9)
- b89cd4c fix(mail): surface query errors in validateRecipient instead of swallowing them
- 4ec543a fix(mail): validate recipient address before sending — reject unknown agents
- c4faaa8 fix(metrics): emit gastown.polecat.spawns.total on polecat session spawn
- 58fc666 fix(mol): fix role extraction from agent identity for handoff bead lookup
- 713064c fix(mol): use handoff bead for auto-detect in mol attach (gt-t9li)
- 2b8d632 fix(nuke): use ResetAgentBeadForReuse and correct workDir for molecule cleanup
- e5248e0 fix(patrol): remove --root-only flag dropped from bd mol wisp create
- 105b5f5 fix(patrol): use gt dolt kill-imposters instead of hardcoded port-3307 kill loop
- 0fb02e1 fix(peek): support 'gt peek mayor/deacon/boot' for town-level agents
- 3752108 fix(polecat): persist findings to bead before closing steps (gt-ah2k)
- edab16a fix(polecat): preserve remote branch when MR is pending in merge queue
- f0660ab fix(quota): add API Error rate-limit pattern to scan
- adb7fb3 fix(reaper): escalations to ephemeral, reaper purges old mail
- f61ff0a fix(reaper): restrict wisp reaper to ephemeral wisps only (ZFC violation bd-5frbt)
- 1817c58 fix(reaper): wrap all reaper mutations in explicit DOLT_COMMIT (gt-at0i)
- 87caa55 fix(refinery): address target-resolution PR review findings
- 75b7206 fix(refinery): align process-branch rebase with MR target
- c7de7da fix(refinery): close source issue after merge in patrol formula
- d41febf fix(refinery): close source issue after merge in patrol formula
- edf3b96 fix(refinery): deterministic queue tie-breaker for equal scores
- 3ebb533 fix(refinery): extract ConvoyFields typed accessor for convoy metadata (ZFC gt-re2y)
- 15b4955 fix(refinery): finalize target-aware patrol guidance and eval guard
- 8aa51c0 fix(refinery): make stale-claim thresholds and MaxRetryCount config-driven (ZFC)
- 12759b1 fix(refinery): make stale-claim thresholds and MaxRetryCount config-driven (ZFC)
- f66eddc fix(refinery): remove dead findTownRoot filesystem inference (ZFC gt-qago)
- 4ddd1fe fix(refinery): remove hardcoded severity/priority logic (ZFC gt-9xbg)
- 6ba8682 fix(rig): use IsRigParkedOrDocked instead of wisp config for docked check (gt-7uhc)
- 70a6989 fix(seance): clear CLAUDECODE env to unblock --talk from agent sessions
- 873dc75 fix(seance): find sessions in single-account setups without accounts.json
- 47a6541 fix(seance): find sessions in single-account setups without accounts.json
- 923b42c fix(seance): fix --print flag and clear CLAUDE_CODE_ENTRYPOINT
- 97b5f11 fix(seance): resolve truncated session ID prefixes in --talk
- 2930ba8 fix(session): update socket test to expect 'default' after 635916a (gt-0jh0)
- e5d540b fix(settings): add skipDangerousModePermissionPrompt to role templates
- 41a28cc fix(sling): clean up git branch and convoy on rollback failure (fix-merge of #2139)
- 7549512 fix(sling): detect malformed wisp IDs and clean up orphans in formula instantiation (gt-4gjd)
- 890f67a fix(sling): remove dependency bonds in burnExistingMolecules (#2093)
- 8eb3d8b fix(templates): remove personal names from mail examples
- 45fba07 fix(templates): replace hardcoded ~/gt with {{ .TownRoot }} in role templates
- bdd6a70 fix(test): bridge Dolt PID to town root so IsRunning checks pass in CI
- 58c8fd1 fix(test): capture stderr in TestWarnHandoffGitStatus (gt-ftl9)
- 122eac3 fix(test): correct convoy ID format assertion to match base36 implementation
- d4360fa fix(test): fix flaky TestVerifyStartupNudgeDelivery_IdleAgent session collision
- 1de7585 fix(test): forward GT_DOLT_PORT as --server-port to bd init commands
- 8d6e8db fix(test): forward GT_DOLT_PORT in scheduler integration tests
- 905be5a fix(test): forward GT_DOLT_PORT to bd subprocesses and adapt to bd v0.56.1
- 80f3168 fix(test): isolate convoy and daemon tests on ephemeral Dolt server
- f568872 fix(test): make TestVerifyStartupNudgeDelivery_IdleAgent deterministic (gt-eo8d)
- 5f2157f fix(test): mock isRigParkedFn in TestDetectWarnings_Clean
- 96ebd97 fix(test): pre-kill stale tmux session in TestVerifyStartupNudgeDelivery_IdleAgent (gt-eo8d)
- 0561f9f fix(test): prevent test suite from leaking Dolt databases into production
- 15d47c0 fix(test): resolve macOS symlink in sling rollback test
- f2b8dec fix(test): restore correct testutil function names after rebase conflict
- f7463a5 fix(test): revert scheduler initBeadsDBForServer to upstream/main version
- 8f55734 fix(test): run squash jitter tests from temp dir to avoid workspace lookup succeeding (gt-emna)
- a2e6cd7 fix(test): skip bash-dependent daemon tests on Windows (gt-94i9)
- c4a010c fix(test): skip gracefully when Dolt/Docker unavailable instead of failing
- bfc62f4 fix(tests): preserve GT_DOLT_PORT in filterGTEnv() (gt-ah9y)
- a09d3b3 fix(tmux): NewTmux() sentinel prevents silent wrong-server connections
- 18c5b34 fix(tmux): auto-dismiss workspace trust dialog blocking all agent sessions
- ab5f06f fix(tmux): derive socket from town name and add cross-socket agent menu
- 1e8e5e0 fix(tmux): eliminate session creation race by running command as initial pane process
- d06ee7c fix(tmux): harden auto-respawn hook with dead-pane guard and background execution
- 65d4c9d fix(tmux): reset window-size after WakePane resize dance
- 134c3a0 fix(tmux): restore IsAgentAlive fallback in WaitForCommand
- 3cf59c2 fix(tmux): restore ctrl-b+g from personal sessions after cross-socket split
- 9405692 fix(tmux): set GT_TOWN_ROOT in global env for run-shell cycle groups
- 4b9b887 fix(tmux): set window-size=latest on new detached sessions
- 37441ee fix(tmux): stop daemon from creating separate socket server
- 182718b fix(tmux): use /tmp for socket directory instead of os.TempDir()
- faa4c68 fix(tmux): use TMUX_PANE targeting for session name resolution
- 635916a fix(tmux): use default socket instead of per-town socket
- 96575e1 fix(witness): prevent premature polecat nuke before refinery merges (gt-6a9d)
- 23b45a9 fix(witness): remove AssessHelpRequest Go-level triage engine (gt-l7uq)
- 3bf979d fix(witness): remove hardcoded Mayor role refs from cleanup handlers (ZFC gt-5rne)
- f9466bb fix(witness): replace hardcoded zombie state classification with typed constants (ZFC)
- ddd53d8 fix(witness): replace screen-scraping with structured signals in DetectStalledPolecats (gt-idrl)
- 896d610 fix(zfc): centralize hung session threshold as single source of truth
- 74cfe11 fix(zfc): replace PID string matching with flock + port checks
- 7c0de7b fix: 4 Dolt server bugs — phantom dirs, orphan detection, read-only recovery, stale locks
- f75e4d3 fix: EnableMouseMode respects global mouse toggle
- 94d9afc fix: JSONL git backup git-add fails on untracked subdirectories
- 9a98dd6 fix: UTF-8 safe title truncation + PrintWarning to stderr (fix-merge of #2140)
- 1191b08 fix: accept bypass permissions warning in crew start and fix cycle bindings
- 3cb4b8e fix: add BEADS_TEST_MODE=1 to convoy store tests to prevent DB pollution
- 8bb315c fix: add G201 golangci exclusion for internal SQL formatting
- 6698c25 fix: add concurrent write retry logic and hazard docs for surgical rebase (gt-7wyq)
- 6acfb08 fix: add deterministic git state to handoff context (GH#1996)
- 3bb41ad fix: add deterministic tie-breakers to convoy scheduling
- 00516d4 fix: add idempotency checks to compact report
- c86bff6 fix: add idempotency checks to compact report to prevent duplicate digests
- eaf9a3c fix: add in_progress guard to sling dispatch to prevent polecat proliferation
- a6df5fa fix: add in_progress guard to sling dispatch to prevent polecat proliferation
- 146fa9f fix: add missing .gitignore patterns for Dolt database and runtime files
- 79ad4b8 fix: add missing .gitignore patterns for Dolt database and runtime files
- 68b1a75 fix: add requireDoltServer and unique prefixes to integration tests
- 2b6a37f fix: add startup nudge retry loop to fix polecat idle race (GH#1379 Mode B)
- 3a5f424 fix: add t.Cleanup to drop scheduler test databases after each run
- e14834a fix: add teardown cleanup to drop beads_pt* test databases (GH#gt-qmp)
- 2c6ff30 fix: add tests for splitCamelCase and guard empty prefix config set
- f99edf6 fix: admission control uses TCP client instead of embedded dolt to check connections
- 9f0902c fix: align DogState fields and remove redundant status override
- ce7af0a fix: bump compactor threshold from 500 to 10000
- 34945df fix: capacity scheduler hangs by fetching only needed work beads
- 4f58234 fix: capacity scheduler hangs by fetching only needed work beads (gt-46dn2)
- f5af09c fix: check active_mr before SAFE_TO_NUKE and sort mail by priority
- 805f275 fix: check bead status before zombie flagging and redispatch
- a96c90e fix: clean stale dolt-server.pid to prevent mail inbox hangs
- 0a845a8 fix: clean up orphaned tmux sessions in TestVerifyStartupNudgeDelivery_IdleAgent (gt-mesu)
- 4b1d240 fix: close descendant wisps before closing molecule roots
- 9b15a2a fix: close molecule steps on handoff to prevent wisp leaks (gt-e26g)
- 34b1204 fix: close orphan step wisps before closing root molecule (gt-3o59)
- af97a4f fix: complete persistent polecats design — stop doctor from undoing agent migration (#2055)
- 8e68922 fix: consolidate GUPP violation threshold into single constant (gt-1emx)
- 919cac3 fix: correct stale comment in down.go Phase 6 about tmux socket isolation (gt-qzjb)
- caa0482 fix: daemon backup discovery uses wrong dolt subcommand, add all 6 DBs to config
- e425721 fix: deduplicate agent bead IDs when rig name equals derived prefix
- 58234c9 fix: deduplicate convoy close handling across stores per poll cycle
- f7439b0 fix: detect stale custom-types sentinel to auto-update types on upgrade
- e9e2923 fix: disable polecat pre-sync — polecats are ephemeral, not persistent (GH#1973)
- 8e5eaf1 fix: disable remain-on-exit before tmux kill-session in dog done
- ff6ba53 fix: doctor --fix respects rig default_branch for persistent roles (#1430)
- 9ea99c2 fix: doctor --fix silent failure for agent-beads and misclassified-wisps
- c718b88 fix: doctor agent-beads-exist check now finds wisps (#1935)
- f415748 fix: dogs auto-terminate tmux session after gt dog done (gt-2yx7)
- d42f633 fix: dogs can't find plugin:dolt-archive despite it existing (gt-a0sg)
- 3e690b7 fix: emit session_death event and notify witness on polecat crash
- f3f4fe7 fix: emit session_death event and notify witness on polecat crash
- 650e42d fix: ensure dog agent beads exist before dispatch mail (gt-r8m9)
- 0242002 fix: ensure dog agent beads exist before dispatch mail (gt-r8m9)
- 1b9e234 fix: extract syscall.SIGUSR2 into platform files for Windows cross-compilation (gt-94i9)
- 059ea16 fix: fall back to TownRoot when rig path doesn't exist in patrol-molecules-exist check
- 4fe275c fix: fall back to TownRoot when rig path missing in patrol-molecules-exist check
- cfa8b2c fix: fetch non-default branch in shallow bare clone for --default-branch
- c10e442 fix: formula lookup falls back to embedded for non-gastown rigs (gt-oir)
- 7c4bacd fix: gate sandbox nuke on MR creation success in gt done
- e75de80 fix: gate session kill on MQ submission success (GH#1945)
- b4ed85b fix: gt dog done auto-terminates tmux session to prevent idle-at-prompt (gt-2yx7)
- f132286 fix: gt dolt cleanup balks when orphan count exceeds 50
- 87a5847 fix: handle Dolt nil pointer dereference in gt doctor --fix agent bead creation
- 43dc69d fix: handle nil pointer dereference in gt doctor --fix creating agent beads
- 3a6b6de fix: handle phantom convoys gracefully in gt done
- bd68046 fix: handle phantom convoys gracefully in gt done (gt-9xum2)
- 09500e6 fix: handle wisp format step IDs in molecule step done
- b82603b fix: log patrol config parse errors, remove invalid health_check_interval
- 98767fa fix: make WORK_DONE notifications ephemeral wisps, not permanent beads
- 8e2151f fix: make convoy close event processing idempotent (GH #1798)
- eb530d8 fix: make restart_tracker crash-loop params configurable (ZFC) (gt-jq7l)
- e89a3b6 fix: malformed wisp IDs proceed with legacy bond instead of skipping
- 330664c fix: nuke preserves remote branches + enable GatesParallel (gt-v5ku, gt-8b2i)
- 67b0cdf fix: parse extends/compose/advice/presets/squash/gate TOML sections in formula parser (gt-1fje)
- 209b47b fix: parse tmux socket from TMUX env var instead of hardcoding town name
- d691854 fix: patrol-not-stuck check queries Dolt DB instead of stale JSONL
- 088113d fix: patrol-not-stuck check queries Dolt DB instead of stale JSONL
- b373e8f fix: preserve agent-bead metadata and harden crew bead creation
- 4bd189b fix: preserve remote branch with unmerged commits during polecat nuke (gt-rm9f)
- ced820b fix: prevent auto-close of stuck convoys with tracked but unready issues
- ef12dd5 fix: prevent dolt-server zombie leaks from mail test suite (gt-qae2)
- fa9145d fix: prevent gt doctor --fix nil pointer dereference creating agent beads (GH#1769)
- 53f667c fix: prevent molecule step wisps from being promoted to permanent beads (gt-uzui)
- bcf988f fix: prohibit witness patrol from closing foreign wisps (gt-oei1)
- dfed4c9 fix: remove --ephemeral from CreateAgentBead to write to issues table
- 9124967 fix: remove --root-only flag from bd mol wisp calls (gt-th5n)
- 0029313 fix: remove JSONL fallback in detectBeadsPrefixFromConfig and fix tmux tests
- 383945f fix: remove ZFC-violating decision engine from degraded boot triage (gt-mcw2)
- 915f1b7 fix: remove auto-close of permanent issues from wisp reaper (gt-hln2)
- 863a4c9 fix: remove dead cross-socket zombie functions after socket migration (gt-wrdz)
- 34e4927 fix: remove dead findTownRoot function from refinery (gt-qago)
- 6c6c397 fix: remove duplicate AgentStateIdle/AgentStateStuck constant declarations
- 0b091f2 fix: remove explicit --id from mail creation paths, breaking all mail delivery
- c3034f7 fix: remove hardcoded severity/priority from refinery anomalies (gt-9xbg)
- 675ae28 fix: remove polecat from daemon pre-sync fallback switch (#1973)
- be74dd9 fix: remove stale NPM_TOKEN from release workflow, add deployment docs
- b7dcae3 fix: replace --format=jsonl with --json in dog_molecule bd calls (gt-ioiz)
- f3bbc27 fix: replace PID signal probing with heartbeat-based liveness detection (gt-qjtq)
- 1268e34 fix: replace ad-hoc convoy description parsing with typed ConvoyFields accessors
- cf5b8aa fix: replace ad-hoc convoy description parsing with typed ConvoyFields accessors (gt-re2y)
- 551d861 fix: replace ad-hoc string parsing with structured field parsers in witness
- 89ccc21 fix: replace doctor_dog automated actions with configurable advisory recommendations (gt-sjzd)
- 64a44ee fix: replace hardcoded state/status string comparisons with typed constants (gt-4d7p)
- e167e04 fix: replace ps string matching with nonce-based PID files (gt-utuk)
- 7a578c2 fix: replace routine protocol mail with nudge to avoid permanent Dolt commits (gt-5hd8)
- b07ecbd fix: replace screen-scraping with blind key-send in DetectStalledPolecats
- 6e4738e fix: replace screen-scraping with blind key-send in DetectStalledPolecats
- e15d442 fix: require Dolt server for beads init and reorder doctor prerequisites (#2049)
- ad95b30 fix: resolve Windows build failure (syscall.Flock undefined)
- fa81ecc fix: resolve errcheck lint failures in testutil/doltserver.go
- 088159d fix: resolve golangci-lint errors across daemon and handoff packages
- 362b060 fix: resolve gt mail inbox signal:killed by using per-identity Dolt queries
- eb46082 fix: resolve lint unparam warnings
- aaf19ce fix: resolve pre-existing lint failures blocking CI
- 0409ca8 fix: restore --ephemeral for agent beads and fix doctor to check wisps table
- be34710 fix: restore caret escaping in Windows batch mock (gt-4gjd)
- 51bce9e fix: restore compactorGetHead, flattenGetHead, and compactorBranchName removed by concurrent merge
- 43cdbf1 fix: retry hook lookup and search town beads for rig agents (GH#1438)
- 14fa92f fix: return HTTP 403 on setup CSRF rejection and warn on empty tokens
- 360a3fc fix: review fixes for PR #2000 deterministic git state in handoff
- 919616e fix: set BEADS_DIR explicitly in patrol wisp creation to prevent wrong-database writes (gt-ctir)
- c5bae35 fix: set BEADS_TEST_MODE in daemon test setupTestStore for DB isolation
- 16cad41 fix: skip --prefix flag when prefix is empty and add camelCase prefix derivation (#1932)
- c40dc01 fix: skip LFS smudge filter during git worktree add
- 9d38b03 fix: skip closed records in gt health pollution scanner (gt-qv4v)
- c9ee31d fix: stabilize flaky TestRunBdCmd_ReturnsStdoutOnNonZeroAndTimeout (gt-5kjn)
- bcca5d8 fix: stop hardcoding 'origin' as dolt remote name (GH #gt-1hfkr)
- b10863d fix: stop witness patrol from nuking idle polecats (gt-s8bq)
- 6859ee4 fix: suppress remaining gosec G201 in wisp_reaper.go
- d16bd16 fix: sweep legacy -L gt socket sessions during gt down (gt-l5js)
- 8f62be1 fix: testcontainers dolt setup — add mysql driver, downgrade image, fix stale API refs
- 56d572c fix: three reliability fixes (gt-ai9, gt-gmf2, gt-cseq)
- 18f9b08 fix: unassign work beads before releasing polecat name on removal
- d7342da fix: unassign work beads before releasing polecat name on removal
- b6d83e4 fix: unskip prefix mismatch test and support Docker Dolt in integration tests
- 537c862 fix: update cleanup_status after successful push (gt-wcr)
- c67f9ae fix: update daemon handler tests for config-driven threshold signatures (gt-8l3w)
- 5942a65 fix: update nix package for v0.8.0 with ldflags
- fe5d8fc fix: update stale Phase 6 comments in down.go to reflect shared tmux socket (gt-qzjb)
- 73dfd99 fix: update testutil API calls after doltserver refactor
- 2533d5c fix: use --single-branch --depth 1 for all git clones to avoid branch overflow
- a19d1e6 fix: use /tmp for tmux socket paths instead of os.TempDir()
- 45077f3 fix: use 5-char base36 convoy IDs instead of 8-char base32
- d02deee fix: use AgentBeadIDWithPrefix helpers to prevent double-prefixed agent IDs
- 525201b fix: use WithAutoCommit for convoy creation to prevent phantom convoys (gt-9xum2)
- f1884c4 fix: use calling tmux socket in gt cycle to fix cross-socket cycling
- 16a8744 fix: use continuation directive after compaction instead of full re-init
- 4d3dc29 fix: use continuation directive after compaction instead of full re-init (GH#1965)
- 0fb1dd2 fix: use correct mail address for daemon plugin dispatch to dogs
- ca91f78 fix: use ephemeral Dolt server in tests to prevent production DB contamination (gt--uq9)
- 225e969 fix: use os.Hostname() for dashboard display URL when binding to 0.0.0.0
- e53b4f6 fix: use tmux :^ targeting for zombie detection in multi-window sessions
- 3f751fe fix: use util.SetProcessGroup for cross-platform compatibility in dog.go (gt-8qtk)
- a059640 fix: use wrapper struct for bd mol wisp list JSON output
- a43ab4c fix: verify MR bead persistence before worktree nuke in gt done
- e8b59c4 fix: warnHandoffGitStatus outputs to stderr consistently (gt-otwv)
- 2cf036e fix: widen non-timeout test case timeouts to prevent flakiness (gt-z5je)
- 28c6f52 fix: widen time window in TestCurator_ReadRecentFeedEventsLargeFile to prevent flakiness
- 8c107ba fix: workspace trust dialog blocks agent execution across all roles
Others
- f59f39a Accept any scheme:// URL in rig add for custom git remote helpers
- 2cfc203 Accept custom git remote schemes in web dashboard validation
- 776d82e Add --title flag to gt convoy stage with smart defaults
- b9e0849 Add LogLevel config for Dolt server (GT_DOLT_LOGLEVEL env var)
- 89e827c Add Mayor nudge policy to deacon patrol formula
- 2974f30 Add gt dolt dump command for goroutine stack dumps
- f9fd1a0 Add rebuild-gt plugin
- 558318a Add test-database safety check to dolt push patrol
- 221e8b9 Capture goroutine dump before restarting unhealthy Dolt server
- 7f851dd Fix gt handoff for hq-boot: wrong workdir and role
- 017d26c Fix gt handoff from hq-boot session
- 71d2f3e Fix gt handoff socket confusion: use caller socket, not town socket
- 187e514 Fix gt handoff using stale TMUX_PANE after session respawn
- 7cd3155 Fix sling rollback to burn stale molecules (#2009)
- 7a484c5 Harden dashboard API against cross-origin and unauthenticated access
- 9d4ebbc Merge PR #2010: docs: add Windows installation workaround for go install issue
- 554aaac Merge PR #2020: chore: update patrol formulas to use gt patrol new
- 60faad9 Merge PR #2045: fix(unsling,prime): add town-level beads fallback for rig-level agents
- e971ef2 Merge PR #2046: fix(sling,convoy): prevent double-spawn from stale cross-rig convoy feed
- b9a6dc6 Merge PR #2064: Increase convoy ID entropy to reduce collision risk
- db05381 Merge PR #2163: Add --title flag to gt convoy stage with smart defaults
- a53b923 Merge polecat/furiosa: fix orphan step wisp leak (gt-3o59)
- e9652d6 Merge polecat/nux: fix patrol wisp database routing (gt-ctir)
- f19d2ea Merge remote-tracking branch 'origin/main' into fix/dolt-server-bugs-4
- 56f8545 Merge remote-tracking branch 'origin/polecat/cheedo/gt-ni4e@mm7fyg3l'
- 140ed09 Merge remote-tracking branch 'origin/polecat/valkyrie/gt-i5pi@mm7fyjqx'
- 8604277 Propagate beads git config to polecat worktrees
- 38ea108 Propagate beads git config to polecat worktrees
- cf3b3a6 Revert "chore: remove .beads/issues.jsonl (Dolt-only backend)"
- cc1cc4d Switch health probe from SELECT 1 to SELECT active_branch()
- c3c9c7d [agent] Check bead status before zombie flagging and redispatch (gt-sy8)
- dab8af9 [agent] Skip LFS smudge filter during git worktree add
- 5104574 bd: backup 2026-02-28 00:52
- 5dbda21 bd: backup 2026-02-28 01:08
- acfea81 bd: backup 2026-02-28 01:24
- 7e79f68 bd: backup 2026-02-28 01:40
- 350942f bd: backup 2026-02-28 01:56
- 2fdc5a8 bd: backup 2026-02-28 02:50
- 5aac7e0 bd: backup 2026-02-28 03:06
- f9929b5 bd: backup 2026-02-28 03:23
- fba5aba bd: backup 2026-02-28 03:40
- 513b477 bd: backup 2026-02-28 05:03
- 1bd864e bd: backup 2026-02-28 05:18
- 23aba82 bd: backup 2026-02-28 05:42
- 0e63573 bd: backup 2026-02-28 05:57
- 6e0509e bd: backup 2026-02-28 13:07
- b9b1dbe bd: backup 2026-02-28 13:22
- eebe8ce bd: backup 2026-02-28 13:41
- 3ffb187 bd: backup 2026-02-28 13:56
- 68a2bb5 bd: backup 2026-02-28 14:13
- 9332de3 bd: backup 2026-02-28 14:40
- 0845edd bd: backup 2026-02-28 15:29
- 23eee8e bd: backup 2026-02-28 16:57
- 35fdae5 bd: backup 2026-02-28 17:12
- 200f251 bd: backup 2026-02-28 17:27
- 7a6c818 bd: backup 2026-02-28 18:06
- 1362226 bd: backup 2026-02-28 18:23
- 5393dbc bd: backup 2026-02-28 18:38
- c45015d bd: backup 2026-02-28 18:53
- 4b96f3c bd: backup 2026-02-28 19:49
- 78f3665 bd: backup 2026-02-28 20:19
- 2d8d71e bd: backup 2026-02-28 20:34
- 5d8888f bd: backup 2026-02-28 20:49
- b480fba bd: backup 2026-02-28 21:04
- 8933e25 bd: backup 2026-02-28 21:19
- df14ddd bd: backup 2026-02-28 22:06
- b391ba3 bd: backup 2026-02-28 22:21
- 862cd11 bd: backup 2026-02-28 22:42
- fe7df1e bd: backup 2026-02-28 22:57
- fe656b9 bd: backup 2026-02-28 23:27
- 0e30172 bd: backup 2026-02-28 23:42
- a19bb32 bd: backup 2026-02-28 23:57
- bbea970 bd: backup 2026-03-01 00:12
- 87dd9d6 bd: backup 2026-03-01 00:33
- 30ac069 bd: backup 2026-03-01 00:49
- 93dabb9 bd: backup 2026-03-01 02:21
- 873c086 bd: backup 2026-03-01 02:36
- 245ac24 bd: backup 2026-03-01 02:51
- b9a51b4 bd: backup 2026-03-01 03:06
- aa2978c bd: backup 2026-03-01 03:21
- 6ead3e5 bd: backup 2026-03-01 03:59
- 51a610d bd: backup 2026-03-01 03:59
- b150b7f bd: backup 2026-03-01 04:14
- d51d579 bd: backup 2026-03-01 04:29
- f13eb9a bd: backup 2026-03-01 04:44
- 3ac1c5b bd: backup 2026-03-01 04:59
- 0284e6f bd: backup 2026-03-01 05:14
- edc496f bd: backup 2026-03-01 05:42
- 5d8d4b7 bd: backup 2026-03-01 05:57
- a144c02 bd: backup 2026-03-01 06:12
- 97cfbf2 bd: backup 2026-03-01 06:27
- 0353808 bd: backup 2026-03-01 06:42
- 3bccbd5 bd: backup 2026-03-01 07:16
- 4fa668e bd: backup 2026-03-01 07:31
- 9b91847 bd: backup 2026-03-01 07:46
- f870977 bd: backup 2026-03-01 08:01
- 4ae4598 bd: clean JSONL export from Dolt (post-reap, post-pollution cleanup)
- ba2ca9b chore(deps): update goreleaser/goreleaser-action action to v7
- 33d2025 chore(deps): update goreleaser/goreleaser-action action to v7
- bb761db chore(refinery): keep patrol formula version unchanged in PR
- b8e7c66 convoy: increase generated convoy ID entropy (#2063)
- 76721e9 docs(design): add polecat self-managed completion design (gt-0wkk)
- 4c9309c docs(mayor): add Rig Wake/Sleep Protocol to mayor template
- ad618b4 docs(polecat): clarify that status arg is '/' not two args
- a315ffe docs(polecat): clarify that status arg is '/' not two args
- 9fb0090 docs(templates): improve mail instructions in crew and polecat priming
- faf45d1 docs(templates): require Co-Authored-By for community contributors on fix-merges
- 26a570c docs(tmux): add keybinding design doc and update cycle group comments
- 33362a7 fix(multi-town): isolate tmux sockets per town and validate Dolt ports
- 8d5264f fix(multi-town): migrate remaining tmux callsites to socket-aware API
- d8e8f59 fix(sling,convoy): prevent double-spawn from stale cross-rig convoy feed
- 84dcbf4 fix(sling,done): close dispatch TOCTOU race and wire up MR checkpoint
- 9e15ae0 fix(unsling,prime): add town-level beads fallback for rig-level agents (gt-dtq7)
- 163b48c gt dolt sync: park rigs during push to prevent witness interference
- 4171708 hooks: fail closed on settings integrity violations (#2026)
- 9f6dc24 perf(test): speed up internal/web and internal/util tests (gt-pp2t)
- c71c90a perf(test): speed up internal/witness tests from 22s to ~8s (gt-l7x9)
- 12cf321 perf: drop full test suite from polecat formula, let MQ be authority
- eb226ea perf: replace per-PID pgrep calls with single ps-based process tree
- e7efd35 perf: replace per-PID pgrep calls with single ps-based process tree
- cf48982 perf: replace shell script bd mocks with Go function mocks in witness tests
- 8eb5d16 perf: replace shell script bd mocks with Go function mocks in witness tests
- 79bf766 perf: speed up internal/tmux tests from 156s to 82s (gt-ienv)
- cff1b18 perf: speed up internal/tmux tests from 156s to ~82s
- 9499c7e perf: use --root-only for patrol wisps to cut Dolt churn
- 604d85f refactor(beads): consolidate FindMRForBranch and FindMRForBranchAny (#2074)
- 3912802 refactor(beads): remove unnecessary ParseAgentFieldsFromDescription alias
- d11408d refactor(compactor): strip imperative Go, use formula-only pattern like janitor dog
- a935e59 refactor(test): trim tmux tests from 3075 to 374 lines
- 016381a refactor(witness): stop nuking polecats, restart/escalate instead (gt-dsgp)
- 2484936 refactor: add role registry with autonomous/emoji properties from TOML configs (gt-2e5q)
- 435e9e9 refactor: doctor dog reports structured data, removes hardcoded thresholds (gt-0cxc)
- bc9f395 refactor: doctor dog reports structured data, removes hardcoded thresholds (gt-0cxc)
- f50246a refactor: migrate test infrastructure from manual Dolt server to testcontainers
- b4d1414 refactor: remove JSONL fallback paths in favor of Dolt-only operations (#2051)
- 9d7c75e refactor: simplify GetAssignedIssue to loop over statuses
- 3353482 refine(refinery): consolidate target rule and apply review triage
- ccd14b3 refinery: add deterministic queue tie-breaker (#1938)
- ee31fe2 test(convoy): use external id format for cross-rig dependency
- bdae72c test(doctor): add tests for config.yaml repair and extractRigName
- 2f2a1b2 test(refinery): cover integration-flag behavior and expose config vars
- 77e9c11 test(sling): add unit tests for executeSling flock acquisition
- a1c9ad7 test(templates): align refinery default-branch assertions with target placeholders
- 003f302 tooling: add CI state classifier command (#1978)
- 1940897 tooling: add deterministic CI state classifier command
- 562dd6b tooling: tighten CI classifier state mapping (#1978)