Repository navigation
fix(platform): preserve search privacy and keyboard focus - #4214
yannickmonney wants to merge 1 commit into
Conversation
Independent review verdict: request changes (blocking evidence only)Reviewed exact head
Blocking follow-upThe requested real-UI proof of an organization switch plus sign-out/sign-in was not run in this light slice (no browser, stack, E2E, or container permit). Run that heavy slice before landing and verify that a pending debounce cannot paint or persist the prior identity's query/title. This is an evidence blocker, not a new code finding. Evidence
Please re-request an independent native review after the heavy real-UI evidence is attached. No merge performed. The formal review endpoint also refused |
|
Real-UI evidence for PR #4214 at TALE-540 · agent #3 ( Source and control
Stack (isolated, owned by this run, now stopped)
Data (synthetic)
Driving: one Chromium profile (one localStorage) per run, driven through the UI:
Finding (changes requested): keyboard focus after an identity change while the palette is open If a control that survives the switch opened the palette, the
It reproduced in 5 of 5 runs at the head:
jsdom tests (item 5)
Not caused by this PR (no change asked here)
Not covered
CI at 03:41Z: 22 success, 10 skipped, 25 pending, 0 failed, so not terminal. I didn't rerun or cancel anything. Verdict: changes requested, for the 4b keyboard regression only. Items 1–3 and 5 pass at the exact head, and The evidence (logs, screenshots, scripts, |
ff0a7f3 to
c89749c
Compare
c89749c to
b2da52e
Compare
bfcd5d5 to
7f13f12
Compare
7f13f12 to
a0ef924
Compare
a0ef924 to
316e891
Compare
Global and chats-only search history belongs to the organization, signed-in account and palette scope. Collision-safe JSON tuples in a new v2 namespace isolate both the query and selected title. Unresolved identities disable persistence, and ownerless v1 history is ignored without migrating or deleting its bytes. Older builds can still read v1 data after rollback.
An ownership change now resets query, debounce, results and recents inside the shared SearchCommand body. The dialog and its focus scope stay mounted, retaining the original opener. The persistent sidebar search button no longer steals focus behind the open palette: typing and Tab remain inside it, and Escape closes it and returns to the opener. Scope changes within the same owner preserve the query. Exiting animations immediately deactivate the source and pagination. The shared resetKey API documents this ownership boundary; no visible copy or locale key changes.
Rebased onto main
e31702b9849afaf653150d4c53a0f93d3b10cb8d; sourceb2da52e1e1efdc6f999cc39eda349b8ea5047d98. The original three-file privacy commit replays with range equality. This follow-up closes the historical independent review's focus-only finding.Verification:
Limits: the full local check did not pass: two unchanged marketing-image encoding tests exceeded their existing 5-second limit, cancelling remaining tasks (40/52 successful). The unchanged isolated five-case encoding suite passes at the original limits. Full Knip retains the same seven unused exports as frozen main, tracked by the separate shared CI repair. No new full-stack sign-in/sign-out, phone or screen-reader proof is claimed. All seven native required checks and the merge queue remain required.
Closes #3613
Current-main rebase
Replayed the previously accepted source
b2da52e1e1efdc6f999cc39eda349b8ea5047d98onto maind1373d84cd56972501403f62145ec52e6f65d44a, including the merged shared CI repair in #4625. The accepted feature payload and all current-main changes are preserved in one atomic commit. Configured commit and conflict checks pass; earlier behavioral proof remains recorded above. All seven native required checks and full merge-group validation remain required for this new source.Maintenance replay: preserves the accepted feature payload on current main 7d178ca. Includes the merged #4649 Knip cleanup and the exact independently accepted one-line shared CLI inventory repair from #4654 (252f0df), which is still pending native merge on main. The fixed suite inventory keeps its discovery and source/compiled phase guards. Existing feature proof is retained; no fresh full-feature/full-workspace test or hosted-green claim. Native required checks remain mandatory.