Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
339 commits
Select commit Hold shift + click to select a range
d25e715
ci: stabilize and parallelize Blacksmith proof
julianknutsen Apr 30, 2026
61fcff4
test: stabilize Blacksmith proof followups
julianknutsen Apr 30, 2026
518d2ea
test: stabilize merged Blacksmith proof CI
julianknutsen Apr 30, 2026
096b8e5
ci: use go.mod toolchain in split checks
julianknutsen Apr 30, 2026
17f4383
ci: route Blacksmith by contributor allowlist
julianknutsen Apr 30, 2026
019f0f3
ci: maximize RC gate parallelism
julianknutsen Apr 30, 2026
dd76f6d
test: harden CI integration flakes
julianknutsen Apr 30, 2026
7a6d992
ci: remove PR worker inference placeholder
julianknutsen Apr 30, 2026
87a4172
test: harden sharded integration gates
julianknutsen Apr 30, 2026
e37f5b3
test: harden graph integration flakes
julianknutsen Apr 30, 2026
2351e78
test: isolate bd init side-effect regression
julianknutsen Apr 30, 2026
d7814f0
test: allow config drift deferral in e2e
julianknutsen Apr 30, 2026
027c44d
test: accept resumed retry recovery evidence
julianknutsen Apr 30, 2026
a9e9e84
Merge pull request #1500 from gastownhall/ci/blacksmith-proof-20260429
julianknutsen Apr 30, 2026
283a82d
fix(profiles): copilot uses PromptMode "none" for 1.0.x CLI compatibi…
tesdal Apr 30, 2026
d4046d7
perf(reconciler): avoid broad tick-time store scans
julianknutsen Apr 29, 2026
b20950b
fix: avoid stale incomplete dependency cache reads
julianknutsen Apr 30, 2026
06165c5
fix(session): stop runtimes before retiring session beads
julianknutsen Apr 30, 2026
80399f2
fix(session): preserve pending pool session beads
julianknutsen Apr 30, 2026
22de50e
fix: keep shipped pack routes binding-qualified (#1511)
julianknutsen Apr 30, 2026
5315244
fix(dolt): quarantine retired replacement databases
julianknutsen Apr 30, 2026
e78fc6d
fix: ignore foreign bead cache events
julianknutsen Apr 30, 2026
337a0cc
fix(reconciler): stabilize startup ordering and dolt port retry
julianknutsen Apr 30, 2026
1355602
fix(session): skip orphan release on partial work snapshots
julianknutsen Apr 30, 2026
388d011
test: wait for provider-aware order dispatch
julianknutsen Apr 30, 2026
7b6c540
Merge pull request #1540 from gastownhall/adopt-pr/ga-71ycl-pr-1455
julianknutsen Apr 30, 2026
7b3b913
fix: add auto handoff for precompact
julianknutsen May 1, 2026
4c24172
fix: preserve named-session handoff guards
julianknutsen May 1, 2026
cea7b34
Adopt PR #1454: harden hook inject behavior
julianknutsen May 1, 2026
be4dd2c
fix(events): tail event log on recorder startup (#1563)
julianknutsen May 1, 2026
9df8e2f
fix(session): target stored log transcript lookup
julianknutsen May 1, 2026
25232ad
Merge pull request #1568 from gastownhall/adopt-pr/ga-uezvir-pr-1552
julianknutsen May 1, 2026
7779223
fix: require canonical routed_to labels in example pools
julianknutsen May 1, 2026
d776e06
fix: replace select{} with bounded poll loop in doRuntimeRequestRestart
boylec May 1, 2026
7e24b2b
test(sling): guard rig-scoped inline bead creation for bd provider (#…
sjarmak May 1, 2026
fac9a65
fix(sling): config-aware bead-id parsing for hyphenated rig prefixes …
sjarmak May 1, 2026
d55c9c7
fix(beads): surface PartialResultError from BdStore.List/Ready (#1413)
quad341 May 1, 2026
a7beb3f
perf(session): collapse named-session resolution into one List call (…
quad341 May 1, 2026
12d014e
fix(dolt): cleanup --force routes through running server (#1549) (#1559)
sjarmak May 1, 2026
20d49d9
fix: preserve partial bead outage semantics
julianknutsen May 1, 2026
d096efd
Follow-up for #1237: City init bridge architecture invariants (#1574)
julianknutsen May 1, 2026
f1be6cb
ci: make scorecard workflow best effort
julianknutsen May 1, 2026
6e658c1
ci: dispatch label-requested PR suites (#1572)
julianknutsen May 1, 2026
6b5d912
fix(formula): route root-only formulas as runnable wisps
julianknutsen May 1, 2026
b20a8d5
fix: attached sessions never restart on config drift (ga-3gp)
itsthatriver Apr 22, 2026
2d9c9bd
chore: remove auto-exported issues.jsonl (ga-3gp)
itsthatriver Apr 22, 2026
71752b1
chore: drop issues.jsonl from tracking (ga-3gp)
itsthatriver Apr 22, 2026
5f16f0b
fix: handle TOCTOU race in TestCollectReparentedGroupMembers (ga-3gp)
itsthatriver Apr 22, 2026
bb5fc93
test: cover attached-session no-restart path for config drift
itsthatriver Apr 23, 2026
0d0538c
fix: make attached config drift deferral sticky
julianknutsen May 1, 2026
a9cc6d8
fix: guard cache against stale bead hook events
julianknutsen May 1, 2026
5bb0353
fix: preserve stores across equivalent runtime reloads
julianknutsen May 1, 2026
d957ca5
fix: ignore stale runtime config snapshots
julianknutsen May 1, 2026
90ef412
Merge pull request #1108 from thejosephstevens/polecat/ga-3gp-v2
julianknutsen May 2, 2026
46cf272
fix(bd): drop slow 'bd config set' calls in init that overran 30s tim…
quad341 May 2, 2026
0305322
fix(doctor): warn on bloated worktrees and prune safe nested ones (#1…
sjarmak May 2, 2026
65c8379
fix(dolt): replace fatal SIGQUIT diagnostic with non-fatal protocol (…
sjarmak May 2, 2026
30eb4a0
fix: address PR-review follow-up findings (#1588)
julianknutsen May 2, 2026
4be4d44
fix(workflow): close source chains across stores (#1519)
julianknutsen May 2, 2026
69eda20
fix(beads): verify with backing.Get before synthesizing bead.closed
quad341 May 2, 2026
9f59b5b
fix(session): target named session mail lookups (#1514)
julianknutsen May 2, 2026
176065b
perf(dispatch): reduce control dispatcher store scans (#1597)
julianknutsen May 2, 2026
3b586f2
fix(session): skip terminal named-session reopen candidates (#1601)
julianknutsen May 2, 2026
45e4ca1
fix: make async event results reliable
csells May 2, 2026
732b330
perf(session): derive start concurrency from wake budget
julianknutsen May 2, 2026
c457b55
fix(dispatch): use read-only control work queries (#1605)
julianknutsen May 2, 2026
7f57243
perf(mail): route session recipients with targeted lookups (#1457)
julianknutsen May 2, 2026
a086e80
test: guard #774 pool worktree uniqueness with table-driven regression
quad341 May 2, 2026
116dc92
fix: drain order dispatch goroutines before controller exit (#991) (#…
sjarmak May 2, 2026
5ff4de1
fix(maintenance): orphan-sweep walks every rig, not just HQ (#1391) (…
sjarmak May 2, 2026
63b43b1
docs: close agent-local append_fragments gap (#671)
sjarmak May 2, 2026
a531720
fix(beads): keep filestore reads fresh across handles
osamu2001 May 2, 2026
8d1c4b9
fix(gc bd): diagnostic error when scope resolves to non-bd provider
quad341 May 2, 2026
a825cf5
perf(mail): multi-id batch archive/delete with per-id already-archive…
quad341 May 2, 2026
936dea1
feat: complete session/rig/order args dynamically (#1092)
quad341 May 2, 2026
11aae92
ci: restrict blacksmith usage to approved PRs
julianknutsen May 2, 2026
19d815c
ci: bootstrap allowed PR policy on blacksmith
julianknutsen May 2, 2026
9f76f6d
ci: keep live contract rest shards isolated
julianknutsen May 2, 2026
65fae58
test: allow live contract sse heartbeat window
julianknutsen May 2, 2026
16b790f
test: wait for doctor listener readiness data
julianknutsen May 2, 2026
052e3aa
Merge pull request #1618 from gastownhall/chore/blacksmith-ci-gates
julianknutsen May 2, 2026
4cf383a
test(dispatch): cover source-chain finalize retry guards
julianknutsen May 2, 2026
7e1d36d
fix: scope assigned work demand to reachable stores (#1544)
julianknutsen May 2, 2026
90f5210
fix(reconcile): surface bd stdout error detail + raise reload accept …
pae23 May 2, 2026
67de5b4
fix(packs): replace deprecated `gc nudge <target>` with `gc session n…
sjarmak May 2, 2026
2852c76
fix(spawn): prepend gc bin dir to agent PATH so bare 'gc' resolves co…
hexsprite May 3, 2026
35a26df
test(reconciler): pin post-churn re-wake invariant for named-always s…
sjarmak May 3, 2026
5d30148
fix(gastown): use gc handoff --auto in PreCompact hooks (#1629)
julianknutsen May 3, 2026
b6c51f6
fix(dolt/health): probe a user db so __gc_probe stops hosting stats (…
quad341 May 3, 2026
6c5bcb4
fix(witness): orphan-recovery uses session-ID liveness, not template …
boylec May 3, 2026
c1abb32
test: stabilize main CI smoke flakes (#1630)
julianknutsen May 3, 2026
b53658f
fix(bd): route city source bead lookups from rig cwd (#1626)
julianknutsen May 3, 2026
1c29ea2
fix(dispatch): propagate source-chain terminal metadata (#1627)
julianknutsen May 3, 2026
b43a6b7
fix: stabilize copyfile fingerprints (#1624)
julianknutsen May 3, 2026
ab4d341
fix(beads): guard stale hook events; harden auto-port retry test (#1582)
julianknutsen May 3, 2026
c1d8e2e
perf(session): bound alias resolve list calls via metadata filters (#…
quad341 May 3, 2026
e2c4db7
test(cmd/gc): clear inherited GC_BEADS env in city.toml test writers …
quad341 May 3, 2026
3fb546b
test: codify per-bead SetMetadataBatch isolation on transient EOF (#6…
quad341 May 3, 2026
56fac6d
fix(dispatch): close orphaned workflow finalizers instead of crashing…
hexsprite May 3, 2026
a4ccb53
fix(config): clean up provider defaults (#1515)
julianknutsen May 3, 2026
15f89e7
fix: advance event cursors for exec orders (#1619)
julianknutsen May 3, 2026
f12a96d
fix: block nudge poller test binary recursion (#1634)
julianknutsen May 3, 2026
88bc729
docs: rename Agent Protocol primitive to Session in architecture docs…
sjarmak May 3, 2026
5200d9e
dolt: refuse to run backup sync against dolt < 1.86.2 (#1206)
quad341 May 3, 2026
01960dd
perf(mail): cap injected unread message previews (#1309)
kab0rn May 3, 2026
bb1e867
fix(orders): surface rig-scope mismatch in [[orders.overrides]] error…
sjarmak May 3, 2026
4649e71
fix(session): commit async start result when session has advanced to …
quad341 May 3, 2026
0a4109d
fix(workspacesvc): GC_SERVICE_URL_PREFIX includes /v0/city/<name> seg…
sjarmak May 3, 2026
747fb93
feat(events): add subject/until/limit filters and count helpers (#1192)
kab0rn May 3, 2026
b31fd6c
fix: add respawn circuit breaker for named sessions (#563)
quad341 May 3, 2026
28481fc
fix: route fanout fragment controls (#1635)
julianknutsen May 3, 2026
155029c
fix(reconciler): roll back stale pending-create beads in desired bran…
quad341 May 3, 2026
bac1e12
fix(nudge): treat ambiguous bead IDs as missing; prune expired entrie…
cwalv May 3, 2026
523c8b9
fix(session): release named-session alias on terminal-ish state (ga-u…
quad341 May 3, 2026
f1d1079
fix(session): clean dead runtime artifacts (#1598)
julianknutsen May 3, 2026
5252c90
Support explicit tmux session transport (#1633)
julianknutsen May 3, 2026
e0ee3d8
fix(supervisor): preserve managed sessions across supervisor restart …
sjarmak May 3, 2026
4fe2499
fix: include builtin pack orders in controller config reload (gc-4624…
boylec May 3, 2026
ff5d7ea
harden(hook): keep claim flow non-intrusive (#1517)
julianknutsen May 3, 2026
d4dd787
fix: validate fanout fragment routes on resume (#1638)
julianknutsen May 3, 2026
0d762d6
feat(dolt): harden gc dolt-cleanup stale database workflow (#1548)
quad341 May 3, 2026
7868e63
fix: recover stale order tracking dispatches (#1637)
julianknutsen May 3, 2026
cd41476
perf(controller): use cached demand read model (#1600)
julianknutsen May 3, 2026
482bf4f
test: stabilize phase0 continuity wake assertion (#1641)
julianknutsen May 3, 2026
80265da
fix(gastown): add city-level pack.toml (#1280)
plavering May 3, 2026
2fc813e
Support OpenCode with Gemini worker conformance (#1628)
julianknutsen May 3, 2026
8ed1001
fix(beads): kill bd subprocess trees on timeout (#1639)
julianknutsen May 3, 2026
dc2bbb7
test: cover stale local test gaps (#1642)
julianknutsen May 3, 2026
b56c418
Skip test-pattern DBs in reaper + jsonl-export maintenance scripts (#…
quad341 May 3, 2026
945ffc5
fix(maintenance): qualify dog pool refs + handle city-qualified assig…
vbtcl May 4, 2026
f8f2b34
fix(tmux): drop if-shell guard from bind-key.sh; per-city socket make…
A3Ackerman May 4, 2026
027b2bf
reconciler: stop reporting outcome=success when Start outlasts startu…
quad341 May 4, 2026
d49ec2a
fix(gastown/polecat): resolve refinery target via $GC_RIG, not litera…
lambdabaa May 4, 2026
34e0fb6
test: stop managed dolt in controller tests (#1659)
julianknutsen May 4, 2026
a82268b
fix(sling): consult bead store before heuristic when classifying bead…
cwalv May 4, 2026
dfe314b
fix: protect active test dolt cleanup roots (#1660)
julianknutsen May 4, 2026
481ea61
fix(beads): add Ready query parameters (#1665)
julianknutsen May 4, 2026
8ee5a42
fix(controller): move control-dispatcher trace under .gc/runtime/
May 4, 2026
c8a24d8
fix(mail): cache gc:session enumeration across identity + recipient r…
May 4, 2026
4a74c6c
fix(session): treat instance_token as authoritative for stale async s…
quad341 May 4, 2026
985efba
fix: detect rate-limit screen before crash recovery (#1411)
jbongaarts May 5, 2026
f761168
fix: subtract in-flight pool creates from scale demand (#1676)
julianknutsen May 5, 2026
bf4eb53
Fix ambiguous Codex session log resolution (#1686)
julianknutsen May 5, 2026
def74a2
fix(reconciler): use pending_create_started_at for staleCreatingState…
quad341 May 5, 2026
97e1ee4
fix: prevent dolt thundering herd on restart (ga-9nk) (#1111)
itsthatriver May 5, 2026
0fdfe36
fix(dispatch): avoid control bead starvation (#1651)
julianknutsen May 5, 2026
cddc5b9
fix: address PR 1513 post-merge review gaps (#1669)
julianknutsen May 5, 2026
447e35b
fix(api): server-side wait for sling-target visibility on POST /agent…
cwalv May 5, 2026
ce9d949
fix(session): avoid rolling back stopped pending creates (#1666)
julianknutsen May 5, 2026
b73124a
fix(session): preserve never-started pending creates (#1667)
julianknutsen May 5, 2026
3a316d6
Fix session startup timeout classification (#1675)
julianknutsen May 5, 2026
964a439
test: tighten standalone bd and multi-rig coverage (#1696)
julianknutsen May 5, 2026
de7acac
fix: resolve multi-dash sling beads from source store (#1668)
julianknutsen May 5, 2026
18d4785
test(dispatch): cover ralph pending dependency repair
julianknutsen May 5, 2026
0b37ccf
fix: address named session circuit breaker review findings (#1700)
julianknutsen May 5, 2026
7c892b9
fix(session): honor pending create start lease (#1702)
julianknutsen May 5, 2026
5a7dbdd
fix: post-merge remediation for PR 1586 (#1703)
julianknutsen May 5, 2026
a173472
fix(api): harden agent visibility recovery (#1698)
julianknutsen May 5, 2026
d55c5e3
fix: address PR 1111 post-merge findings (#1701)
julianknutsen May 5, 2026
bde2223
test: cover configured file-provider bd shim (#1705)
julianknutsen May 5, 2026
99b3c8b
Fix PR 1185 post-merge findings (#1664)
julianknutsen May 5, 2026
66fb414
Fix dolt cleanup post-merge safety gaps (#1649)
julianknutsen May 5, 2026
23b1e40
fix(controller): preserve cached demand correctness (#1646)
julianknutsen May 5, 2026
80d6a67
Post-merge fix: Dolt cleanup force blockers (#1711)
julianknutsen May 5, 2026
dfc53b3
test: clear stale e2e no-start reports
julianknutsen May 5, 2026
50b04c8
fix: keep assigned workflow sessions waking (#1704)
julianknutsen May 5, 2026
2a363e3
Merge pull request #1699 from gastownhall/gc/post-merge/pr-1651-0fdfe36
julianknutsen May 5, 2026
8a83636
fix(session): expire pending_create_claim once create lease elapses (…
hexsprite Apr 29, 2026
0eec20c
test(session): cover pending create projection fallback
hexsprite Apr 30, 2026
1050532
test: cover pending-create pool capacity demand
julianknutsen May 5, 2026
0ea311a
fix(maintenance): rewrite gate-sweep.sh to use real bd primitives (#1…
sjarmak May 5, 2026
c658f58
fix(session): expire stale pending-create preserve path
julianknutsen May 5, 2026
3512d45
fix(controller): harden control-dispatcher trace runtime path
julianknutsen May 5, 2026
02775bd
fix(mail): separate shared and command session caches
julianknutsen May 5, 2026
877fdd0
fix(controller): tighten control-dispatcher trace diagnostics
julianknutsen May 5, 2026
38108a3
Merge pull request #1467 from hexsprite/fix/1460-stale-creating-pendi…
julianknutsen May 5, 2026
ca3dcf3
test: assert pending-create pool demand trace
julianknutsen May 5, 2026
4d9f35b
Merge pull request #1692 from quad341/builder/ga-q6ct-1
julianknutsen May 5, 2026
bc73f8b
fix(controller): honor trace overrides and surface warnings
julianknutsen May 5, 2026
3456b3f
Merge pull request #1718 from gastownhall/test/pending-create-pool-ca…
julianknutsen May 5, 2026
8eb967f
fix(controller): route control traces through dispatcher hooks
julianknutsen May 5, 2026
447e2d0
fix(reconciler): preserve assigned-work drain recovery
julianknutsen May 5, 2026
5a40e5f
fix(reconciler): cancel acked orphan drains with assigned work
julianknutsen May 5, 2026
060f95b
fix(controller): dedup trace warnings across nested dispatch
julianknutsen May 5, 2026
dc7f26a
fix(maintenance): jsonl-export spike detection runaway (#1547)
sjarmak May 4, 2026
b0f43ab
fix(maintenance): harden jsonl-export scrub and halt commits
julianknutsen May 5, 2026
2a250c6
Merge pull request #1723 from gastownhall/fix/pr-1717-assigned-drain-…
julianknutsen May 5, 2026
b753e1c
fix(controller): preserve trusted trace runtime roots
julianknutsen May 5, 2026
9d18cc2
fix(maintenance): harden jsonl-export state recovery
julianknutsen May 5, 2026
a0323e5
Fix gc status and doctor hangs (#1672)
danzko May 4, 2026
2832a2c
fix: keep status runtime-name resolution without provider snapshot
julianknutsen May 5, 2026
b26a131
Merge pull request #1672 from danzko/fix/status-doctor-hangs
julianknutsen May 5, 2026
b7ee4f0
fix(controller): compute trace defaults from trusted runtime env
julianknutsen May 5, 2026
6bf897a
fix(maintenance): persist pending jsonl archive recovery
julianknutsen May 5, 2026
26d0c9e
fix(controller): propagate trusted trace defaults to sessions
julianknutsen May 5, 2026
798a59a
fix(maintenance): recover deferred jsonl archive pushes
julianknutsen May 5, 2026
81c40d0
fix(controller): reset trace warning scope per command
julianknutsen May 5, 2026
a1d9426
fix(maintenance): recover deferred jsonl push fallbacks
julianknutsen May 5, 2026
ade636f
fix(maintenance): preserve jsonl alert retry state
julianknutsen May 5, 2026
b70a77c
Merge remote-tracking branch 'origin/main' into fix/jsonl-export-spik…
julianknutsen May 5, 2026
7c49ded
fix(cmd/gc): clear status lint regressions
julianknutsen May 5, 2026
f3e3056
test(acceptance): order rig cleanup after city stop
julianknutsen May 5, 2026
293891b
fix(maintenance): restore portable pending alert retries
julianknutsen May 5, 2026
835b89b
fix(controller): harden legacy control trace handling
julianknutsen May 5, 2026
039757f
test(pathutil): avoid builtin shadowing in symlink test
julianknutsen May 5, 2026
7bc6d61
fix(maintenance): recover wrong-shape state and failed exports
julianknutsen May 5, 2026
0e2e6f2
Merge remote-tracking branch 'origin/main' into fix/control-dispatche…
julianknutsen May 5, 2026
d441f0e
fix(cmd-gc): remove stale lint-only status wrappers
julianknutsen May 5, 2026
888d5bf
fix(maintenance): recover bootstrap and legacy state replay
julianknutsen May 5, 2026
fc31a7d
Merge pull request #1730 from gastownhall/adopt-pr-1684-fixups
julianknutsen May 5, 2026
3a21c7e
Merge remote-tracking branch 'origin/main' into fix/jsonl-export-spik…
julianknutsen May 5, 2026
8f97cac
Merge pull request #1673 from sjarmak/fix/jsonl-export-spike-runaway
julianknutsen May 6, 2026
62035cf
fix: treat scale check failures as partial demand
julianknutsen May 5, 2026
55df69a
fix: scope partial scale-check retention
julianknutsen May 5, 2026
7708cc0
Merge pull request #1737 from gastownhall/fix/scale-check-partial-dem…
julianknutsen May 6, 2026
fca9d5e
fix: retry missing required output json (#1733)
julianknutsen May 6, 2026
a918d2a
fix: unblock RC test sharding (#1745)
julianknutsen May 6, 2026
9241953
fix: retry invalid contracts and scope fanout fragments (#1742)
julianknutsen May 6, 2026
87c75cf
fix: harden retry contracts and fanout resume
julianknutsen May 6, 2026
e7fe383
Merge pull request #1747 from gastownhall/fix/retry-invalid-worker-co…
julianknutsen May 6, 2026
20a657a
fix: preserve pool slot identity for live sessions
julianknutsen May 5, 2026
ed91239
fix: maintain pool identity recovery invariants
julianknutsen May 6, 2026
4fec0a2
Merge pull request #1749 from gastownhall/fix/pool-slot-identity-stab…
julianknutsen May 6, 2026
cb58b13
fix: address RC mac sharding and database filtering (#1748)
julianknutsen May 6, 2026
e8f2f47
fix(maintenance): stop reaper/jsonl-export from storming Dolt (#1706)
eric-jones May 6, 2026
1abb955
ci: throttle RC real inference jobs (#1750)
julianknutsen May 6, 2026
6dd911f
fix(maintenance): make reaper adoption safe
julianknutsen May 6, 2026
4c33825
Merge pull request #1706 from eric-jones/fix/maintenance-reaper-schema
julianknutsen May 6, 2026
219e8d5
test: refresh fresh init spawned session bead (#1757)
julianknutsen May 6, 2026
9ab2bc8
docs: update install example for v1.1.0
julianknutsen May 6, 2026
b3dae6e
test: canonicalize reaper city path on macos
julianknutsen May 6, 2026
28c7416
Merge pull request #1765 from gastownhall/release/v1.1.0
julianknutsen May 6, 2026
5cf0378
ci: route Claude acceptance tests through Ollama Cloud
julianknutsen May 6, 2026
8a76142
Merge pull request #1770 from gastownhall/ci/ollama-cloud-acceptance
julianknutsen May 7, 2026
4371d67
fix(packs): replace gc mail inbox --address/--json with gc mail count…
eric-jones May 7, 2026
3c06561
perf(session): dedup bead fetches on supervisor observe path (#1758)
eric-jones May 7, 2026
5717592
fix(extmsg): wire-typed snake_case decode for adapter /publish receip…
sjarmak May 7, 2026
75aba22
fix(test): cancel dispatched orders before t.TempDir cleanup (#1741)
eric-jones May 7, 2026
8a3631d
fix(packs): use --lines flag for gc session peek (dog template) (#1753)
eric-jones May 7, 2026
b0909bc
fix(packs): use --lines flag for gc session peek (witness template) (…
eric-jones May 7, 2026
3875b10
test(dashboard/crew): widen waitFor budget to absorb slow CI runners …
quad341 May 7, 2026
888d212
fix(packs): replace removed gc agent peek/list/drain in templates (#1…
eric-jones May 7, 2026
dd19188
fix(beadmail): Thread accepts message-id, not just thread-id (#1526) …
sjarmak May 7, 2026
67d2f74
fix: keep assigned sessions out of new demand (#1777)
julianknutsen May 7, 2026
dd346a3
fix(maintenance): preserve counters across jq pipe in wisp-compact + …
sjarmak May 7, 2026
cfc7c77
test(perf): add session-bead snapshot benchmarks (ga-t0pm) (#1728)
quad341 May 7, 2026
5f1a686
fix(dashboard): stop stale scope refresh storms (#1616)
csells May 7, 2026
4767377
feat: drain ACP queued nudges in reconciler tick
tesdal Apr 21, 2026
41587f1
fix handle error path and strengthen test assertions
tesdal Apr 27, 2026
600bc45
fix(test): eliminate race in TestControllerReloadsConfigImmediatelyOn…
tesdal Apr 29, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
The table of contents is too big for display.
Diff view
Diff view
  •  
  •  
  •  
7 changes: 6 additions & 1 deletion .dockerignore
Original file line number Diff line number Diff line change
@@ -1,5 +1,10 @@
.git
.github
.github/*
!.github/scripts/
!.github/scripts/install-claude-native.sh
!.github/scripts/install-dolt-archive.sh
!.github/requirements/
!.github/requirements/mcp-agent-mail.txt
.claude
docs
test
Expand Down
1 change: 1 addition & 0 deletions .githooks/pre-commit
Original file line number Diff line number Diff line change
Expand Up @@ -54,6 +54,7 @@ if command -v npm >/dev/null 2>&1; then
# Vite preview so a bundle that builds but won't serve is caught
# before CI.
make dashboard-check dashboard-smoke
git add -f cmd/gc/dashboard/web/src/generated
git add cmd/gc/dashboard/web/dist
fi
else
Expand Down
9 changes: 9 additions & 0 deletions .github/actionlint.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,9 @@
self-hosted-runner:
labels:
- blacksmith-2vcpu-ubuntu-2404
- blacksmith-4vcpu-ubuntu-2404
- blacksmith-8vcpu-ubuntu-2404
- blacksmith-16vcpu-ubuntu-2404
- blacksmith-32vcpu-ubuntu-2404
- blacksmith-6vcpu-macos-15
- blacksmith-12vcpu-macos-15
97 changes: 13 additions & 84 deletions .github/actions/setup-gascity-macos/action.yml
Original file line number Diff line number Diff line change
@@ -1,11 +1,11 @@
name: Setup Gas City macOS CI
description: Install the shared macOS dependencies for Gas City CI jobs on the self-hosted ARM64 runner
description: Install the shared macOS dependencies for Gas City CI jobs on ARM64 macOS runners

inputs:
go-version:
description: Go version to install. Default matches setup-gascity-ubuntu; bump both together.
required: false
default: "1.25.8"
default: "1.25.9"
node-version:
description: Node.js version to install
required: false
Expand All @@ -20,8 +20,12 @@ inputs:
description: Whether to install the Claude CLI
required: false
default: "true"
claude-version:
description: Claude Code version to install with the native binary installer
required: false
default: "2.1.123"
install-system-deps:
description: Whether to run brew to install tmux, jq, and flock (set to false when the self-hosted runner already has them)
description: Whether to run brew to install tmux, jq, and flock
required: false
default: "true"

Expand All @@ -41,15 +45,14 @@ runs:
exit 1
fi

- uses: actions/setup-go@4b73464bb391d4059bd26b0524d20df3927bd417 # v6
- uses: actions/setup-go@4a3601121dd01d1626a1e23e37211e3254c1c06c # v6
with:
# Keep this default in lock-step with setup-gascity-ubuntu —
# a split between Mac and Linux toolchains would surface as
# false "Mac-only" regressions. Track the same pin both
# actions use today; bump them together.
go-version: ${{ inputs.go-version }}
# self-hosted macstadium runners reuse the same GOPATH across jobs;
# actions/setup-go's cache layer is flaky on reused runners, so skip it.
# Keep macOS parity deterministic across hosted and reused runners.
cache: false

- uses: actions/setup-node@49933ea5288caeca8642d1e84afbd3f7d6820020 # v4
Expand Down Expand Up @@ -108,97 +111,23 @@ runs:

- name: Install dolt v${{ inputs.dolt-version }}
shell: bash
run: |
set -euo pipefail
version="${{ inputs.dolt-version }}"
arch="$(uname -m)"
case "$arch" in
arm64) platform_tuple=darwin-arm64 ;;
x86_64) platform_tuple=darwin-amd64 ;;
*)
echo "Unsupported macOS arch: $arch" >&2
exit 1
;;
esac
# Pin an install prefix we can write without sudo on a self-hosted
# runner. Prefer $RUNNER_TOOL_CACHE when present (persistent across
# GitHub Actions jobs) and fall back to $HOME/.local.
cache_root="${RUNNER_TOOL_CACHE:-$HOME/.local}"
install_root="$cache_root/gascity-dolt/$version/$platform_tuple"
bin_dir="$install_root/bin"
if [[ ! -x "$bin_dir/dolt" ]]; then
echo "Installing dolt $version for $platform_tuple into $install_root"
mkdir -p "$install_root"
archive="dolt-${platform_tuple}.tar.gz"
tmp="$RUNNER_TEMP/dolt-${version}-${platform_tuple}"
rm -rf "$tmp"
mkdir -p "$tmp"
curl -fsSL -o "$tmp/$archive" \
"https://github.com/dolthub/dolt/releases/download/v${version}/${archive}"
tar -xzf "$tmp/$archive" -C "$tmp"
# The tarball root is "dolt-${platform_tuple}" with a bin/ subdir.
cp -R "$tmp/dolt-${platform_tuple}/." "$install_root/"
rm -rf "$tmp"
else
echo "Reusing cached dolt $version at $install_root"
fi
echo "$bin_dir" >> "$GITHUB_PATH"
"$bin_dir/dolt" version
run: ${{ github.action_path }}/../../scripts/install-dolt-archive.sh "${{ inputs.dolt-version }}" --cache

- name: Install released bd v${{ inputs.bd-version }}
shell: bash
run: |
set -euo pipefail
version="${{ inputs.bd-version }}"
arch="$(uname -m)"
case "$arch" in
arm64) bd_arch=arm64 ;;
x86_64) bd_arch=amd64 ;;
*)
echo "Unsupported runner architecture: $arch" >&2
exit 1
;;
esac
cache_root="${RUNNER_TOOL_CACHE:-$HOME/.local}"
install_root="$cache_root/gascity-bd/${version}/darwin_${bd_arch}"
bin_dir="$install_root/bin"
if [[ ! -x "$bin_dir/bd" ]]; then
echo "Installing bd $version for darwin_${bd_arch} into $install_root"
mkdir -p "$bin_dir"
archive="beads_${version#v}_darwin_${bd_arch}.tar.gz"
tmp="$RUNNER_TEMP/bd-${version}-darwin_${bd_arch}"
rm -rf "$tmp"
mkdir -p "$tmp"
curl -fsSL -o "$tmp/$archive" \
"https://github.com/gastownhall/beads/releases/download/${version}/${archive}"
# Strip the top-level directory (beads_<version>_darwin_<arch>/)
# so `bd` lands directly in $tmp.
tar -xzf "$tmp/$archive" -C "$tmp" --strip-components=1
install -m 0755 "$tmp/bd" "$bin_dir/bd"
rm -rf "$tmp"
else
echo "Reusing cached bd $version at $install_root"
fi
echo "$bin_dir" >> "$GITHUB_PATH"
"$bin_dir/bd" version
run: ${{ github.action_path }}/../../scripts/install-bd-archive.sh "${{ inputs.bd-version }}" --cache

- name: Install Claude CLI
if: ${{ inputs.install-claude-cli == 'true' }}
shell: bash
run: |
set -euo pipefail
# setup-node configures an npm prefix that's writable without sudo,
# so a plain `npm install -g` works on the self-hosted runner.
npm install -g @anthropic-ai/claude-code
run: ${{ github.action_path }}/../../scripts/install-claude-native.sh "${{ inputs.claude-version }}" --cache

- name: Pin CI git identity
shell: bash
run: |
set -euo pipefail
# Dolt inherits its commit identity from the user's global git config
# (see cmd/gc/gc-beads-bd ensure_dolt_identity). The ubuntu-latest
# hosted runner ships with user.name/user.email baked in; the
# self-hosted macstadium runner does not.
# (see cmd/gc/gc-beads-bd ensure_dolt_identity).
#
# Force-set a deterministic CI identity unconditionally. Don't log
# the resolved value — on a reused runner any preexisting identity
Expand Down
32 changes: 9 additions & 23 deletions .github/actions/setup-gascity-ubuntu/action.yml
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,7 @@ inputs:
go-version:
description: Go version to install
required: false
default: "1.25.8"
default: "1.25.9"
node-version:
description: Node.js version to install
required: false
Expand All @@ -20,11 +20,15 @@ inputs:
description: Whether to install the Claude CLI
required: false
default: "true"
claude-version:
description: Claude Code version to install with the native binary installer
required: false
default: "2.1.123"

runs:
using: composite
steps:
- uses: actions/setup-go@4b73464bb391d4059bd26b0524d20df3927bd417 # v6
- uses: actions/setup-go@4a3601121dd01d1626a1e23e37211e3254c1c06c # v6
with:
go-version: ${{ inputs.go-version }}

Expand All @@ -38,31 +42,13 @@ runs:

- name: Install dolt v${{ inputs.dolt-version }}
shell: bash
run: |
curl -fsSL "https://github.com/dolthub/dolt/releases/download/v${{ inputs.dolt-version }}/install.sh" | sudo bash
dolt version
run: ${{ github.action_path }}/../../scripts/install-dolt-archive.sh "${{ inputs.dolt-version }}"

- name: Install released bd v${{ inputs.bd-version }}
shell: bash
run: |
version="${{ inputs.bd-version }}"
case "$(uname -m)" in
x86_64|amd64) bd_arch=amd64 ;;
aarch64|arm64) bd_arch=arm64 ;;
*)
echo "Unsupported runner architecture: $(uname -m)" >&2
exit 1
;;
esac
archive="beads_${version#v}_linux_${bd_arch}.tar.gz"
mkdir -p "$RUNNER_TEMP/beads"
curl -fsSL -o "$RUNNER_TEMP/$archive" \
"https://github.com/gastownhall/beads/releases/download/${version}/${archive}"
tar -xzf "$RUNNER_TEMP/$archive" -C "$RUNNER_TEMP/beads" bd
sudo install -m 0755 "$RUNNER_TEMP/beads/bd" /usr/local/bin/bd
bd version
run: ${{ github.action_path }}/../../scripts/install-bd-archive.sh "${{ inputs.bd-version }}"

- name: Install Claude CLI
if: ${{ inputs.install-claude-cli == 'true' }}
shell: bash
run: npm install -g @anthropic-ai/claude-code
run: ${{ github.action_path }}/../../scripts/install-claude-native.sh "${{ inputs.claude-version }}"
9 changes: 9 additions & 0 deletions .github/blacksmith-allowlist.txt
Original file line number Diff line number Diff line change
@@ -0,0 +1,9 @@
# GitHub logins allowed to run sponsored Blacksmith CI automatically.
# One login per line. Blank lines and # comments are ignored.
#
# Blacksmith is limited to pull requests from these users. Pushes,
# schedules, manual runs, and other contributors use GitHub-hosted runners.
julianknutsen
csells
sjarmak
quad341
3 changes: 3 additions & 0 deletions .github/requirements/mcp-agent-mail.in
Original file line number Diff line number Diff line change
@@ -0,0 +1,3 @@
# PyPI is still at 0.1.0; pin the v0.3.2 release commit until upstream
# publishes current wheel/sdist assets.
mcp-agent-mail @ https://github.com/Dicklesworthstone/mcp_agent_mail/archive/32783f6848bd63c425c4b5004cee3350016635fb.tar.gz
Loading
Loading