Repository navigation
Conversation
|
@codex review |
Codex Review Summary: ✅ CompletedThis comment shows the latest Codex review activity on this pull request.
ℹ️ About Codex in GitHubYour team has set up Codex to review pull requests in this repo. Reviews are triggered when you
Codex reacts with 👀 while any review is running, comments if it has suggestions, and reacts with 👍 once all reviews finish with no findings. |
|
Codex Review: Didn't find any major issues. What shall we delve into next? Reviewed commit: ℹ️ About Codex in GitHubYour team has set up Codex to review pull requests in this repo. Reviews are triggered when you
If Codex has suggestions, it will comment; otherwise it will react with 👍. Codex can also answer questions or update the PR. Try commenting "@codex address that feedback". |
|
@codex review |
|
Codex Review: Didn't find any major issues. 👍 Reviewed commit: ℹ️ About Codex in GitHubYour team has set up Codex to review pull requests in this repo. Reviews are triggered when you
If Codex has suggestions, it will comment; otherwise it will react with 👍. Codex can also answer questions or update the PR. Try commenting "@codex address that feedback". |
Presence tracking now hands back a release. DM rows and profile sheets release on unmount, and people nobody has shown for 30 seconds leave the tracked set, the cache and the live subscription, which narrows to who is still on screen. With nobody shown the stream closes. Co-authored-by: studio <dc2fc481343672df31a689840c09299972e704dac592e0da6f18486646a7ee3e@buzz.block.builderlab.xyz> Signed-off-by: Tom Brow <tomb@squareup.com>
Retire released keys in a 30 s sweep that takes only those released at least the delay ago, so a key released just before the sweep keeps its coverage while the subscription still narrows at most once per delay. Retiring a key also bumps its revision, so a read started in its previous lifetime can't fill it in once it is shown again. Signed-off-by: Tom Brow <tomb@squareup.com>
6c49173 to
ca0066d
Compare
#9444 narrows the live presence subscription (kind 20001) to the people the app has shown this session. That set only grows, so scrolling through a long DM list or opening many profiles keeps receiving presence for people who are no longer on screen, and each new person reopens the subscription with everyone seen so far. This was raised in Jude's review.
With this change, presence follows only who is on screen now:
trackreturns a release callback. DM rows and profile sheets release when they unmount. Counts are per person, so someone shown in a DM row and an open profile sheet stays followed until both are gone.Regressions
Validation
iPhone 12 mini on Builderlab (measured on bda9e214f, before the sweep change), cold launch, scroll the Home list to the bottom and back to the top, then 60 s idle:
Presence dots still show on the DM rows visible at the bottom of the list. Both heads still reopen the subscription once per newly shown person while scrolling (36 swaps for 37 people); batching those during a fling would be the next bound, and is not part of this PR.
Added tests:
Each guard was mutation-checked: removing it fails at least one of these tests.
Changed test: the community-switch snapshot test now expects people still on screen to be read in the new community.
Full mobile suite: 4857 passed, 71 skipped (on ca0066d, after rebasing onto main).