ci: archive docs uploads for Vercel file limit - #16289
Conversation
|
All contributors have signed the CLA ✍️ ✅ |
|
Navigate logical layers of code changes, visualize relationships, and explore their blast radius. Note Repository guideline files applied to this review (1)No actionable comments were generated in the recent review. 🎉 ℹ️ Recent review info⚙️ Run configurationConfiguration used: Repository: manaflow-ai/cmux/.coderabbit.yaml Review profile: ASSERTIVE Plan: Advanced Run ID: 📒 Files selected for processing (1)
Included review availability: This review used your included allowance. Your plan provides up to 10 included reviews per hour; 5 remain after this review. 📝 WalkthroughWalkthroughThe Vercel production deploy command now passes ChangesProduction deploy
Priority: ➖ Normal Estimated code review effort: 1 (Trivial) | ~3 minutes Change: Bug fix Merge Risk: ⚪ Minimal · up to The nightly and release deployments use a supported archive option to compress uploads. No merge-blocking risk is identified. Architecture SummaryArchitecture risk: 🔵 Low · up to The changed surface does not map to a changed system, dependency edge, entrypoint, or external dependency. Changed systems: None identified. Architecture concerns Review detailsBefore / after behavior
🚥 Pre-merge checks | ✅ 25✅ Passed checks (25 passed)
✨ Finishing Touches🧪 Generate unit tests (beta)
Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out. Comment |
|
Merge receipt for |
90e1689 feat(ios): prefetch and remember task composer pickers (manaflow-ai#15797) df1d958 Update computer use engine for unrestricted app access 210c429 Add an agent inbox quick view behind a feature flag (manaflow-ai#15888) 23b6447 Update computer use engine for unrestricted app access 0398322 ci: archive docs uploads for Vercel file limit (manaflow-ai#16289) # Conflicts: # .github/workflows/docs-deploy-reusable.yml
* fix: keep cloud terminals alive after journal failure * ci: archive docs uploads for Vercel file limit (#16289) * Add an agent inbox quick view behind a feature flag (#15888) * Add a durable agent message store with hook-friendly waiting Messages to the agent in a cmux surface are stored with queued, delivered and read receipts in an append-only JSON Lines file, validated so no control characters can ride along, and rendered once for every delivery path with a header that marks the body as another agent's words. Waiters are continuations, so a long-poll from a hook never parks a thread. Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com> * Deliver cmux agent messages through agent hooks, never keystrokes cmux agent message <target> <text> stores a message for the agent in another workspace or surface (agent.message.send). Claude Code gets it through two new hooks instead of the terminal: - hooks claude inbox-wait runs in the background (asyncRewake) after every session start and stop, long-polls agent.message.wait, and exits 2 with the message when one arrives. That wakes an idle session with the text as a system reminder and leaves the prompt box, and any half-typed draft in it, untouched. - hooks claude inbox-drain on UserPromptSubmit attaches anything still queued as additionalContext when the human submits first. It fails open to {} and never exits 2, which would erase the prompt. Delivery holds while the surface is waiting on a human (a question, permission or plan prompt). agent.message.wait awaits a store continuation on the socket worker, so a waiting hook never parks a thread. Receipts (queued, delivered, read) go out on cmux events. Codex handlers (inbox-drain, inbox-stop) are in place; wiring them into the Codex launch schema is a follow-up. Remote relay stays denied. Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com> * Document cmux agent message and point agents at it cmux docs agents, the agent help group and the cmux-workspace skill now say to use cmux agent message instead of typing into another agent's terminal. docs/agent-messages.md covers delivery, limits and the socket API; docs/events.md lists the new receipts. Strings are localized for all nine macOS locales. Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com> * Poll for agent messages instead of holding a socket connection Addresses the review of the first pass: - The Claude wake hook now checks agent.message.poll about every 2 seconds on a new connection, instead of a long poll that held one of the app's 32 socket connection slots per session. - The poll claims nothing; the hook claims right before handing messages to Claude, so a hook that died can no longer swallow them. - The newest hook registers as the surface's poller; older ones (one per Stop) exit when superseded. Headless claude -p runs skip the inbox. - The wait hook is also marked async, so a Claude Code without asyncRewake runs it in the background instead of blocking on it. - A failed append never rewrites an existing message file. - Options and -h after -- are message text; sender ids are canonical. Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com> * Replace namespace enums in the agent message package The package conventions lint rejects all-static namespace types: validation moves to AgentMessageDraft.validated() and rendering to [AgentMessage].agentPromptText. Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com> * Test that a rendered agent message ends with its own id Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com> * End each rendered agent message with a line carrying its id The chat view parses delivered messages out of agent transcripts. With a bare --- as the end, a body quoting a message header could hide the real message or fake its sender, and later hook output leaked into the body. Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com> * Fail agent.message.send when the message can't be saved AgentMessageStore.append now writes the journal record first and only then adds the message to the in-memory inbox and fires onChange. An encode, open, seek, write, or create failure throws AgentMessagePersistenceError, and the socket command returns storage_failed instead of reporting the message queued. A failed write is truncated back off the file so a partial line can't swallow the next record. State-change records stay best effort: losing one can only repeat a delivery after restart. Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com> * fix: close Claude hook settings string after rebase * Deliver cmux agent messages to Codex through its hooks (#15313) * Deliver cmux agent messages to Codex through its hooks The UserPromptSubmit and Stop hook groups the Codex wrapper injects now carry a second, direct handler: inbox-drain attaches queued messages to the prompt the human just sent, and inbox-stop continues the turn with them instead of going idle. The lifecycle handlers stay queued. The previous schema moves to the exact recognized shapes, and the replay sanitizer accepts the two-handler group only when both handlers are cmux's. codex exec runs skip the inbox, as claude -p runs do. Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com> * Test that value-taking Codex options do not hide codex exec Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com> * Test that the Codex agent message handlers fail open Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com> * Skip codex exec behind more options and fail open in message hooks The headless check now knows every Codex option that takes a value, so `codex --add-dir ../lib exec` no longer takes the pane's messages. The agent message handlers answer {} when the CLI fails, so an unreachable app does not show a failed hook on every prompt. Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com> --------- Co-authored-by: Claude Opus 5.5 (1M context) <noreply@anthropic.com> * Show cmux agent messages in the terminal chat view (#15338) * Test that the chat view shows delivered cmux agent messages Fixtures use the transcript shapes Claude Code 2.1.283 and Codex 0.154 write for hook context, stop feedback, idle wakes and stop continuations. Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com> * Test that the chat view lists a terminal's queued agent messages Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com> * Show cmux agent messages in the terminal chat view Delivered messages appear as "Message from <sender>" in the turn they arrived in, read from the agent's own transcript so they survive a sidecar restart. Queued messages show above the composer, read from the app every 2 seconds while a page is open. Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com> * Test the chat view against quoted, forged and trailing message text Covers the review findings: a body quoting a header, a forged message inside a body, hook output after a message, a task result quoting a message, a Codex prompt recorded twice, a failed queued read, the running state after a wake, and a sender name with replacement patterns. Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com> * Parse agent messages by their id end line and tidy the queued view Messages are read header by header and each ends at its own id line, so quoted or forged text in a body and hook output after it stay out. Task results are no longer parsed, a woken agent shows as running, Codex prompts are not doubled by hook context, and a failed queued read keeps the list and backs off. The queued panel scrolls past 30% of the view, sender names are inserted literally, and the sessions list no longer carries message bodies. Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com> --------- Co-authored-by: Claude Opus 5.5 (1M context) <noreply@anthropic.com> * fix: drop removed Dock localization entry * ci: rerun full app validation * fix: handle agent message main actor hop failures * fix: keep agent message timeout helpers local * fix: address agent message review findings * test: define agent inbox projection behavior Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com> * test: track generated Claude hook groups Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com> * feat: add agent inbox quick view Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com> * test: cover agent inbox crash and reply path Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com> * fix: harden agent inbox quick view Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com> * test: cover agent inbox review regressions Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com> * fix: harden agent inbox quick view interactions Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com> * fix: keep agent inbox shortcut keymaps conflict-free Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com> * test: cover remaining agent inbox review items Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com> * fix: address agent inbox review items Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com> * test: add Agent Inbox dogfood tour Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com> * test: cover agent inbox focus notification window Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com> * fix: report the agent inbox hosting window Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com> * fix: compile reply gate assertions with Swift Testing Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com> * test: cover agent inbox review regressions first Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com> * fix: address agent inbox review feedback Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com> * chore: advance submodules with main Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com> * Fix main merge artifacts Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com> * fix: pass auto-naming config mode to provider overrides Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com> * fix: keep OpenCode path resolution in the CLI target Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com> --------- Co-authored-by: Claude Opus 5.5 (1M context) <noreply@anthropic.com> * Update computer use engine for unrestricted app access * fix: redact terminal output read failures * test: preserve explicit shutdown assertion * fix: identify terminal output read failures --------- Co-authored-by: Austin Wang <austinwang115@gmail.com> Co-authored-by: Claude Opus 5.5 (1M context) <noreply@anthropic.com> Co-authored-by: Lawrence Chen <54008264+lawrencecchen@users.noreply.github.com>
The nightly docs deployment started failing after the generated docs tree exceeded Vercel's 15,000-file request limit (15,060 files). The reusable deployment workflow now passes Vercel's supported
--archive=tgzoption, so the upload is sent as one archive and remains below the per-request file-count limit.Validation:
git diff --checkpython3 scripts/verify-local.pypassed all applicable checkstests/test_docs_deploy_auth_guard.pycould not run because the checkout's Python environment lacks PyYAMLThis fixes the Vercel upload failure. Separate failures on the same
mainrun are already covered by #16094, #16265, and #16261.Changelog: none
— unregistered
Need help on this PR? Tag
@codesmith-botwith what you need. Autofix is disabled.Summary by cubic
Fixes the nightly docs deployment failing when the generated docs tree exceeded Vercel's 15,000-file request limit (15,060 files). The reusable deployment workflow now passes Vercel's
--archive=tgzoption, so the upload is sent as one archive and stays under the per-request file-count limit.Written for commit 38a76a4. Summary will update on new commits.
Summary by CodeRabbit