Skip to content

Commit 51a46a8

Browse files
steveyeggeclaude
andcommitted
chore: Bump version to 0.9.0
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
1 parent f870977 commit 51a46a8

File tree

4 files changed

+124
-2
lines changed

4 files changed

+124
-2
lines changed

CHANGELOG.md

Lines changed: 97 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,103 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
77

88
## [Unreleased]
99

10+
## [0.9.0] - 2026-03-01
11+
12+
### Added
13+
14+
- **Batch-then-bisect merge queue** — Bors-style MQ batches MRs, runs tests on
15+
the tip, and binary-bisects on failure. GatesParallel runs test + lint
16+
concurrently per MR.
17+
- **Persistent polecats** — Polecat identity and sandbox survive across work
18+
assignments. Sessions are ephemeral; identity accumulates forever. `gt done`
19+
transitions to idle instead of nuking.
20+
- **Compactor Dog** — Daily Dolt commit history flattening via `DOLT_RESET --soft`.
21+
Runs on live server, no downtime. Configurable threshold. Includes surgical
22+
interactive rebase for advanced use.
23+
- **Doctor Dog** — Automated health monitoring patrol for Dolt server. Detects
24+
zombies, orphan databases, and stale locks. Reports structured data for agent
25+
decision-making (ZFC-compliant).
26+
- **JSONL Dog** — Spike detection and pollution firewall for JSONL backup exports.
27+
Scrubs test artifacts before git commit.
28+
- **Wisp Reaper Dog** — Automated wisp GC with DELETE of closed wisps >7d, auto-close
29+
of stale issues >30d, and mail purge >7d.
30+
- **Root-only wisps** — Formula steps no longer materialized as individual database
31+
rows. Single root wisp per formula. Cuts ~6,000 ephemeral rows/day from Dolt.
32+
- **Six-stage data lifecycle** — CREATE, LIVE, CLOSE, DECAY, COMPACT, FLATTEN,
33+
all automated via Dogs. `EnsureLifecycleDefaults()` auto-populates daemon.json
34+
on startup.
35+
- **`gt maintain`** — One-command Dolt maintenance (flatten + gc).
36+
- **`gt vitals`** — Unified health dashboard command.
37+
- **`gt upgrade`** — Post-binary migration command for config propagation.
38+
- **`gt convoy stage`** — Stage convoys with `--title` flag and smart defaults.
39+
- **`gt mol await-signal`** — Alias for step-level signal awaiting.
40+
- **`gt daemon clear-backoff`** — Reset exponential backoff on daemon restarts.
41+
- **`gt mq post-merge`** — Branch cleanup after refinery merge.
42+
- **`gt mail drain`** — Drain inbox command.
43+
- **Sandbox sync** — Branch-only polecat reuse with `pool-init`.
44+
- **Per-worker agent selection**`worker_agents` config for crew members.
45+
- **Dangerous-command guard hook** — Blocks `cp -i`, `mv -i`, `rm -i` in agent sessions.
46+
- **Log rotation** — Daemon and Dolt server logs now rotate with gzip compression.
47+
- **Did-you-mean suggestions** — Unknown subcommands suggest closest match.
48+
- **`gt version --verbose/--short`** — Version display options.
49+
- **Town-root CLAUDE.md version check**`gt doctor` detects stale CLAUDE.md files.
50+
- **Lifecycle defaults doctor check** — Detects missing daemon.json patrol entries.
51+
52+
### Changed
53+
54+
- **OperationalConfig for config-driven thresholds (ZFC)** — Hardcoded thresholds
55+
for hung sessions, stale claims, max retries, GUPP violations, and crash-loop
56+
backoff are now in `operational.json`. Go code reads config; agents set values.
57+
- **Nudge-first communication** — Protocol messages (LIFECYCLE, WORK_DONE,
58+
merge notifications) changed from permanent mail to ephemeral wisps or nudges.
59+
Reduces Dolt commit volume by ~80% for patrol traffic.
60+
- **Default Dolt log level** changed from debug to info.
61+
- **Convoy IDs** shortened from 5 chars to 3.
62+
- **Mail purge age** reduced from 30 days to 7 days.
63+
- **Compactor threshold** bumped from 500 to 10,000 commits.
64+
- **Default max Dolt connections** bumped from 200 to 1,000.
65+
- **Dolt flatten runs on live server** — No maintenance window needed.
66+
67+
### Fixed
68+
69+
- **Mail delivery** — Fixed `--id` flag breaking all mail creation paths. Fixed
70+
recipient validation to include pinned and inactive agents. Added auto-nudge
71+
on mail delivery to idle agents.
72+
- **Witness patrol** — Stopped nuking idle polecats. Stopped auto-closing permanent
73+
issues (ZFC violation). Replaced screen-scraping with structured signals for
74+
stalled polecat detection.
75+
- **Polecat lifecycle** — Prevent sleepwalking completions with zero commits. Normalize
76+
CWD to git root before beads resolution. Preserve remote branches when MR pending.
77+
Close orphan step wisps before closing root molecule.
78+
- **Refinery** — Removed dead `findTownRoot` filesystem inference (ZFC). Removed
79+
hardcoded severity/priority logic. Made stale-claim thresholds config-driven.
80+
Extracted typed `ConvoyFields` accessor.
81+
- **Boot triage** — Removed ZFC-violating decision engine from degraded boot triage.
82+
- **PID detection** — Replaced PID signal probing with heartbeat-based liveness.
83+
Replaced ps string matching with nonce-based PID files. Replaced per-PID pgrep
84+
with single ps-based process tree scan.
85+
- **tmux** — Use default socket instead of per-town socket. Set `window-size=latest`
86+
on detached sessions. Auto-dismiss workspace trust dialog blocking agent sessions.
87+
- **Convoy** — Prevent auto-close of stuck convoys. Recovery sweep after Dolt
88+
reconnect. Check parked AND docked rigs in dispatch. Prevent double-spawn from
89+
stale feed. Idempotent close handling.
90+
- **Doctor** — Fixed silent failure for agent-beads and misclassified-wisps checks.
91+
Repair beads redirect targets with missing config.yaml. Handle worktree branch
92+
conflicts. Skip rig dirs whose .beads symlinks to town root.
93+
- **Test isolation** — Migrate test infrastructure to testcontainers. Ephemeral Dolt
94+
server per test suite. `BEADS_TEST_MODE=1` enforcement. Dropped 45 zombie test
95+
servers (7GB RAM).
96+
- **Rig lifecycle** — Enforce dock/park across all startup, patrol, and sling paths.
97+
Dogs correctly use plugin lookup. Formula lookup falls back to embedded for
98+
non-gastown rigs.
99+
- **Handoff** — Deterministic git state in handoff context. Fix socket confusion
100+
using caller socket. Preserve conversation context on PreCompact cycle.
101+
- **Windows** — Cross-compilation fixes for `syscall.Flock`, `syscall.SIGUSR2`,
102+
bash-dependent tests, `GOPATH/bin` creation, batch mock caret escaping.
103+
- **Hardcoded strings** — Replaced ~50 hardcoded state/status string comparisons
104+
with typed enums across witness, refinery, and beads packages.
105+
- **CI** — Fixed lint errors (errcheck, misspell) and integration test port collision.
106+
10107
## [0.8.0] - 2026-02-23
11108

12109
### Added

internal/cmd/info.go

Lines changed: 25 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -74,6 +74,31 @@ type VersionChange struct {
7474

7575
// versionChanges contains agent-actionable changes for recent versions
7676
var versionChanges = []VersionChange{
77+
{
78+
Version: "0.9.0",
79+
Date: "2026-03-01",
80+
Changes: []string{
81+
"NEW: Batch-then-bisect merge queue — Bors-style MQ with GatesParallel",
82+
"NEW: Persistent polecats — identity survives across work assignments, gt done transitions to idle",
83+
"NEW: Four maintenance Dogs — Compactor (flatten), Doctor (health), JSONL (backup), Reaper (GC)",
84+
"NEW: Six-stage data lifecycle — CREATE/LIVE/CLOSE/DECAY/COMPACT/FLATTEN, all automated",
85+
"NEW: Root-only wisps — formula steps not materialized in DB, cuts ~6k rows/day",
86+
"NEW: gt maintain — one-command Dolt maintenance (flatten + gc)",
87+
"NEW: gt vitals — unified health dashboard",
88+
"NEW: gt upgrade — post-binary migration for config propagation",
89+
"NEW: Log rotation for daemon and Dolt server logs",
90+
"NEW: Town-root CLAUDE.md version check and lifecycle defaults doctor check",
91+
"CHANGED: OperationalConfig replaces hardcoded thresholds (ZFC compliance)",
92+
"CHANGED: Nudge-first communication — ~80% fewer Dolt commits for patrol traffic",
93+
"CHANGED: Default Dolt log level debug→info, max connections 200→1000",
94+
"FIX: Mail delivery — --id flag was breaking all mail creation paths",
95+
"FIX: Witness stops nuking idle polecats, stops auto-closing permanent issues",
96+
"FIX: Screen-scraping replaced with structured signals across witness/polecat",
97+
"FIX: PID detection via heartbeat-based liveness instead of signal probing",
98+
"FIX: Test isolation via testcontainers, dropped 45 zombie test servers",
99+
"FIX: ~50 hardcoded state/status strings replaced with typed enums",
100+
},
101+
},
77102
{
78103
Version: "0.8.0",
79104
Date: "2026-02-23",

internal/cmd/version.go

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -14,7 +14,7 @@ import (
1414

1515
// Version information - set at build time via ldflags
1616
var (
17-
Version = "0.8.0"
17+
Version = "0.9.0"
1818
// Build can be set via ldflags at compile time
1919
Build = "dev"
2020
// Commit and Branch - the git revision the binary was built from (optional ldflag)

npm-package/package.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
{
22
"name": "@gastown/gt",
3-
"version": "0.8.0",
3+
"version": "0.9.0",
44
"description": "Gas Town CLI - multi-agent workspace manager with native binary support",
55
"main": "bin/gt.js",
66
"bin": {

0 commit comments

Comments
 (0)