Skip to content

carry of #27877: send iOS agent images - #28212

Merged
teamleaderleo merged 11 commits into
feat-cmux-nextfrom
lane/carry-27877-ios
Oct 31, 2026
Merged

teamleaderleo merged 11 commits into
feat-cmux-nextfrom
lane/carry-27877-ios

Conversation

@teamleaderleo

@teamleaderleo teamleaderleo commented Oct 30, 2026 •

Copy link
Copy Markdown
Collaborator

Carry of #27877 (#27877), preserving its purpose: “ios: New Message to one agent sends its images.”

This carry merges current feat-cmux-next. Original change and authorship are preserved.

No capture: iOS agent-message attachment behavior; no screenshot available from this lane.

Agent session: agent session

teamleaderleo and others added 4 commits October 29, 2026 19:44
Red first: routing a New Message / Forward to one agent sends only
the text, so images are dropped and an image-only message sends nothing.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Agent-Session: https://cmux.com/deeplink/agent?id=aid-e06379967aeecbaaded3
New Message and Forward addressed to one agent sent only the text as
the agent's prompt: attached images were dropped, and an image-only
message sent nothing after the sheet closed. The images now go as the
prompt's image attachments, bytes and order kept.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Agent-Session: https://cmux.com/deeplink/agent?id=aid-e06379967aeecbaaded3
@github-actions github-actions Bot added the risk:normal Risk tier (docs/ci/risk-tiers.md) label Oct 30, 2026
@github-actions

github-actions Bot commented Oct 30, 2026 •

Copy link
Copy Markdown
Contributor

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

Review e78140a: 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=pr28212 -f ref=lane/carry-27877-ios -f platform=macos -f backend_mode=local

Not verified: macOS jobs did not run: compile and app tests were skipped on f9cb294b8f; ci-status is green without them.

CI passes on f9cb294b8f (run 41175388722 attempt 1).
macOS jobs did not run: compile and app tests were skipped: Fast static checks skipped (the macos job needs both to succeed). Re-run CI once they pass, before merging.

Written by scripts/ci/classify_failures.py (ci-failure-attribution.yml); signatures are its SIGNATURES table. A machine verdict is the runner's fault, not this PR's; yours means the failing file is one this PR changes, also red on main that main's latest full suite fails the same way, seen on other PRs that it failed on another pull request's run lately.

Shipped in:

@teamleaderleo

Copy link
Copy Markdown
Collaborator Author

Review (codex-review-box/gpt-6-astra high, lane-place): BLOCK at 2ee7d5c

BLOCK

  1. [P2] cmux-next-ios/CmuxMobileKit/Sources/CmuxMobileChief/ChiefCompose.swift:208 forwards unsupported image bytes unchanged. AgentAttachment.imageMIMEType only recognizes PNG, JPEG, GIF, and WebP, so forwarded HEIC/TIFF images become file/resource-link attachments instead of ACP image blocks. Normalize unsupported formats to JPEG before creating the attachment.

@cursor

cursor Bot commented Oct 30, 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.

…27877-ios

# Conflicts:
#	cmux-next-ios/CmuxMobileKit/Sources/CmuxMobileChief/ChiefCompose.swift
#	cmux-next-ios/CmuxMobileKit/Tests/CmuxMobileChiefTests/ChiefTests.swift
@blacksmith-sh

blacksmith-sh Bot commented Oct 30, 2026 •

Copy link
Copy Markdown

Found 4 test failures on Blacksmith runners:

Failures

Test View Logs
main.DeveloperIdAppTests.test_download_prints_the_active_profile_only/
test_download_prints_the_active_profile_only
View Logs
stubs: /System/Library/Frameworks/Security.framework/Versions/A/Security has no stub/
Security has no stub
View Logs
stubs: CoreFoundation.tbd: install-name /System/Library/Frameworks/
CoreFoundation.framework/Versions/A/CoreFoundation, missing 1: ['_CFRetain']/
CoreFoundation, missing 1: ['_CFRetain']
View Logs
stubs: CoreFoundation.tbd: install-name /System/Library/Frameworks/
CoreFoundation.framework/Versions/A/CoreFoundation, missing 1: ['_log2']/
CoreFoundation, missing 1: ['_log2']
View Logs

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

@teamleaderleo

Copy link
Copy Markdown
Collaborator Author

Review (codex-review-box/gpt-6-astra high, lane-place): BLOCK at 0312d57

BLOCK

  1. cmux-next-ios/CmuxMobileKit/Tests/CmuxMobileChiefTests/ChiefTests.swift:713 — The normalization test uses a 13-byte fake JPEG, so UIImage(data:) returns nil and the conversion branch in ChiefCompose.swift:205 is never exercised. The assertions pass only because the JPEG signature is preserved; this does not verify that a valid HEIC/unsupported image is converted to JPEG, leaving the PR’s main fix untested.

@teamleaderleo

Copy link
Copy Markdown
Collaborator Author

Review (independent Codex gpt-6.1-sol, high, via the review router): BLOCK at df9a571

[P2] cmux-next-ios/CmuxMobileKit/Sources/CmuxMobileChief/ChiefCompose.swift:204 - Image support is decided from the declared MIME instead of the actual bytes. Mislabeled or unsupported images can bypass conversion, receive a .jpg name, then be uploaded as image/jpeg resources that agents cannot decode. Fix by detecting the encoded bytes first and rejecting or preserving the correct MIME when conversion fails.

VERDICT: BLOCK at df9a571

@teamleaderleo

Copy link
Copy Markdown
Collaborator Author

Review (codex-review-box/gpt-6-astra high, lane-place): BLOCK at df9a571

BLOCK

  1. [P2] Detect unsupported formats from the bytes — cmux-next-ios/CmuxMobileKit/Sources/CmuxMobileChief/ChiefCompose.swift:204–205. Forward assigns "image/jpeg" to all local image data, including HEIC (ConversationComposeViewController.swift:64). Such images bypass conversion here, receive a .jpg filename, and become file resource links instead of image prompt blocks because imageMIMEType remains nil. Use attachment.imageMIMEType == nil to trigger conversion. The added test misses this case: its fixture contains only a truncated JPEG header, so decoding fails and no conversion occurs.

@teamleaderleo

Copy link
Copy Markdown
Collaborator Author

Review (codex gpt-6-astra high, next-review): SHIP at e78140a

No blocking findings.

The format detection, JPEG conversion, and file fallback are consistent with the attachment API. iOS tests were not run in this read-only environment.

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

@cmux-bot cmux-bot Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

cmux-bot approves e78140a: an independent review passed this exact head (next-review receipt by teamleaderleo). A push needs a new review; a later BLOCK at this head dismisses this approval.

@teamleaderleo

Copy link
Copy Markdown
Collaborator Author

Chief-area awareness: #28212 now includes the current feat-cmux-next base merge at f9cb294. Please review the CmuxMobileChief changes at this exact head; azooz2003-bit is requested as the area reviewer.

@teamleaderleo
teamleaderleo merged commit 8b1e7b0 into feat-cmux-next Oct 31, 2026
89 of 91 checks passed
@teamleaderleo
teamleaderleo deleted the lane/carry-27877-ios branch October 31, 2026 06:19
@teamleaderleo

Copy link
Copy Markdown
Collaborator Author

Review (independent Codex gpt-6-astra high, router-review): SHIP at f9cb294

No blocking findings. Static review confirms byte-based attachment detection, JPEG conversion for unsupported decodable formats, and file fallback for undecodable data. Swift validation was unavailable in the review box; fleet validation is running separately.

This branch was previously deployed

1 inactive deployment
ci-routing-agent — f9cb294b Deployed Oct 31, 2026 by teamleaderleo via wait for same-key tree publisher #87892
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

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

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant