Skip to content

Mobile Audit#564

Merged
arul28 merged 2 commits into
mainfrom
ade/mobile-audit-34b23435
Jun 12, 2026
Merged

Mobile Audit#564
arul28 merged 2 commits into
mainfrom
ade/mobile-audit-34b23435

Conversation

@arul28

@arul28 arul28 commented Jun 12, 2026

Copy link
Copy Markdown
Owner

Summary

Describe the change.

What Changed

Key files and behaviors.

Validation

How you tested.

Risks

Anything to watch.

ADE   Open in ADE  ·  ade/mobile-audit-34b23435 branch  ·  PR #564

Greptile Summary

This PR is a broad mobile audit covering three main areas: a new turnActive live-hint mechanism that bridges the gap between byte-capped snapshot tails and the changeset pump for streaming affordances, Cursor SDK agent-rotation recovery for cross-resume continuity, and extensive iOS UI refactoring for Lanes, Work chat, and Files screens.

  • turnActive streaming hint: Host now resolves live session state at subscribe time and ships it in the chat_subscribe ack; iOS SyncService seeds chatTurnActiveHintBySession from the ack and keeps it live via status/done events; WorkChatSessionView combines transcript and hint into isStreamingTurn to drive the stop button, activity indicator, and streaming markdown path.
  • Cursor resume improvements: preserveProviderResumeState extended to Cursor, stageCursorSdkAgentRotationRecovery injects continuity context when the SDK opens a different agent on resume, and the pool-compaction teardown reason is corrected from handle_close to pool_compaction to avoid spurious state preservation.
  • iOS UI refactor: Lane detail screen gains a custom top bar and a new LaneDetailGitActionsPane; Work chat stop/send buttons are redesigned for desktop parity; changed-files panels are collapsed by default like tool-call panels; workToolArgPreview and workSummarizeInlineText provide richer tool-call collapsed previews; git.mergeContinue and git.mergeAbort remote commands are wired end-to-end.

Confidence Score: 5/5

Safe to merge; all logic changes are well-commented, tested, and backward-compatible.

The turnActive hint mechanism is covered by a dedicated integration test covering active, awaiting-input, and missing-summary cases. Cursor resume changes are additive and gated on reasonAllowsPreservation. UI refactoring is visual parity work with no data-flow regressions identified. The pool-compaction teardown-reason rename is a correct semantic fix. No data-loss paths, no auth changes.

No files require special attention.

Important Files Changed

Filename Overview
apps/desktop/src/shared/types/sync.ts Adds optional turnActive field to SyncChatSubscribeSnapshotPayload and two new git remote command actions (git.mergeContinue, git.mergeAbort); backward-compatible additions.
apps/ade-cli/src/services/sync/syncHostService.ts Ships live turnActive state on chat_subscribe ack by resolving it immediately before each send via resolveLiveStatusFields; avoids I/O window race by keeping resolution microtask-only.
apps/desktop/src/main/services/chat/agentChatService.ts Extends preserveProviderResumeState to Cursor sessions, adds stageCursorSdkAgentRotationRecovery for cross-resume agent-ID drift, changes pool compaction teardown reason from handle_close to pool_compaction, and fixes system-context prompt label.
apps/ios/ADE/Services/SyncService.swift Introduces chatTurnActiveHintBySession dictionary and leading-edge chat-event coalescing (150 ms window, was 420 ms trailing-only); hint seeded from subscribe ack and kept live via status/done events; cleared on disconnect/project switch.
apps/ios/ADE/Views/Work/WorkChatSessionView.swift Adds isStreamingTurn combining transcript and live hint; moves artifactDrawerPresented state up to parent; redesigns stop/send buttons; fixes queue-hint display when pending steers are present.
apps/ios/ADE/Views/Work/WorkStatusAndFormattingHelpers.swift Adds provider labels/icons for anthropic, google, droid/factory, ollama, lmstudio; adds workRailLogoProvider, workUpstreamBrand, workModelRowLogoProvider, workToolArgPreview, and workSummarizeInlineText helpers.
apps/ios/ADE/Views/Lanes/LaneDetailGitActionsPane.swift New 679-line file; fully-inlined git actions pane (commit, stage/unstage, stash, push/pull, history) ported from desktop LaneGitActionsPane; clean separation of concerns.
apps/ios/ADE/Views/Work/WorkTimelineHelpers.swift Adds pendingSteerTexts filter so local-echo messages matching queued steer text are suppressed from the timeline, preventing double-rendering of the same message.

Sequence Diagram

sequenceDiagram
    participant iOS as iOS SyncService
    participant Host as Sync Host
    participant Chat as AgentChatService

    iOS->>Host: "chat_subscribe { sessionId }"
    Host->>Chat: getSessionSummary(sessionId)
    Chat-->>Host: "{ status: active } | null"
    Host-->>iOS: "chat_subscribe ack { turnActive: true | absent }"

    iOS->>iOS: updateChatTurnActiveHint(sessionId, true)
    iOS->>iOS: markChatEventsChanged(immediate: true)

    Host->>iOS: "chat_event { status: started }"
    iOS->>iOS: "updateChatTurnActiveHintFromEvent turnActive=true"

    Host->>iOS: "chat_event { done }"
    iOS->>iOS: "updateChatTurnActiveHintFromEvent turnActive=false"
    iOS->>iOS: markChatEventsChanged(immediate: true)

    Note over iOS: WorkChatSessionView isStreamingTurn combines transcriptOrHintIndicatesActiveTurn
Loading

Reviews (2): Last reviewed commit: "ship: iteration 1 - address Greptile att..." | Re-trigger Greptile

@vercel

vercel Bot commented Jun 12, 2026

Copy link
Copy Markdown

The latest updates on your projects. Learn more about Vercel for GitHub.

1 Skipped Deployment
Project Deployment Actions Updated (UTC)
ade Ignored Ignored Preview Jun 12, 2026 7:37pm

@mintlify

mintlify Bot commented Jun 12, 2026

Copy link
Copy Markdown

Preview deployment for your docs. Learn more about Mintlify Previews.

Project Status Preview Updated (UTC)
ade-ac1c6011 🟢 Ready View Preview Jun 12, 2026, 7:16 PM

💡 Tip: Enable Workflows to automatically generate PRs for you.

@coderabbitai

coderabbitai Bot commented Jun 12, 2026

Copy link
Copy Markdown

Warning

Review limit reached

@arul28, we couldn't start this review because you've reached your PR review rate limit.

More reviews will be available in 29 minutes and 40 seconds. Learn how PR review limits work.

Your organization has run out of usage credits. Purchase more credits in the billing tab to continue.

⌛ How to resolve this issue?

After more reviews become available, a review can be triggered using the @coderabbitai review command as a PR comment. Alternatively, push new commits to this PR.

We recommend that you space out your commits to avoid hitting the rate limit.

🚦 How do rate limits work?

CodeRabbit enforces hourly rate limits for each developer per organization.

Our paid plans include higher PR review limits than trial, open-source, and free plans. In all cases, reviews become available again over time. During sustained high-volume PR review activity, CodeRabbit may temporarily slow when the next review becomes available.

Please see our Fair Usage Limits Policy for further information.

ℹ️ Review info
⚙️ Run configuration

Configuration used: Path: .coderabbit.yaml

Review profile: CHILL

Plan: Pro

Run ID: a4725bc3-936c-4ca2-9858-2da215096841

📥 Commits

Reviewing files that changed from the base of the PR and between b164ba7 and 3592b29.

⛔ Files ignored due to path filters (10)
  • apps/ios/ADE.xcodeproj/project.pbxproj is excluded by !**/*.xcodeproj/project.pbxproj
  • apps/ios/ADE/Assets.xcassets/ProviderDroid.imageset/droid.svg is excluded by !**/*.svg
  • docs/ARCHITECTURE.md is excluded by !docs/**
  • docs/features/chat/README.md is excluded by !docs/**
  • docs/features/conflicts/README.md is excluded by !docs/**
  • docs/features/deeplinks/README.md is excluded by !docs/**
  • docs/features/lanes/README.md is excluded by !docs/**
  • docs/features/sync-and-multi-device/README.md is excluded by !docs/**
  • docs/features/sync-and-multi-device/ios-companion.md is excluded by !docs/**
  • docs/features/sync-and-multi-device/remote-commands.md is excluded by !docs/**
📒 Files selected for processing (69)
  • apps/ade-cli/src/services/sync/syncHostService.ts
  • apps/ade-cli/src/services/sync/syncRemoteCommandService.ts
  • apps/desktop/src/main/services/chat/agentChatService.test.ts
  • apps/desktop/src/main/services/chat/agentChatService.ts
  • apps/desktop/src/main/services/sync/syncHostService.test.ts
  • apps/desktop/src/main/services/sync/syncRemoteCommandService.test.ts
  • apps/desktop/src/shared/types/sync.ts
  • apps/ios/ADE/Assets.xcassets/ProviderDroid.imageset/Contents.json
  • apps/ios/ADE/Models/RemoteModels.swift
  • apps/ios/ADE/Services/SyncService.swift
  • apps/ios/ADE/Views/Files/FilesDetailComponents.swift
  • apps/ios/ADE/Views/Files/FilesDetailScreen+Actions.swift
  • apps/ios/ADE/Views/Files/FilesDetailScreen.swift
  • apps/ios/ADE/Views/Files/FilesDirectoryContentsView+Actions.swift
  • apps/ios/ADE/Views/Files/FilesDirectoryContentsView.swift
  • apps/ios/ADE/Views/Files/FilesDirectoryScreen.swift
  • apps/ios/ADE/Views/Files/FilesModels.swift
  • apps/ios/ADE/Views/Files/FilesRootComponents.swift
  • apps/ios/ADE/Views/Files/FilesRootScreen+Actions.swift
  • apps/ios/ADE/Views/Files/FilesRootScreen.swift
  • apps/ios/ADE/Views/Files/FilesWorkspacePickerDropdown.swift
  • apps/ios/ADE/Views/Lanes/LaneAdvancedScreen.swift
  • apps/ios/ADE/Views/Lanes/LaneColorPalette.swift
  • apps/ios/ADE/Views/Lanes/LaneCommitHistoryScreen.swift
  • apps/ios/ADE/Views/Lanes/LaneCommitSheet.swift
  • apps/ios/ADE/Views/Lanes/LaneComponents.swift
  • apps/ios/ADE/Views/Lanes/LaneDeeplinkHelpers.swift
  • apps/ios/ADE/Views/Lanes/LaneDetailContentSections.swift
  • apps/ios/ADE/Views/Lanes/LaneDetailGitActionsPane.swift
  • apps/ios/ADE/Views/Lanes/LaneDetailGitSection.swift
  • apps/ios/ADE/Views/Lanes/LaneDetailScreen.swift
  • apps/ios/ADE/Views/Lanes/LaneHelpers.swift
  • apps/ios/ADE/Views/Lanes/LaneListViewParts.swift
  • apps/ios/ADE/Views/Lanes/LaneManageSheet.swift
  • apps/ios/ADE/Views/Lanes/LaneStashesScreen.swift
  • apps/ios/ADE/Views/Lanes/LaneTreeView.swift
  • apps/ios/ADE/Views/Lanes/LaneTypes.swift
  • apps/ios/ADE/Views/LanesTabView.swift
  • apps/ios/ADE/Views/PRs/CreatePrWizardView.swift
  • apps/ios/ADE/Views/PRs/PrFiltersCard.swift
  • apps/ios/ADE/Views/PRs/PrListRowModifier.swift
  • apps/ios/ADE/Views/PRs/PrRowCard.swift
  • apps/ios/ADE/Views/PRs/PrTargetBranchPickerDropdown.swift
  • apps/ios/ADE/Views/PRs/PrsRootScreen.swift
  • apps/ios/ADE/Views/PRs/PrsRootScreenPreviews.swift
  • apps/ios/ADE/Views/Work/WorkChatAttachmentTray.swift
  • apps/ios/ADE/Views/Work/WorkChatComposerAndInputViews.swift
  • apps/ios/ADE/Views/Work/WorkChatHeaderAndMessageViews.swift
  • apps/ios/ADE/Views/Work/WorkChatRichCardViews.swift
  • apps/ios/ADE/Views/Work/WorkChatSessionView+Actions.swift
  • apps/ios/ADE/Views/Work/WorkChatSessionView+Timeline.swift
  • apps/ios/ADE/Views/Work/WorkChatSessionView.swift
  • apps/ios/ADE/Views/Work/WorkErrorAndMessageHelpers.swift
  • apps/ios/ADE/Views/Work/WorkEventMapping.swift
  • apps/ios/ADE/Views/Work/WorkLanePickerDropdown.swift
  • apps/ios/ADE/Views/Work/WorkModelCatalog.swift
  • apps/ios/ADE/Views/Work/WorkModelPickerSheet.swift
  • apps/ios/ADE/Views/Work/WorkModels.swift
  • apps/ios/ADE/Views/Work/WorkNewChatScreen.swift
  • apps/ios/ADE/Views/Work/WorkPreviews.swift
  • apps/ios/ADE/Views/Work/WorkReasoningCard.swift
  • apps/ios/ADE/Views/Work/WorkRootComponents.swift
  • apps/ios/ADE/Views/Work/WorkSessionDestinationView+Actions.swift
  • apps/ios/ADE/Views/Work/WorkSessionDestinationView.swift
  • apps/ios/ADE/Views/Work/WorkSessionGrouping.swift
  • apps/ios/ADE/Views/Work/WorkStatusAndFormattingHelpers.swift
  • apps/ios/ADE/Views/Work/WorkTimelineHelpers.swift
  • apps/ios/ADE/Views/Work/WorkTranscriptParser.swift
  • apps/ios/ADETests/ADETests.swift
✨ Finishing Touches
🧪 Generate unit tests (beta)
  • Create PR with unit tests
  • Commit unit tests in branch ade/mobile-audit-34b23435

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 and usage tips.

@arul28

arul28 commented Jun 12, 2026

Copy link
Copy Markdown
Owner Author

@copilot review but do not make fixes

Comment thread apps/ios/ADE/Views/Work/WorkChatAttachmentTray.swift
Comment thread apps/ios/ADE/Views/Work/WorkChatAttachmentTray.swift Outdated
@arul28

arul28 commented Jun 12, 2026

Copy link
Copy Markdown
Owner Author

@codex review

@chatgpt-codex-connector

Copy link
Copy Markdown

Codex Review: Didn't find any major issues. Breezy!

Reviewed commit: 3592b29dfc

ℹ️ About Codex in GitHub

Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you

  • Open a pull request for review
  • Mark a draft as ready
  • Comment "@codex review".

If Codex has suggestions, it will comment; otherwise it will react with 👍.

Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".

@arul28 arul28 merged commit 4dc4d8f into main Jun 12, 2026
27 checks passed
@arul28 arul28 deleted the ade/mobile-audit-34b23435 branch June 12, 2026 19:56
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