Repository navigation
Integration batch F (#1360, #1366, #1368, #1391, #1394, #1400) - #1415
Merged
Merged
Conversation
#1322's quality-gate failed on DOM-event tests (the real-xterm wheel boundary, keybinding recorder clicks/focus, pane resume), all under happy-dom, which it moves 20.9.0 -> 20.14.5. This takes its other 20 bumps and holds happy-dom so the compatible ones can land; the happy-dom move needs its own look. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
opencode-headless#17 (f566ab9), agent-transcript-parser#39 (68dbfff), claude-code-headless#65 (728cb49), codex-headless#61 (b225d45): each package's main is exactly its grouped Dependabot merge on top of the pointer main pins, so this bump carries dev-dependency updates only (postcss/fast-uri security updates, vitest coverage, tsx, react, undici-types). The lockfile is resynced because the file: deps embed the package trees. Its large deletion is a dedupe: the parser's nested vitest family and tsx existed only because its old ranges did not match the root's hoisted versions; the bumped ranges now do, so npm hoists them. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
…995af) workflow-mcp#67 (codex-sdk 0.154.0, MCP SDK 1.30.0, zod 4.6.5, acorn 8.18.0, ip-address 10.7.2). Lockfile resynced: the app's own hoisted @modelcontextprotocol/sdk and zod move to 1.30.0 / 4.6.5 (within the app's ^ ranges, now shared with the package), and 31 nested workflow-mcp entries (rolldown wasm helpers) drop out. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
…nscript (#1362) Since code mode (0.144+) Codex runs commands and patches through custom_tool_call(name="exec") scripts. The reader only knew function_call, so a Codex child's timeline, shell_commands and file_changes were mostly empty. The exec-script grammar moves from the renderer adapter to src/shared/codex/execScript.ts so both read scripts the same way. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
…ot a call (#1368 review c) Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
…tem guards with recorded rows (#1368 review a, steering q83) Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
…-codex-custom-calls
…emas under zod 4.6 Steering q84: #1366 hoists zod 4.6.5 (shared with workflow-mcp). Its z.fromJSONSchema turns a recursive $ref property (every z.json() payload) into a lazy schema whose input optionality reports optional, so McpServer's tools/list dropped required: ['payload'] for ac_probe_echo while the external Server still advertised it. Calls were still validated. The descriptor's required lists are now re-imposed on every object it spells out after conversion: a no-op on 4.4.3, a repair on 4.6.x. externalControlMcp/tools.test.ts was red at 5f9bf30 with the PR's installed versions and is green now, assertion unchanged. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
…as the fallback (#1368 verification b) Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
…arse path (#1368) Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
…ription; pin interpolation and nested calls (#1368 verification 2) Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
…xecuted: unknown (#1368 steering q86) Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
…ries distinct (#1368 final check c) Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
…-codex-custom-calls
…rray wrappers Steering q92 / verification b of #1366: withDeclaredRequiredKeys only recursed into bare objects. An optional or nullable nested object arrives as ZodOptional / ZodNullable, and an array of objects as ZodArray, so their required lists still vanished from the built-in tools/list under zod 4.6 while the external Server kept them. Calls were validated either way. The walk now goes through those wrappers, cloning each with the repaired inner schema so its own checks survive (an array's min/max). A new test compares both real projections for an optional nested object and an array of objects, and asserts that validation still rejects a missing nested payload. It is red at d563b05, and removing either new branch turns it red again. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
…bjects Manager q92 asked for Optional/Nullable/Default. Probing zod 4.6.5 shows z.fromJSONSchema turns a nullable object into ZodUnion[object, null] paired with the schema's anyOf, not ZodNullable, and a defaulted one into ZodDefault. The walk now repairs each union option against its anyOf branch and goes through ZodDefault. The unreachable ZodNullable branch is dropped. The projection test adds a nullable and a defaulted nested object; removing the Default, Union or Array branch each turns it red. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
…-codex-custom-calls
…ithout duplicating it #1290: the bootstrap-complete reconciler archived a still-open replayed turn with a raw append while every other path replaces by turnId, so a replayed turn already in history that reopened as currentTurn was held twice (duplicate sem:T:i candidates and semantic-block:T:i keys). It now uses appendSemanticHistory. Red before on the real subscription hub. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Verification b of #1366: a record of objects still lost the value object's required list on the built-in side. z.fromJSONSchema turns a record into ZodPipe(transform -> object whose catchall is the value schema). The walk now repairs a pipe's output side and an object's catchall against additionalProperties. The projection test adds a record of objects; removing either new branch turns it red. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
…n at bootstrap-complete #1391 review a: a replayed turn_started reopens T empty; if replay quiets before its content re-arrives, replacing by turnId swapped the full archived T for the empty copy and the answer vanished from the feed. archiveReplayedTurn keeps the archived row unless the replay copy renders at least as much (text and blocks); still one row per turnId. Live fold paths keep replace-by-id (a newer live copy is authoritative). Text and block rules each pinned; red before on the reviewer's sequence. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
…y copy replaces the archived turn #1391 review a, round 2: a replay can reopen the same block EMPTY (block_started then quiet before text_delta), so equal block counts still let an empty block displace the archived answer. archiveReplayedTurn now compares renderable size: turn text plus each block's text, thinking, tool input and tool result. Each term, the equal-replaces rule and the reviewer's probe are pinned. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
…t shell (#1307) Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
…field (#1391 q93) Three size proxies for 'the replay covers the archive' failed review. The bootstrap path now merges: strings take the replay only when it extends the archived value, objects merge per key, id lists union. Tests go through the real ledger adapter, including both round-3 sequences and a mixed-progress case. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
…xtension modal (review a) Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
…eplay merge (#1391 review a round 4) Keeping archived lifecycle values blocked a replay that completed a block or tool the archive saw pending. status/messagePhase now rank, booleans OR, and the derived in-progress tool lists are recomputed after the merge. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
review a round 5, q95) resultContent/resultIsError/resultAt and the tool's lookup state now come together from the copy with the later resultAt (replay on a tie). Merged field by field, an archived error followed by a corrected result painted the success red. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
…d surface (review b) Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
…anges (#784) useThemeSync selected the whole settings object and the slice re-applied inside chrome-only toggles, so unrelated preferences rewrote the palette, fired THEME_CHANGED_EVENT for every xterm/Monaco, and sent the full settings over IPC. Measured on main: 2 applications per toggle, 1 per dispatch flag. Now 0; theme edits still apply immediately and mirror once, with only the theme keys. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
…, hydration and same-frame paint (#1400 review a) Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Owner
Author
|
Batch disposition (B6, pre-merge): 6 members, each GATE PASS in member mode at these heads: #1360 0b93bd7, #1366 33ebfba, #1368 84842dc, #1391 39c712b (manager-verified at the cap), #1394 2d20830, #1400 3831fc3. Base is 505efa6. Residuals are on each member's disposition. Merge waits on exact-head CI and a non-member merge-gate PASS. |
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 F (owner-approved merge mode). Built after
git fetchfrom origin/main 505efa6 (batch E); each member merged --no-ff; origin/main is an ancestor of the head.Every member has GATE PASS (--member). package-lock.json and useIpcSubscriptions.ts auto-merged cleanly between members; CI
npm ciplus the quality-gate validate the combination.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