feat(mobile): support orchestration V2 on Android - #3870
Closed
PixPMusic wants to merge 99 commits into
Closed
Conversation
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Stacking
Warning
This PR is stacked on two branches: it targets #3579 (
android-dev-pr-3514) and requires #2829. Because GitHub can only express one base, the branch carries a merge oft3code/codex-turn-mapping, so the diff below includes #2829's changes until #2829 lands. Review the four commits afterMerge orchestration v2 (#2829).Summary
Makes the Orchestration V2 experience work on the Android app:
fix(mobile): render V2 controls on Android— Android icon mappings for every symbol used by the V2 lineage banner, activity inspector, queue controls, and work-log thread links (iOS keeps delegating toexpo-symbols)fix(mobile): keep stop and steer responsive— the composer send action reflects actual delivery semantics (offline/backlogged → Queue; connected active turn → Steer) and messages deliver to a busy run instead of failing; the shared control-lane and Codex acknowledgement fixes ship separately in fix(orchestrator): keep stop and steer responsive #3865test(mobile): pin subagent result rendering— locks provider parity for projected subagent results in the activity views (pairs with feat(subagents): disclose projected results consistently #3866)fix(mobile): avoid unsupported Hermes array sorting— Hermes 250829098.0.10 lacksArray.prototype.toSorted; release builds crashed opening a thread (ThreadRelationshipsBanner), replaced with immutablesort()equivalents plus a regression testValidation
vp check,vp run typecheck— green across all 15 packagest3testAVD, cold launch clean with no Hermes/Nitro errorsNote
Medium Risk
Broad mobile orchestration UI and cache contract changes affect thread messaging, queueing, and reconnect behavior; risk is mitigated by focused tests but the stacked diff increases review blast radius.
Overview
Brings the mobile app onto Orchestration V2 end-to-end: shell/thread caches use shared
ORCHESTRATION_CACHE_SCHEMA_VERSIONand V2 snapshot shapes (projection.thread.id), and thread screens consume V2 shell projections,visibleTurnItems, andRuntimeRequestIdfor approvals/input instead of V1 turn/session models.New thread UX wired to V2 workflows includes a lineage banner (fork/subagent/transfer navigation, merge-back, session detach), queue reorder/promote-to-steer, an activity inspector with structured payloads and checkpoint rollback, fork-from-assistant actions, and updated pending approval/input cards that respect live vs stale provider response capability.
Android-specific fixes: Tabler icon mappings for every SF Symbol used by those surfaces, composer Send / Steer / Queue labeling via
resolveThreadComposerSendLabeland stop driven bythreadRuntimeIsActive, and a Hermes crash fix replacingArray.prototype.toSortedwith immutablesort()inorderThreadRelationshipRows(with regression test).The diff also carries stacked changes (desktop
userdata-v2paths, large.plansdocs, marketing copy) from the integration branch; the mobile commits above are the intended product scope.Reviewed by Cursor Bugbot for commit 14e18da. Bugbot is set up for automated code reviews on this repo. Configure here.
Note
Add Orchestration V2 support to the Android mobile app, replacing session/turn model with runtime/run model
useSelectedThreadDetailis replaced byuseSelectedThreadProjectionanduseSelectedThreadVisibleTurnItemsthroughout.ThreadRelationshipsBanner(fork/transfer/subagent navigation and merge-back),ThreadQueueControl(reorder and promote queued runs),ThreadActivityInspector(structured item detail view), andPendingApprovalCard/PendingUserInputCardnow disable actions whenresponseCapability !== 'live'.ProjectionStoreV2,EventSinkV2,EventStoreV2,ProviderSessionManagerV2,OrchestratorV2,RunExecutionService, provider adapters (Codex, Claude, Cursor, Grok, OpenCode, ACP Registry), and database migrations 033–040.ScheduledTasksSettings), and a per-thread automations panel.OrchestratorMcpService) exposing thread lifecycle, task delegation, and scheduling over MCP.@cursor/sdkdirectly instead of spawning an ACP runtime;CURSOR_API_KEYis required from provider environment settings.userdatatouserdata-v2and desktop app directories updated tot3code-v2; existing installations will start with a fresh state directory.📊 Macroscope summarized a706e39. 5 files reviewed, 0 issues evaluated, 0 issues filtered, 0 comments posted
🗂️ Filtered Issues
No issues evaluated.