Stop storing which side a message is on

Fixkamo-internal
Ya
14 Agosti 2026, 04:43 UTC
Mwandishi
kamo
Ahadi ya
381b58d

The mirrored rule was right; what was wrong is that the answer was computed once, when a message arrived, and kept. Placement needs three things — the sender, the viewer and the ticket's requestor — and any of them can resolve after a message is already in hand: a reply landing while the ticket is still loading, a sign-in that has not answered yet. History survived that, because a ticket resolving late re-ran the mapping over the whole page. A message that came in over the socket did not: it was stamped with the fallback and kept it for the life of the window. That is the shape of the report — sides wrong sometimes, never reproducibly, and right again after a reload. A message now carries who sent it and nothing about where it goes. The side is computed during render, so a requestorId or a member id that arrives a moment later re-sides everything already on screen instead of leaving it where a guess put it. The own-send row is sided by the same rule as every other rather than being marked "mine" — a second way of deciding the same thing that could disagree with the first. The viewer id is now passed in from the window, which already has it resolved app-wide, instead of the chat fetching its own. Mirrored placement needs the viewer, so every millisecond that id is unknown is a millisecond laid out from a fallback — and for the requestor the fallback is the wrong side. Tests gain the two properties that were only ever implied: two agents on one ticket see the same layout as each other, and recomputing with real ids after an unknown one gives the real answer.

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