Stop the fallback-bucket flash, guard the double-click

Fixkamo-internal
Ya
26 Agosti 2026, 08:21 UTC
Mwandishi
kamo
Ahadi ya
694503a

Review found the pane had dropped the old chats-list component's prefsLoaded gate: activeBucket started at initialBucket/DEFAULT_BUCKET and was handed to useConversationRows on the very first render, while the saved-preference GET resolved separately and uncoordinated. A member with a saved preference got a fetch for the wrong bucket, a visible wrong-tab flash, then a second fetch once the GET resolved -- and the switcher column mounts on every maximize, not once per page load, so it flashed constantly. useConversationRows gains a fourth `enabled` argument (default true) that suppresses both the initial/bucket-change load and the observer-driven pagination while false. The pane now holds it at its own `prefsLoaded` state, flipped true in the same batched update that (when a value was saved) corrects `activeBucket` -- so the hook is never invoked enabled with any bucket other than the one actually resolved. Cases 6a/6b now assert that property across every recorded call rather than just the last one, which is the exact blind spot that let the flash ship the first time. Also: the multi-field search match **************** externalPhoneNumber, on top of member names/connectionTitle) had no coverage at all despite being an explicit requirement -- it was correct on inspection, now it is pinned down, for both input paths (searchQuery prop and the pane's own showSearch field). And handleNewAiChat gains a re-entrancy guard: a fast double-click landed both events before either POST resolved, creating two sessions and opening two windows from one intended click.

Mabadiliko yote

Je, unaona nini kuhusu usafiri?

Kila moja ya hizi updates ardhi katika nafasi yako ya kazi moja kwa moja. Kuanza bure na kuangalia kukua wiki baada ya wiki.

Kuwa Huru MileleMtazamo wa bei