Changelog
- de26f10 Add PreCompact session cycling to all gastown pack overlays
- a56cb2e Add acceptance provider shim support
- 0562f4a Add example output, GC_NO_SANDBOX mode, and in-city doctor test
- 4db67bd Add external messaging fabric core services
- 167acdd Add gc session reset command
- f6da4cc Add idle session sleep policy
- 8b2cf59 Add macOS smoke test with sandbox-exec containment
- 18c29ce Add session list target column
- e2f2366 Add session reconciler tracing and debugging docs (#306)
- 398ce6d Add transcript-backed external messaging threads
- e7032e0 Add tutorial golden acceptance suite
- 4f1e2d0 Bound implicit city discovery walk-up
- f1592c8 Clarify polecat nudge and startup guidance
- 158181f Default session bead title to template name when empty (#95)
- 15c740d Enforce explicit closed-bead queries (#315)
- 92fe7eb Expand provider and supervisor search paths
- 281cedb Fix always-named idle tracker registration
- 7f69e81 Fix dolt health orphan detection for external rigs
- 9250eb1 Fix named-session idle timeout reload
- 61a3c91 Fix opencode provider: change PromptMode from "arg" to "none" (#90)
- 7a53ab3 Fix session wake state transitions
- 73f3e1d Fix wait-hold wake suppression (#405)
- 3edf860 Harden GC city context resolution
- f0faee9 Make configured agents template-only sessions
- 18e73ae Merge branch 'feat/http-metrics' into merge/orders-v2-final
- eda2ca6 Merge branch 'gastownhall:main' into fix/beads-dolt-env-vars
- d7262aa Merge branch 'main' into docs/fix-broken-links
- f003091 Merge branch 'main' into feat/smoke-macos
- 71af936 Merge branch 'main' into fix-supervisor-socket-path
- fa8c2e7 Merge branch 'main' into fix-supervisor-socket-path
- 8336278 Merge pull request #106 from deanberris/fix/session-new-singleton-alias
- 3d15f70 Merge pull request #108 from GraemeF/fix/pack-fetch-startup-race
- dbadf29 Merge pull request #111 from GraemeF/fix/k8s-startup-grace-period
- 38e99e6 Merge pull request #114 from alexsiri7/fix/precompact-session-cycle
- 1138d74 Merge pull request #118 from GraemeF/fix/absolute-settings-path
- 57a5ba4 Merge pull request #123 from trillium/fix/011-dolt-config-wiring
- b4c423d Merge pull request #128 from GraemeF/fix/k8s-post-start-liveness
- 37b7a28 Merge pull request #129 from GraemeF/fix/wake-failure-clears-started-hash
- 8199ea5 Merge pull request #150 from maphew/fix/linuxbrew-probe-path
- 7ebbe6c Merge pull request #184 from gastownhall/feat/workspace-hq-prefix-complete
- 35a971c Merge pull request #202 from quad341/fix/default-named-session-always
- c3295de Merge pull request #214 from gunabot/fix/claude-auth-env-passthrough
- f403173 Merge pull request #217 from quad341/fix/reconciler-stale-key-detection
- fa9227f Merge pull request #218 from quad341/fix/wake-work-from-workset
- 47f9413 Merge pull request #219 from quad341/fix/sling-propagate-routed-to-molecule-steps
- cdca275 Merge pull request #246 from thejosephstevens/polecat/ga-cy4
- 6d149fc Merge pull request #254 from osamu2001/fix-supervisor-socket-path
- 45a83fa Merge pull request #258 from thejosephstevens/polecat/ga-kic
- b8c6f84 Merge pull request #259 from thejosephstevens/polecat/ga-40x
- 13f36e5 Merge pull request #264 from thejosephstevens/polecat/ga-6y3
- dc782d4 Merge pull request #267 from alexsiri7/fix/routed-to-on-handoff
- a94bf06 Merge pull request #272 from osamu2001/fix/spawned-session-provider-fallback
- 8fa5faa Merge pull request #274 from quad341/fix/formula-root-type-molecule
- 0cd62c5 Merge pull request #305 from osamu2001/fix/opencode-sling-pickup-main
- 9f1511f Merge pull request #308 from quietlathe2048/feat/smoke-macos
- 185780d Merge pull request #310 from quad341/fix/test-env-leak-gc-alias
- ae0d972 Merge pull request #313 from Rome-1/fix/precompact-hook-default
- a2a35d3 Merge pull request #314 from rainydan/docs/fix-broken-links
- 057c733 Merge pull request #318 from gastownhall/codex/list-query-unification
- 49bca28 Merge pull request #330 from gastownhall/maint/fix-pr310-review
- 96950f1 Merge pull request #332 from gastownhall/maint/fix-pr274-review
- b0a3c71 Merge pull request #334 from quad341/fix/skip-pool-managed-interrupt-v2
- cc2019e Merge pull request #335 from quad341/fix/empty-type-session-bead-resolution-v2
- dc245a0 Merge pull request #338 from gastownhall/maint/fix-pr313-review
- 5ed0d52 Merge pull request #339 from rileywhite/fix/rig-add-prefix-flag
- 2c880c2 Merge pull request #340 from osamu2001/codex-user-prompt-submit-hook
- 1e626d4 Merge pull request #341 from gastownhall/fix/pool-create-pending-claim
- 9a05327 Merge pull request #342 from gastownhall/ga-5m5fy-dolt-db-repair
- 31d501e Merge pull request #343 from gastownhall/fix/pool-create-pending-claim
- a802ba5 Merge pull request #344 from stuartparmenter/fix/beads-dolt-env-vars
- ff27e0a Merge pull request #352 from gastownhall/fix/pool-create-pending-claim
- 4fe9bd7 Merge pull request #361 from gastownhall/fix/session-send-main-complete
- 5054185 Merge pull request #364 from gastownhall/fix/routed-to-metadata-audit-complete
- edee912 Merge pull request #365 from gastownhall/fix/formulas-monitor-feed-complete
- db99eb3 Merge pull request #370 from GraemeF/fix/gc-beads-k8s-security
- e3ce669 Merge pull request #372 from GraemeF/fix/prime-alias-fallback
- db4ada7 Merge pull request #378 from gastownhall/adopt/pr-257-rebased
- 7eb59fb Merge pull request #382 from thejosephstevens/polecat/ga-40x-v2
- d7c7cde Merge pull request #383 from gastownhall/fix/default-scale-check-active-query-complete
- 1fa5ec1 Merge pull request #385 from gastownhall/fix/named-session-assignee-materialization-complete
- fb8cb17 Merge pull request #386 from sjarmak/feat/agent-defaults-sling-formula
- b97b0a5 Merge pull request #387 from wynged/fix/idle-nudge-false-positives
- 5b01aa2 Merge pull request #39 from EmmittJ/fix/session-list-perf
- 3901dd8 Merge pull request #396 from brandonmartin/fix/suppress-bd-dolt-autostart
- 167a5fe Merge pull request #408 from gastownhall/fix/exec-beads-metadata-create-complete
- a162748 Merge pull request #41 from EmmittJ/fix/provider-builtin-inherit
- 03657c6 Merge pull request #410 from gastownhall/fix/session-submit-intents-complete
- 697afb1 Merge pull request #411 from GraemeF/fix/k8s-service-account
- d3e290b Merge pull request #417 from GraemeF/fix/pod-env-remap
- 6f06265 Merge pull request #419 from stuartparmenter/feat/init-name-flag
- 8ccec68 Merge pull request #421 from stuartparmenter/fix/beads-prefix-custom-types
- d1a2006 Merge pull request #423 from quad341/fix/nil-stderr-segfault
- 9d7a7e1 Merge pull request #424 from quad341/fix/stale-name-lock-cold-boot
- b5d9963 Merge pull request #428 from rileywhite/chore/option-defaults-e2e-tests
- 0ca1f4b Merge pull request #435 from gastownhall/fix/issue-401-402-regressions-complete
- 199b39a Merge pull request #437 from thejosephstevens/polecat/ga-44n
- 0344b98 Merge pull request #438 from thejosephstevens/polecat/ga-b8p
- c6e3c57 Merge pull request #449 from gastownhall/fix/expand-provider-search-paths-97-complete
- fd535ac Merge pull request #456 from gastownhall/fix/session-reset-complete
- 4a6c473 Merge pull request #461 from thejosephstevens/fix/pool-excess-drain-reason
- c1465c1 Merge pull request #462 from gastownhall/fix/gc-city-context-pr-complete
- 0e9a7dd Merge pull request #463 from gastownhall/fix/findcity-boundary-366-complete
- d72926d Merge pull request #464 from gastownhall/fix/session-submit-intents-main-complete
- 00a8c42 Merge pull request #465 from gastownhall/fix/drained-wake-mode-invariant-complete
- 7799afd Merge pull request #471 from rileywhite/fix/127-startup-race-config-drift
- e2a74fb Merge pull request #51 from phatblat/phatblat/docs-binary-install
- a2291cd Merge pull request #510 from rileywhite/fix/497-flaky-idle-drain-test
- 8445ff6 Merge pull request #511 from rileywhite/fix/491-sling-bead-id-suffix
- 32a1c75 Merge pull request #517 from gastownhall/fix/478-orders-dispatch-to-suspended-rigs
- b1046b6 Merge pull request #524 from sjarmak/fix/500-auto-title-all-session-paths
- 4a7e1aa Merge pull request #526 from sjarmak/fix/520-order-tracking-bead-cleanup
- 7bd081d Merge pull request #527 from GraemeF/fix/beads-dir-perms
- 9c5c5d7 Merge pull request #528 from rileywhite/fix/505-scale-check-molecule-detection
- e8721d8 Merge pull request #531 from rileywhite/fix/508-named-session-scale-check
- b488f66 Merge pull request #543 from sjarmak/fix/stale-nudge-reaping
- 2973548 Merge pull request #612 from gastownhall/rc-gate
- 8d5c9a4 Merge pull request #62 from GraemeF/fix/exec-create-metadata
- 1585ea2 Merge pull request #625 from gastownhall/fix/619-mail-reply-notify-complete
- a5a95a5 Merge pull request #66 from sfncore/fix/dolt-health-external-rigs-clean
- b177ee0 Merge pull request #72 from ericfode/fix/supervisor-controller-socket
- f7dffce Merge pull request #74 from jakehemmerle/fix-polecat-nudge-guidance
- 0946982 Merge pull request #84 from gastownhall/fix/beadsmail-city-level-store
- bbca592 Merge pull request #85 from gastownhall/feat/mail-recipient-resolution
- 1a8f461 Merge pull request #87 from alexsiri7/fix/handoff-session-reset
- 4b87f1e Merge pull request #90 from deanberris/fix/opencode-promptmode-none
- bd05388 Merge pull request #96 from GraemeF/fix/session-new-wake-signal
- c202f51 Merge remote-tracking branch 'origin/main' into adopt/pr106-push
- 7550778 Merge remote-tracking branch 'origin/main' into adopt/pr128
- 38fb1dd Merge remote-tracking branch 'origin/main' into adopt/pr129
- c929062 Merge remote-tracking branch 'origin/main' into adopt/pr96-ff
- e860fc7 Merge remote-tracking branch 'origin/main' into adopt/pr96-ff
- ae048c4 Merge remote-tracking branch 'origin/main' into fix-supervisor-socket-path
- 0fe5c3e Merge remote-tracking branch 'origin/main' into fix-supervisor-socket-path
- ab9fa11 Merge remote-tracking branch 'origin/main' into fix-supervisor-socket-path
- 7c734d2 Merge remote-tracking branch 'origin/main' into fix/session-list-perf
- 8350661 Merge remote-tracking branch 'origin/main' into polecat/ga-kic
- 080abe5 Refine idle session sleep behavior
- 724709f Refresh generated schema docs
- 6450f88 Revert "feat: formula v2 with transient retries, graph workflow control, and orders-v2 contract"
- 25d3da6 Revert "feat: orders v2 — formula v2 engine, graph workflows, and orders API (#196)"
- c05e526 Revert "fix: remove vendored contracts and fix duplicate struct fields from rebase (#197)"
- 21a17ef Set pending_create_claim unconditionally for bead-only sessions
- a722063 Set wake_mode=fresh on all gastown pack agents (#113)
- 30b3f8c Speed up formula catalog and add formula runs endpoint (#316)
- 63b8a59 Stabilize claude-only nightly acceptance (#577)
- c2477c7 Use gc.routed_to for dispatched work routing
- d94bff2 [bug] Dolt watchdog false zombie detection — matches non-dolt processes by name substring (#437)
- 688f788 [bug] gc prime silently returns raw templates when rendering fails (ga-7mk) (#440)
- 4825ec7 [codex] Refresh reviewable tutorials through orders (#376)
- 2804a6f beads: clear ListQuery transition lint
- 87d9c9c beads: preserve managed dolt database identity
- 389c129 beads: trim unused init helper db arg
- d3719eb beads: unify store queries behind ListQuery
- db690d7 build(deps): bump github.com/buger/jsonparser from 1.1.1 to 1.1.2 (#34)
- de5136b build(deps): bump google.golang.org/grpc from 1.78.0 to 1.79.3 (#28)
- 733f2f5 chore: add --unassigned to all pool work queries
- 894861a chore: add .github/bugflow.toml for automated bug investigation
- e03750f chore: add regression tests for fixed session reconciler issues (#371)
- c605149 chore: bump dolt to 1.85.0
- b7cc254 chore: fix lint in k8s startup follow-up
- a275c75 chore: pin bd to gastownhall/beads@9d9d0e53 (match runtime image)
- 7954a13 chore: strengthen test evidence for session reconciler regression tests (#414)
- 5931878 cleanup: remove all mission-control references (#393)
- 51893e3 feat(extmsg): wire extmsg API endpoints into controller (#251)
- cd112b9 feat(hooks): add UserPromptSubmit hooks for Codex
- 3941656 feat(mail): add API recipient resolution with ambiguity rejection
- f54a882 feat(pack): materialize pack scripts into /scripts/
- 9197caa feat(pool): default pool work_query to --unassigned
- d818d60 feat(prompt): graph-worker with continuation group affinity
- 68c2269 feat(sling): allow pool agents as graph.v2 workflow targets
- 8119317 feat: CachingStore for event-driven in-memory bead reads (#192)
- 1158ac9 feat: DELETE /v0/workflow/{id} endpoint
- 2d41d3a feat: HTTP request metrics and data source tagging (#188)
- 2b01906 feat: OptionsSchema as authoritative source for provider option defaults
- e9f533f feat: Store.CloseAll for batch close with metadata
- 586df80 feat: Store.CloseAll for batch close with metadata (#177)
- 11860cf feat: add --name flag to gc init for workspace name override
- 4b7d1cb feat: add Delete to bead Store interface + close?delete=true
- 1bae291 feat: add HTTP request metrics and data source tagging
- b416b53 feat: add belongs-to deps from workflow steps to root bead
- 66d7edb feat: add description_file to formula steps
- 63a7b9c feat: add description_file to formula steps (#169)
- 4ef6a5a feat: add effort option to Codex provider (model_reasoning_effort)
- 8730eed feat: add explicit workspace prefix for HQ beads (#148)
- 2aa06ad feat: add named configured sessions
- 5c2e987 feat: add orders monitor feed projections
- e6644f3 feat: add orders v2 workflow APIs and sling launch
- eccb580 feat: add semantic session submit intents (#403)
- c83c18c feat: always use async creation for agent sessions
- 042992f feat: bead-driven pool scheduling with nested max_active_sessions caps
- a961203 feat: cache repeated api read responses
- 2b03e1d feat: comprehensive computeAwakeSet with full test coverage
- a2b66a8 feat: computeAwakeSet — pure function for reconciler wake decisions
- 9c5e8bf feat: default pool work_query to --unassigned (#185)
- b277350 feat: doctor check for custom bead types registration (#170)
- 0690eac feat: dynamic schema option mutation via template_overrides
- df3582c feat: emit tool approval events on session stream stall
- 3ca5169 feat: expose effective session options in GET /v0/session/{id} (#212)
- 54e84e4 feat: expose effective_defaults in provider public API
- d107040 feat: expose option_defaults in AgentPatch and AgentOverride (#331)
- c0dcee9 feat: expose pool target support for sling ui
- 3950088 feat: expose startup progress phases in supervisor /health
- ba92ef0 feat: expose startup progress phases in supervisor /health
- b0fc286 feat: formula v2 with transient retries, graph workflow control, and orders-v2 contract
- 85783a9 feat: formula v2 with transient retries, graph workflow control, and orders-v2 contract
- c748f48 feat: gate formula v2 infrastructure behind daemon.graph_workflows flag
- 6532321 feat: gc formula cook --attach for late-bound DAG expansion
- 23a0a0b feat: gc workflow delete command and DELETE API endpoint (#191)
- f7ad181 feat: gc workflow delete — close and optionally delete workflow beads
- ed88d38 feat: initial message as template override, appended to prompt
- b666c7d feat: materialize pack scripts into city dir (#183)
- 50734bc feat: nudge idle sessions that have assigned work (#312)
- bdc2e7d feat: on-demand sessions stay awake while running until idle_timeout
- 21ddeb7 feat: on-demand sessions stay awake while running until idle_timeout (#236)
- 948e12c feat: orders v2 — formula v2 engine, graph workflows, and orders API
- 3b805d0 feat: orders v2 — formula v2 engine, graph workflows, and orders API (#196)
- 2e2df0e feat: orders v2 — formula v2 engine, graph workflows, pool removal, and performance (#210)
- aea82f7 feat: project workflow live updates for orders v2
- fa46be3 feat: provider-aware session log reading (#176)
- 401e9f3 feat: replace evaluateWakeReasons with ComputeAwakeSet in reconciler
- c176a99 feat: retry/ralph v2 — control beads with late-bound DAG expansion
- e84c9b2 feat: rig-anywhere — global rig index, resolveContext, gc rig default/remove (#175)
- 92c6c0d feat: rig-level Dolt config for cross-server bead routing
- c216b0c feat: set effort=max as default for Claude provider
- 8ab90ae feat: support default_sling_formula in [agent_defaults]
- d748321 feat: system packs through normal pack expansion (#213)
- 9c10070 feat: template overrides for agent session creation
- 819a8e1 feat: tmux InteractionProvider for terminal tool approval detection
- 7ce8734 feat: tmux InteractionProvider for terminal tool approval detection
- 1d02c8e feat: v2 control bead fixes, integration tests, strip presentation logic
- 2e4e173 feat: wire CachingStore into controller for in-memory bead reads
- 084bb54 fix rig-context resolution for city commands
- 0cb08cf fix(beads): Ready() excludes infrastructure types to match bd ready
- 98e7ace fix(beads): chmod fail-soft and align test fixtures to 0700
- 7f9bac0 fix(beads): create .beads dirs with 0700 perms (#527)
- 9d61c7a fix(beads-k8s): harden pod security and add operational config
- 520a879 fix(config): include molecule beads in default EffectiveScaleCheck (#505)
- 4909e3b fix(exec): detect "no issue found" as ErrNotFound (#121)
- 0d68c36 fix(exec-beads): coerce non-string metadata values in beadWire (#409)
- c8d9639 fix(exec-beads): use native bd metadata in gc-beads-k8s (#367)
- 783d6f3 fix(gc-beads-bd): inherit GC_K8S_DOLT_* env vars for K8s pod support (#422)
- f352493 fix(hooks): add codex stale-file upgrade + doctor check
- 3ed2dfc fix(init): install opencode hooks by default
- 0325c31 fix(install): recreate ~/.local/bin/gc symlink after removing stale binary (#86)
- 5b832a0 fix(k8s): add startup grace period to stale pod detection (#111)
- e2f5a94 fix(k8s): detect immediate session death after startup
- c36c076 fix(k8s): harden prefix switch and custom types in gc-beads-k8s
- 584e939 fix(k8s): honor post-start cancellation
- 375e56c fix(k8s): remap GC_RIG_ROOT and BEADS_DIR in buildPodEnv (#417)
- 055708b fix(k8s): remap all city-scoped env vars and add path boundary check
- 6f251dd fix(k8s): send initial nudge after session startup (#404)
- 422400e fix(k8s): set ServiceAccountName on agent pods
- c39d97b fix(k8s): skip local Dolt init in initCityInPod (#466)
- 90fbf65 fix(mail): use city-level bead store for all mail
- 0612cb9 fix(mail): use shared city directory for cross-pod name resolution (#407)
- 315a7d9 fix(opencode): deliver none-mode startup prompts via nudge
- 40bf1c3 fix(prime): prefer GC_ALIAS over GC_AGENT for agent resolution (#372)
- 561881c fix(reconciler): bound scale_check concurrency and transition creating→active (#480)
- 52ae919 fix(refinery): exclude epics from work-finding query (#397)
- 3645419 fix(review): address PR #39 feedback
- 07326fa fix(session): allow named-session aliases in gc session new
- a854b5d fix(session): pass singleton owner to alias check in gc session new
- 89a4543 fix(supervisor): drop transient XDG runtime dir propagation
- 06ca5f7 fix(supervisor): preserve XDG runtime dir in service env
- 3c1fbf9 fix(supervisor): probe fallback socket paths before start and reload
- 38b4b90 fix(tmux): use robust nudge path during startup
- be4fcb9 fix: CachingStore query methods now include closed beads (#298)
- 24d5b97 fix: CachingStore.List blocks until prime instead of stampeding bd
- 0014f2a fix: MaybeGenerateTitleAsync returns done channel; CLI awaits before exit
- 610d229 fix: Tier C test isolation and mail title fallback (#303)
- f053237 fix: add --follow flag to gc convoy control for agent-scoped serve loop
- 438e623 fix: add --prefix flag to gc rig add for collision resolution
- d121636 fix: add BEADS_DOLT_AUTO_START=0 to gc bd and add test coverage
- d87ccaa fix: add CachingStore priming diagnostics
- 8cb928b fix: add ErrSessionInitializing sentinel, bump grace period to 240s
- f39f489 fix: add Linuxbrew paths to provider probe search dirs
- ef6c0b0 fix: add Probed field to prevent silent fingerprint-mode fallback
- 3ebb391 fix: add QueryOpt to CachingStore — callers opt into closed beads (#299)
- 95d7ee7 fix: add TraceReasonPoolExcess constant and rename trace sites
- 5fd73eb fix: add UserPromptSubmit mail check hook to Codex provider
- 53d14c6 fix: add bounded timeout and per-bead assertion to idle probe wait
- 6d7450a fix: add churn circuit breaker for context exhaustion death spirals (ga-cy4)
- 3a562d0 fix: add field sync guard and fix docstring for mergeProviderOverBuiltin
- d3b8866 fix: add flock to FileStore to prevent concurrent ID collisions
- 5f2bd8a fix: add missing cityName variable in doRigList (#186)
- d84fb44 fix: add searchpath unit tests and document glob ordering
- 298d573 fix: add test isolation guard rails for supervisor, registry, and dolt (#122)
- fbf5704 fix: add type field to PATCH /v0/bead/{id} handler
- 67af3cc fix: address review findings for --prefix flag
- c50a2ed fix: address review findings for exec metadata serialization
- 6c8f943 fix: address review findings for formulas monitor feed
- e2fff92 fix: address review findings for gc-beads-k8s hardening
- 9340182 fix: address review findings for gc.routed_to metadata routing
- 29f6f0e fix: address review findings for graph_workflows feature flag
- b6315a7 fix: address review findings for immediate nudge PR
- c3d5329 fix: address review findings for session submit intents
- 5c5c519 fix: address review findings for session submit intents
- 2bbb615 fix: address review findings in tmux InteractionProvider
- 0180788 fix: address review findings in tmux InteractionProvider
- be35c8b fix: adopt canonical runtime names for configured named sessions
- 8b2be4c fix: adopt pre-existing session beads as canonical named sessions
- b56f5ac fix: age out stale creating session beads (#182)
- a8705c4 fix: align bdTestCmd with cityForStoreDir and add boundary tests
- 0db32b8 fix: align drift detection template_overrides with prepareSessionStart (#211)
- 7702092 fix: align session reset config handling and add reconcile→wake e2e test
- 74503b7 fix: allow canRebindConfiguredNamedSession to adopt by session_name/alias
- b864cbb fix: allow closed configured named sessions to release session names (#136)
- 13eba4d fix: allow symlinks in ralph check script paths
- 5afd1ef fix: allow symlinks in ralph check script paths (#174)
- 38002be fix: apply PR #87 reconciler-side restart logic (upstream alexsiri7)
- 8a36854 fix: apply auto-title to gc session new, matching API behavior (#524)
- c0823e1 fix: apply default formula vars in tutorial flows
- 225151f fix: buildAttemptRecipe fully enriches root and children metadata
- fa0a4a7 fix: buildAttemptRecipe propagates child metadata and retry/ralph kind
- 72a31f4 fix: buildAttemptRecipe uses fully namespaced step_ref for attempt IDs
- 96f2f19 fix: buildAttemptRecipe uses scope kind for ralph iterations, task for retries
- f10f717 fix: cap WakeConfig by demand to prevent session wake stampede
- 7e40fdc fix: catch integration test compile errors in CI (#268)
- 1398c6f fix: centralize PreCompact handoff in base overlay, remove leaf overrides
- 8ed7dae fix: city providers inherit built-in defaults when command matches
- 7af49b9 fix: classify pool-excess sessions correctly in reconciler drain path
- 1123cde fix: clean up stale drift detection fallbacks
- 56d8e5e fix: clear assignee on work beads orphaned by dead sessions (#273)
- 0a63a2d fix: clear churn metadata on manual wake and dead productive sessions
- 6812f1a fix: clear session_key on restart-requested so handoff starts fresh (#87)
- d5bc3cb fix: clear stale resume metadata on crash recovery
- 877ec9a fix: clear stale session_key on unexpected death, add wait-hold + tests
- d0dd592 fix: clear stale session_key when session dies unexpectedly
- 04a5aad fix: clear started_config_hash in recordWakeFailure
- c8d348d fix: close drained pool session beads to unblock slot recycling (#209)
- 1291209 fix: close duplicate open session beads during sync
- 1fe98d0 fix: close workflow root before finalize bead to prevent stranded workflows (#237)
- c13f6d1 fix: closed legacy beads permanently block configured named session names
- 4e3c27d fix: collapse duplicate suspension tests, add propagation coverage
- 0085b0d fix: complete ContentHash coverage and add tests for fingerprint changes
- 536bc44 fix: complete EffectiveHQPrefix propagation to all callers
- d988165 fix: complete empty-type session bead repair coverage
- 051c320 fix: complete nil stderr guards across all session call sites
- 04a31cb fix: complete rig-aware Dolt routing for sling and store access
- f1f5676 fix: complete rig-aware resolution across all city CLI commands
- 9424106 fix: compose.expand fanout, session lifecycle, and generic graph endpoint
- ca5e35c fix: compositional metadata propagation across retry/scope/ralph
- 693cbe6 fix: config-drift drain storm from filesystem-probed CopyFiles (#461)
- ce16637 fix: correct quickstart link in installation instructions (#275)
- 3ae9fc3 fix: create controller.sock in supervisor path and wire convergenceReqCh
- 6773aec fix: cross-rig bd routing — gc bd passthrough and rig-aware graph
- 9627536 fix: dashboard serve skips pack expansion (#153)
- 12722a4 fix: default named_session mode to "always" for mayor
- 2f98349 fix: detect on-demand named session demand from gc.routed_to metadata (#269)
- ba13237 fix: detect stale session key in reconciler start path
- 6f0a282 fix: distinguish skipped workflow state
- 61419e3 fix: evaluate scale_check for named-session on-demand agents (#508)
- 1368d70 fix: exclude assigned beads from default scale_check count
- a38afe6 fix: exclude named sessions from derivePoolDesired
- a1e6f17 fix: exclude root node from formula show step count (#476) (#533)
- a1debb5 fix: exec beads create must serialize metadata for session bead roundtrip
- 08a1eed fix: expose named session status in session API (#164)
- e618268 fix: expose named session status in session api
- 2ee114a fix: expose status in PATCH /v0/bead/{id} handler
- fe720be fix: expose title in PATCH /v0/bead/{id} handler
- 5d145f9 fix: expose title/status/type in PATCH /v0/bead/{id} (#165)
- 6822763 fix: extend GC_ALIAS preference to all agent resolution paths
- 36a217e fix: extend nudge supersession to in-flight, add store-verified pruning
- b562752 fix: fall through to full init when database registration fails
- 8072102 fix: filter initial_message from template_overrides schema resolution
- 7b5fd18 fix: filter non-work beads from assigned work pipeline
- e15cdc6 fix: findLatestAttempt allows scope beads for ralph iterations
- 217987b fix: findLatestAttempt excludes control beads (scope-check, fanout, etc.)
- 304876f fix: findLatestAttempt uses step_ref matching instead of dep traversal
- 70190e0 fix: gate mail reply nudge behind store availability
- 513a1d1 fix: gate named sessions on effective suspension in compute_awake_set
- 794e3e7 fix: gate named-always sessions on effective suspension
- c190eaf fix: gate order dispatch on city-level suspend, use ParseQualifiedName, cover cross-rig pools
- 77da4fe fix: gc bd passes rig-level Dolt port to bd subprocess
- a31eda9 fix: gc init and gc rig add write .gitignore entries (#301)
- 20a93d1 fix: gc mail inbox times out (ga-ki2)
- b62808b fix: guard empty-config live-hash backfill and use POSIX ps args=
- 84d46c7 fix: handle legacy pool bead names in resolvePoolSlot (#638)
- d62f696 fix: handle non-integer scale_check output in named-session path
- 8bc4b2b fix: harden pre-start and supervisor shutdown (#248)
- 6215170 fix: harden session submit intents across runtimes (#453)
- 3e62a27 fix: harden supervisor city restarts
- 032f058 fix: harden supervisor city restarts (#168)
- ebf8526 fix: harden supervisor controller socket lifecycle
- 81e7e50 fix: harden tutorial golden session flows
- f2cd974 fix: honor fresh wake mode for session startup (#244)
- 0385576 fix: honor gc mail reply --notify
- 0975969 fix: honor provider-specific transcript formats
- 0a9096a fix: honor wake_mode on drain-ack
- 8266aee fix: implement InteractionProvider on tmux Provider adapter
- d55bc0d fix: include HQ city bead store in BeadStores() map
- b9ec4c2 fix: include HQ city bead store in BeadStores() map (#163)
- cb1dcfc fix: include city bead store in beadStoresForID lookup
- 2569592 fix: include city bead store in prefix routing and fallback lookup
- 22dcf5d fix: increase bd subprocess timeout from 30s to 120s
- ef0c143 fix: increase dashboard API client connection pool to prevent serialization
- 5fd70d8 fix: increase default exec order timeout from 60s to 300s
- c03a5be fix: inherit builtin OptionsSchema when city overrides provider by name
- f16517d fix: inject BEADS_DOLT_PORT in pool scale_check for rig-scoped agents
- 8f7bb36 fix: isolate tests from host GC_* session environment
- c58210e fix: keep assigned pool workers in desired counts
- d64e25a fix: keep namepool agents as pools (#249)
- dbeac76 fix: keep routed queue work out of assigned demand (#375)
- 72ba390 fix: keep supervisor city registrations on startup failures
- 2205e89 fix: keep supervisor city registrations on startup failures (#166)
- f85224a fix: lazy dolt port resolution in bd store runners
- d7c489c fix: lazy dolt port resolution in bd store runners (#161)
- 0b05fd8 fix: legacy bypass must check alias/identifier collisions, not just session_name
- f555b76 fix: lint fixes, schema regen, reopen-closed-bead in resolve path
- b999c6d fix: logical grouping recognizes .iteration. and .attempt. suffixes
- 974a68a fix: logical node uses attempt bead for session link on retry/ralph
- 6a71a91 fix: looksLikeBeadID rejects hierarchical IDs with dots
- b54cc70 fix: make --name work across all gc init paths, preserve default semantics
- 6b251bc fix: make all bd command runners lazy for dolt port resolution
- 0ee6c0b fix: make city startup non-blocking when session bead list times out
- c5c1f97 fix: make gc dashboard work out of the box (#467)
- 522ea2a fix: make workflow-control a named session to survive restarts
- 8ae1c07 fix: manual sessions bypass pool demand cap in wake evaluation
- 8207604 fix: manual sessions on implicit agents treated as config-eligible
- a0e5a2e fix: mark workflow roots in progress at launch
- 4a8bdb7 fix: match alias_history when adopting pre-existing named session beads
- 25ec98e fix: materialize named sessions from direct demand
- e8878d1 fix: merge provider option defaults into API-created agent sessions (#243)
- 8b2c082 fix: migrate durable waits off invalid wait bead type (#357)
- da24b25 fix: migrate maintenance scripts from GC_CITY_ROOT to GC_CITY and restore test isolation
- db4ff3e fix: migration hardening — adopt quad341's fixes + CI test suite (#229)
- 06fa0dc fix: mode=always named sessions override sleep suppression for WakeConfig
- ad56a00 fix: nil stderr causes segfault in session materialization
- b91235f fix: on_demand named sessions wake when Assignee matches their alias
- 909d2e3 fix: order dispatch applies graph workflow routing to step beads (#231)
- de9eb99 fix: pack-level patches match rig-scoped agents by name (#333)
- addb313 fix: parse wisp-root sling responses
- fa7b820 fix: parse wisp-root sling responses (#173)
- 79a1b0f fix: pass Claude auth env into managed sessions
- e52e18d fix: pass HOME, USER, XDG dirs to spawned agent sessions
- 50a0e1a fix: pass cityPath to newSessionProviderByName in read-only provider
- b92de84 fix: pass open status filter to doctor beads-store List calls (ga-kic)
- a84540f fix: pin city-scoped bd commands to city store
- 0f6018a fix: pin city-scoped bd commands to city store (#171)
- aff83fe fix: polecat→refinery handoff sets assignee for on-demand wake (#292)
- 9508f5b fix: pool-managed beads in creating state must enter desired state
- ef80ab8 fix: post-pool-removal fixups for drained state detection and derivePoolDesired
- 2363cc6 fix: prefer canonical named session beads in session name index
- 2a490c2 fix: prefer terminal logical workflow outcomes
- 0f944c0 fix: prepend provider.Args to title generation command
- 061c126 fix: preserve attached wake reason in session list
- 4c46e8f fix: preserve explicit retry child routes
- 8ce27a6 fix: preserve formula bead priorities and edits
- 2b502e5 fix: preserve formula bead priorities and edits (#178)
- 9af96b9 fix: preserve pending-create wake for named sessions (#381)
- cd64df4 fix: preserve pool semantics for configured named sessions
- 712b46b fix: preserve wake-reason provider interfaces
- f234276 fix: promote graph_workflows → formula_v2 in LoadWithIncludes
- 6ebb7c1 fix: propagate Dolt user/password through all Go env builders
- 43c7a44 fix: propagate GC_K8S_SERVICE_ACCOUNT to shell providers
- d43ff5c fix: propagate gc.routed_to to molecule step beads in pool sling (#219)
- 4b30ebe fix: propagate named-session assignee demand to poolDesired
- 0c3aa81 fix: propagate wake_mode=fresh identity clearing to completeDrain, gate drain-ack on stop success
- b6cb1df fix: provider-aware session log reading + Codex JSONL reader
- a2a642f fix: quote settings path, fix hook staging for custom work_dir agents
- 2f646da fix: reap stale nudges and supersede duplicates after handoff failures (#543)
- 63a9135 fix: reconciler applies template_overrides before config-drift hash
- c66d1fd fix: recover persistent on-demand named sessions (#311)
- aaa9149 fix: recover stale convergence active wisps (#302)
- e4227db fix: recover standalone rig worker reconciliation
- 857051a fix: reload config immediately on watch events
- 238f89d fix: reload session bead snapshot after sync for fresh named session metadata
- 2db620a fix: remove BEADS_DIR override from bd store runners
- 86c40ba fix: remove GC_DOLT_PORT from config fingerprint to prevent restart-drift
- ac0ff16 fix: remove MaxActiveSessions from workflow-control agent
- def465f fix: remove backing.List fallback from CachingStore.ListByMetadata
- 38817ae fix: remove duplicate DELETE /v0/workflow route registration
- 9c24aa6 fix: remove duplicate template_overrides application in reconciler
- 4391ae2 fix: remove nonexistent --allow-stale flag from BdStore.Purge
- 905b918 fix: remove personal formulas from examples (#195)
- 938172c fix: remove pool_slot wake gate that blocked all sessions
- 2e099e9 fix: remove redundant embedded field selector (staticcheck QF1008)
- 9a9f819 fix: remove vendored contracts and fix duplicate struct fields from rebase (#197)
- becc94f fix: reopen closed named session beads on restart (supersedes PR #204)
- 115f87e fix: repair empty-type session beads in resolution paths (#335)
- d6639ed fix: replace Ctrl-C drain with deferred GC_DRAIN_ACK + idle recovery (#295)
- e266016 fix: replace PreCompact gc prime with gc handoff in Claude default hooks
- dc5ccbe fix: replace all-or-nothing pack guard with log suppression
- b151beb fix: replace process-global dolt env vars with per-city config map
- 8f302f4 fix: replace wall-clock polling with WaitGroup sync in idle drain test (#497)
- 079496a fix: resolve all golangci-lint warnings (#126)
- ab54216 fix: resolve all lint warnings and test failures for merge
- 246e5da fix: resolve lint warnings and pre-existing test failures (#190)
- c1f1845 fix: resolve macOS symlink paths in test assertions (#30)
- 56f5c7c fix: resolve pre-existing macOS test failures
- cf90c82 fix: resolve rebase conflict and address review findings
- 3ff5e90 fix: resolve rig store from city routes instead of returning city store (#234)
- 15458dd fix: resolve workflow stores from routed bead prefixes
- d8b2038 fix: respect dolt.auto-start=false config, don't overwrite port file (#327)
- 231204b fix: restore MaxActiveSessions=1 on workflow-control, let named session augment
- 613af14 fix: restore named session materialization in buildDesiredState
- 91530ac fix: restore opencode startup prompts (#529)
- ad0bdd6 fix: restore orders v2 branch compatibility
- 5009e1c fix: retry CachingStore prime up to 3 times on bd list timeout
- 3732381 fix: retry without resume flag when session key is stale
- bf1360c fix: revert linter damage to ComputeAwakeSet, add assigned-work tests
- 325b645 fix: rig skill uses canonical rigs/ path and asks before creating (#189)
- 6005142 fix: rotate session_key on restart instead of clearing to empty
- 27cb8dc fix: route all POST /v0/sling paths through gc sling CLI
- dc03724 fix: route all POST /v0/sling through gc sling CLI (#167)
- 3bb1055 fix: route bead id lookups by prefix
- 4b13357 fix: route bead lookups by prefix (#179)
- 7909e98 fix: route graph workflows in gc order run (#235)
- 1af897c fix: route rig bugflow launches to the correct bead store (#317)
- 07cce22 fix: scan packs/ and PackDirs for orders in CLI and API
- 223dcea fix: scope orphan sweep to startup-only, use label constant everywhere
- 9ccb158 fix: separate PromptFlag from PromptSuffix for correct long-prompt handling
- cb761cf fix: session index keyed by bead ID for assignee lookup
- 3e39bc1 fix: session kill accepts "awake" state and checks provider liveness
- ca86878 fix: sessions with assigned work stay awake regardless of scaleCheck
- e537875 fix: set BEADS_ACTOR for session traceability (#162)
- f249945 fix: set BEADS_ACTOR to session bead ID for traceability
- 95e06d9 fix: set BEADS_ACTOR to session name for bead traceability
- 4f1b9cf fix: set BEADS_DIR in bd store runners to prevent parent dir walk
- 3066fc3 fix: set BEADS_DIR to store dir in bd command runner
- e13f0a7 fix: ship default overlays for example packs (#42)
- 36e0839 fix: show supervisor city init state in status
- 37f0455 fix: show supervisor city init state in status (#134)
- 5645614 fix: simplify runExternal to remove dead no-op check
- 23208a0 fix: skip asleep ephemerals in pool bead selection, remove dependency gate from ComputeAwakeSet
- b39d087 fix: skip config-drift check before started_config_hash is written (#127)
- 7e0f11d fix: skip interrupt for pool-managed sessions in shutdown and API stop
- 38ade26 fix: skip mode=always named sessions in capWakeConfigByDemand
- c10cde6 fix: skip orders targeting suspended rigs (#478)
- 6aad515 fix: skip session and message beads in idle nudge work lookup
- 075b742 fix: skip suspended rigs in gc doctor health checks (#262)
- 8ec33dc fix: sling routing no longer skips retry/ralph control beads
- 95e9490 fix: spawn pool workers for gc sling routed beads with no assignee (#319)
- 8d317cd fix: stabilize rc gate acceptance and integration lanes (#636)
- 559f02c fix: stabilize runtime core wiring (#255)
- ab1a7a3 fix: stamp pending create claim on pool session beads
- 466a006 fix: stamp pool_slot metadata for namepool-themed pool instances
- d112a80 fix: stamp routing labels on Attach-created attempt beads
- 7b41d1f fix: stop pool-managed sessions immediately during shutdown
- 490be00 fix: stop template_overrides write from clobbering initial_message (#247)
- 0d4142a fix: strengthen option_defaults e2e tests per review findings
- 9005d79 fix: substitute graph route targets before binding
- 32ac71c fix: suppress bd Dolt auto-start in gc-managed environments
- 1d4d934 fix: suppress errcheck for os.RemoveAll in test cleanup
- 5c8261d fix: suppress git progress output during pack fetch (#141)
- b9373f0 fix: sweep orphaned order-tracking beads on controller startup (#526)
- 232c639 fix: sync custom bead types and prefix across all providers (#421)
- 22b2577 fix: sync workflow live capability fixture
- 174411c fix: tiered digit heuristic for bead ID suffix validation
- 82c636e fix: tighten tutorial03 session log resolution
- e56b990 fix: treat drained sessions as explicit-restart dormants (#181)
- 2f8f063 fix: treat limit=0 as no limit in beads list pagination
- b10a086 fix: treat workflow routing as intent only
- addeb2d fix: update gc.routed_to on polecat→refinery handoff
- c554cee fix: update golden test string and gastown pack for always mode
- d547ed0 fix: update orders timeout test to match 300s default
- c8a20c5 fix: update probe PATH test to include Linuxbrew dirs
- 80603c2 fix: update test for HOME passthrough after PR #272
- 9de8126 fix: update txtar bead IDs after named session materialization
- 50188e3 fix: use *string for Agent.DefaultSlingFormula to preserve explicit clears
- 296651c fix: use CachingStore-wrapped rig stores in collectAssignedWorkBeads
- 5a78ec5 fix: use absolute path for --settings flag in claude entrypoint
- 671ffca fix: use canonical bead's session_name as desiredState key for named sessions
- 32a2816 fix: use correct beads v1.0.0 env var names for Dolt connection
- ab32bf2 fix: use created_at in review approval checks
- d8b2b61 fix: use gc rig list --json for health metadata discovery
- 08f74a5 fix: use immediate nudges for user session sends (#358)
- 86fdcc9 fix: use isPoolManagedSessionBead, return ErrPoolManaged from StopTurn
- 2779fe2 fix: use no-assignee in default active scale_check
- 9f57139 fix: use tracks for workflow ownership edges (#359)
- ddcc8a4 fix: use type "molecule" for formula root beads instead of "epic"
- eaae343 fix: use valid bead type for nudge queue beads (ga-bwl) (#253)
- 4b9c2fb fix: use window activity for tmux last-active (#240)
- 860ce2f fix: widen bead ID suffix limit from 4 to 5 chars (#491)
- 8087e09 fix: wire WorkSet into ComputeAwakeSet production wake path
- b9b336e fix: wire [dolt] config to runtime, unblocking cross-machine beads
- 4d922ca fix: workflow delete handler scopes to requested store only
- d0625bd fix: workspace volume mount and tar ownership in K8s provider (#93)
- f137f8f fixup: adapt IsPool() to isMultiSessionCfgAgent() for current main
- a30281d gc: wire pool session lifecycle into reconciler
- da87806 hooks: upgrade stale claude and cursor compaction hooks
- 5a2a77d perf: add CachingStore.PrimeLabel for fast startup pre-prime
- 1cd78de perf: add dedicated formulas monitor feed
- 9c2de42 perf: batch workflow delete into single bd subprocess call
- 5690219 perf: cache session log file paths to avoid repeated filesystem scans (#187)
- 58065eb perf: defer convergence reconcile to after "City started"
- f8bcef2 perf: direct SQL for workflow snapshots (39s → 190ms)
- 127b54e perf: exclude closed beads from List() and cache prime
- 6da59a3 perf: reuse session list provider setup state
- 620fa65 perf: serve status-filtered List from partial cache, defer convergence
- a63cd53 perf: speed up gc session list from ~22s to ~2.7s
- 3e73319 perf: unify session provider routing for session list
- e03de1d perf: use in-memory seq for FileRecorder.LatestSeq instead of scanning file
- e09eb26 prompt: add handoff to foreman prompt (#284)
- 1b0da40 prompt: add handoff to mayor prompt (#283)
- bf6ff09 refactor(extmsg): use labels instead of custom bead types (#266)
- ce72d35 refactor: add launch aliases to orders v2 contract
- 8ec76d4 refactor: drive pool demand from assigned work and scale checks
- 290ac6a refactor: make orders launch the canonical contract name
- e257830 refactor: migrate example pack.toml files from [agent.pool] to flat fields
- 8b531d0 refactor: move eng-internal docs to engdocs/
- 7d20cd8 refactor: remove PoolConfig and IsPool from config and production code
- c683af3 refactor: remove SQL fast paths, use CachingStore for all bead reads
- 6b20bf6 refactor: remove dead config_hash metadata field
- aeb5f9e refactor: rename workflow → convoy/dispatch across codebase
- f5046db refactor: use bd create --graph instead of bd graph-apply
- 25faa72 revert: remove idle recovery from reconciler tick (#309)
- 3bc34e0 revert: remove idle-session nudger for assigned work (#468)
- 9a6eeff review: port metadata to gc-beads-br, clarify test scope
- 81ef67b style: fix gofumpt alignment in supervisor test