Speed up status snapshot loading - #71
Merged
Merged
Conversation
theotarr
force-pushed
the
codex/faster-status-snapshot
branch
2 times, most recently
from
July 16, 2026 20:09
b4f0225 to
6d87734
Compare
theotarr
force-pushed
the
codex/faster-status-snapshot
branch
from
July 16, 2026 20:35
6d87734 to
1f27ec7
Compare
theotarr
marked this pull request as ready for review
July 16, 2026 20:37
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
Root cause
Opening the Status page triggered
cued onboarding snapshot, which calculated raw-event schema diagnostics and per-account projection counts repeatedly. On the live 3.9 GB database this took roughly 30–32 seconds. The lightweight cache had top-level totals but zero per-platform contact/message statistics, so the UI had to wait for the full snapshot before rendering its breakdown.The targeted phone-call query was also scanning all local iMessage raw events and took roughly 25 seconds on the live database.
Impact
The live onboarding snapshot benchmark is now roughly 1.4 seconds. The menu-bar cache exposes the platform breakdown immediately, and unchanged 15-second cache refreshes reuse memoized projection counts instead of regrouping the projected tables.
Raw schema diagnostics remain available on explicit full status/doctor paths, but are no longer part of onboarding or menu-bar critical paths. Their canonical expression now has a matching index, removing the temporary GROUP BY structure and accelerating targeted phone-call counts.
Validation
pnpm typecheckpnpm buildswift build --package-path native/macos/CuedNative -c release