From 5cc2995345508906702dfd6a631700a48387243a Mon Sep 17 00:00:00 2001 From: mayor Date: Wed, 21 Jan 2026 23:05:00 -0800 Subject: [PATCH] chore(release): v0.5.0 - Mail improvements: numeric index, hook alias, --body alias, bulk delete, parallel queries - New aliases: gt bd, gt work, --comment, read - OpenCode agent preset, config-based role system - Deacon status line display, hook registry - Squash merge in refinery - Crew session stability fixes - Many bug fixes Co-Authored-By: Claude Opus 4.5 --- CHANGELOG.md | 67 ++++++++++++++++++++++++++++++++++++++-- internal/cmd/info.go | 23 +++++++++++++- internal/cmd/version.go | 2 +- npm-package/package.json | 2 +- 4 files changed, 89 insertions(+), 5 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 1e0f8ad2..accb645e 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -7,13 +7,76 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0 ## [Unreleased] +## [0.5.0] - 2026-01-22 + ### Added -- **Configurable polecat branch naming** - Rigs can now customize polecat branch naming via `polecat_branch_template` configuration. Supports template variables: `{user}`, `{year}`, `{month}`, `{name}`, `{issue}`, `{description}`, `{timestamp}`. Defaults to existing behavior for backward compatibility. +#### Mail Improvements +- **Numeric index support for `gt mail read`** - Read messages by inbox position (e.g., `gt mail read 1`) +- **`gt mail hook` alias** - Shortcut for `gt hook attach` from mail context +- **`--body` alias for `--message`** - More intuitive flag in `gt mail send` and `gt mail reply` +- **Multiple message IDs in delete** - `gt mail delete msg1 msg2 msg3` +- **Positional message arg in reply** - `gt mail reply "message"` without --message flag +- **`--all` flag for inbox** - Show all messages including read +- **Parallel inbox queries** - ~6x speedup for mail inbox + +#### Command Aliases +- **`gt bd`** - Alias for `gt bead` +- **`gt work`** - Alias for `gt hook` +- **`--comment` alias for `--reason`** - In `gt close` +- **`read` alias for `show`** - In `gt bead` + +#### Configuration & Agents +- **OpenCode as built-in agent preset** - Configure with `gt config set agent opencode` +- **Config-based role definition system** - Roles defined in config, not beads +- **Env field in RuntimeConfig** - Custom environment variables for agent presets +- **ShellQuote helper** - Safe env var escaping for shell commands + +#### Infrastructure +- **Deacon status line display** - Shows deacon icon in mayor status line +- **Configurable polecat branch naming** - Template-based branch naming +- **Hook registry and install command** - Manage Claude Code hooks via `gt hooks` +- **Doctor auto-fix capability** - SessionHookCheck can auto-repair +- **`gt orphans kill` command** - Clean up orphaned Claude processes +- **Zombie-scan command for deacon** - tmux-verified process cleanup +- **Initial prompt for autonomous patrol startup** - Better agent priming + +#### Refinery & Merging +- **Squash merge for cleaner history** - Eliminates redundant merge commits +- **Redundant observers** - Witness and Refinery both watch convoys ### Fixed -- **Orphan cleanup skips valid tmux sessions** - `gt orphans kill` and automatic orphan cleanup now check for Claude processes belonging to valid Gas Town tmux sessions (gt-*/hq-*) before killing. This prevents false kills of witnesses, refineries, and deacon during startup when they may temporarily show TTY "?" +#### Crew & Session Stability +- **Don't kill pane processes on new sessions** - Prevents destroying fresh shells +- **Auto-recover from stale tmux pane references** - Recreates sessions automatically +- **Preserve GT_AGENT across session restarts** - Handoff maintains identity + +#### Process Management +- **KillPaneProcesses kills pane process itself** - Not just descendants +- **Kill pane processes before all RespawnPane calls** - Prevents orphan leaks +- **Shutdown reliability improvements** - Multiple fixes for clean shutdown +- **Deacon spawns immediately after killing stuck session** + +#### Convoy & Routing +- **Pass convoy ID to convoy check command** - Correct ID propagation +- **Multi-repo routing for custom types** - Correct beads routing across repos +- **Normalize agent ID trailing slash** - Consistent ID handling + +#### Miscellaneous +- **Sling auto-apply mol-polecat-work** - Auto-attach on open polecat beads +- **Wisp orphan lifecycle bug** - Proper cleanup of abandoned wisps +- **Misclassified wisp detection** - Defense-in-depth filtering +- **Cross-account session access in seance** - Talk to predecessors across accounts +- **Many more bug fixes** - See git log for full details + +## [0.4.0] - 2026-01-19 + +_Changelog not documented at release time. See git log v0.3.1..v0.4.0 for changes._ + +## [0.3.1] - 2026-01-18 + +_Changelog not documented at release time. See git log v0.3.0..v0.3.1 for changes._ ## [0.3.0] - 2026-01-17 diff --git a/internal/cmd/info.go b/internal/cmd/info.go index 998804e5..4b200e58 100644 --- a/internal/cmd/info.go +++ b/internal/cmd/info.go @@ -74,9 +74,30 @@ type VersionChange struct { // versionChanges contains agent-actionable changes for recent versions var versionChanges = []VersionChange{ + { + Version: "0.5.0", + Date: "2026-01-22", + Changes: []string{ + "NEW: gt mail read - Read messages by inbox position", + "NEW: gt mail hook - Shortcut for gt hook attach from mail", + "NEW: --body alias for --message in gt mail send/reply", + "NEW: gt bd alias for gt bead, gt work alias for gt hook", + "NEW: OpenCode as built-in agent preset (gt config set agent opencode)", + "NEW: Config-based role definition system", + "NEW: Deacon icon in mayor status line", + "NEW: gt hooks - Hook registry and install command", + "NEW: Squash merge in refinery for cleaner history", + "CHANGED: Parallel mail inbox queries (~6x speedup)", + "FIX: Crew session stability - Don't kill pane processes on new sessions", + "FIX: Auto-recover from stale tmux pane references", + "FIX: KillPaneProcesses now kills pane process itself, not just descendants", + "FIX: Convoy ID propagation in refinery and convoy watcher", + "FIX: Multi-repo routing for custom types and role slots", + }, + }, { Version: "0.4.0", - Date: "2026-01-17", + Date: "2026-01-19", Changes: []string{ "FIX: Orphan cleanup skips valid tmux sessions - Prevents false kills of witnesses/refineries/deacon during startup by checking gt-*/hq-* session membership", }, diff --git a/internal/cmd/version.go b/internal/cmd/version.go index 37c82db4..f4eb63b0 100644 --- a/internal/cmd/version.go +++ b/internal/cmd/version.go @@ -12,7 +12,7 @@ import ( // Version information - set at build time via ldflags var ( - Version = "0.4.0" + Version = "0.5.0" // Build can be set via ldflags at compile time Build = "dev" // Commit and Branch - the git revision the binary was built from (optional ldflag) diff --git a/npm-package/package.json b/npm-package/package.json index 3bf7a2a7..6c31bebb 100644 --- a/npm-package/package.json +++ b/npm-package/package.json @@ -1,6 +1,6 @@ { "name": "@gastown/gt", - "version": "0.4.0", + "version": "0.5.0", "description": "Gas Town CLI - multi-agent workspace manager with native binary support", "main": "bin/gt.js", "bin": {