Changelog
- 55e9f4b Abstract session metadata into Provider interface, remove tmux type assertions
- e73832a Add *.test to .gitignore
- 9510636 Add --city persistent flag to gc CLI
- f35292c Add --topology flag to gc rig add
- 2a60da9 Add --var flag to gc sling for formula variable substitution
- c9ba1e2 Add .claude/ and genschema binary to .gitignore
- 7fd2c1b Add 12 tests for coverage gaps in session, agent, and reconcile layers
- 10c18aa Add 4-act demo recording scripts and hyperscale example
- fabe0fe Add CI for live mcp_agent_mail conformance test
- 370721a Add Claude settings.json auto-generation and --settings flag injection
- 51b732e Add E2E git commit/merge pipeline integration test
- 5a2b780 Add E2E test suite: 52 tests across startup wiring and agent communication
- c195bbb Add Erlang-style crash loop detection for controller reconciler
- 20db312 Add Erlang-style crash loop detection for controller reconciler
- 71ee054 Add FileStore for cross-process bead persistence
- d109a55 Add Gas Town cleanup bug lessons to worktree roadmap
- a29de40 Add Gas Town e2e test suite and fix 2 bugs
- 2e8ddb2 Add Gas Town e2e test suite and fix 2 bugs
- bf2cf34 Add Gas Town example: 7 roles as pure Gas City config
- 5f07c9b Add GoReleaser config and release workflow for Homebrew distribution
- b332101 Add JSON Schema doc pipeline (#6)
- f8bdf7c Add Kubernetes session provider and remote Dolt support
- c21272a Add OpenTelemetry integration with dual-signal export (metrics + logs)
- 841f30f Add SetMetadata + MolCook to Store interface, fix concrete BdStore usage
- c51402b Add Tutorial 09 — Scoped Directories
- b0f7c92 Add Unclaim + Nudge primitives for health patrol
- 7adc5dc Add [beads] provider = "bd" to all example configs
- 0f6a86b Add agent directory scoping via dir field and GC_DIR env var
- 20c5915 Add agent drain/undrain/drain-check commands
- 335caeb Add agent pools design doc and update tutorial progression
- 94bc6bd Add agent prompts via prompt_template and gc bead hooked
- 744b1e1 Add agent suspend support for Kubernetes Job-style desired-state control
- 634f544 Add agent-menu.sh + mark formula commands as REMAP
- f962459 Add architecture documentation for all nine Gas City subsystems
- 67358ae Add async automation dispatch, exec automations, and wasteland-feeder
- c8e84be Add attached molecules — formula-on-bead (Tutorial 07)
- 1c1c117 Add bd on_close hook → convoy autoclose, remove polling plugin
- 1427491 Add bd passthrough and --format text|json|toon for gc bead commands
- 89c712a Add capability progression table for tutorial planning
- 38b331b Add city.toml config sections for session, mail, and events providers
- 7907c7c Add codecov token and verbose flag to coverage upload
- 6f08d87 Add composable config design document (v4)
- 88a08d9 Add config-driven provider hook installation
- 0716108 Add context-rich controller start/stop logging
- de76204 Add controller architecture doc and design doc template
- a887c89 Add coordination tests + fix 4 provider seam bugs
- 32a1cb5 Add credential sync to gc-controller-k8s deploy
- 752a4b3 Add custom session naming via session_template config
- 468301c Add dashboard visibility for workspace services
- 6fafe88 Add declarative reconciliation to gc start/stop
- ebf06c2 Add default sling formula and default sling target
- 1fe14c8 Add developer experience: linting, pre-commit hook, CI workflow, and codecov
- fefc972 Add dolt server management and BdStore for beads-over-dolt
- cc4ae7f Add dolt-remotes-patrol and dolt-health plugin recipes
- 7b61124 Add drain timeout to force-kill stuck workers
- c8fc7d8 Add drain-check to pool-worker prompt template
- 4a97bcd Add elastic agent pools — upscale only (Tutorial 08)
- 93b3c82 Add event gate type to plugins (5th gate)
- b7d70e4 Add event payload, --payload-match filter, and --seq to gc events
- 5681546 Add events Provider conformance suite and K8s events script
- d4fe700 Add examples/swarm/ topology and gc mail send --all
- f7768a6 Add exec beads conformance tests + fix gc-beads-br for real br
- e5caba3 Add exec beads protocol doc, update provider config for exec:
- d05c060 Add exec beads provider (exec beads Phase 2)
- 97bef83 Add exec session provider for user-supplied backend scripts
- 496dde8 Add file-based plugin system replacing [[formulas.periodic]]
- f984e60 Add formulas & molecules (Tutorial 06)
- d66839c Add four-layer formula inheritance with symlink materialization
- 6240eeb Add gastown→gascity gap analysis decision record
- f846c26 Add gc agent drain-ack for graceful pool session teardown
- 4d8b05b Add gc agent hook command for assigning beads to agents
- 66143b6 Add gc agent kill command for force-killing agent sessions
- 13e3b64 Add gc agent peek for session output capture
- 55bad00 Add gc agent peek for session output capture
- d3e283d Add gc agent request-restart and refinery metadata-based work flow
- d403179 Add gc bead close command to mark beads as closed
- d7b0f29 Add gc bead list command to show all beads
- b172f34 Add gc bead ready command to list open beads
- 39a8db3 Add gc build-image command and prebaked K8s pod support
- 58435fd Add gc config show command (Layer 0 composable config)
- 062c337 Add gc convoy command group for batch work tracking
- 76e0a4f Add gc crew add/list commands for workspace-level agent management
- fac07c1 Add gc daemon command group for platform service management
- 2d2484d Add gc doctor command for system health diagnostics
- d821902 Add gc dolt CLI commands (logs, sql, list, recover, sync)
- 4978092 Add gc event emit command and bd hook installation for event recording
- 0dddd17 Add gc event emit command and bd hook installation for event recording
- 348a473 Add gc events --watch for blocking event subscription
- b7bfae6 Add gc handoff --target for remote context refresh
- 9b3459d Add gc handoff convenience command for context handoff
- 18077c2 Add gc hook --inject and Stop hook for autonomous work pickup
- 2a78d82 Add gc init interactive wizard (spec 17.2)
- 6b4ddb4 Add gc mail archive and gc mail send --notify
- 4a2ae09 Add gc mail check --inject and UserPromptSubmit hook
- b26441b Add gc rig suspend/resume for per-rig agent control
- 84ad236 Add gc sling — work dispatch via sling_query/work_query matched pair
- 262f3e8 Add gc sling — work dispatch via sling_query/work_query matched pair
- 27f8497 Add gc status, gc suspend/resume with compositional inheritance
- a23d794 Add gc worktree list/clean commands, remove --clean from gc stop
- 1341419 Add gc-beads-k8s: Kubernetes beads provider via kubectl exec
- d2925e2 Add gc-mail-mcp-agent-mail: exec mail provider for mcp_agent_mail
- 183b987 Add generic proxy-backed workspace services
- bb5cf27 Add generic workspace service runtime
- 1c88561 Add get-last-activity support via tmux session_activity
- c2e4ca1 Add graceful shutdown with Interrupt + fix suspend messaging
- 9f67e41 Add graceful shutdown with Interrupt + fix suspend messaging
- f3bf4a6 Add idle/stuck detection to controller patrol
- 17b710b Add in-process unit tests for real coverage, add make cover
- 307e5a1 Add internal/tmux package copied from gastown upstream/main
- dc81802 Add lifecycle and hyperscale demo examples with self-terminating pods
- 8d0cd54 Add live config reload via fsnotify and integrate drain into reconcile
- b7638bb Add live mcp_agent_mail conformance test
- 71cd4e3 Add mail feature roadmap tracking Gastown mail capabilities by phase
- 3cd4e50 Add mail provider conformance test suite
- 2022597 Add make build target, gitignore binaries, track missing test files
- 72156bc Add mcp-agent-mail to K8s stack
- b2bef5b Add multi-step agent startup reliability with zombie detection
- 2507e40 Add native K8s session provider using client-go
- 73e8111 Add one-shot and loop prompt templates for Tutorial 03
- f68cb82 Add overlay_dir config field for recursive directory copy at startup
- 63bd3bf Add per-rig plugin dispatch with independent scoped labels
- 57f10fd Add periodic formulas to topology, unify pool label convention
- 7a66377 Add persistent controller mode to gc start
- d87a782 Add pluggable provider demo: Three Stacks, One SDK
- d9c04b9 Add pool-worker prompt that polls br ready
- ee71b7f Add pre_sync config option for worktree agents
- e1ad91b Add project scaffold: CLAUDE.md, CLI entrypoint, tutorial, and docsync tests
- 69d27bf Add prompt template rendering (Primitive #5)
- fd64ac1 Add provider presets with Kubernetes-inspired resolution chain
- 644e249 Add provider-abstracted file staging with CopyFiles + CopyTo
- 5703f76 Add qualified agent identity with (dir, name) scoping
- ed555a3 Add qualified agent identity with (dir, name) scoping
- 76518dc Add reference config presets for tutorials 01-08
- 4df81f5 Add remain-on-exit and zombie crash capture for agent forensics
- 791cd11 Add remote/published topologies (Layer 3 composable config)
- 71571b2 Add renovate.json (#1)
- 7f93e0a Add restart and status commands at city, rig, and agent levels
- cd75ec3 Add rigs with isolated per-project beads and cross-rig routing
- 4ea321d Add session provider conformance test suite
- 32fcc11 Add session_setup and session_setup_script agent config fields
- 5159568 Add shared template composition, rewrite 8 Gas Town prompts
- 8395b80 Add shutdown dance formula, remove obsolete Gas Town formulas
- 6d61126 Add sling --dry-run flag for rich educational preview
- b91b517 Add sling --on flag to attach wisp before dispatch
- d05153b Add sling container expansion for batch dispatch (convoy, epic)
- 3306a1b Add sling container expansion for batch dispatch (convoy, epic)
- f2eb9d1 Add sling cross-rig guard to block misrouted beads
- 64ba90f Add sling idempotency detection for same-target re-dispatch
- 576cee5 Add sling pre-flight state check for double-dispatch warning
- 9e69355 Add sling pre-flight state check for double-dispatch warning
- e5145f5 Add spawn storm detection and ZFC witness escalation (Section 6)
- 26b1c2f Add stale branch cleanup as deacon plugin + formula
- b09b725 Add startup beacon for session discovery and hook-aware startup
- 2fb6205 Add startup roadmap doc tracking gastown lifecycle gaps
- c2ede3b Add submodule init to polecat prompt (ZFC, not Go code)
- 548e334 Add subprocess session provider, mail command, and tutorial 02/03 integration tests
- 7305abc Add supervisor-owned workspace service publication contract
- 6c336d0 Add suspended toggle, --dir for gc agent add, --dir filter for gc agent list
- 90592fc Add suspended toggle, --dir for gc agent add, --dir filter for gc agent list
- 6ed53c9 Add test coverage for drain, session, and agent layers
- 2d4d7a5 Add tier-0 event recorder for observability
- 5528c24 Add topology agent collision detection with provenance errors
- d1c2d07 Add topology includes with local and remote (SSH/HTTPS) support
- 39e3a11 Add two-path dispatch and inference formula to wasteland-feeder
- cf6ec6a Add verifiable distributed LLM inference research report
- ce2df2b Add wisp-compact deacon plugin for TTL-based wisp cleanup
- 4b04357 Add workspace service operator commands
- 36851eb Add workspace-level provider and start_command defaults
- b0d52bd Add worktree gitignore management and expanded safety checks
- 8990812 Add worktree isolation for agents
- 449b724 Add zombie detection and fix process cleanup bugs
- 01e5c6e Align publication status aliases during shutdown
- 3222240 Auto-load agent image into kind cluster after docker-agent build
- 126532a Clarify workspace publication compatibility semantics
- 41f8e43 Combined gastown topology + gc init --from
- 09a6c84 Complete gastown city.toml: rig topology, daemon, idle_timeout
- edfc66b Confine all bd subprocess calls to internal/beads/ with CI gate
- 3b79448 Consolidate beads lifecycle into single source of truth
- d02cb65 Copy rig directory (including .git/) into K8s agent pods
- 11a931d Decompose gastown into maintenance + gastown topologies
- beea060 Decouple gc from bd/dolt: consolidate provider lifecycle into one file
- 8fd9f14 Defer mail enhancements, mark peek/hook as covered
- 02e0c19 Docker provider: strip controller-only env vars + warn on staging errors
- dd6f32d Drop agent bead backoff — use local shell variables instead
- 5242fc6 Enable pre_sync on worktree agents in gastown example
- 1be392b Fix 4 audit bugs: path normalization, prefix validation, pool check, temp file races
- ddad902 Fix 5 gastown regression issues: env shadowing, zombie cleanup, scanner errors, symlink safety, hardcoded default
- bf8538a Fix 6 audit findings: dead code, layering, test coverage
- e24c32e Fix 7 rig bugs: partial state, metadata semantics, prefix validation, atomic writes, error propagation, GC_RIG env, prefix centralization
- ca89969 Fix BdStore conformance: fresh DB per test, relaxed timestamp/order checks
- 09e3947 Fix BdStore.Hook: use bd update instead of nonexistent bd hook
- faa9a7a Fix BdStore: read assignee field instead of owner from bd JSON
- 92f3ee4 Fix CI: complete hook→claim rename (#7)
- a2c1619 Fix Docker demo blockers: prompt_mode, user, .claude mount, readiness
- 2e5091d Fix Dolt port resolution and no-work detection
- fcb1cb8 Fix E2E tests for Docker/K8s: 52/52 pass on all providers
- 2d1c330 Fix K8s E2E: stage scripts/hooks into pods, add bash to test image
- 58b98ac Fix K8s agent init: beads client config, symlinks, credentials
- c80762c Fix K8s agent stability: restart loop, stale pods, workspace race
- 63be64d Fix K8s conformance tests: imagePullPolicy, stop timeout, bash read EOF
- c4007b3 Fix K8s deployment: settings staging, credentials, dolt auth, non-root user
- d223259 Fix K8s events: add configmaps RBAC to controller role
- 62c4080 Fix K8s mail integration and pod lifecycle for EKS
- 6811110 Fix K8s rig deployment: relative paths, workdir mapping, idempotent init
- df5fcf8 Fix K8s scale_check + shared startup dialog handling
- 8407496 Fix K8s session conformance: tmux readiness race + pod reuse
- 159b27e Fix K8s session provider for real demo: 6 startup-blocking bugs
- 12adf7f Fix beads pane cwd: run bd from rig directory, not city root
- 828f029 Fix br → bd in prompts, docs, and configs
- e0441d2 Fix city layout review regressions
- f4f30cd Fix config reload publication race
- ad67920 Fix demo scripts: pane-ID targets and remove invalid --name flag
- f73496d Fix demo: staging race, missing K8s providers, stale docs
- f8657e6 Fix dolt server detection to be city-scoped
- 9194e87 Fix duplicate paragraph in Tutorial 01 worker startup section
- 022c6a3 Fix err redeclared in integration test TestMain
- 6f1dee5 Fix external rig Dolt port sync
- 2da944d Fix gc init failing when dolt server already running
- c7f7d02 Fix gc prime to resolve pool agents by bare template name
- decfc59 Fix metadata split-brain in Docker/K8s session providers
- 4376be9 Fix pod self-termination and K8s events list parsing
- a480fbe Fix pool hook resolution in worktrees
- 400efce Fix pool.check to use qualified agent name for rig-scoped pools
- bdeac90 Fix session_setup_script: read host file and pipe into container
- 1e79d53 Fix stray line in gap analysis rich env generation section
- a057ab1 Fix subprocess ProcessAlive to check session liveness after Stop
- 507670f Fix test coverage gaps from TESTING.md audit
- 45a05ff Fix tmux conformance: duplicate start, interrupt/nudge on missing session
- 3e53459 Fix topology expansion for testable config.Load(fs, ...) call sites
- 8753beb Fix topology expansion: use LoadWithIncludes across all CLI commands
- e00a453 Fix workspace service reload coordination
- 03124d1 Gate live MCP mail test with env var; mark CI step non-blocking
- 8c7553e Hardcode Gas Town role groups in cycle.sh
- aac4650 Harden K8s session provider: tmux-inside-pod, YAML injection fix
- b038e37 Harden city layout migration paths
- d3bda4d Harden session/agent test coverage and thread safety
- dc99cd4 Harden workspace service publication guards
- 968b32b Harden workspace service runtime contracts
- 0adc1f3 Harden workspace service shutdown and reload
- 082cd9a Ignore same-revision config reloads
- ba65f55 Implement P3 quick wins: dolt rollback CLI, worktree doctor check, scrollback clear
- 476f57d Implement composable config: includes, patches, topologies, CLI wiring
- a5397bb Implement composable topologies and controller wisp TTL GC
- d3f8d0d Implement embedded system formulas (Layer 0) with go:embed
- fe76b3a Implement gc start: print welcome message matching tutorial output
- 624bf0d Implement pluggable events provider (exec-first)
- 049e046 Implement pluggable mail provider (exec-first)
- 6823671 Implement plugin last-run tracking via bead labels
- cbf39c3 Implement rig add/list commands; move mayor to city-level in rig list
- fdae402 Initial commit: README, LICENSE, and Code of Conduct
- 8fcba4b Inline gc mol squash to raw bd commands in all prompts and formulas
- 559c997 Install all tutorial prompts on gc init
- fa04a6d Install example formulas (pancakes, cooking) on gc init
- 15d148e K8s demo: run controller in-cluster via gc-controller-k8s
- da2476e K8s provider: init beads in pods, log warnings, unify tmux session name
- 896ce05 Make cycle.sh group-aware: same-rig or town-scoped cycling
- 3d822d3 Make dolt startup fatal and fix pool check error handling
- f070704 Make release retries and prereleases safer
- f22d584 Make session_setup topology-safe + fix singleton expansion bug
- b1a7d79 Mark P1 #12/#20 done, WONTFIX P2 #28/#29 (feed/trail)
- ae73005 Mark crew next/prev cycling (#35) as DONE in feature parity
- f5af7d3 Mark dolt branch-per-agent (#29) as WONTFIX in feature parity
- 9bc2c2e Mark escalation as WONTFIX — just mail + prompt protocol
- 042e73a Mark handoff --collect as WONTFIX in feature parity
- 8b399ea Mark rig fork push_url as WONTFIX in feature parity
- d37a053 Mark rig management commands as WONTFIX, update P1 status
- ffcb7ae Mark whoami/commit/release as WONTFIX, plugin system as DONE
- df1ae69 Merge branch 'main' into worktree-e2e-tests
- fb8d723 Merge branch 'worktree-e2e-tests'
- 904d1a3 Merge branch 'worktree-e2e-tests'
- f01de07 Merge branch 'worktree-e2e-tests'
- 88196d8 Merge branch 'worktree-wrktree'
- 18ee607 Merge branch 'worktree-wrktree'
- 23591d1 Merge feat/unified-sessions-phase1: Phase 2 reconciler building blocks
- 18652ca Merge origin/main: incorporate events watch, mail archive, rig suspend
- ea55be3 Merge pools into agents, remove suspended
- e4377a2 Merge pull request #8 from julianknutsen/worktree-gastown-gascity
- 22adf47 Merge pull request #9 from julianknutsen/dependabot/go_modules/filippo.io/edwards25519-1.1.1
- 654c747 Merge remote-tracking branch 'origin/main' into worktree-e2e-tests
- b98f77d Merge remote-tracking branch 'origin/main' into worktree-e2e-tests
- b7f6461 Merge session_setup topology-safety fixes
- 1045b5f Merge worktree-gastown-gascity: sling --on, --dry-run, cross-rig guards, default formula
- e1591a9 Move crew commands under gc agent (add, list)
- 512d98a Move cross-rig-deps automation to maintenance topology
- b182c5f Move gt seance to P3, leaving commands provisioning as sole open P1
- 45a52f0 Move pack runtime to canonical city paths
- a04f87e Move session name derivation into agent.New via SessionNameFor
- c3ef420 Move session scripts to contrib/, protocol spec to docs/
- 4c1b84c Move submodule init from prompt to createAgentWorktree (Layer 0)
- 1da7898 Pin mcp-agent-mail==0.3.0 in CI
- d9b14ed Polish city layout migration helpers
- 9471a7e Port 5 tmux bugfixes from gastown upstream audit
- 2b21915 Port communication hygiene sections from gastown upstream
- 5e79b77 Port integration branch guardrails from upstream (Section 5)
- 8466cc8 Port refinery improvements from gastown upstream
- 23608f4 Prepare release configuration and install docs
- e0d84ad Preserve worktrees across gc stop/start, add safety checks
- ff4eb3c Production Docker session provider with readiness detection
- 3031402 Promote ListByLabel to Store interface (exec beads Phase 1)
- c0a2d3c Promote SendKeys to session.Provider interface
- b175fe4 Recognize pool agents in gc agent hook/attach/list
- edf507a Refactor sling: opts/deps structs, shell quoting, deterministic tests
- 9adcd0b Reinstall bead hooks after bd init in gc start
- 75701b3 Remove Claim/Unclaim/Claimed from beads Store interface
- 030dd38 Remove fabricated providers auggie and pi
- f518b8a Remove gc bd subcommand, use standalone bd CLI directly
- 7548f5b Remove gc mol namespace — use bd mol directly everywhere
- 646907f Remove gc worktree command and move functionality to topology scripts
- 2d31b8f Remove hidden env var dependencies from gc commands
- 6f01f2e Remove hooks/settings.json machinery, simplify gc prime for Tutorial 01
- 288d96c Remove redundant wisp-compact step from deacon patrol
- 1db8e27 Remove tutorial-driven development gating
- e89ed4c Remove unimplemented mail commands from prompt templates
- 4b8f886 Rename "plugin" to "automation" across the entire codebase
- 7f1de7c Rename Hook→Claim, replace gc bead with gc bd passthrough
- dc6c3d6 Replace PID/state files with process table queries for dolt detection
- c605e0a Replace convoy pane with mail traffic in demo layout
- d17f558 Replace isolation = "worktree" with explicit pre_start in gastown topology
- 8c2bd19 Replace isolation config with pre_start + dir templates
- 48564f2 Require tenant slugs for hosted publication
- 45f5e4b Resolve 3 more P2 items: reactive feeding WONTFIX, max-concurrent WONTFIX, MR fields REMAP
- f0f0dac Resolve all P1 parity items: DefaultBranch, convoy check plugin
- 660b2cd Restore Boot as deacon watchdog (domain-layer concern)
- 8f032d8 Revert "chore(k8s): add netcat-openbsd and lsof to base image"
- b3008c7 Rework Tutorial 01: hello-world rig, standalone bd, no gc bd in prose
- e1e104b Rework city content roots
- 9c80283 Rewrite deacon formula/prompt, update witness role boundaries
- 3c13257 Rewrite gastown prompts/formulas to inline bd commands
- 8f478db Rewrite polecat formula and prompt for metadata-based work flow
- 178ede0 Rewrite refinery as 7-step patrol wisp, delete dead gc mol code
- 63db14c Rewrite refinery prompt: thin loop + role knowledge only
- 97f03de Rewrite witness formula/prompt, add canonical work chain recovery
- a247ec0 Rewrite witness formula/prompt, add canonical work chain recovery
- 37142d7 Scale K8s manifests and controller for 100-agent deployments
- c0d09d9 Schema polish, CLI docs enrichment, and CLI reference generator
- 8a65b2d Set GT_ROOT for agent formula lookup
- b651e6a Simplify gc init --file to accept only TOML file paths
- 64416e4 Slim prompt template API: remove CityName/InstanceName, add TemplateName/basename
- 450470f Speed up agent pool spawns: parallel startup, two-layer Docker, image pre-check
- 5502d16 Split CI into conditional jobs: fast check always, slow tests on path change
- 3e9346b Support OR in --payload-match and rewrite refinery prompt
- 70a1b0b Support gc init --file with TOML file paths
- 052a7e3 Sync GC_DIR with session workdirs
- d6cfa97 Update Docker session tests for tmux-in-Docker + review fixes
- 9ed876b Update K8s docs and demo scripts for gc build-image
- b072450 Update actions/checkout action to v6 (#2)
- ae87dee Update actions/setup-go action to v6 (#3)
- 4b6d232 Update deacon patrol description to reflect current steps
- 60d195c Update feature parity doc: 12 status corrections, 8 new gaps, TODO tracker
- 8bcd124 Update feature-parity P2 backlog: 4 resolved, 2 WONTFIX, 8 remaining
- 13a0f3b Update gap analysis: EXCLUDE 5 items, DONE redirect handling
- 39246aa Update gap analysis: bead locking to DEFER, handoff beads to EXCLUDE
- 1989b56 Update gc-mail-mcp-agent-mail for mcp_agent_mail v0.3.0
- 8cc06a4 Update goreleaser/goreleaser-action action to v7 (#5)
- b45c20b Update refinery with race-free MR watch and proper claim
- 2df23e8 Update renovate config: group Go modules and GitHub Actions PRs
- 54f2e49 Update sling parity: mark self/batch done, add account/quota to P1
- 398670e Update startup roadmap: SetRemainOnExit done, SetEnvironment not needed
- 84f7940 Use $GC_AGENT in beacon prime instruction, add pool suffix stripping to findAgentByName
- 84cc232 Use bd --json | jq length for scale_check instead of text parsing
- 32bc214 Use br ready --unassigned for pool scale_check in tutorial 08
- 4e86f46 Use loop prompt for pool workers in tutorial 08 config
- f13d438 Wire MCP mail script to conformance suite
- b69b8c2 Wire plugin dispatch into the controller loop
- 4bccff0 add end-to-end integration tests with real tmux for Tutorial 01
- 351a0df bd: backup 2026-03-13 22:08
- 1aaae65 bd: backup 2026-03-13 22:08
- b00ddf7 bd: backup 2026-03-13 22:26
- de7fd31 bd: backup 2026-03-14 00:27
- 7fe32b3 build: exclude beadstest from coverage stats
- 77c811b build: install pre-commit via resolved hooks path
- ff0f29e build: move tmux integration tests behind build tag
- 675c142 chore(k8s): add netcat-openbsd and lsof to base image
- f4cc8ed chore: add GitHub OSS launch templates and policy files
- 295b448 chore: bump dolt from 1.83.1 to 1.83.5
- f9340d7 chore: move wasteland-feeder to examples/, remove orphan witness files
- 9842549 chore: open-source cleanup — remove binaries, stale docs, and dead code
- 729063a chore: remove dead has_connection_capacity function
- 512d527 chore: remove mc_starred references from API tests and comments
- 552df32 chore: rename module path julianknutsen/gascity → gastownhall/gascity
- 656699d chore: switch beads dependency from steveyegge/beads to gastownhall/beads
- 64fd107 config: enable bead reconciler by default
- 53b8dfd demo: replace old demo scripts with investor lifecycle demo
- 778ce2f docs(audit): defer S1, S2, S13.1-3 — blocked on sling/gc-done infrastructure
- 1faac83 docs(audit): mark S13.4-5 N/A — permission prompt handled, guards declined
- 01ba04a feat(beads): add provider health API and system automation
- 0796adf feat(config): add *_append variants for composable topology array fields
- bd5400e feat(config): add session_live for hot-reskinnable commands
- 57b3389 feat(controller): hot-reload session provider on config change
- deb95e1 feat(doctor): topology-provided doctor checks via [[doctor]] scripts
- 520e36e feat(dolt): sync upstream doltserver, add gc dolt cleanup, Section 8 dog formulas
- 02b8112 feat(gastown): add Section 8c dog lifecycle automation wrappers
- 76dba3c feat(gastown): add idea-to-plan planning workflow
- e9388a3 feat(gastown): add operational-awareness global fragment
- 6e7fcbe feat(gastown): add refinery PR handoff
- 2ab7232 feat(gastown): adopt root-only wisps — stop materializing formula steps as beads
- afea287 feat(gastown): audit S9 prompt updates + S3b/3c communication hygiene
- c4ac6d7 feat(init): rename wizard template to "tutorial", default --strict
- 75b3e97 feat(mail): add --to flag for gc mail send
- e61dacf feat(mail): add -s/--subject and -m/--message flags to gc mail send
- 8de7c75 feat(pack): add pack-level overlay merging
- e5b4466 feat(prompt): add cross-topology prompt fragments with three-tier injection
- f35afb9 feat(reconcile): graceful drift restart via drain + wider fingerprint
- b131f1e feat(rig): --start-suspended flag, polecat branch cleanup, audit update
- ec9f3f9 feat(session): configurable session timeouts via [session] config
- 837d467 feat(session): per-city tmux socket isolation via [session] socket
- 8b0f504 feat(topology): fallback agents, dolt-health extraction, hybrid session provider
- e6084e6 feat(wasteland-feeder): use gc sling --on to pour formula onto beads
- ecb571b feat: Cursor hook support, reaper TTL update, audit triage
- ce842cc feat: GC expired automation tracking beads alongside wisps
- 8e05f3f feat: MC migration support — format=raw, fsnotify SSE, permission modes, metadata
- 8fe3023 feat: Phase 2 session identity — reconciler-only process lifecycle
- 6bf1eda feat: Phase 2 telemetry — pool, mail, and drain instruments
- 156222b feat: Phase 3 per-session work dispatch
- f8bb7e0 feat: add --stdin flag to gc sling for piped input
- c83a47a feat: add --tree flag to gc graph for Unicode dependency tree
- 3c54993 feat: add ACP (Agent Client Protocol) session provider
- e5f514f feat: add Codex session file discovery and observe_paths support
- 1fa76e7 feat: add Dolt server robustness to gc-beads-bd
- 043461e feat: add GC_CLI env var override for Claude provider binary
- 1db3a1b feat: add GET /v0/city and automation list/get endpoints (Phase 3, chunk 1)
- 53c7028 feat: add IsAttached to Agent Protocol and API
- cf0531c feat: add JSON merge semantics for provider hook/settings overlays
- 8316bb6 feat: add PACK_DIR env var, version-aware doctor checks, pin dolt/beads in CI
- 3b7a688 feat: add Phase 4 endpoints — bead/mail/convoy extensions, packs, request ID
- fffaac9 feat: add Phase 5 — CLI routes writes through API when controller is running
- e4e5e19 feat: add agent session log viewer to dashboard (kubectl logs pattern)
- 50b4fe8 feat: add bd pack — bundles bd + dolt-health as the default beads provider
- 41b0060 feat: add bead-driven session reconciler (Phase 2f)
- c67da37 feat: add chat session auto-suspend and API endpoints (Phase 3)
- c7aa1ff feat: add city-namespaced API routing (Phase 2)
- 323d655 feat: add codex and copilot executable hooks
- a45c61d feat: add command glossary to tutorial mayor prompt
- 81eec85 feat: add config GET/explain/validate endpoints (Phase 2, chunk 2)
- d7cf930 feat: add convergence loop controller integration + CLI (v0 wave 2)
- 43c56e5 feat: add convergence loop runtime (v0 wave 1)
- 3e9f0ee feat: add convoy land, dep API, graph command, and convoy fields
- 9f2f5b2 feat: add convoy land, dep API, graph command, and convoy fields
- afce39c feat: add dashboard pack with GC API server integration
- 204c85b feat: add durable session waits
- c4cc844 feat: add durable session waits
- bbf0b33 feat: add event emit, automation enable/disable, enhanced status (Phase 3, chunk 2)
- 9e78997 feat: add event-driven wake via sling poke and controller socket
- c784522 feat: add foreman.md builtin prompt for rig-scoped management
- 7e106d0 feat: add gastown init wizard + default_rig_includes
- 3ad76d0 feat: add gastown init wizard + default_rig_includes (#25)
- 80b8dfe feat: add gc agent logs command (kubectl logs semantics)
- 7f4de92 feat: add gc init, gc stop, config package, and session naming
- 68d649d feat: add gc session — persistent, resumable chat sessions (Phase 1)
- c6346c8 feat: add gc supervisor reload for immediate reconciliation
- 4b2ee94 feat: add gc version command, ldflags injection, and make install
- c0bb2d8 feat: add gc-dashboard skill for discoverability
- 68edca1 feat: add generic runtime readiness probes
- 336c56d feat: add global event stream for cross-city observability (Phase 3)
- 1a7ae39 feat: add internal/sessionlog package for Claude JSONL session reading
- 8fcaa14 feat: add machine-wide dashboard with city selector for supervisor mode
- 184225e feat: add machine-wide supervisor with registry and CLI (Phase 1)
- 8b9b980 feat: add mol-do-work builtin formula for simple work lifecycle
- ee6f7e2 feat: add onStop callbacks to agent.managed.Stop()
- 5320a46 feat: add pack [global] section for UI pack distribution
- e59bf82 feat: add pagination support to GET /v0/sessions
- f6b4dfe feat: add patch resource CRUD endpoints (Phase 2, chunk 3)
- a6f696f feat: add per-agent ACP session routing with auto provider
- deda7a8 feat: add permission_mode options_schema for Codex and Gemini providers
- 7e7c559 feat: add pkg/ exports for open-core SDK surface
- 25b0cd1 feat: add provider CRUD endpoints (Phase 2, chunk 1)
- e3466ba feat: add provider field to agent config for explicit CLI selection
- 163ade2 feat: add provider readiness probes
- 7942c32 feat: add provider resume to gc session (Phase 2)
- 23b0d2a feat: add remaining Phase 1 unified session items
- 540eb9b feat: add resume_command config field for explicit resume control
- 2aea55b feat: add session chat API surface
- 752a1f9 feat: add session rename, prune, and status count (Phase 4)
- fb58962 feat: add session.Provider interface with fake and move tmux underneath
- 1af0277 feat: add state-mutating API operations with configedit package
- 15f9778 feat: add structured ContentBlock to Provider.Nudge interface
- 0b88a5a feat: add subagent API endpoints for session agent discovery
- 3d22ed9 feat: add themed namepool for pool agents
- 8a0d5be feat: add tmux adapter implementing session.Provider
- 8caa27f feat: add unambiguous bare-name resolution for agent commands
- 777c9ed feat: add unified CLI Phase 3a — name-based addressing, wake command, REASON column
- 47e5526 feat: add unified session API Phase 3b — wake, patch, name resolution, reason
- 2ae057f feat: add unified session model Phase 1 — session beads for config agents
- 826fafc feat: add unified session model Phase 2 — close orphaned/suspended beads
- cbf1c91 feat: add unified session model Phase 2 — reconciler building blocks
- ffc36b3 feat: add unified session model Phase 3 — bead-driven reconciler
- 8fba620 feat: add work-driven wake (WakeWork) for session reconciler — Phase 4
- 5abd768 feat: auto-detect agent CLI and run it in tmux session
- 9d40522 feat: auto-register city with supervisor on gc init
- 5a65df7 feat: bead-aware session recovery for claude agents
- 78ed604 feat: complete Phase 3-4 gaps — restart, pagination, idempotency
- cfaf959 feat: config DX improvements — typo detection, dry-run, reload feedback, doctor refs, beads health tests
- f5363f1 feat: context-aware startup, config validation, actionable errors, doctor checks
- 9d58332 feat: convergence v1 follow-ups — crash sentinel, active index, integration tests, atomic idempotency
- 4aac23a feat: duration validation, startup timeout, progress timing, agent tests
- 1f278b3 feat: dynamic LINUX_USERNAME support for K8s workspace pods
- d1ce99d feat: embed bd+dolt packs in gc binary, auto-inject for bd provider
- fb4b0a7 feat: enrich API with first-class agent state, status counts, rig metadata, and session context
- 698f6be feat: enrich dashboard convoy panel with progress %, work breakdown, assignees
- 6a449fb feat: enrich session API with dashboard-ready fields
- c0ee6cd feat: expose published service metadata to packs
- ee5cd8a feat: formula-aware default prompt for pool agents
- b7851d8 feat: gc start now starts agent tmux sessions
- e25e775 feat: gc stop accepts optional [path] argument
- 0d45aa0 feat: idempotent gc rig add + auto-install agent hooks at gc start
- 3203d9e feat: implement GC API server v0 — embedded HTTP API for controller state
- efa9f33 feat: inline sling, config-drift fix, dolt lifecycle, onboarding demo
- 79066aa feat: introduce Handle interface, remove Fleet abstraction
- 5e2edf5 feat: isolate gastown agent workdirs
- 9b5e86e feat: live-update dashboard with typed SSE events and partial panel refresh
- 2c39c82 feat: materialize builtin prompts and formulas on gc start
- 07e9bd5 feat: migrate dashboard to GC API, delete tmux shell-outs
- 82d95f3 feat: move mol-polecat-base and mol-polecat-commit to builtins
- be4649c feat: multi-instance agents (multi = true)
- ae2eeb0 feat: native session activity state in GC API
- 5d763f0 feat: notify gascity-hosted on push to rebuild runtime image
- f7157a2 feat: pack CLI commands — gc with template expansion
- afd5510 feat: pool on_death and on_boot hooks for orphaned work unclaim
- 1b54cc0 feat: port dashboard proxy layer from agent API to session API
- 36e2eb0 feat: port dashboard to session API as single data source
- ed014b3 feat: port upstream mail system — read labels, threading, subject/body, new commands
- 604fdeb feat: pre-compile dashboard server into gc binary
- 6253643 feat: process activity detection, PromptSuffix, and deprecation shim cleanup
- 543b0e1 feat: provider parity audit — add auggie/pi/omp, SupportsHooks, InstructionsFile
- 9487183 feat: queue deferred nudges for item 2
- a42011e feat: remove Sessions panel from dashboard
- 40f5cef feat: remove internal/formula package, add polecat base+commit formulas
- 2fdb145 feat: rename Hooks panel to Assigned, update icon to 👤
- e980b76 feat: rename Work panel to Beads, add rig filter, fix status=hooked
- 051ad6f feat: replace prompt glossaries with Claude Code native skills
- d44f7a7 feat: resolve ActiveBead from bead store, add peek-based crew state
- ca010e6 feat: session templates API with options schema, provider views, and agent availability
- bb83390 feat: session-first architecture — Phases 0-2 foundation
- dd90ac0 feat: session-first migration — remove agent.Agent from reconciler and CLI
- 77b6502 feat: set molecule_id metadata on work beads when bonding formulas
- 0e136a4 feat: show help when gc is invoked with no arguments
- cf25e13 feat: simplify claude command, reconciler-driven worktree resume
- 0a6bd0a feat: start API server by default on port 9443
- 01e8191 feat: unify peek/logs into /output endpoint with SSE streaming
- 80c3b33 feat: unlimited pool support (max=-1) and default polecat in gc rig add
- c318411 feat: upstream audit delta 2 — gc dolt health, formula pour/version, sling stale-molecule fix
- c83ed1d feat: wire RecordNudge() at all 7 nudge call sites
- b4afc48 feat: wire agent observation events into event bus
- fe41eae feat: wire gc agent attach CLI with session.Provider
- 1a4148f fix(bdstore): use --labels flag for bd create (not --add-label)
- 49b2167 fix(beads): use correct bd CLI flags for labels
- ef81117 fix(build): unify install location, add VCS version fallback
- 0042385 fix(ci): add missing context arg in k8s test, fix Docker tmux session name
- a47f36a fix(ci): set GOTOOLCHAIN=auto for bd install step
- dcbb4af fix(config): preserve include field during load-modify-marshal round-trip
- a2e69ef fix(config): use resolveTopologyRef for all topology path resolution
- a26586b fix(cycle): unify rig ops cycle group (witness + refinery + polecats)
- 4813046 fix(demo): update wasteland-feeder path after move to examples/
- a6bf1bc fix(dolt): replace all Gastown DefaultConfig calls with Gas City wrappers
- 28c16a5 fix(dolt-pack): resolve port and data dir from runtime state
- 5c02517 fix(gastown): boot agent should be ephemeral with drain-ack
- f9e7205 fix(gastown): keep polecat worktree ignores local
- 50c2fe6 fix(gastown): remove communication hygiene from global fragment
- cabb675 fix(gastown): skip sync when origin is missing
- 33282da fix(init): move prompts/ under .gc/ for consistent city layout
- eea5363 fix(init): stop creating empty rigs/ dir, let gc rig add create on demand
- 7a38d56 fix(k8s): resolve six issues blocking hybrid provider pod lifecycle
- 584dddd fix(pool): default check counts both open and in_progress beads
- 0a50ae2 fix(pool): handle empty jq output when bd fails
- a04b799 fix(session): make subprocess Interrupt() best-effort for missing sessions
- 38f328e fix(sling): use --add-label instead of --label for bd update
- 58f4812 fix(sling): use LoadWithIncludes to resolve topology agents
- 169f207 fix(sling): use bd mol wisp/bond instead of non-existent bd mol cook
- 5cdde20 fix(start): use GasCityConfig for database verification
- bcb82d1 fix(start): verify Dolt databases exist after startup
- 7e3e8e7 fix(topology): resolve remote URLs in city and rig topology references
- 439b968 fix(wasteland-feeder): process claimed inference items in Path B
- beb599a fix(wasteland-feeder): restrict to inference items only
- 7b188c4 fix(wasteland-poll): use --label (singular) for bd list dedup check
- aa10858 fix(worktree): skip LFS smudge during worktree add for faster spawns
- 0d876f4 fix: 8 API client/server disconnects in dashboard pack
- 4e690ef fix: CI failures — BdStore not-found wrapping, gastown test setup, tmux timing
- b15f1ef fix: DefaultSearchPaths includes aimux account directories
- 9424f6b fix: FetchDogs filters by rig=="" instead of name prefix
- 9666abc fix: IPv6 URL construction and read-only API fallback
- 91d451c fix: InferActivity treats non-tool_use stop_reason as idle
- e3b89b1 fix: MolCookOn error classification, copyFile panic safety
- c10e2a3 fix: MolCookOn returns molecule epic ID, not work bead ID
- 7eb1bc3 fix: Stop fallthrough and IsRunning/Stop test coverage
- 302f920 fix: WaitForIdle false-positive during inter-tool-call gaps
- 2fcb095 fix: accept Codex trust dialogs on startup
- 164a8a9 fix: activity feed shows agent name from Subject, not Actor
- bb8e533 fix: add 5 upstream parity gaps to gc-beads-bd op_init
- 91a47d2 fix: add automation history and check endpoints (#15)
- 78dcc63 fix: add color theming and status-left to tmux-theme.sh
- e929bcf fix: add deprecation shims for drain/logs + fix stale references
- 739aeac fix: add env passthrough test for sling runner
- be20390 fix: add gc runtime drain-ack before exit in all polecat/worker prompts
- a61b990 fix: add gc session nudge + fix review findings (F1-F6)
- 659a0da fix: add imposter detection, auto-start prevention, and data-dir verification to gc-beads-bd
- 5cd17f2 fix: add init failure backoff to prevent log spam in supervisor reconciliation
- 9c2c46b fix: add missing test coverage and document templateName param
- e835aa6 fix: add missing tmux parity — bottom bar, mouse mode, mail click
- 84e53a9 fix: add mutex to cliStoreCache, thread cityPath through doRigStatus
- 1d38afd fix: add reconcile panic recovery, log prefix, and registry fsync
- 7cedd5b fix: add validation error classification to city PATCH handler
- 600f6ae fix: address 17 bugs from parallel bug hunt (run 3)
- 3739e75 fix: address 23 bugs from parallel bug hunt (run 2)
- 16d234e fix: address 9 bugs found by parallel bug hunt
- d153c5c fix: address Phase 3 review findings (SSE cursor, shutdown guard, register parity)
- 7ceb4c7 fix: address bugs found by parallel bug hunt agents
- 3546bfc fix: address fifth review pass findings for machine-wide supervisor
- 77f9568 fix: address fourth review pass findings for machine-wide supervisor
- ba4faf8 fix: address fourth-round review findings (init parity, symlinks, locks)
- 32c4877 fix: address re-review findings — nil stderr, relative paths in routes, spurious warnings
- 6b02b41 fix: address review findings (1 blocker, 3 majors, 6 minor/nit)
- e93c3fc fix: address review findings (2 blockers, 3 majors, 3 minors)
- c67324d fix: address review findings (3 majors, 2 mediums)
- c3b69b1 fix: address review findings for CityRuntime extraction
- 277d75c fix: address review findings for Phase 1 session naming
- 28b4b79 fix: address review findings for Phase 2 (1 blocker, 4 majors)
- 2119bea fix: address review findings for Phase 3a
- e35ea1a fix: address review findings for Phase 3b
- 3efaa41 fix: address review findings for agent log viewer
- 093c9a8 fix: address review findings for bead-driven reconciler (2 blockers, 5 majors)
- 2656167 fix: address review findings for city-namespaced API routing
- 164702d fix: address review findings for machine-wide supervisor
- 154f64d fix: address review findings for state-mutating API operations
- ce0104d fix: address review findings for unified output endpoint
- 2bec595 fix: address review findings for unified sessions Phase 1
- a399510 fix: address review findings for unified sessions Phase 1
- b65fd3e fix: address review findings from triple-model review
- 53b0e1e fix: address review findings in auto session provider
- 084a42e fix: address review findings in gc agent logs
- e6ea15a fix: address review findings in gc-beads-bd hardening
- 67bc1ea fix: address review findings — TOCTOU race, limit cap, restart errors
- afd55e0 fix: address review findings — canonical template, waitForSession UX, label migration docs
- 4312d45 fix: address review findings — convoy ownership, mail 404, PATCH test
- 50b8c3d fix: address review findings — dual store, reload, test coverage
- 377009c fix: address review findings — log hook errors, warn on flag mismatch, fix relative path
- 8e4d481 fix: address review findings — map clone, pure function, quarantine cycle
- b67230b fix: address review findings — observe_paths, automation ambiguity, stopped-agent stream
- 1a36c09 fix: address review findings — provider validation, explain provenance, builtin conflict
- 4c46a24 fix: address review findings — raw format consistency, metadata allowlist, fsnotify helper
- c3a7190 fix: address review findings — read-only guard, path escape, bare-name resolution
- 61fea53 fix: address review findings — resume fallback, env, suspend crash, list filter
- 9724f5e fix: address review findings — revert AgentHasHooks regression, add staging/tests
- 141dda2 fix: address review findings — zombie detection, pool fpExtra, dry-run order
- d867499 fix: address review round 2 — backward-compat pagination, idem scoping, restart errors
- 8eca0c6 fix: address round 2 review findings in gc-beads-bd
- a162d8c fix: address round-2 review findings (1 blocker, 2 majors, 3 minors, 1 nit)
- ad9f028 fix: address round-2 review findings (1 blocker, 3 majors)
- 3d2c83a fix: address round-2 review findings (1 blocker, 3 majors)
- afae6d1 fix: address round-2 review findings (5 majors, 1 minor)
- 1bc3ed5 fix: address round-2 review findings (JS city scope, SSE cursor, socket resilience)
- 7d4bfe3 fix: address round-2 review findings (pool instance names, pool_slot guard)
- 47ec06c fix: address round-2 review findings for Phase 3a
- 10392c8 fix: address round-2 review findings for Phase 3b
- a0df327 fix: address round-2 review findings for bead-driven reconciler
- 6d6f3a1 fix: address round-2 review findings for unified sessions Phase 1
- bae1897 fix: address round-3 review findings (1 blocker, 5 majors)
- cbedc83 fix: address round-3 review findings (1 major, 2 minors)
- cc70d11 fix: address round-3 review findings (3 majors, 2 minors, 1 nit)
- 93e9d1e fix: address round-3 review findings (umask, migration plan error, logging)
- 5d50d72 fix: address round-3 review findings for Phase 3a
- a33acb1 fix: address round-3 review findings for bead-driven reconciler
- 4cb3593 fix: address round-3 review findings for unified sessions Phase 1
- d913516 fix: address round-4 review findings (1 blocker, 2 majors)
- e658861 fix: address round-4 review findings (provider mirror, nil guard, standalone recovery)
- 08d8ebe fix: address round-4 review findings for bead-driven reconciler
- 76bbb79 fix: address round-4 review findings for unified sessions Phase 1
- ea4cb94 fix: address round-5 review findings (5 minors)
- 1d33df0 fix: address round-5 review findings (write ordering, error propagation, docs)
- 3033d6e fix: address round-5 review findings for bead-driven reconciler
- 6d4ced4 fix: address round-5 review findings for unified sessions Phase 1
- 254736d fix: address round-6 review findings for bead-driven reconciler
- 526e486 fix: address round-6 review findings for unified sessions Phase 1
- 0933150 fix: address second review pass findings
- 190ba84 fix: address second review pass findings for machine-wide supervisor
- e0934ac fix: address second review pass — RawConfig race, question detection for peek
- 039cfa9 fix: address second review pass — decouple auto-suspend from API, log reload errors
- ef5de64 fix: address sixth review pass findings for machine-wide supervisor
- 3158ef1 fix: address third review pass findings
- cfe43d6 fix: address third review pass findings for machine-wide supervisor
- e783768 fix: address third-round review findings (race, panic, logPrefix)
- 53d835f fix: address triple-model review findings (blocker + majors)
- f89185f fix: align bdstore behavior with conformance
- eb77072 fix: align beads lifecycle with root store
- 0cca976 fix: align rig APIs and worktree reuse
- a8783ee fix: align session chat API defaults and locking
- fea48cf fix: align workdir namespacing helpers
- ac51e34 fix: allocate ephemeral dolt port to avoid collisions with platform dolt
- 209243d fix: always resolve default formula layer from .gc/formulas
- a603627 fix: auto-close sling wisps on parent bead close, fix convoy create store
- 483c844 fix: beadmail Inbox/Count return all messages when recipient is empty
- 8a4be0f fix: bound supervisor stop waits
- a00ff92 fix: buffer SSE fields until delimiter, validate dropdown selection
- 5680745 fix: category filter state, after_seq forwarding, dropdown preservation
- 6bafefb fix: clarify gc session nudge contract and update subcommand list
- 7d0fa42 fix: clarify supervisor status output
- bbaaac2 fix: classify empty codex auth as needs_auth
- 80e2b95 fix: clean up supervisor rollback and drift restarts
- b5d5cfb fix: clear GH_CONFIG_DIR and XDG_CONFIG_HOME in GitHub CLI readiness tests
- e9f5786 fix: clear stale close metadata when bead is reused after partial close
- c77f479 fix: clone all reference fields, update dep type, ensure cross-backend metadata
- 1ed0661 fix: close tracking beads and skip dispatch when open work exists
- 910726c fix: closeBead aborts on metadata write failure (commit-signal pattern)
- 98e9000 fix: computeWorkSet uses relative agent dir, breaking pool wake from supervisor
- 56030e7 fix: context budget sharing, telemetry leak, missing cancellation event
- 73accc7 fix: converge concurrent session resume
- d91f766 fix: convert absolute paths to relative in upstream audit doc
- 57ac16c fix: convoy cross-rig, formula inheritance, pool drain, parent_id parse
- afd02a3 fix: correct endpoint guidance in builtin provider 409 responses
- 9c5c2c3 fix: correct molecule discovery in pool-worker prompt
- fa14637 fix: correct nudge shim target + fix stale script/formula references
- 251684f fix: deep-copy all reference fields on Create storage, add DepAdd type-update test
- 77eb609 fix: deep-copy metadata in all MemStore read paths, atomic convoy create
- 567b0df fix: deep-copy metadata maps, filter blocking deps, validate args
- 1ed6912 fix: defer config-drift drain while user is attached to session
- a4b5986 fix: delegate dropdown listeners, sync category button state, reset SSE currentID
- cd7151e fix: deterministic pack ordering and mail delete not-found handling
- d036b50 fix: disambiguate managed vs ad-hoc session lookup, cache CLI store
- a552e7d fix: discover unlimited pool instances and remove hardcoded polecat filter
- 2b1c7dd fix: document healState safety boundary for Phase 2 new states
- f414e90 fix: document manual-only template migration
- a8bf828 fix: dolt 1.83 removed --user/--password from sql-server, sql-client
- 31489f7 fix: dolt stale process handling, demo cleanup, bead watching
- 1cd2b46 fix: embed dolt scripts/ directory in pack FS
- a2e5ced fix: emit empty raw SSE event for no-log case, reset state on file rotation
- 92dd0cf fix: escape URL path segments and guard negative API port
- 342b584 fix: escape formula variable in dog.md.tmpl for Go template rendering
- 43b2f3c fix: exclude runtime-identity env vars from config fingerprint
- ae28ca9 fix: extract shared buildAgentsFromConfig and fix supervisor divergences
- b06baa1 fix: extractRig returns empty for city-scoped agents
- d807dc7 fix: fail closed on invalid workdir templates
- bf14ca1 fix: filter workers panel to polecats only
- 4e47dd4 fix: finish gastown workdir isolation rollout
- 1dbad37 fix: fourth bug sweep — timeouts, context propagation, validation
- 207e1e1 fix: gate WakeWork on pool slot/desired and fix comment typo
- 10d873c fix: gc prime serves pool-worker prompt for qualified pool instances
- 4dec813 fix: gc-beads-bd exits early when dolt-state.json missing (set -e bug)
- d136612 fix: generate session_key for config-defined agents to prevent transcript cross-contamination
- 0e536cb fix: handle API error envelope in log drawer and fix polling suppression
- 0b7e7ec fix: harden Gemini hook installation
- 7144221 fix: harden deferred nudge delivery
- 94810c9 fix: harden gastown worktree bootstrap
- ee9ea80 fix: harden gc tests against live supervisor state
- 30e3a22 fix: harden github cli readiness detection
- 158e43a fix: harden session chat edge cases
- f8baac8 fix: harden session chat lifecycle routing
- 491b45b fix: harden supervisor lifecycle edge cases
- 265730e fix: harden supervisor readiness checks
- c4cb48c fix: harden workdir attribution and bootstrap cleanup
- bd73d4c fix: hermetic poke tests and document unconditional API Poke
- 70b622a fix: honor github cli env-token auth
- a478f34 fix: improve supervisor reload error messages with actionable hints
- d4360db fix: isolate tmux tests to dedicated socket and fix CI failures
- fbba584 fix: keep agent identity contract consistent
- dd2a05a fix: make EvalSymlinks best-effort in Unregister for deleted directories
- ebcf5ae fix: make Phase 1 session naming lookup-only, no bead creation
- 6f9e996 fix: make pool-worker prompt ephemeral and use bd mol current
- 139b9d9 fix: multi-word nudge args and stale agent subcommand list
- 25ed79f fix: narrow session resume convergence
- 11345c6 fix: nudge wait-idle default, witness HELP assessment table
- 1332dce fix: only inject implicit agents for configured providers (#24)
- 8be4f7e fix: pack cache staleness for branch refs + gc peek → gc agent peek
- 9262cb3 fix: pack-derived DELETE returns 409, validation errors return 400
- 82a796a fix: parse shell-quoted dashboard commands
- 0d0adf3 fix: pass session provider to buildFn on each tick for hot-reload
- 60cb63a fix: persist command and resume fields in session bead metadata
- 713f873 fix: point beads install at gastownhall/beads module (post-rename)
- 4b238f8 fix: poll for supervisor death instead of blind sleep
- a5f37f2 fix: pool instances use template name for work discovery labels
- 5749a22 fix: pool-worker prompt uses wrong env var $GC_AGENT_TEMPLATE → $GC_TEMPLATE
- 6d73f50 fix: pool-worker prompt — enforce molecule check before starting work
- 0948af4 fix: port 4 upstream dolt bug fixes to gc-beads-bd
- 3b95ab6 fix: preserve ACP transport across session lifecycle
- 4d6cfdc fix: preserve backward-compat for ?limit=N (no cursor) list behavior
- 4053907 fix: preserve file permissions in overlay merge, add review-driven tests
- c80e5b4 fix: preserve wait-idle session nudge default
- 359fd03 fix: preserve xdg config in readiness probes
- ec55e16 fix: preserve xdg state in readiness probes
- 265a713 fix: prevent TempDir cleanup race in controller reload tests
- e1be73b fix: prevent city.toml expansion on write-back
- 10e6044 fix: prevent reconciler from draining forked singleton sessions (#18)
- 2c7568c fix: propagate session interaction contracts
- 2d30517 fix: qualify template names with rig prefix in session bead metadata
- f6f3e1a fix: raw pagination, raw stream fallback, and streaming performance
- 5ada4ae fix: reconciler injects --resume when waking sessions with a session_key
- e656d27 fix: refresh standalone city store on config reload
- 788ccd7 fix: regenerate schema/docs after rebase onto main
- f39933e fix: remove dead .gc/bin/ fallback in dolt pack runtime.sh
- 6f2227b fix: remove dead beaconTime field from CityRuntime
- 701440b fix: remove redundant process_activity prompt-peek detection
- 6b3114b fix: remove session identity logic from reconciler and shell wrapper
- c77c375 fix: remove stale artifacts and restore corrupted docs
- d62c2bc fix: remove worktree cleanup dead code and fix graph help text
- 1b8931c fix: replace PID files with unix sockets, thread context through providers
- 657d72f fix: replace out-of-tree source links with inline code refs in audit doc
- 14b452d fix: resolve CLI user to client-side for audit attribution
- bed72c5 fix: resolve golangci-lint warnings
- bdc2e4b fix: resolve lint errors in workdir, filestore, and pool
- 625c148 fix: resolve lint issues from Phase 1 session naming
- bde140f fix: resolve pre-existing test failures across cmd/gc
- 1969245 fix: resolve qualified pool instance names in gc prime
- d4cb3f5 fix: resolve rig directory for sling bd commands on rig-scoped beads
- 711589b fix: resolve session commands via session beads
- 095daab fix: respect allow_mutations config in supervisor
- 6041eea fix: retry supervisor reload on zombie shutdown race
- a6e65fd fix: revert SSE cursor param to after_seq and clarify detectSupervisor
- 8395ab4 fix: revert build_desired_state.go to committed state
- 5a8e320 fix: review findings — regenerate cli docs, hide shims, fix agents.md
- daa36a8 fix: review nits — update changelog, explicit InstructionsFile on pi/omp, reverse sync test
- 58bac74 fix: review round 2 — orphan-sweep pool instances, kill event subject
- c0a4eea fix: review round 3 — DisableFlagParsing, integration test assertions, witness prompt
- e6c5356 fix: route ACP session chat through the right runtime
- 9dcb198 fix: route sling nudges through deferred delivery
- 2a145e3 fix: satisfy rebased lint cleanup
- 0765b9d fix: scope htmx:afterSwap, prevent listener leak, resume SSE via Last-Event-ID
- e7e2b06 fix: second bug sweep — shell injection, context propagation, robustness
- 2c4c73f fix: security and correctness sweep across 11 files
- a71e07c fix: seed branch context for sling formulas
- 9f4da40 fix: seed seen map before follow loop to prevent message replay
- db32b29 fix: session logs per-agent lookup, bead ID base36 support, demo polish
- 0ad0fd5 fix: set issue_prefix on re-init when metadata already exists
- 4caac3c fix: share workdir resolution semantics
- 13f1db6 fix: shell-quote provider args in session commands
- 485364e fix: simplify BdStore conformance test to use bd auto-start
- bbaae9e fix: singleton pool naming, pool_slot resolution, dependency zombie check
- 8c9e2d6 fix: skip bd agent files during init
- 728ab72 fix: skip bd init during gc init (Dolt not running yet)
- f18dc93 fix: skip bd init in gc rig add (Dolt not running yet)
- b02e9c0 fix: skip implicit agents in runPoolOnBoot, add WaitDelay to shellScaleCheck
- ff20f01 fix: stale metadata cleanup checks both close_reason and closed_at
- 9ac900c fix: start codex poller on queued nudges
- 55379e0 fix: stream full closed-session transcript snapshots
- 8d637b5 fix: stream tmux peek as raw JSONL when no transcript log exists
- aa677e4 fix: strip CLAUDECODE env var so agents can start from Claude sessions
- 6258359 fix: strip beacon timestamp from config hash to prevent false drift
- 9a7d074 fix: support status=all in mail list API (#14)
- f0e215f fix: support unlimited pools (max=-1) in agent name resolution
- d5191ae fix: suppress reload error on first attempt before retry
- fd62cf9 fix: template field mismatch — FormattedAge → Display in convoy.html
- 6cc148b fix: testscript bd filters by --label/--status, fix implicit agent test gaps
- 0f7278e fix: third bug sweep — error masking, pod leaks, map mutation, PID elimination
- 03f403e fix: tighten session chat template resolution
- 5400a40 fix: tighten supervisor startup boundaries
- cd5d8fa fix: tolerant metadata parsing, session bead improvements, bd CLI fixes
- e999c9c fix: transport-level API fallback and review findings
- e4cac9f fix: treat user interrupt messages as idle to prevent session lock-up
- 075c186 fix: update remaining stale gc agent references across docs and prompts
- e1527be fix: update tmux theme scripts for per-city socket session names
- 04ee82f fix: upgrade beads to v0.60.0, migrate to port file discovery
- 7268c07 fix: use --session-id on first wake so JSONL filename matches session_key
- 4631d92 fix: use api.New() in supervisor city routing and warn on skipped multi agents
- ee8a7a8 fix: use dynamic port for dolt server in BdStore conformance tests
- 932b9c5 fix: use env -u to actually unset CLAUDECODE in tmux sessions
- 9b422c6 fix: use existing prefix on re-add, context-neutral log prefix
- 214a930 fix: use gc runtime drain-ack for pool worker exit
- 49708c2 fix: use suspended_at for prune, reject negative durations
- 2fe71bc fix: validate provider auth payload contents
- 0978ade fix: wait for supervisor lifecycle results
- 37ec8a3 fix: wire drain-ack and request-restart into bead reconciler
- ed2d55b fix: wire pokeCh in supervisor path and report poke failures
- d1d40fa fix: wire stderr to events exec provider so Record errors are visible
- 49b561a fix: write large prompts to temp file to avoid tmux command limit
- 0387dc2 harden gc-beads-bd to upstream gastown parity
- 5998273 harden(dolt): pull 7 battle-tested Gastown startup patterns into Gas City
- 05d6259 merge convergence-v0-wave2: add convergence loop controller integration + CLI
- 1894f1b merge feat/bead-reconciler: add bead-driven session reconciler (Phase 2f)
- 78ed87b merge feat/session-first-arch: session-first architecture Phases 0-2 foundation
- e126f91 merge feat/unified-sessions-phase3a: unified CLI Phase 3a
- 307337c merge feat/unified-sessions-phase3b: unified session API Phase 3b
- fbbfc8a merge origin/main into worktree-tmux-websocket
- ec7df3f perf(api): use ListByAssignee in findActiveBead instead of List
- 40309a6 perf: cache provider readiness probes briefly
- ea5eb8d refactor(gastown): extract session_setup into composable tmux scripts
- 8ac6796 refactor(rig): remove redundant rigs//rig.toml, use city.toml only
- 599fd6e refactor(session): simplify names + auto-default socket to city name
- ae2714f refactor(topology): dedup tmux scripts, use fallback dog in maintenance
- 23fc3ec refactor(topology): simplify with scope field, TopologyDirs, and GitHub URL includes
- 598c98e refactor(wasteland-feeder): extract dispatch_item, deduplicate paths
- 6621a11 refactor: center city lifecycle on supervisor
- dcb20ad refactor: convert reaper and jsonl-export from formula+pool to exec automations
- be8debd refactor: delete dead observer code, rename agent.* events to session.*
- 3388c3a refactor: delete legacy reconciler, port gaps to bead reconciler
- b705358 refactor: extract CityRuntime from controller loop (Phase 0)
- 138c161 refactor: flow config structs through API instead of disassembled fields
- 47d6de7 refactor: inject fsys.FS into config.Load and OpenFileStore
- 397e860 refactor: inline agent multi shims into cmd_agent.go
- bdbbf43 refactor: inline shared shell quoting helpers
- 8a2eb42 refactor: introduce internal/agent package with Agent interface
- a6fa22c refactor: keep bootstrap in gc init
- 7268736 refactor: migrate CLI from hand-rolled switch to cobra
- d3210cd refactor: migrate agent commands to session + runtime
- 33ac3aa refactor: move mol-do-work from BD pack to embedded formulas
- 1569634 refactor: read pool-worker prompt from disk instead of Go embed
- f905342 refactor: remove agent multi config support
- f82a58d refactor: remove agent observation events from event bus
- c0c235d refactor: remove automatic polecat pool creation from gc rig add
- c106a03 refactor: remove legacy/backwards-compatibility code for OSS release
- 47cbc88 refactor: remove pack/packs config fields, use includes exclusively
- ef092ce refactor: remove stale agent runtime APIs, add session kill endpoint
- db7ff7f refactor: rename internal/chatsession to internal/session
- 0bea571 refactor: rename internal/session to internal/runtime
- e306239 refactor: replace agent multi templates with sessions
- fc2176b refactor: restructure gc init/start to match git/docker convention
- 88e5af1 refactor: restructure tests per TESTING.md tiers + add GC_SESSION support
- dacb251 refactor: unify agent building, extend field sync tests, add name validation, remove hardcoded role
- 80ecbea rename: Automations → Orders across codebase
- 43edc14 rename: [[agents]] → [[agent]] in city.toml config
- 57e0a6f rename: topology → pack across entire codebase
- 955a6eb revert: remove hardcoded aimux scan from DefaultSearchPaths