Skip to content

Integration batch J (8 PRs) - #1438

Merged
Juliusolsson05 merged 54 commits into
mainfrom
integration/batch-2026-09-27-j
Sep 27, 2026
Merged

Juliusolsson05 merged 54 commits into
mainfrom
integration/batch-2026-09-27-j

Conversation

@Juliusolsson05

@Juliusolsson05 Juliusolsson05 commented Sep 27, 2026 •

Copy link
Copy Markdown
Owner

Integration batch J (owner-approved merge mode). Built after git fetch from origin/main dc9b751 (batch I); each member merged --no-ff.

Every member has GATE PASS (--member). Auto-merged between members: tsconfig.web.json, useKeybinds.ts, and codex renderer command.ts/rollout.ts; a local tsc -b runs alongside CI.
Merged after all pre-merge conditions were met: green CI on the exact head, the disposition comment, and a recorded non-member merge-gate PASS (see the gate-record comment).

🤖 Generated with Claude Code

Juliusolsson05 and others added 30 commits September 26, 2026 21:22
…ling it at 10 s

The package's serve readiness default (10 s) was sized for an idle machine.
Measured on the bundled binary, a healthy server reported its URL in
0.6-0.9 s idle but 16.7-43.1 s under load, so orchestration's OpenCode agents
failed to spawn. The app owns the process and now passes a 120 s wait; a
server that dies still fails at once.

Refs #1355 (the orchestration bridge deadline is #1370)

Co-Authored-By: Claude Opus 5.5 <[email protected]>
…stant's margin

#1367 review a: dropping OpencodeHeadless's forwarding of startupTimeoutMs,
or a 44 s constant, left every test green. The orchestration bridge's own
30 s create-agent deadline is filed as #1370; this PR becomes Refs #1355.

Co-Authored-By: Claude Opus 5.5 <[email protected]>
#1367 review b: a fixed 30 s test budget could fail on a loaded runner
while the app (120 s) would still be waiting. The positive cases now
follow OPENCODE_SERVE_STARTUP_TIMEOUT_MS.

Co-Authored-By: Claude Opus 5.5 <[email protected]>
… rollback

#1367 review c: a 1_200_000 constant and removing the rollback's
headless.stop() both left every test green.

Co-Authored-By: Claude Opus 5.5 <[email protected]>
…ssion state behind

#1207: an append queued before forgetFeedDebugSession, and not started
yet, ran afterwards and wrote the per-session id, epoch and cap maps back;
nothing removed them again (a few numbers per closed session, unbounded).
Each append captures a per-session token when queued; forget retires it,
and an append that finds its token gone once it has run deletes that state
again. The token map is cleared by the same forget. Red before on the
reviewer's 100-session probe with real queue ordering.

Co-Authored-By: Claude Opus 5.5 <[email protected]>
… stay bounded (#1392 review)

An append arriving after forgetFeedDebugSession minted a new token and kept
its state forever. The token map is now also a recency list capped at 256;
eviction forgets the oldest session. Adds failure-path, re-registration and
repeated-unknown-size tests that kill the reviewers' surviving mutations.

Co-Authored-By: Claude Opus 5.5 <[email protected]>
Codex never persists exec_command_end (codex-rs rollout policy: transient;
0 in 2,541 local rollouts), so dropping the wrapped function_call_output
removed the only copy of every exec_command result and exit status.

Co-Authored-By: Claude Opus 5.5 <[email protected]>
…not by a cap (#1392 review round 2)

The 256-session LRU cap broke three ways under review: evicting a session
mid-stat resolved its append without writing, eviction reset a capped file's
drop count, and a stalled stat held evicted state past the bound. A
remembered-forgotten set fails too: a same-id wake makes the id live again.

The renderer now releases an id (debug:forget-feed-log) once its runtime is
removed, which is the only point no further append can follow. The cap and
its test are gone; the failure-path, re-registration and repeated-unknown-size
tests stay.

Co-Authored-By: Claude Opus 5.5 <[email protected]>
…carrier per call (review a)

Co-Authored-By: Claude Opus 5.5 <[email protected]>
…retry unacknowledged releases (#1392 review round 3)

A process-exit forget landing during the first stat dropped the batch and
resolved, so the renderer skipped rows that were never written. The append
now re-installs its placeholder and writes; the retired token drops the state
afterwards. A release main did not acknowledge is retried next tick. Adds
IPC handler tests and an in-flight reservation test.

Co-Authored-By: Claude Opus 5.5 <[email protected]>
… state; scope a release to its lifetime (#1392 review round 4)

A rebuilt cap state now seeds its drop count from the file's last tombstone,
so the last marker stays within 2x of the truth. A late release ACK no
longer retires a later lifetime of the same id, a synchronous throw from a
partial API becomes a retried rejection, and slow-ACK duplicate suppression
is pinned.

Co-Authored-By: Claude Opus 5.5 <[email protected]>
…getting them (#1392 review b round 5)

Drops are written only at a doubling, so each forget discarded up to half;
repeated forgets made the last marker a fraction of the truth. Forget now
chains a final marker on the session's write queue. A crash still loses the
unmarked drops (stated).

Co-Authored-By: Claude Opus 5.5 <[email protected]>
…nd 5)

Seed from any non-empty file (a marker can land below the cap), accept only
rows whose parsed top level is a tombstone, skip torn rows instead of giving
up, and close a torn last row before this session's first write.

Co-Authored-By: Claude Opus 5.5 <[email protected]>
…er a persisted event (review b)

Co-Authored-By: Claude Opus 5.5 <[email protected]>
…pt both the release and persistence-gate blocks)

Co-Authored-By: Claude Opus 5.5 <[email protected]>
…only prompts; contiguous fixture (reviews a, b)

Co-Authored-By: Claude Opus 5.5 <[email protected]>
…e-specific advice (review a)

Co-Authored-By: Claude Opus 5.5 <[email protected]>
Juliusolsson05 and others added 24 commits September 27, 2026 05:32
…w 9)

Copy Last Response awaited nothing and always said Copied; it now awaits the
write and shows a fixed failure sentence on rejection. Copy Resume Command's
failure uses the same sentence instead of the raw DOMException text.

Co-Authored-By: Claude Opus 5.5 <[email protected]>
…1392 review c)

The release sets lived in the persistence effect, so switching persistence
off discarded them and a pane closed across the toggle was never released.
They now live in a ref, and releasing runs while persistence is off (it
writes nothing to disk).

Co-Authored-By: Claude Opus 5.5 <[email protected]>
…ode 25 file-backed storage (#1408 review c)

Co-Authored-By: Claude Opus 5.5 <[email protected]>
…DIR/EROFS advice (review b)

Co-Authored-By: Claude Opus 5.5 <[email protected]>
…e shared sentence (#1421 review)

Co-Authored-By: Claude Opus 5.5 <[email protected]>
…riers only when adjacent (verification a)

Co-Authored-By: Claude Opus 5.5 <[email protected]>
…spanning line whole (verification a, round 3)

Co-Authored-By: Claude Opus 5.5 <[email protected]>
…user record (verification b)

Co-Authored-By: Claude Opus 5.5 <[email protected]>
…-only pastes; composer wording (#1426 review)

Co-Authored-By: Claude Opus 5.5 <[email protected]>
…op marker (#1392 review c round 2)

Co-Authored-By: Claude Opus 5.5 <[email protected]>
…ate write (verification b)

Co-Authored-By: Claude Opus 5.5 <[email protected]>
@Juliusolsson05 Juliusolsson05 added the type:chore Maintenance, deps, tests, docs label Sep 27, 2026
@Juliusolsson05

Copy link
Copy Markdown
Owner Author

Batch disposition (B6, pre-merge): 8 members at GATE PASS (member mode): #1367 ccedbaf, #1392 a4a0f19 (manager-verified), #1395 63553e5, #1407 d584eb6, #1408 47b7fb3, #1416 5ea05e1 (q107 plan-first confirmed), #1421 d3f1a6b, #1426 c32d4ba (manager-verified). Base is dc9b751. Closing refs are listed per member in the body; residuals are on the member dispositions. Not included: #1429 (reviewer c round 1 FIX not yet verified), #1411/#1417/#1420/#1424/#1434/#1436 (held or in review).

@Juliusolsson05

Copy link
Copy Markdown
Owner Author

Pre-merge gate record (q105): merge-gate.sh agent-code 1438 --dry → GATE PASS #1438 (9895a9e, 0 behind main, checks green, reviews OK). Closing refs are only the member Fixes: #1207, #1321, #1363, #1212, #1285. The Refs-only members have no closing refs. Merging.

@Juliusolsson05
Juliusolsson05 marked this pull request as ready for review September 27, 2026 15:02
@Juliusolsson05
Juliusolsson05 merged commit 181717c into main Sep 27, 2026
2 checks passed
@Juliusolsson05
Juliusolsson05 deleted the integration/batch-2026-09-27-j branch September 27, 2026 15:03
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment