Skip to content

fix(ios): public import for MobileWorkspacePreview.ID in capabilities API - #10290

Merged
azooz2003-bit merged 1 commit into
mainfrom
fix-ios-capabilities-public-import
Aug 17, 2026
Merged

azooz2003-bit merged 1 commit into
mainfrom
fix-ios-capabilities-public-import

Conversation

@azooz2003-bit

@azooz2003-bit azooz2003-bit commented Aug 17, 2026 •

Copy link
Copy Markdown
Collaborator

Third compile break from 04ff18e, behind the two switches fixed in #10287: MobileShellComposite+Capabilities.swift:147 declares public func supportsPanelArtifacts(in: MobileWorkspacePreview.ID) while importing CmuxMobileShellModel with a plain (internal-by-default) import. Only the Release device archive rejects it, so test-ios simulator lanes stayed green while the TestFlight archive died: https://github.com/manaflow-ai/cmux/actions/runs/32072777777.

One line: public import CmuxMobileShellModel, matching the 24 sibling files in the package. Verifying with a fleet Release beta archive before merge.

🤖 Generated with Claude Code


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


Summary by cubic

Make the capabilities API buildable in Release by changing the import of CmuxMobileShellModel to a public import. Previously, supportsPanelArtifacts(in: MobileWorkspacePreview.ID) was public while the import made the parameter type internal, causing Release device archives to fail; this aligns the import with the API without changing runtime behavior.

  • One-line change: public import CmuxMobileShellModel in MobileShellComposite+Capabilities.swift, matching sibling files.
  • Impacts only Release/TestFlight builds; Debug simulator builds were already green.
  • No migrations or behavior changes; verify by creating a Release device archive.

Written for commit 789585e. Summary will update on new commits.

Review in cubic

Summary by CodeRabbit

  • Enhancements
    • Made the mobile shell model module available to downstream integrations through the public interface.

… API

supportsPanelArtifacts(in:) exposes MobileWorkspacePreview.ID publicly, but
the file imported CmuxMobileShellModel with a plain import, which is internal
under InternalImportsByDefault. The Release device archive rejects it (method
cannot be declared public because its parameter uses an internal type); Debug
simulator builds do not, which is why test-ios stayed green. Matches the 24
sibling files in this package that already use public import.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
@cursor

cursor Bot commented Aug 17, 2026

Copy link
Copy Markdown

Bugbot is paused — on-demand spend limit reached

Bugbot uses usage-based billing for this team and has hit its on-demand spend limit.

A team admin can raise the spend limit in the Cursor dashboard, or wait for the next billing cycle to continue.

@coderabbitai

coderabbitai Bot commented Aug 17, 2026 •

Copy link
Copy Markdown

Review Change Stack

No actionable comments were generated in the recent review. 🎉

ℹ️ Recent review info
⚙️ Run configuration

Configuration used: Path: .coderabbit.yaml

Review profile: ASSERTIVE

Plan: Pro Plus

Run ID: 7482506e-0c2a-4e7b-be5d-c6cab511c745

📥 Commits

Reviewing files that changed from the base of the PR and between 21c4891 and 789585e.

📒 Files selected for processing (1)
  • Packages/iOS/CmuxMobileShell/Sources/CmuxMobileShell/MobileShellComposite+Capabilities.swift

Included review availability: Your plan includes up to 10 reviews per rolling hour; 3 remain after this review.


📝 Walkthrough

Walkthrough

The change makes CmuxMobileShellModel available through the public CmuxMobileShell module API.

Changes

Public API export

Layer / File(s) Summary
Expose the mobile shell model
Packages/iOS/CmuxMobileShell/Sources/CmuxMobileShell/MobileShellComposite+Capabilities.swift
The module import changes from internal to public visibility, making CmuxMobileShellModel available to downstream consumers.

Estimated code review effort: 1 (Trivial) | ~2 minutes

Merge Risk: ⚪ Minimal · up to 78958

This localized import change exposes the required model type to the public capabilities API without introducing an actionable merge-blocking risk; it is merge-ready after normal checks and review.


Important

Pre-merge checks failed

Please resolve all errors before merging. Addressing warnings is optional.

❌ Failed checks (1 inconclusive)

Check name Status Explanation Resolution
Cmux Swift Logging ❓ Inconclusive The working tree has no diff; I am checking the committed change and logging rule before deciding. Need inspect the PR commit versus its parent and verify whether it adds or changes any prohibited logging.
✅ Passed checks (24 passed)
Check name Status Explanation
Title check ✅ Passed The title clearly identifies the iOS API import fix and matches the primary change.
Description check ✅ Passed The description clearly explains the change, cause, impact, and planned Release archive verification.
Docstring Coverage ✅ Passed No functions found in the changed files to evaluate docstring coverage. Skipping docstring coverage check.
Linked Issues check ✅ Passed Check skipped because no linked issues were found for this pull request.
Out of Scope Changes check ✅ Passed Check skipped because no linked issues were found for this pull request.
Cmux Swift Actor Isolation ✅ Passed The diff changes only import visibility. It adds no actor-isolation declaration or background access; MobileWorkspacePreview is an unisolated Sendable value model.
Cmux Swift Blocking Runtime ✅ Passed The diff changes only an import from import to public import; it adds no semaphores, waits, sleeps, polling, queue sync, delayed dispatch, or locks.
Cmux Browser Automation Off-Main ✅ Passed The patch only changes an import in MobileShellComposite+Capabilities.swift; it changes no browser socket command, WebKit wait, worker routing, or policy test.
Cmux Expensive Synchronous Load ✅ Passed The HEAD diff only changes an import from internal to public; it adds no synchronous agent-history load, interactive call site, or related parsing path.
Cmux Cache Substitution Correctness ✅ Passed The diff changes only import CmuxMobileShellModel to public import; it does not replace an authoritative read or alter any cache, persistence, history, undo, or snapshot path.
Cmux No Hacky Sleeps ✅ Passed The change is a Swift import-only update. This check covers non-Swift runtime changes and has no applicable sleep or timer condition.
Cmux Algorithmic Complexity ✅ Passed The HEAD^→HEAD diff changes only import visibility; it adds no loops, scans, sorting, joins, or other algorithmic behavior covered by the complexity rule.
Cmux Swift Concurrency ✅ Passed The diff changes only an import from internal to public; it adds no Dispatch, Combine, completion-handler, or fire-and-forget Task pattern covered by the rule.
Cmux Swift @Concurrent ✅ Passed The commit changes only an import from internal to public. It adds no async work, @concurrent annotation, actor isolation, or async call site covered by the rule.
Cmux Swift Package Boundaries ✅ Passed The diff changes only import visibility in an existing CmuxMobileShell SwiftPM target; it adds no app-target feature logic or reusable domain implementation.
Cmux Swiftpm Lockfiles ✅ Passed PASS: The diff only changes an import in Packages/iOS/CmuxMobileShell; its Package.swift, Xcode package references, .gitignore files, dependencies, and Package.resolved files are unchanged.
Cmux User-Facing Error Privacy ✅ Passed The diff changes only Swift import visibility. It adds no user-facing error, alert, command output, API error body, or recovery copy.
Cmux Full Internationalization ✅ Passed The diff changes only an import declaration from internal to public; it adds no user-facing text, metadata, web content, or localization data.
Cmux Swiftui State Layout ✅ Passed The diff only changes an import from import to public import; it adds no SwiftUI views, state, geometry measurement, lazy rows, or render-time mutation.
Cmux Architecture Rethink ✅ Passed The diff changes only an internal import to public import CmuxMobileShellModel; it adds no timing, state ownership, duplicate wiring, or split lifecycle behavior.
Cmux Swift Auxiliary Window Close Shortcuts ✅ Passed The exact diff changes only import CmuxMobileShellModel to public import; it adds or changes no NSWindow, NSPanel, WindowController, Window, or WindowGroup code.
Cmux Source Artifacts ✅ Passed The diff changes only a hand-written Swift source file under Packages/iOS/.../Sources; no local, generated, cache, build, or scratch artifact path is added.
Cmux No Test Or Debug Seam In Production Source ✅ Passed The only added line is public import CmuxMobileShellModel; the diff adds no DEBUG guard, test/debug-named member, accessor, or widened seam.
Cmux No Ambient Global State ✅ Passed The diff changes only an import declaration; it adds no top-level function, mutable global, static namespace, or singleton runtime state.
✨ Finishing Touches
📝 Generate docstrings
  • Create stacked PR
  • Commit on current branch
🧪 Generate unit tests (beta)
  • Create PR with unit tests
  • Commit unit tests in branch fix-ios-capabilities-public-import

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.

❤️ Share

Comment @coderabbitai help to get the list of available commands.

@azooz2003-bit
azooz2003-bit merged commit 240c978 into main Aug 17, 2026
6 checks passed
pull Bot pushed a commit to sigma7863/cmux that referenced this pull request Aug 19, 2026
MacSurfaceGalleryPreviewView (#if DEBUG) builds TerminalPickerMenuActions
without the required selectSimulatorStream closure, so every Debug iOS
build from main fails compiling CmuxMobileShellUI while Release archives
skip the file and stay green. Missed in the PR 10072 partial merge, same
family as manaflow-ai#10287/manaflow-ai#10290/manaflow-ai#10295.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant