Skip to content

fix(desktop): preserve fresh channel timelines - #5577

Merged
wesbillman merged 1 commit into
mainfrom
carl/channel-switch-cache-fix
Aug 11, 2026
Merged

fix(desktop): preserve fresh channel timelines#5577
wesbillman merged 1 commit into
mainfrom
carl/channel-switch-cache-fix

Conversation

@wesbillman

Copy link
Copy Markdown
Collaborator

Summary

  • skip the channel subscription catch-up request when the authoritative channel window was fetched successfully within the existing five-minute freshness period
  • keep the responsive deferred skeleton for populated channel switches instead of briefly rendering empty-channel actions
  • preserve a real empty-channel intro across the first appended message only after React has committed that empty state

This is intentionally narrow. It does not claim to solve the separate sidebar startup cost or general main-thread stalls found during the investigation.

Related issue

N/A — no matching open issue or PR found.

Testing

  • pre-push desktop gate on f1be6beea90b9715e04e5fc65cc5cfbe8210e0d9:
    • desktop tests: 4,621 passed
    • desktop check: passed
    • desktop typecheck: passed
    • branch-skew: passed
  • focused cache/surface/lifecycle tests: 62 passed
  • manual diagnostic trace after rollback:
    • 16/16 channel revisits skipped catch-up refresh
    • 0 revisit refresh starts
    • 0 populated-channel empty/intro flashes
    • cached switches retained the deferred skeleton-to-list path

No screenshot: the regression is a transient channel-switch state and request behavior, covered by lifecycle tests and the diagnostic trace rather than a stable visual diff.

Skip redundant subscribe catch-up requests while the authoritative channel
window is fresh. Keep the deferred skeleton during populated channel switches,
and preserve empty-channel intros only after React commits an empty timeline.

Co-authored-by: Carl <c7ebe626f000404285d3686e1dc74cc07cc60a9754a150041ba132e14bd3e2ec@buzz.block.builderlab.xyz>
Signed-off-by: Wes <wesbillman@users.noreply.github.com>
@wesbillman
wesbillman requested a review from a team as a code owner August 11, 2026 16:06
@wesbillman
wesbillman merged commit d3ec831 into main Aug 11, 2026
26 checks passed
@wesbillman
wesbillman deleted the carl/channel-switch-cache-fix branch August 11, 2026 16:37
atishpatel pushed a commit that referenced this pull request Aug 11, 2026
…overy

* origin/main:
  Add glass appearance and cohesive settings (#5478)
  Add Send to channel for thread messages (#5305)
  Fix macOS attachment picker lifecycle and allow inert HTML downloads (#5569)
  fix(desktop): preserve fresh channel timelines (#5577)
  fix(desktop): suppress fresh focus-return refetches for channels and home-feed (#5535)
  chore: mesh upgrade, clean up legacy special case code, simplify model selection for mesh (#5289)
  fix(desktop): preserve theme when opening communities (#5266)
  fix(link-preview): resolve YouTube videos through oEmbed (#5520)
  fix(buzz-agent): harden Databricks OAuth token cache and callback (#5534)

Signed-off-by: Hardworking Honey <c5c455215c2506cb8ba776518cec804af62d3a0526e32d496a22072e395042b9@buzz.block.builderlab.xyz>
wpfleger96 added a commit that referenced this pull request Aug 11, 2026
Bring in main's runtime.rs mesh acp_model wire translation so local
checks and CI both run on the merged tree. Clean auto-merge; the PR's
fail-closed spawn gating and main's model translation touch disjoint
regions of spawn_agent_child.

* origin/main: (24 commits)
  Improve desktop search scoping (#5306)
  Add glass appearance and cohesive settings (#5478)
  Add Send to channel for thread messages (#5305)
  Fix macOS attachment picker lifecycle and allow inert HTML downloads (#5569)
  fix(desktop): preserve fresh channel timelines (#5577)
  fix(desktop): suppress fresh focus-return refetches for channels and home-feed (#5535)
  chore: mesh upgrade, clean up legacy special case code, simplify model selection for mesh (#5289)
  fix(desktop): preserve theme when opening communities (#5266)
  fix(link-preview): resolve YouTube videos through oEmbed (#5520)
  fix(buzz-agent): harden Databricks OAuth token cache and callback (#5534)
  fix(link-preview): reliably render previews sent right after they resolve (#5245)
  fix(link-preview): restore Buzz entity link cards (#5494)
  chore(release): release Buzz Desktop version 0.5.9 (#5521)
  feat(cli): add --visibility flag to channels update (#5119)
  Polish desktop onboarding flow (#5310)
  fix(desktop): quiesce renderer polling while hidden (#3677) (#5490)
  fix(channels): restore member invitations to private channels (#5493)
  perf(ci): experiment with sccache for relay builds (#5224)
  fix(desktop): bound nine unbounded localStorage stores (#5454)
  feat(desktop): time-based sweep for stale localStorage caches (#5453)
  ...

Signed-off-by: Duncan <dcfd242e557282d7a1e2cf2e6877522682f1e5c6156dc92ca7d90eaedd3b0f95@buzz.block.builderlab.xyz>
Co-authored-by: Will Pfleger <pfleger.will@gmail.com>
Signed-off-by: Will Pfleger <pfleger.will@gmail.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants