Repository navigation
Integration batch N (#1369, #1352, #1358, #1387, #1411, #1446) - #1457
Merged
Merged
Conversation
…the main thread (#769) Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
…ure the conversations catalog #769 asks to move transcript work off the main thread, but the recordings cannot attribute main stalls to it: each initial load was sampled twice (half timing only path resolution), and catalog discovery, search and prompt extraction had no monitor boundary. Measure first. Refs #769 Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
… composer (#1350) Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
…ser instead of refusing it as a human draft A delivery whose bytes painted after its rollback stopped watching left them in Claude's composer, and the gate then refused every later delivery as a human draft. SessionManager now marks a session stranded while no other writer has touched the PTY since; the next delivery clears the composer under its reservation and continues. inputInspect reports the mark. Fixes #1350 Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
…he late paint, never reclaim image strands Round-1 review of #1358 (steering q75): a late failure of a replaced process could mark the same-id successor and clear its human draft; a delivery inside the recorded 0.7-3.8 s paint lag skipped the reclaim; image pills are not proven safe to kill. Refs #1350 Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
…iscovery spans, pin the catalog thresholds Round-1 review of #1352: 26 operations x 4 outcomes outgrew three hard-coded 100-pair caps; a rejected discovery left its span pending until the sweep called it a timeout; the new thresholds were untested, and discovery's sat above the main-stall band. Refs #769 Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
…unknown outcome Codex writes paste+Enter atomically, so the Codex test never reached the kind check (it passed with the guard deleted). Pi's bridge 'unknown' outcome reports promptWritten && !enterWritten, which does. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Mutation battery on 6eeac3b: the write-side entry check, the strandedComposer handoff check and the exit clear each survived alone, because the other layer covered for them. A replacement registered before the old process's generation-owned cleanup now pins the read side; the map itself pins the write side and the exit clear (their only effect once the row is gone is not retaining the dead RegistryEntry). Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
#1358 verification a (blocker): an image delivery that reclaimed a text mark and then stranded left the old mark standing, so the next delivery Ctrl+U'd a composer holding image pills. Any delivery that wrote now clears the mark before deciding whether to set its own. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
…talog thresholds #1352 verification b: restoring the store's 100-entry persistence slice and raising each catalog threshold by 1 ms both survived. The store now has an all-pairs operations.json test, and the threshold cases sample exactly at the threshold. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
…cement (#1283 item 1) Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
… in main Tombstones of MCP-closed children named the parent's old session id, so the parent's successor could not list, read or collect them. carryParent rewrites stored tombstones and child->parent hints, and keeps a bounded, acyclic alias chain for a close whose read predates the swap. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
…bstone-parent-carry
…t's successor orchestration:carry-parent, called wherever live children are remapped (replace incl. newConversation, Reload Agents) and on Undo Close, only for committed successors. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
#1358 verification b: the only window test reinstalled fake timers, which reset the clock and put strandedAt in the future, so a 500 ms window survived. One clock throughout; the next delivery starts 6 s after the failure and the text paints at +7 s. Red with 500 ms and 6.5 s. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
…s filed under the successor #1369 review a: createAgent's answer and adoptLateResponse stored the requested (replaced) parent as the child's hint and invalidated only its cache, so the successor served a stale empty list. Both now resolve through the alias chain. Review b: the preload->IPC->bridge boundary, the same-conversation replace carry and alias pruning are now pinned; every single mutation is red. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
…bstone-parent-carry
…erer helper's containment #1369 review c: dropping either status-cache invalidation in carryParent, the renderer's identity-pair skip or its .catch left every test green. Also corrects the delete(to) comment: no wired caller revives an id. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
…1373) Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
…ew id Undo Close remapped pointers only on the rows it restored, so a restored parent's live orchestration and linked children kept the dead id and the parent could not list, read or prompt them. Both restore commits now map every live session through the restore's lineage (remapMetaLineage keeps unmapped ids, so a child of another still-closed pane keeps its link). Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
…t swap under the successor #1369 verification a and b: createOrchestrationAgent captured the parent id, awaited the spawn, and filed the child under it; a replacement committed meanwhile had only remapped existing children, so the successor could not list, read or close the new child. The committed-swap helper now records a bounded, acyclic successor map per window, and filing resolves parent and root through it. Red without the resolution; every piece pinned. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
…ts successor q85: the mark is the last step of a delivery that can land long after the create began (a prompt waiting for the composer, or #1370's late adoption). It was addressed with the parent id the tool call captured; after a replacement that id has no window and owns no children, so the mark was lost. Resolved through the alias chain; the combined late-create + replacement path was reproduced against #1375 and passes with this. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
…spatch #1369 verification a, round 3: the bridge serves one renderer request at a time, so a mark resolved when queued could still dispatch to a parent replaced while it waited. Only the mark is rewritten; other requests act for the parent that asked. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
…ugh rewrites (#1251 row 9) Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
…rkflow (#1251 row 11) Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
…ng it (#1251 row 12) Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
…runing (#1251 row 13) Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
…overwritten or expired (#1411 review) Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
…ort skipped rows and rollouts (#1411 review) Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
…review survivor) Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
…llides (#1411 review round 2) Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
…pe (#1411 review round 2 survivors) Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
… is kept (steering q115) Startup found set-aside refused files by listing each run with .catch(() => []). A failed listing read as 'no set-aside file', so a prior run holding only one had no marker and the next maintenance deleted it with the refused bytes (the unknown-as-empty shape q109 forbade). Now the run is marked unindexed (never expired) and the store degraded; only ENOENT means nothing to find. Real temp run + one injected per-run listing failure: red at 5689181 (ENOENT on the deleted run); removing the unindexed mark is red. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
…1365) Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
happy-dom 20.10 added a global OffscreenCanvas. xterm's WidthCache prefers it over <canvas>, so the real-xterm wheel test's 2D-context shim is bypassed and term.open() throws 'value must not be falsy'. The shim fix follows. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
…eel test (#1365) Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
…block (#1446 review c) Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Owner
Author
Owner
Author
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Integration batch N (owner-approved merge mode). Built after
git fetchfrom origin/main 6dd23a4, with each member merged --no-ff. It supersedes batch M #1454 (#1411 is included here).Every member had GATE PASS (--member). #1356 was left out because it conflicts with #1369 in undoClose.ts. Merged after green exact-head CI and a recorded non-member gate PASS (see comments).
🤖 Generated with Claude Code