Repository navigation
feat(media): recover image reception and publish ordered ACP results - #6230
Draft
Sun-GLiang wants to merge 18 commits into
Draft
Sun-GLiang wants to merge 18 commits into
Sun-GLiang wants to merge 18 commits into
Conversation
…output Route external media through the Host artifact pipeline and reuse bounded image/SVG previews across chat, tools and artifacts. Bump the compatibility epoch for mixed-content tool results. Generated-by: Codex
Merge the upstream dependency security fixes and register the SVG runtime dependency and extracted UI surfaces in the generated inventories. Generated-by: Codex
The filesystem worker now imports the shared SVG validator. Include that source in the Windows release filter so its trigger matches the actual dependency closure. Generated-by: Codex
Keep avatar size and pixel limits shared with previews while admitting SVG only for chat. Validate both the Host capture boundary and avatar persistence so custom loaders cannot bypass the raster policy. Generated-by: Codex
Generated-by: Codex
Refresh the two transitive dependency versions blocking the shipped-closure and CLI production audits, and regenerate their third-party notices. Generated-by: Codex
Record the audited ip-address 10.7.4 production dependency. Merge current main, retain streaming syntax highlighting with SVG previews, and advance the media protocol epoch to 229 after the executor catalog change. Generated-by: Codex
Resolve UI inventory totals and assign mixed media results epoch 230 after main introduced session check-in at epoch 229. Generated-by: Codex
Budget parsed diagram nodes across quotes and lists. Recognize SVG-root XML fences, retain manual preview bounds across content changes, and drain accepted ACP updates after transport failure while rejecting late notifications. Cover the Antigravity SVG reply, nested preview budgets, and message/tool media failures with regressions. Generated-by: Codex
Keep transport failure observable until ACP media queues finish, account for audio payloads in media budgets, and parse static SVG CSS in linear time. Add regression matrices and malformed CSS CPU bounds. Generated-by: Codex
Validate all SVG input nodes before mutation, retain legacy tool text and diff output, and report truncated mixed results. Drop unsupported thought media before queuing. Add regressions for complexity, snapshot boundaries, media retention and browser recovery. Generated-by: Codex
Keep structured ACP publication, ordered mixed tool results and existing raster preview support. Move SVG validation, saved-image and code-fence previews, caches and their tests to the dedicated SVG branch. Document the existing provider-owned conversation copy restriction. Generated-by: Codex
Generated-by: Codex
4 of 6 tasks
Preserve mixed tool evidence in Goal evaluation, capture mutable sources independently, and discard unused media payloads before queueing. Cover overwritten and concurrent sources, archival replay, metadata retention, and evidence redaction. Generated-by: Codex
Persist bounded receive jobs and staged bytes, recover unpublished images before sealing interrupted runs, separate archival from preview limits, and report attachment reception independently of text completion. Generated-by: Codex
Keep the existing limits and UI behavior while extracting the shared image component, retaining structured loader outcomes, and separating avatar and chat admission policies for independent media changes. Generated-by: Codex
Generated-by: Codex
Generated-by: Codex
This branch has not been deployed
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.
Summary
Images can outlive their temporary sources, but the existing receive queue is in memory and message completion does not guarantee image persistence. Structured ACP image results also need durable publication and ordered mixed content. Make Host-owned image reception recoverable and distinguish reception, saved originals, preview limits and actual failures.
docs/architecture/session-media-preview.zh-CN.md.SVG parsing, SVG/XML code previews and preview caches remain in independent #6292. This PR uses raster rendering.
Verification
Tested head:
7a3265cd7669a333cc93baf7077fd9613bac9c57; build/test baseline:222a06fe316f12df3129eff1c16ab3bfaf85c479.Governance acceptance report · Assertion records, merge simulations and checksums. Earlier before/after and performance evidence remains in the acceptance release.
Persistence boundaries
A source that disappears before bytes are received cannot be recovered. Invalid content, denied access, full disk and archive quota failures remain explicit failures. The 512-job / 32 MiB receive spool is bounded and may reclaim old quota-failed payloads while retaining their failure metadata. Recovery does not reopen sealed runs or publish late cancelled-run output. A canonical record beyond the recovery scan bound is skipped with a warning. These limits are covered in the architecture document rather than hidden by success wording.
Merge independence
Both PRs target
mainand can land in either order. They share a behavior-preserving image presentation/admission foundation; neither requires the other feature. Normal Git merges produce identical trees in both orders. This repository permits squash merges only: after either lands, sync the other with main and reconcilepackages/core/src/image-delivery.ts,packages/ui/src/attachment-image.tsx, andpackages/ui/src/session-media-image.tsx. Both squash orders were simulated against maina4b5f86c5256044d063a62045754e4a3411a8426; the reconciled trees are identical and retain the tested combined implementation. There is no prescribed merge order.AI use
Tool(s) and scope: Codex implemented the split and reception governance, added regression tests, performed real-account Electron acceptance, and updated documentation. Retain
Generated-by: Codexin the squash commit.Checklist
Does this PR entail a change in behavior?