Skip to content

Preserve iOS workspace search across detail navigation - #9883

Closed
azooz2003-bit wants to merge 2 commits into
feat-ios-shortcut-bar-backgroundfrom
feat-ios-workspace-list-state
Closed

azooz2003-bit wants to merge 2 commits into
feat-ios-shortcut-bar-backgroundfrom
feat-ios-workspace-list-state

Conversation

@azooz2003-bit

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

Copy link
Copy Markdown
Collaborator

Keep workspace-detail pushes inside the active Search tab navigation stack. Returning with Back or an edge swipe reopens the same search presentation, query, keyboard focus, filtered list, and retained list position.

The first commit adds the behavior-level XCUITest. The second implements the navigation ownership fix.

Stacked on #9859 so the verified toolbar checkpoint remains intact.


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


Note

Medium Risk
Changes iOS primary-tab navigation ownership for search-to-workspace flows; behavior is covered by an expanded UI test but touches compact-stack coordination and search coordinator presentation.

Overview
Workspace detail from Search now pushes inside the Search tab’s navigation stack instead of switching to the Workspaces tab and deferring navigation. selectWorkspaceFromSearch sets workspaceSearchNavigationPath and records whether expanded search was active so Back or swipe-back can call restoreWorkspaceSearchPresentationIfNeeded() and reopen search via primarySearchCoordinator.setPresentation(true).

The Search tab NavigationStack gains navigationDestination for workspace IDs (custom back button, swipe-back enabler) and hides the root toolbar while detail is shown. Compact-stack selection sync skips updating compactNavigationPath while a search-stack detail is open.

The DEBUG list preview fixture mirrors the same pattern (searchFixtureRoute, shared fixtureWorkspaceDetail) and drops the old pending-route / tab-hop consumption logic.

XCUITest testWorkspaceSearchRestoresPresentationQueryAndResultsAfterWorkspaceDetailAndRefresh now asserts expanded search field, preserved query, keyboard focus, filtered rows, and stability after preview refresh—not only minimized search chrome.

Reviewed by Cursor Bugbot for commit c4704c0. Bugbot is set up for automated code reviews on this repo. Configure here.

@coderabbitai

coderabbitai Bot commented Aug 10, 2026 •

Copy link
Copy Markdown

Important

Review skipped

Auto reviews are disabled on base/target branches other than the default branch.

Please check the settings in the CodeRabbit UI or the .coderabbit.yaml file in this repository. To trigger a single review, invoke the @coderabbitai review command.

⚙️ Run configuration

Configuration used: Path: .coderabbit.yaml

Review profile: ASSERTIVE

Plan: Pro Plus

Run ID: 05450609-000e-4e00-85c4-b5328faf406f

You can disable this status message by setting the reviews.review_status to false in the CodeRabbit configuration file.

Use the checkbox below for a quick retry:

  • 🔍 Trigger review

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 force-pushed the feat-ios-workspace-list-state branch from 5a88bd0 to c4704c0 Compare August 10, 2026 02:42

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

Cursor Bugbot has reviewed your changes using default effort and found 1 potential issue.

Fix All in Cursor

❌ Bugbot Autofix is OFF. To automatically fix reported issues with cloud agents, enable autofix in the Cursor dashboard.

Want higher recall? High effort reviews run extra passes and find more bugs. A team admin can switch effort levels in the Cursor dashboard.

Reviewed by Cursor Bugbot for commit c4704c0. Configure here.


private func workspaceSearchTabContent(canCreateWorkspaceForSelection: Bool) -> some View {
workspaceActionToastOverlay {
NavigationStack {

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

Stale search stack after tab leave

Medium Severity

Leaving the Search tab clears notificationSearchNavigationPath but not the new workspaceSearchNavigationPath or restoreSearchOnDetailReturn. A deeplink or other tab transition while a search-owned detail is open leaves that stack mounted, so returning to Search can show a stale detail, compact-stack selection sync stays blocked by the empty-path guard, and a later pop can incorrectly re-present Search.

Additional Locations (2)
Fix in Cursor Fix in Web

Reviewed by Cursor Bugbot for commit c4704c0. Configure here.

@azooz2003-bit

Copy link
Copy Markdown
Collaborator Author

Closed at the author’s request; this search-state work is being discarded.

@azooz2003-bit
azooz2003-bit deleted the feat-ios-workspace-list-state branch August 10, 2026 02:47
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