mirror of
https://github.com/MBombeck/HealthLog.git
synced 2026-11-10 13:22:14 +00:00
The scope mirror is watched so a switch this browser did not begin still holds every shell until /me reconciles it: another tab on an older bundle, the referential action behind an account deletion, an operator. It recognised its own by comparing the mirrored scope against the scope it was switching to, and that is not a true test. fetchMe mirrors whatever record the server currently reports and it runs DURING a switch, both when postSwitchWithReconcile reconciles a lost compare-and-set and when a second tab reloads beside the initiator. At that moment the server still reports the record being left, so the write did not match and was read as somebody else's switch. What followed was silent. A foreign write publishes a new transition id, and every terminal call opens by checking the id it was handed, so the commit that followed was dropped without a trace and the expected scope was left naming a record no /me would ever confirm. Nothing could release the hold, and both tabs sat behind the hydration gate until the stored transition aged out thirty seconds later. That is the intermittent browser failure that has been carried through three rounds as a canary and never explained: a peer reload racing a switch, a gate that never lifts, and a run forty-six seconds long made of a fifteen-second wait and a thirty-second one. On the selection that provokes it, eight runs failed three times before and twenty failed none after, and the runs that used to take fifty-seven seconds now take twenty-five. A write is foreign only when nothing of this browser's own is in flight. Ignoring it while held costs nothing, because a held browser is already in the state that branch would install. The rule is a named function so it can be checked in a suite that has no DOM, and the property the guard exists for is pinned beside it: a response that disagrees with a committed scope is stale and still must not release.