Repository navigation
Conversation
ApprovabilityVerdict: Approved at Macroscope's review found this PR approvable — This is a focused 13-line mobile fix that restores the existing Duo search query only when UIKit swaps header modes, without changing search placement or affecting other platforms. The implementation is localized and introduces no schema, product-default, deployment, or static-analysis configuration changes. You can add or adjust custom eligibility rules. Learn more. |
|
@juliusmarminge @maria-rcks The replacement at 28df4c3 addresses the search bug without changing the existing iOS search defaults. I removed the forced-integrated placement that Macroscope flagged and that overlapped the composer. Main reproduces a blank landscape field after fresh portrait input while the list still filters by the hidden query. The replacement restores the query when the native header mode changes; fresh rotation, editing, Cancel and fold/unfold were validated on the iOS 27.1 RC1 Duo simulator. Updated before/after evidence is in the PR. The separate Filter-in-rail proposal is a UI enhancement awaiting direction/scope approval. |
|
The maintainer-review-only lint suppression flagged by Macroscope is removed at ef0d2d4. The effect now reads and tracks the previous header mode, so the transition dependency is meaningful. Fresh portrait input → landscape, editing after rotation, Cancel and fold/unfold with a selected chat passed in the native Duo client. The unrelated comment-only change is removed too, leaving a one-file bug fix. The final patch retains the original search placement defaults. |
|
Taking over this one as maintainer for batch mobile-01. I will preserve the focused Duo search behavior, merge current main, and add fresh verification and independent reviews. Thanks @PixPMusic for the fix and native reproduction evidence. |
|
Takeover assessment: this fix is now superseded by current main. The Home route mounts WorkspaceRootScreen, which always supplies workspace context on iOS; HomeRouteScreen therefore bypasses HomeHeader native search. WorkspaceToolbar.ios owns the active search and uses a stable placement across Duo layouts, with query restoration already in that path. See WorkspaceRootScreen and WorkspaceToolbar.ios. After integration and removal of the obsolete patch, the tree exactly matches main, so I am skipping publication. Thanks @PixPMusic for the original diagnosis and native evidence. This is a source-based assessment; native Duo behavior was not rerun on this Linux host. Scoped mobile typecheck, lint and formatting pass. No changes pushed. |
Maintainer assessment for batch mobile-01: superseded by current main; no replacement patch proposed. After merging f740a97 locally and removing the obsolete patch, the comparison has zero changes against main. The contributor’s published branch remains unchanged.
Main now supplies
WorkspaceTabsContextaround the workspace and uses a persistent workspace toolbar.HomeHeaderreturns nothing on that route. Search placement no longer switches with the Duo layout, and the toolbar restores the active tab query. The original mode-change effect targets the superseded header path.Native verification blocker: the available EAS runner reports iOS 26.5 devices and no Duo model or iOS 27 runtime. This PR’s Duo rotation and fold/unfold behavior could not be reproduced on that hardware. The captured native device catalog records the available devices. An ordinary iPhone capture would not establish the Duo claim. The author’s evidence below is historical, not fresh maintainer verification.
Tests remain 0→0; no native harness or replacement behavior test was added. Earlier scoped mobile checks passed; the current assessment is a zero-diff source comparison. No implementation review round is needed for an empty replacement diff. Credit to @PixPMusic for identifying and documenting the native header transition bug in #18158. No merge or replacement PR was made.
Original proposal and author evidence (historical):
Duo rotation changes the thread-list search between an integrated bottom field and a stacked sidebar field. UIKit keeps the search controller, but a query typed into the portrait field can disappear from the landscape field while the list still filters by it.
Restore the current thread-list query when the header mode changes. Track an actual header-mode change and read the latest query with an Effect Event so ordinary typing does not reapply native text or move the cursor. The final patch needs no lint suppression. Keep the existing stacked landscape and integrated portrait configurations. This replaces the earlier forced-integrated approach, which expanded focused search over the chat composer.
Validation: mobile TypeScript, scoped lint/formatting and diff checks pass. Native iOS 27.1 RC1 Duo checks cover fresh portrait input → landscape, rotation in both directions, fold/unfold, editing after rotation, and Cancel clearing the field and list filter. Focus can still be dismissed during posture changes; this change does not reopen the keyboard.
Same Duo, light theme, query and 951 × 669 landscape viewport. Fold/unfold query validation (the simulator capture briefly blanks during posture changes).
The earlier integrated placement also caused focused search to cross both columns:
This qualifies as a small, focused bug fix: the displayed field loses an active query during a native header swap. It restores that query and the existing iOS search defaults without introducing a new search workflow or placement choice. Column geometry, navigation, providers, contracts and connection behavior are unchanged. iPad and ordinary iPhone search configuration, Android and web/desktop are outside the fix. Native validation used a locally rebuilt SDK 27.1 development client; native dependency experiments are excluded from this PR.
Model: GPT-6.1 Sol | Harness: Codex in T3 Code