@@ -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
0 commit comments