fix(browser): bundle multiple text uploads - #420
Conversation
|
🦞👀 Pull request received. I will update this pull request when review starts. |
|
Codex review: needs real behavior proof before merge. Reviewed August 26, 2026, 9:56 AM ET / 13:56 UTC. ClawSweeper reviewWhat this changesThe PR bundles multiple text uploads into one ordered, source-labeled text attachment, retains single-file and raw-file behavior, and improves attachment-timeout diagnostics. Regression provenancePossible regression — probable (reviewed change; failure trace). No predecessor PR is attributed. Merge readiness⛔ Blocked until real behavior proof from a real setup is added - 5 items remain Keep this PR open: automatic fallback bundling now writes a temporary corpus for ordinary successful inline multi-file runs, but no cleanup path exists; it also needs real browser proof before merge. Priority: P2 Review scores
Verification
How this fits togetherOracle browser mode converts CLI file inputs into pasted composer text or uploaded attachments before submitting a ChatGPT prompt. The attachment policy determines the upload shape, and readiness checks decide when the composer can send. flowchart LR
A[CLI file inputs] --> B[Prompt assembly]
B --> C[Inline or attachment policy]
C --> D[Generated text bundle]
C --> E[Browser composer]
D --> E
E --> F[Readiness check]
F --> G[Prompt submission]
Before merge
Findings
Agent review detailsSecurityNone. Review metrics
Merge-risk optionsMaintainer options:
Technical reviewBest possible solution: Create the fallback bundle only when fallback submission is selected, or give generated fallback artifacts a verified cleanup lifecycle, then add redacted real-browser proof that the bundled upload reaches a ready composer. Do we have a high-confidence way to reproduce the issue? No real-browser reproduction was provided; however, source establishes that ordinary two-file auto-mode fallback construction writes a bundle before fallback selection and no cleanup owner exists. Is this the best way to solve the issue? No; preserve semantic bundling but defer fallback file creation until needed or clean generated artifacts deterministically after submission. Full review comments:
Overall correctness: patch is incorrect AGENTS.md: found and applied where relevant. Codex review notes: model internal, reasoning high; reviewed against 79e483bd9dc8. LabelsLabel changes:
Label justifications:
EvidenceWhat I checked:
Likely related people:
Rank-up movesOptional improvements that raise the rating; they are not merge blockers.
Rating scale
Overall follows the weaker of proof and patch quality. Workflow
|
Summary
Root cause
The automatic policy bundled only after the 10-attachment platform limit. Nine Markdown files therefore took nine sequential upload/readiness paths. Completion correctly required all expected names and a ready send control, but if the ninth attachment never appeared, Oracle waited out the entire budget and then returned a generic timeout with no stalled filename or final readiness state.
The new boundary is semantic rather than incident-specific: one text file remains one attachment; multiple text files form one lossless labelled corpus.
Validation
pnpm run checkpnpm vitest run tests/browser/policies.test.ts tests/browser/prompt.test.ts tests/browser/attachmentsCompletion.test.ts tests/browser/pageActions.test.ts tests/browser/promptComposerExpressions.test.ts tests/browser/index.test.ts tests/browser/sessionRunner.test.ts— 277 passed, 1 skippedpnpm test— 1,795 passed, 43 skippedpnpm run buildpnpm docs:checkThe mocked browser regression reproduces an 8-of-9 Markdown readiness stall, verifies the exact missing ninth filename/state, and proves the generated one-bundle upload reaches ready state. No Chrome smoke was run because Frog 20260826151633 explicitly requires this fix without launching Chrome.
Frog: 20260826151633