Repository navigation
fix(platform): preserve contact palette search at its destination - #4319
yannickmonney wants to merge 1 commit into
Conversation
|
Merge state: this PR conflicts with #4243 (bounded contacts search and sorting) merged as
What the resolution has to keep:
Merging |
yannickmonney
left a comment
There was a problem hiding this comment.
TALE-696 independent review — ACCEPT (source/behavior scope only)
Exact head: 8edcb9f3c8a8203871965c1645aec560d53e0eca — PR #4319, TALE-172 / #3627. Reviewer: Codex #1 af98a247, run b5718294-2071-4d09-9bce-1eed1d0998c8; distinct from author Codex #3 4c7208dc, run 3ad19ea7.
No blocking source finding. ContactsPage now consumes validated search.query; ContactsTable seeds and synchronizes its editable search before the existing 250 ms debounce. Query edits replace the URL and spread previous search fields, retaining both facets. Clearing removes query from the URL, allowing selection of the same palette contact again to seed the input. No client-side completeness drain is introduced.
Independently observed, installed Node 24.21.0 / Vitest 4.1.11 / one worker / 2 GiB heap:
- 49/49 existing scoped tests in 7 files pass: table, bulk-delete, destination wire, palette, target builder, table configuration and engagement adapters. Includes existing jsdom axe audits, the server-search no-drain test and global accented-name sorting/windowing counterexample.
- 4/4 additional reviewer probes pass: actual TanStack Router + memory history + actual route/table/list adapters over a closed synthetic HTTP transport verifies actual URL query replacement, unchanged history index, preservation of Source AND Locale, clearing, and twice reselecting the same contact. Actual table configuration and EN/DE/FR catalogs render the correct localized search input with its incoming query, without typing a second search.
- Negative control fails on current fetched main
b77a452efcb6cb22ee936799737141322109cb13: the PR's destination regression with main's exact Contacts route/table substituted expects['Audit fr']but receives['Audit en', 'Upload en']. The target is outside the unfiltered first page. The unchanged head passes the same destination test. This is an observed assertion failure, not merely the initial 5-second test timeout; the review harness allows 20 seconds per test. - #4243 preserved: contacts query hook, paginated engagement adapter, shared list hook and debounce have identical git blobs to current main. The table retains trimmed/debounced server search, bounded first-page size, server-side search mode, manual sorting and column-aware windowing. Its preservation tests pass.
- Scoped static checks: Oxlint non-type-aware, 3 exact-head TSX files / 203 rules / zero diagnostics; Oxfmt, 3 files / pass;
git diff --check/ pass. No strings, auth, backend contract, schema or migration changed. The manual automation register correctly distinguishes mocked transport/router proof from browser/live proof.
Unrun / remaining gates: no real browser, visual analyzer, screen reader, E2E, production, real backend/database stack, full suite, independent scoped TypeScript/type-aware lint, SAST, Knip or manual-layer lint rerun. Real-router evidence is jsdom with a minimal route tree, not the complete app shell or browser history. Existing React act and jsdom scroll warnings are not claimed absent. The author's type/SAST/manual results are reported in the PR but are not independently rerun here.
CI is not green: passive exact-head snapshot shows 5 Resolve-source successes and 16 queued checks; no CI was rerun, cancelled or triggered. This ACCEPT is not merge readiness, native/protected-human approval or permission to move cards. Root's 08:15Z rule remains: any blocking finding overrides acceptance until independently closed at the repaired exact head. Root's 15:20Z publication hold remains in force. A changed head requires scoped revalidation. TALE-359 owns remaining authorized browser/live proof, exact-head CI reconciliation and merge clearance; no merge, push or card move performed.
Evidence: TALE-696 delivery box contains reviewed.patch, exact-head source copies, vitest.config.mts, review-wire.test.tsx, reproduction commands, positive/negative logs, locale/router probe logs, static checks and passive status snapshot.
|
Merge state: this PR now conflicts with #4294 merged as Resolution: keep The ACCEPT at this head covers source that a register-only merge leaves unchanged. The new head needs green CI and an interdiff confirmation that only the register changed. I pushed nothing. |
8edcb9f to
c79307c
Compare
6dcbffe to
100361d
Compare
100361d to
44455ee
Compare
What changed
queryfrom ContactsPage into ContactsTable.Verification
3af9e704d), substituting its exact Contacts route/table source into the same test: it displays unrelated first-page contacts rather than the selected contact. It also failed on starting main (9e8f87f68).Unrun and composition
tscwas run under the light-only dispatch limits. Browser navigation, visual/focus behavior and live backend proof remain for the authorized review lane.Closes #3627
Current-main rebase
Replayed the previously accepted source
6dcbffe59863d33aacb6381cfb61b90e9168021conto 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.