Skip to content

Integration batch 2026-09-26 A: #1326, #1333, #1337 - #1345

Merged
Juliusolsson05 merged 16 commits into
mainfrom
integration/batch-2026-09-26-a
Sep 27, 2026
Merged

Juliusolsson05 merged 16 commits into
mainfrom
integration/batch-2026-09-26-a

Conversation

@Juliusolsson05

Copy link
Copy Markdown
Owner

Integration batch (owner-approved merge mode, plan §7.4): one CI run on the exact batch head, then gh pr merge --merge. Each member PR is marked merged because its reviewed head is in this branch.

PR Head Closes Gate
#1326 Reload Agents re-checks ownership around its awaits 9a8e0444 #1282 3 reviewers, 2 rounds, then verify3 A/C MERGE-READY; disposition posted
#1333 A mounted terminal keeps live output across a same-id respawn cb76010c #1281 (Refs #1283 item 3) 3 reviewers; round-2 A/B MERGE-READY; disposition posted
#1337 GoalLoop grace test asserts at exactly 45 s dd61a14a #1314 3 reviewers; round-2 A/C MERGE-READY; disposition posted

Built from current main b3a2c481 with --no-ff merges. All three merged cleanly. npx tsc -b and the focused suites are run locally; this PR's CI is the gate.

Not included (held): #1328 (owner residual pending), #1325/#1331 (verification), #1340 (q61), workflow-mcp#63 (owner decision), #1330 (owner retention window).

🤖 Generated with Claude Code

Juliusolsson05 and others added 16 commits September 26, 2026 16:49
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
…1282)

The reload walked a snapshot and re-checked nothing while it killed and
respawned each agent: an agent closed meanwhile came back under a new id,
one replaced meanwhile got two successors on one transcript, and a draft
typed meanwhile was lost. It now skips an agent that is no longer the same
owned agent before its kill, re-checks every successor at commit (killing
the orphans, caller reload.orphaned-successor), and carries the live draft,
draft images and unread marker.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
…ait (#1326 review)

Round-1 findings: overlapping on/off reloads, project merge mid-reload,
close during an awaited orphan kill, rejected orphan kill, failed respawn
of a closed agent, and two surviving mutations. Checks and commit are one
synchronous run; orphans are killed after it; successors file from the
live row.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
…round 2)

An early successor ran unfiled while later spawns were pending, so a
close missed it; a close during the pre-spawn kill was still followed by
a spawn; a failed orphan kill was swallowed; and a fresh respawn's
durable provider id was dropped. Each agent now commits on its own,
ownership is rechecked after every await, orphan kills retry and are
retried by the next reload, and the reported provider id is kept.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Reload's per-agent loop keeps #1324's curated failure sentence: the spawn
catch computes it and markRespawnFailed carries it onto the failed pane.
Adds the combined fail-and-close integration case.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
…-id shell respawn

The shell's view reference was a manager flag cleared when the shell exited,
so a still-mounted leaf froze on the dead shell after a same-id respawn. It
is now a view-scoped count with a detachTerminal release, owned per renderer
page like agent PTY attaches (one shared ownership table), and TerminalLeaf
detaches on unmount.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
…keep refused kills (#1326 verify)

A remembered orphan was never retried once every agent was closed, and a
kill main refused (false: possibly still running) cleared its record. An
all-failed reload also stopped pruning unowned rows. Orphans are retried
first, only a confirmed kill clears them, and pruning happens up front.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
)

Refs #1314

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
…anager once

Round-1 review of #1333: the absent-session reference had no test, and a
cold per-test import of the manager hit the default timeout under load.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
…nt and a file store

The case asserted exactly one delivery in 120 s while its own traffic
carried a second, legitimate turn boundary (the pair at 60 s ends the
turn the 45 s delivery started). Whether that second continuation fell
inside the window depended on how long the first delivery's real
persist() took relative to fake time: slow disk passed, prompt disk
failed. An instant store reproduced it 3/3.

The case now checks that traffic during the hold does not renew the
grace: nothing at 44.999 s, exactly one delivery at 45 s. It runs with
the file store and an instant store, so persistence latency cannot
decide it. No production change; no timeout widened.

Fixes #1314

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
…phans locally (#1326 verify2)

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Review of #1337: the first-hold case asserted at 46 s, so a 46 s grace
or a <= gate passed; and removing the second-turn check left the
post-delivery boundary unpinned (deleting releaseHold before delivery
prompted at 60 s with every test green). The first case now asserts at
45.000 s; a new instant-store case pins the delivered turn's own grace
(one delivery through 104.999 s, two at 105 s). The older 'Resume right
after our own delivery' case uses the instant store too, since the file
store's in-flight persist hid a missing markOwedATurn from it.

Refs #1314

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Juliusolsson05 added a commit that referenced this pull request Sep 27, 2026
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
@Juliusolsson05
Juliusolsson05 marked this pull request as ready for review September 27, 2026 02:45
@Juliusolsson05
Juliusolsson05 merged commit ba29fb9 into main Sep 27, 2026
2 checks passed
@Juliusolsson05
Juliusolsson05 deleted the integration/batch-2026-09-26-a branch September 27, 2026 02:45
Juliusolsson05 added a commit that referenced this pull request Sep 27, 2026
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant