Skip to content

cmux NEXT composer: remove the ten-attachment limit - #24626

Closed
teamleaderleo wants to merge 3 commits into
feat-cmux-nextfrom
leo1023-attachments
Closed

teamleaderleo wants to merge 3 commits into
feat-cmux-nextfrom
leo1023-attachments

Conversation

@teamleaderleo

@teamleaderleo teamleaderleo commented Oct 23, 2026 •

Copy link
Copy Markdown
Collaborator

The composer and New Tab accepted only ten attachments because the shared intake, pending chips, kept-chip restore, cloud upload path, and native chat.upload parser all enforced the same count. That self-imposed count is gone: batches and restored chips can exceed ten while per-file type, size, and total-byte safeguards remain. The native parser now accepts eleven-file uploads and still rejects empty lists, invalid names, oversized files, and total payloads over 64 MiB.

Leo said: “the up to ten attachments per message, did we remove that yet? We should just remove it.”

Validation

  • git diff --check
  • Replaced the old 10-item refusal tests with 11/12-item acceptance coverage for inline attachments and local links.
  • Added native AgentPaneUploadTests.acceptsMoreThanTenFilesWithinByteAndNameLimits.
  • Native/web test execution is pending the checkout’s fleet-only build/test requirement and the web checkout’s missing @base-ui/utils/useIsoLayoutEffect dependency.

Changelog

Removed the self-imposed ten-attachment composer limit, including the native upload parser cap.

agent-identity footer
Agent session: big-red

Accept more than ten attachments in the shared composer and New Tab intake, including saved links and restored chips. Keep per-file and byte limits intact and replace the old refusal assertions with acceptance coverage.

Agent-Session: https://cmux.com/deeplink/agent?harness=codex&session=01a16a89-20f0-7ff2-8bb0-ec0bb3ae3a5e&host=big-red
@cursor

cursor Bot commented Oct 23, 2026

Copy link
Copy Markdown

Bugbot needs on-demand usage enabled

Bugbot uses usage-based billing for this team and requires on-demand usage to be enabled.

A team admin can enable on-demand usage in the Cursor dashboard.

@github-actions

github-actions Bot commented Oct 23, 2026 •

Copy link
Copy Markdown
Contributor

cmux status (one comment, edited in place; each line is updated by the job that owns it)

Review b4ade6a: HQ feed card · gallery before/after runs · checks

App of this head (app.zip, kept 1 day)

gh workflow run reload-build.yml -R manaflow-ai/cmux --ref feat-cmux-next -f tag=pr24626 -f ref=leo1023-attachments -f platform=macos -f backend_mode=local

Pending: CI is running on 1d1b9c92b9; the result below was for b28271986a and no longer applies.

Last result: Unclear: web / react-apps-check failed: no known signature; failed step: Check webview test shards.

Written by scripts/ci/classify_failures.py (ci-failure-attribution.yml); it is rewritten when this head's CI completes.

red: cmux-next checks (god files, concurrency, crash safety, l10n); NEW: red check: Companion workflows (+6 more) is not red on the base 73c3d0d; do not merge until green; see lane-rules
red: cmux-next crash ratchet; NEW: green on the base 73c3d0d; do not merge until green; see lane-rules

Gallery before/after for b4ade6a: 16 states rendered, 2 images differ, 1757 more touched states not rendered. Images are in the run's artifact, not on this public PR.

gh run download 40036933337 -R manaflow-ai/cmux -n gallery-advisory-24626-b4ade6acfd494497f8209c3d015dd03bb7b97c8c (then read gallery-review.json)

States
State Theme Status Diff Picked by
agent-pane.composer/new-chat Apple System Colors Light unchanged 0% own Composer.tsx
agent-pane.composer/new-chat Apple System Colors unchanged 0% own Composer.tsx
agent-pane.composer/side-session Apple System Colors Light unchanged 0% own Composer.tsx
agent-pane.composer/side-session Apple System Colors unchanged 0% own Composer.tsx
agent-pane.composer/new-chat-suggest-open Apple System Colors Light unchanged 0% own Composer.tsx
agent-pane.composer/new-chat-suggest-open Apple System Colors unchanged 0% own Composer.tsx
agent-pane.composer/new-chat-suggest-failing Apple System Colors Light unchanged 0% own Composer.tsx
agent-pane.composer/new-chat-suggest-failing Apple System Colors unchanged 0% own Composer.tsx
agent-pane.composer/new-chat-suggest-draft Apple System Colors Light unchanged 0% own Composer.tsx
agent-pane.composer/new-chat-suggest-draft Apple System Colors unchanged 0% own Composer.tsx
agent-pane.composer/new-chat-reasoning Apple System Colors Light unchanged 0% own Composer.tsx
agent-pane.composer/new-chat-reasoning Apple System Colors unchanged 0% own Composer.tsx
agent-pane.composer/agent-home Apple System Colors Light unchanged 0% own Composer.tsx
agent-pane.composer/agent-home Apple System Colors unchanged 0% own Composer.tsx
agent-pane.composer/agent-home-path Apple System Colors Light changed 0% own Composer.tsx
agent-pane.composer/agent-home-path Apple System Colors changed 0% own Composer.tsx
agent-pane.composer-row/claude-auto Apple System Colors Light unchanged 0% own Composer.tsx
agent-pane.composer-row/claude-auto Apple System Colors unchanged 0% own Composer.tsx
agent-pane.composer-row/long-model Apple System Colors Light unchanged 0% own Composer.tsx
agent-pane.composer-row/long-model Apple System Colors unchanged 0% own Composer.tsx
agent-pane.composer-row/leo-report Apple System Colors Light unchanged 0% own Composer.tsx
agent-pane.composer-row/leo-report Apple System Colors unchanged 0% own Composer.tsx
agent-pane.composer-row/granted Apple System Colors Light unchanged 0% own Composer.tsx
agent-pane.composer-row/granted Apple System Colors unchanged 0% own Composer.tsx
agent-pane.composer-row/fast-off Apple System Colors Light unchanged 0% own Composer.tsx
agent-pane.composer-row/fast-off Apple System Colors unchanged 0% own Composer.tsx
agent-pane.composer-row/fast-on Apple System Colors Light unchanged 0% own Composer.tsx
agent-pane.composer-row/fast-on Apple System Colors unchanged 0% own Composer.tsx
agent-pane.composer-row/queued Apple System Colors Light unchanged 0% own Composer.tsx
agent-pane.composer-row/queued Apple System Colors unchanged 0% own Composer.tsx
agent-pane.composer-strip/project Apple System Colors Light unchanged 0% own Composer.tsx
agent-pane.composer-strip/project Apple System Colors unchanged 0% own Composer.tsx

Pick other states with a Gallery: entry.id, entry.id/variant line in the PR body.

@github-actions github-actions Bot added the risk:normal Risk tier (docs/ci/risk-tiers.md) label Oct 23, 2026
@teamleaderleo

Copy link
Copy Markdown
Collaborator Author

Bead cx-cjby3 created for this PR by the cmux coordinator.

@blacksmith-sh

blacksmith-sh Bot commented Oct 23, 2026 •

Copy link
Copy Markdown

Found 14 test failures on Blacksmith runners:

Failures

Test View Logs
/tmp/tmp1psav7jd/summary-missing.json (live):/summary-missing.json (live): View Logs
/tmp/tmpd2pl98gq/summary-fail.json (live):/summary-fail.json (live): View Logs
[tabs] debug.tab_switch timed 0 of 40 switches/
[tabs] debug.tab_switch timed 0 of 40 switches
View Logs
[tabs] debug.tab_switch timed 0 of 40 switches/
[tabs] debug.tab_switch timed 0 of 40 switches
View Logs
[tabs] the window draws no frames/[tabs] the window draws no frames View Logs
[tabs] the window draws no frames/[tabs] the window draws no frames View Logs
convention violations found (ERROR lines above)./
convention violations found (ERROR lines above).
View Logs
test_a_pull_request_that_changes_the_shortcut_inputs_still_rewrites_them (main.Sett
ingsOnlyArtifactLeavesTheActionFollowers.test_a_pull_request_that_changes_the_shortcut_
inputs_still_rewrites_them) (job='repair')/
test_a_pull_request_that_changes_the_shortcut_inputs_still_rewrites_them (main.Sett
ingsOnlyArtifactLeavesTheActionFollowers.test_a_pull_request_that_changes_the_shortcut_
inputs_still_rewrites_them) (job='repair')
View Logs
test_base_passes (main.NoticesPairTests.test_base_passes)/
test_base_passes (main.NoticesPairTests.test_base_passes)
View Logs
test_cancel_returns_and_leaves_no_descendants (main.CodeModeCancellationTests.test_
cancel_returns_and_leaves_no_descendants)/
test_cancel_returns_and_leaves_no_descendants (main.CodeModeCancellationTests.test_
cancel_returns_and_leaves_no_descendants)
View Logs

...and 4 more test failures. View all on Blacksmith: run 40036933419, run 40036933482

Fix with [code]smith
Need help on this PR? Tag @codesmith-bot with what you need.

Allow chat.upload to carry more than ten files while preserving per-file and total-byte limits, and cover the parser with an eleven-file test.

Agent-Session: https://cmux.com/deeplink/agent?harness=codex&session=01a16a89-20f0-7ff2-8bb0-ec0bb3ae3a5e&host=big-red
@cursor

cursor Bot commented Oct 23, 2026

Copy link
Copy Markdown

Bugbot needs on-demand usage enabled

Bugbot uses usage-based billing for this team and requires on-demand usage to be enabled.

A team admin can enable on-demand usage in the Cursor dashboard.

@teamleaderleo
teamleaderleo temporarily deployed to cmux-tui-merge-tree October 23, 2026 22:58 — with GitHub Actions Inactive
@github-actions github-actions Bot added risk:high Risk tier (docs/ci/risk-tiers.md) and removed risk:normal Risk tier (docs/ci/risk-tiers.md) labels Oct 23, 2026
@teamleaderleo
teamleaderleo temporarily deployed to cmux-tui-merge-tree October 23, 2026 23:05 — with GitHub Actions Inactive
teamleaderleo added a commit that referenced this pull request Oct 24, 2026
Fixes the remaining concurrency and notification-center findings without touching CloudUploads overlap owned by #24626. Focused checks 12/1 findings to zero; injected observer center is retained and tested in isolation. Independent final-head review SHIP.\n\nagent-identity footer
@teamleaderleo

Copy link
Copy Markdown
Collaborator Author

Orphaned: no activity for 51 h, and no lane holds a lease on it. The orphan sweep could not merge feat-cmux-next in: conflicts in Packages/macOS/CmuxNext/Sources/CmuxNextAgentPane/AgentPaneFilePut.swift, Packages/macOS/CmuxNext/Sources/CmuxNextApp/Cloud/CloudUploads.swift, Packages/macOS/CmuxNext/Tests/CmuxNextAgentPaneTests/AgentPaneUploadTests.swift, cmux-tui/crates/acpmux/src/hub/file_uploads.rs, cmux-tui/crates/acpmux/src/protocol/mod.rs, cmux-tui/crates/acpmux/src/rpc.rs, cmux-tui/crates/acpmux/src/server/peer_forward.rs, cmux-tui/crates/acpmux/src/server/remote_guard.rs and 9 more. Listed for a lane to resolve.

@teamleaderleo

Copy link
Copy Markdown
Collaborator Author

Owned by nx-composer on big-red

@teamleaderleo

Copy link
Copy Markdown
Collaborator Author

Claimed and reconciled against the current feat-cmux-next: this change already landed in #24623 (e113084c40ac67603ecf78628994dd8f704b90bd, shared composer/New Tab intake and restored chips) and #24652 (d7e03d14591383979aa75b1e0a2b724cdae16ff4, native upload count cap and resumable transport).

Current source has no MAX_ATTACHMENTS/ten-file cap; the native parser accepts any nonempty list subject to byte/name safeguards. Existing regressions cover 12 composer attachments, 11 local links, and 11 native uploads. Closing this stale branch as superseded; no duplicate source change is needed.

This branch was previously deployed

2 inactive deployments
ci-routing-agent — 1d1b9c92 Deployed Oct 23, 2026 by teamleaderleo via namespace autofix #2108
cmux-tui-merge-tree — 1d1b9c92 Deployed Oct 23, 2026 by teamleaderleo via publish the merge tree #5321
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

risk:high Risk tier (docs/ci/risk-tiers.md)

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant