Skip to content

Remove Mobile Push#592

Merged
arul28 merged 7 commits into
mainfrom
ade/remove-mobile-push-704e26d6
Jun 16, 2026
Merged

Remove Mobile Push#592
arul28 merged 7 commits into
mainfrom
ade/remove-mobile-push-704e26d6

Conversation

@arul28

@arul28 arul28 commented Jun 16, 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/remove-mobile-push-704e26d6 branch  ·  PR #592

Summary by CodeRabbit

  • Bug Fixes & Removals
    • Removed APNs/mobile push infrastructure across iOS and desktop, including related sync/device token handling and notification delivery.
    • Removed mobile push and notifications/quiet-hours settings from desktop and iOS.
    • Removed the iOS Notification Service extension and related entitlements/config.
    • Simplified sync/remote-command handling by dropping mute/preferences and in-app notification routing.
    • Updated Privacy page and onboarding/settings navigation to reflect the change.

Greptile Summary

  • Removes APNs/mobile push infrastructure, token handling, notification event bus paths, and desktop/iOS push settings.
  • Removes the iOS notification service extension, push categories, notification preferences, quiet-hours, and mute controls.
  • Keeps iOS Live Activity/widget intent actions routed through sync and updates PR action payload/navigation behavior.
  • Updates docs, changelog, privacy copy, onboarding, and architecture references to reflect removal of mobile push.

Confidence Score: 3/5

Merge should wait for the Live Activity PR intent navigation regression to be fixed.

The removed push-notification paths are broad but mostly mechanical; the remaining concern is a concrete iOS widget/action flow where valid number-only PR payloads no longer navigate to the selected PR.

apps/ios/ADEWidgets/ADELiveActivityPrimitives.swift

T-Rex T-Rex Logs

What T-Rex did

  • Ran a focused number-only OpenADEPrIntent harness for prNumber 42 and empty prId, observed zero .openPr dispatches, and confirmed that requestPrNavigationFromIntentPayload was never reached.
  • Inspected blocker evidence: trex-artifacts/desktop-mobile-push-settings-blocker.log contains the actual Vite startup command, cwd, exit code, and stderr indicating Node/Vite incompatibility.
  • Compared HEAD states: origin/main had ADENotificationService files and related settings; current HEAD shows ADENotificationService files absent and no APNs/time-sensitive entitlements; tooling confirms xcodebuild is unavailable.
  • Ran and captured API mobile push removal probe results: before test returned 200 OK with 6 PRESENT checks; after test returned 200 OK with 6 ABSENT checks.
  • Observed privacy copy changes: before route showed APNs true; after route shows APNs false and ADE machine true.

View all artifacts

T-Rex Ran code and verified through T-Rex

Comments Outside Diff (1)

  1. apps/ios/ADE/Shared/LiveActivityIntentsForward.swift, line 511-513 (link)

    P1 Route deep-link intents

    OpenADEDeepLinkIntent sends a url payload, but it dispatches .openPr. The bridge maps .openPr to RemoteCommandKind.openPr, and that path only forwards prNumber to prs.getDetail, so Live Activity buttons like “Open agent” can return success while sending an empty PR-detail command instead of opening the ade://session/..., ade://pr/..., or workspace URL on the paired Mac. Route these URL intents through the existing .openDeeplink / deeplinks.open command path instead.

    Artifacts

    Repro: focused command-routing harness

    • Contains supporting evidence from the run (text/javascript; charset=utf-8).

    Repro: failing harness output showing openPr to prs.getDetail routing

    • Keeps the command output available without making the summary code-heavy.

    View artifacts

    T-Rex Ran code and verified through T-Rex

    Prompt To Fix With AI
    This is a comment left during a code review.
    Path: apps/ios/ADE/Shared/LiveActivityIntentsForward.swift
    Line: 511-513
    
    Comment:
    **Route deep-link intents**
    
    `OpenADEDeepLinkIntent` sends a `url` payload, but it dispatches `.openPr`. The bridge maps `.openPr` to `RemoteCommandKind.openPr`, and that path only forwards `prNumber` to `prs.getDetail`, so Live Activity buttons like “Open agent” can return success while sending an empty PR-detail command instead of opening the `ade://session/...`, `ade://pr/...`, or workspace URL on the paired Mac. Route these URL intents through the existing `.openDeeplink` / `deeplinks.open` command path instead.
    
    How can I resolve this? If you propose a fix, please make it concise.

    Fix in Claude Code

Fix All in Claude Code

Prompt To Fix All With AI
Fix the following 1 code review issue. Work through them one at a time, proposing concise fixes.

---

### Issue 1 of 1
apps/ios/ADEWidgets/ADELiveActivityPrimitives.swift:509-518
**Allow number-only opens**

The updated PR intent returns before dispatching unless both `prNumber` and `prId` are present. `AttentionItem.prId` is optional, and the app still supports number-only navigation through `PrNavigationRequest(prNumber:)` / `requestPrNavigationFromIntentPayload`, so an attention payload with a GitHub PR number but no internal ADE PR id opens the app without selecting the PR. Dispatch whenever `prNumber` is valid, and include `prId` only when it is present.

Reviews (4): Last reviewed commit: "ship: iteration 6 - navigate PR intents ..." | Re-trigger Greptile

Greptile also left 1 inline comment on this PR.

@vercel

vercel Bot commented Jun 16, 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 16, 2026 9:53pm

@arul28

arul28 commented Jun 16, 2026

Copy link
Copy Markdown
Owner Author

@copilot review but do not make fixes

@coderabbitai

coderabbitai Bot commented Jun 16, 2026

Copy link
Copy Markdown

Review Change Stack

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 21 minutes and 32 seconds. Learn how PR review limits work.

Your organization has used up its prepaid credits, and credit purchases are no longer available. Enable the review add-on in the billing tab to keep reviews running — you're only billed for reviews past your plan's rate limits ($0.25/file).

⌛ 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: 3d936c88-6e2a-49dd-a696-24d647d9c10e

📥 Commits

Reviewing files that changed from the base of the PR and between b456847 and 22c5d47.

📒 Files selected for processing (4)
  • apps/ios/ADE/App/ADEApp.swift
  • apps/ios/ADE/Services/SyncService.swift
  • apps/ios/ADETests/ADETests.swift
  • apps/ios/ADEWidgets/ADELiveActivityPrimitives.swift
📝 Walkthrough

Walkthrough

This PR removes the entire Apple Push Notification Service (APNs) and mobile push notification stack across the monorepo. It deletes all shared types, desktop notification services (apnsService, notificationEventBus, notificationMapper, apnsBridgeService), iOS AppDelegate/NotificationService extension/notification UI views, sync host/device-registry APNs methods, IPC channels, the MobilePushPanel settings page, and all associated tests and fixtures.

Changes

APNs/Mobile Push Removal

Layer / File(s) Summary
Shared type contracts and IPC channels removed
apps/desktop/src/shared/types/sync.ts, apps/desktop/src/shared/types/config.ts, apps/desktop/src/shared/ipc.ts
Removes all APNs/notification exported types (SyncEnvelope variants, APNs bridge types, NotificationsConfig), notification IPC channel entries, and the normalizeNotificationPreferences helper.
Desktop notification service modules deleted
apps/desktop/src/main/services/notifications/apnsService.ts, ...notificationEventBus.ts, ...notificationMapper.ts, ...apnsBridgeService.ts, .../*.test.ts, apps/desktop/src/main/services/adeActions/registry.ts, ...registry.test.ts
Deletes the full notifications/ service directory including ApnsService, ApnsKeyStore, Http2ApnsTransport, event bus, mapper, and bridge service factory. Removes notifications_apns domain from the ADE action registry.
Project config service strips notifications section
apps/desktop/src/main/services/config/projectConfigService.ts, ...projectConfigService.test.ts
Removes coerceNotificationsConfig, mergeNotificationsConfig, YAML serialization, hasSharedConfigContent check, and effective-config output for notifications. Removes the APNs deep-merge test suite.
Desktop main process wiring and IPC bridge removed
apps/desktop/src/main/main.ts, apps/desktop/src/main/services/ipc/registerIpc.ts, apps/desktop/src/preload/preload.ts, apps/desktop/src/preload/global.d.ts, apps/desktop/src/main/services/prs/prPollingService.ts, apps/desktop/src/preload/preload.test.ts
Removes APNs construction/startup/teardown from main.ts, all APNs IPC handlers from registerIpc.ts, APNs fields from AppContext, notifications.apns methods from the contextBridge surface and global.d.ts, and notificationEventBus from prPollingService. Adds new preload tests for remote PTY fan-out.
ADE CLI sync services and bootstrap wiring removed
apps/ade-cli/src/bootstrap.ts, apps/ade-cli/src/services/sync/deviceRegistryService.ts, apps/ade-cli/src/services/sync/syncHostService.ts, apps/ade-cli/src/services/sync/syncService.ts, apps/desktop/src/main/services/sync/deviceRegistryService.test.ts
Removes APNs fields from AdeRuntime, all APNs token/notification-prefs methods from DeviceRegistryService, notificationEventBus from SyncHostServiceArgs and all related command/envelope handling paths, and notificationEventBus from SyncServiceArgs.
iOS app core: AppDelegate, notification categories, preferences model, and LiveActivity push tokens removed
apps/ios/ADE/App/AppDelegate.swift, ...NotificationCategories.swift, ...Models/NotificationPreferences.swift, ...Services/LiveActivityCoordinator.swift, ...Services/SyncService.swift, apps/ios/ADE/App/ADEApp.swift, apps/ios/ADE/ADE.entitlements, apps/ios/ADE/Info.plist
Deletes AppDelegate, NotificationCategories, NotificationPreferences model. Removes push-token plumbing from LiveActivityCoordinator (PushTokenKind, sendPushToken, push-to-start listener). Migrates ADESyncIntentBridge into ADEApp.swift. Removes APNs and time-sensitive notification entitlements; replaces remote-notification background mode with audio.
iOS SyncService and shared cross-target symbols updated
apps/ios/ADE/Services/SyncService.swift, apps/ios/ADE/Shared/LiveActivityIntentsForward.swift, apps/ios/ADE/Shared/ADESharedContainer.swift, apps/ios/ADE/Shared/ADESharedModels.swift, apps/ios/ADE/Shared/ADESharedTheme.swift
Removes in_app_notification handling, setMutePush remote command, SyncSendTestPushResult, notification-prefs encoding helpers, ADEMutePreferences, and ToggleMutePushIntent. Updates shared file comments to remove notification service extension references.
ADENotificationService extension deleted
apps/ios/ADENotificationService/NotificationService.swift, ...ADENotificationService.entitlements, ...Info.plist, apps/ios/ExportOptions.plist
Removes the UNNotificationServiceExtension subclass, its entitlements and Info.plist, and the extension's provisioning profile entry.
iOS notification settings UI views removed
apps/ios/ADE/Views/Settings/SettingsNotificationsSection.swift, ...NotificationsCenterView.swift, ...PerSessionOverrideView.swift, ...QuietHoursEditorView.swift, ...ConnectionSettingsView.swift, apps/ios/ADEWidgets/ADEControlWidget.swift, apps/ios/ADEWidgets/ADEWidgetBundle.swift
Removes all notification settings SwiftUI views. Removes ADEMuteControlWidget/ADEMuteControlState; updates widget bundle to register ADEControlWidget instead.
iOS and desktop test updates and push fixture removal
apps/ios/ADETests/ADETests.swift, apps/desktop/apps/ios/TestFixtures/*
Removes notification-prefs/APNs unit tests, updates the projectless envelope contract test and the tool deduplication assertion. Deletes all iOS push simulator fixture JSONs and their README.
Desktop renderer: MobilePushPanel and settings section removed
apps/desktop/src/renderer/components/settings/MobilePushPanel.tsx, apps/desktop/src/renderer/components/app/SettingsPage.tsx, apps/desktop/src/renderer/components/app/settingsSections.ts, apps/desktop/src/renderer/browserMock.ts, apps/desktop/src/renderer/onboarding/tours/settingsHighlightsTour.ts
Deletes MobilePushPanel. Removes mobile-push settings section, redirects tab aliases to general, and removes the tab-resolution export. Updates browser mock and onboarding tour text.
Privacy page, roadmap, and comment-only updates
apps/web/src/app/pages/PrivacyPage.tsx, plans/tui-parity-roadmap.md, apps/ios/ADE/Views/Work/WorkNewChatScreen.swift, apps/ios/ADE/Shared/WidgetAppIntents.swift, apps/ios/ADE/Views/AttentionDrawer/AttentionDrawerModel.swift, apps/ios/ADEWidgets/ADELiveActivityPrimitives.swift
Removes APNs third-party mention and push-token references from the Privacy page. Removes mobile push from TUI roadmap scope. Adds autoCreateToolsLane computed property. Updates iOS widget intent implementations to dispatch via .openPr and .openDeeplink commands. Updates doc comments.

Estimated code review effort

🎯 4 (Complex) | ⏱️ ~60 minutes

Possibly related PRs

  • arul28/ADE#542: Modifies MobilePushPanel.tsx to add a MachineScopeBadge in the header — the component this PR deletes.
  • arul28/ADE#353: Adds APNs AdeRuntime fields and APNs service/keystore setup in apps/ade-cli/src/bootstrap.ts — exactly the wiring this PR removes.
  • arul28/ADE#195: Modifies the desktop sync initialization surface in createSyncHostService/createSyncService argument/types — overlapping code paths this PR also modifies.

Suggested labels

desktop, ios, web

✨ Finishing Touches
🧪 Generate unit tests (beta)
  • Create PR with unit tests
  • Commit unit tests in branch ade/remove-mobile-push-704e26d6

@mintlify

mintlify Bot commented Jun 16, 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 16, 2026, 7:41 PM

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

Comment thread apps/ios/ADE/App/ADEApp.swift
@arul28 arul28 force-pushed the ade/remove-mobile-push-704e26d6 branch from df47401 to debf872 Compare June 16, 2026 20:10
@arul28

arul28 commented Jun 16, 2026

Copy link
Copy Markdown
Owner Author

@codex review

@arul28 arul28 force-pushed the ade/remove-mobile-push-704e26d6 branch from debf872 to bdcb188 Compare June 16, 2026 20:13
@arul28

arul28 commented Jun 16, 2026

Copy link
Copy Markdown
Owner Author

@codex review

@chatgpt-codex-connector chatgpt-codex-connector 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.

💡 Codex Review

Here are some automated review suggestions for this pull request.

Reviewed commit: bdcb188ebb

ℹ️ 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".

Comment thread apps/ios/ADE/App/ADEApp.swift Outdated

@coderabbitai coderabbitai 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.

Actionable comments posted: 1

🧹 Nitpick comments (1)
apps/desktop/src/renderer/components/app/SettingsPage.tsx (1)

33-35: Clean up unused settingsSections.ts definitions or consolidate with active tab resolver.

settingsSections.ts contains a TAB_ALIASES mapping that conflicts with the one in SettingsPage.tsx (sync/devices/multi-device → "workspace" vs. "general"), but the function resolveSettingsSectionFromTab and this module are not imported or used anywhere in the renderer. Only SettingsPage.tsx's local tab resolution logic is active. Remove the unused TAB_ALIASES and resolveSettingsSectionFromTab from settingsSections.ts, or consolidate tab resolution logic to a single canonical location to avoid confusion and future maintenance issues.

🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

In `@apps/desktop/src/renderer/components/app/SettingsPage.tsx` around lines 33 -
35, Remove the unused TAB_ALIASES mapping and resolveSettingsSectionFromTab
function from settingsSections.ts, as they conflict with and are superseded by
the active tab resolution logic in SettingsPage.tsx (which maps
sync/devices/multi-device to "general"). Since only SettingsPage.tsx's local tab
resolution is actively used in the renderer, eliminate the duplicate and
conflicting definitions in settingsSections.ts to maintain a single canonical
source of truth for tab resolution.
🤖 Prompt for all review comments with AI agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

Inline comments:
In `@apps/ios/ADE/App/ADEApp.swift`:
- Around line 88-90: Deep-link commands are incorrectly being routed through the
PR action path. Add an `openDeeplink` case to the `ADEIntentCommandKind` enum to
provide a dedicated deep-link command type. Then update the switch statement
that maps `ADEIntentCommandKind` cases (around line 88 where `.openPr` is
mapped) to handle the new `openDeeplink` case by mapping it to
`RemoteCommandKind.openDeeplink`. Finally, update the deep-link AppIntent caller
to dispatch the `openDeeplink` case instead of `openPr` when handling deep-link
intents with URL payloads.

---

Nitpick comments:
In `@apps/desktop/src/renderer/components/app/SettingsPage.tsx`:
- Around line 33-35: Remove the unused TAB_ALIASES mapping and
resolveSettingsSectionFromTab function from settingsSections.ts, as they
conflict with and are superseded by the active tab resolution logic in
SettingsPage.tsx (which maps sync/devices/multi-device to "general"). Since only
SettingsPage.tsx's local tab resolution is actively used in the renderer,
eliminate the duplicate and conflicting definitions in settingsSections.ts to
maintain a single canonical source of truth for tab resolution.
🪄 Autofix (Beta)

Fix all unresolved CodeRabbit comments on this PR:

  • Push a commit to this branch (recommended)
  • Create a new PR with the fixes

ℹ️ Review info
⚙️ Run configuration

Configuration used: Path: .coderabbit.yaml

Review profile: CHILL

Plan: Pro

Run ID: 8c8d96a2-1723-43c3-98f8-b04e51777165

📥 Commits

Reviewing files that changed from the base of the PR and between a2b19a3 and bdcb188.

⛔ Files ignored due to path filters (13)
  • .ade/ade.yaml is excluded by !.ade/**
  • CHANGELOG.md is excluded by !*.md
  • apps/ios/ADE.xcodeproj/project.pbxproj is excluded by !**/*.xcodeproj/project.pbxproj
  • architecture.mdx is excluded by !*.mdx
  • changelog/v1.0.19.mdx is excluded by !changelog/**
  • changelog/v1.1.5.mdx is excluded by !changelog/**
  • docs/ARCHITECTURE.md is excluded by !docs/**
  • docs/features/onboarding-and-settings/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/perf/ios-mobile-action-inventory.md is excluded by !docs/**
  • index.mdx is excluded by !*.mdx
  • key-concepts.mdx is excluded by !*.mdx
📒 Files selected for processing (66)
  • apps/ade-cli/src/bootstrap.ts
  • apps/ade-cli/src/services/sync/deviceRegistryService.ts
  • apps/ade-cli/src/services/sync/syncHostService.ts
  • apps/ade-cli/src/services/sync/syncService.ts
  • apps/desktop/apps/ios/TestFixtures/README.md
  • apps/desktop/apps/ios/TestFixtures/chat-awaiting-input.json
  • apps/desktop/apps/ios/TestFixtures/chat-failed.json
  • apps/desktop/apps/ios/TestFixtures/pr-ci-failing.json
  • apps/desktop/apps/ios/TestFixtures/pr-merge-ready.json
  • apps/desktop/apps/ios/TestFixtures/pr-review-requested.json
  • apps/desktop/src/main/main.ts
  • apps/desktop/src/main/services/adeActions/registry.test.ts
  • apps/desktop/src/main/services/adeActions/registry.ts
  • apps/desktop/src/main/services/config/projectConfigService.test.ts
  • apps/desktop/src/main/services/config/projectConfigService.ts
  • apps/desktop/src/main/services/ipc/registerIpc.ts
  • apps/desktop/src/main/services/notifications/apnsBridgeService.test.ts
  • apps/desktop/src/main/services/notifications/apnsBridgeService.ts
  • apps/desktop/src/main/services/notifications/apnsService.test.ts
  • apps/desktop/src/main/services/notifications/apnsService.ts
  • apps/desktop/src/main/services/notifications/notificationEventBus.test.ts
  • apps/desktop/src/main/services/notifications/notificationEventBus.ts
  • apps/desktop/src/main/services/notifications/notificationMapper.test.ts
  • apps/desktop/src/main/services/notifications/notificationMapper.ts
  • apps/desktop/src/main/services/prs/prPollingService.ts
  • apps/desktop/src/main/services/sync/deviceRegistryService.test.ts
  • apps/desktop/src/preload/global.d.ts
  • apps/desktop/src/preload/preload.test.ts
  • apps/desktop/src/preload/preload.ts
  • apps/desktop/src/renderer/browserMock.ts
  • apps/desktop/src/renderer/components/app/SettingsPage.tsx
  • apps/desktop/src/renderer/components/app/settingsSections.ts
  • apps/desktop/src/renderer/components/settings/MobilePushPanel.tsx
  • apps/desktop/src/renderer/onboarding/tours/settingsHighlightsTour.ts
  • apps/desktop/src/shared/ipc.ts
  • apps/desktop/src/shared/types/config.ts
  • apps/desktop/src/shared/types/sync.ts
  • apps/ios/ADE/ADE.entitlements
  • apps/ios/ADE/App/ADEApp.swift
  • apps/ios/ADE/App/AppDelegate.swift
  • apps/ios/ADE/App/NotificationCategories.swift
  • apps/ios/ADE/Info.plist
  • apps/ios/ADE/Models/NotificationPreferences.swift
  • apps/ios/ADE/Services/LiveActivityCoordinator.swift
  • apps/ios/ADE/Services/SyncService.swift
  • apps/ios/ADE/Shared/ADESharedContainer.swift
  • apps/ios/ADE/Shared/ADESharedModels.swift
  • apps/ios/ADE/Shared/ADESharedTheme.swift
  • apps/ios/ADE/Shared/LiveActivityIntentsForward.swift
  • apps/ios/ADE/Shared/WidgetAppIntents.swift
  • apps/ios/ADE/Views/AttentionDrawer/AttentionDrawerModel.swift
  • apps/ios/ADE/Views/Settings/ConnectionSettingsView.swift
  • apps/ios/ADE/Views/Settings/NotificationsCenterView.swift
  • apps/ios/ADE/Views/Settings/PerSessionOverrideView.swift
  • apps/ios/ADE/Views/Settings/QuietHoursEditorView.swift
  • apps/ios/ADE/Views/Settings/SettingsNotificationsSection.swift
  • apps/ios/ADE/Views/Work/WorkNewChatScreen.swift
  • apps/ios/ADENotificationService/ADENotificationService.entitlements
  • apps/ios/ADENotificationService/Info.plist
  • apps/ios/ADENotificationService/NotificationService.swift
  • apps/ios/ADETests/ADETests.swift
  • apps/ios/ADEWidgets/ADEControlWidget.swift
  • apps/ios/ADEWidgets/ADEWidgetBundle.swift
  • apps/ios/ExportOptions.plist
  • apps/web/src/app/pages/PrivacyPage.tsx
  • plans/tui-parity-roadmap.md
💤 Files with no reviewable changes (48)
  • apps/ios/ADE/ADE.entitlements
  • apps/desktop/apps/ios/TestFixtures/pr-review-requested.json
  • apps/desktop/apps/ios/TestFixtures/README.md
  • apps/ios/ADENotificationService/ADENotificationService.entitlements
  • apps/ios/ADE/Info.plist
  • apps/desktop/apps/ios/TestFixtures/chat-failed.json
  • apps/desktop/apps/ios/TestFixtures/chat-awaiting-input.json
  • apps/desktop/apps/ios/TestFixtures/pr-merge-ready.json
  • apps/ios/ExportOptions.plist
  • apps/desktop/src/renderer/components/settings/MobilePushPanel.tsx
  • apps/ios/ADENotificationService/Info.plist
  • apps/ios/ADEWidgets/ADEWidgetBundle.swift
  • apps/ios/ADE/App/NotificationCategories.swift
  • apps/desktop/src/main/services/notifications/notificationMapper.test.ts
  • apps/ios/ADE/Views/Settings/QuietHoursEditorView.swift
  • apps/ios/ADENotificationService/NotificationService.swift
  • apps/desktop/src/main/services/notifications/apnsBridgeService.ts
  • apps/desktop/src/main/services/notifications/notificationEventBus.test.ts
  • apps/desktop/src/main/services/notifications/notificationEventBus.ts
  • apps/desktop/apps/ios/TestFixtures/pr-ci-failing.json
  • apps/ios/ADE/Models/NotificationPreferences.swift
  • apps/ios/ADE/Views/Settings/SettingsNotificationsSection.swift
  • apps/desktop/src/main/services/notifications/apnsService.test.ts
  • apps/desktop/src/main/services/notifications/apnsBridgeService.test.ts
  • apps/ios/ADE/Views/Settings/ConnectionSettingsView.swift
  • apps/ios/ADE/Views/Settings/NotificationsCenterView.swift
  • apps/desktop/src/renderer/browserMock.ts
  • apps/desktop/src/main/services/config/projectConfigService.test.ts
  • apps/ios/ADE/Views/Settings/PerSessionOverrideView.swift
  • apps/desktop/src/main/services/notifications/notificationMapper.ts
  • apps/desktop/src/main/services/prs/prPollingService.ts
  • apps/desktop/src/main/services/notifications/apnsService.ts
  • apps/ade-cli/src/services/sync/deviceRegistryService.ts
  • apps/ios/ADE/App/AppDelegate.swift
  • apps/desktop/src/main/services/adeActions/registry.test.ts
  • apps/desktop/src/shared/ipc.ts
  • apps/desktop/src/preload/global.d.ts
  • apps/desktop/src/shared/types/config.ts
  • apps/desktop/src/main/services/sync/deviceRegistryService.test.ts
  • apps/desktop/src/preload/preload.ts
  • apps/ade-cli/src/bootstrap.ts
  • apps/ios/ADEWidgets/ADEControlWidget.swift
  • apps/desktop/src/main/services/ipc/registerIpc.ts
  • apps/ade-cli/src/services/sync/syncService.ts
  • apps/desktop/src/main/services/adeActions/registry.ts
  • apps/desktop/src/preload/preload.test.ts
  • apps/ade-cli/src/services/sync/syncHostService.ts
  • apps/desktop/src/shared/types/sync.ts

Comment thread apps/ios/ADE/App/ADEApp.swift
@arul28

arul28 commented Jun 16, 2026

Copy link
Copy Markdown
Owner Author

@codex review

@chatgpt-codex-connector chatgpt-codex-connector 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.

💡 Codex Review

Here are some automated review suggestions for this pull request.

Reviewed commit: 4eeb7e0689

ℹ️ 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".

Comment thread apps/ios/ADEWidgets/ADELiveActivityPrimitives.swift
@arul28

arul28 commented Jun 16, 2026

Copy link
Copy Markdown
Owner Author

@codex review

@chatgpt-codex-connector chatgpt-codex-connector 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.

💡 Codex Review

Here are some automated review suggestions for this pull request.

Reviewed commit: b4568478eb

ℹ️ 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".

Comment thread apps/ios/ADEWidgets/ADELiveActivityPrimitives.swift Outdated
@arul28

arul28 commented Jun 16, 2026

Copy link
Copy Markdown
Owner Author

@codex review

@chatgpt-codex-connector chatgpt-codex-connector 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.

💡 Codex Review

Here are some automated review suggestions for this pull request.

Reviewed commit: 01f829a2c5

ℹ️ 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".

Comment thread apps/ios/ADEWidgets/ADELiveActivityPrimitives.swift
@arul28

arul28 commented Jun 16, 2026

Copy link
Copy Markdown
Owner Author

@codex review

@chatgpt-codex-connector chatgpt-codex-connector 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.

💡 Codex Review

Here are some automated review suggestions for this pull request.

Reviewed commit: 817da405d5

ℹ️ 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".

Comment thread apps/ios/ADEWidgets/ADELiveActivityPrimitives.swift
@arul28

arul28 commented Jun 16, 2026

Copy link
Copy Markdown
Owner Author

@codex review

@chatgpt-codex-connector

Copy link
Copy Markdown

Codex Review: Didn't find any major issues. Another round soon, please!

Reviewed commit: 22c5d47939

ℹ️ 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 6637b86 into main Jun 16, 2026
47 of 49 checks passed
Comment on lines +509 to +518
@MainActor
public func perform() async throws -> some IntentResult {
let trimmedPrId = prId.trimmingCharacters(in: .whitespacesAndNewlines)
guard prNumber > 0, !trimmedPrId.isEmpty else { return .result() }
await ADEIntentCommandRegistry.dispatch(
.openPr,
payload: ["prNumber": prNumber, "prId": trimmedPrId]
)
return .result()
}

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

P1 Allow number-only opens

The updated PR intent returns before dispatching unless both prNumber and prId are present. AttentionItem.prId is optional, and the app still supports number-only navigation through PrNavigationRequest(prNumber:) / requestPrNavigationFromIntentPayload, so an attention payload with a GitHub PR number but no internal ADE PR id opens the app without selecting the PR. Dispatch whenever prNumber is valid, and include prId only when it is present.

Artifacts

Repro: focused executable harness for number-only OpenADEPrIntent dispatch

  • Contains supporting evidence from the run (text/x-python; charset=utf-8).

Repro: failing harness output showing early return and no dispatch

  • Keeps the command output available without making the summary code-heavy.

Repro: generated Swift XCTest for the number-only intent path

  • Contains supporting evidence from the run (text/x-swift; charset=utf-8).

Repro: Swift XCTest execution attempt blocked by missing Swift toolchain

  • Keeps the command output available without making the summary code-heavy.

View artifacts

T-Rex Ran code and verified through T-Rex

Prompt To Fix With AI
This is a comment left during a code review.
Path: apps/ios/ADEWidgets/ADELiveActivityPrimitives.swift
Line: 509-518

Comment:
**Allow number-only opens**

The updated PR intent returns before dispatching unless both `prNumber` and `prId` are present. `AttentionItem.prId` is optional, and the app still supports number-only navigation through `PrNavigationRequest(prNumber:)` / `requestPrNavigationFromIntentPayload`, so an attention payload with a GitHub PR number but no internal ADE PR id opens the app without selecting the PR. Dispatch whenever `prNumber` is valid, and include `prId` only when it is present.

How can I resolve this? If you propose a fix, please make it concise.

Fix in Claude Code

@arul28 arul28 deleted the ade/remove-mobile-push-704e26d6 branch June 17, 2026 04:33
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