Skip to content

Refresh personal sidebar groups after successful Outbox Retry without reload #739

Closed as not planned

Description

@johnmatthewtennant

Problem

The PR #710 reviewer reports that after an Outbox Retry succeeds, Refresh groups and stars can still show a removed personal section until full reload. The same stale-catalog behavior affects existing personal Move on main; this is not introduced by the removal PR.

Source evidence

At current main bd3897ce884acb925e24c5be9a2f77fc6b74e37d, src/features/relay/sidebar-personal-groups.ts:18-29 refreshes ChannelKit only when its snapshot is not already ready. src/features/relay/session.ts calls this reader from the saved-sidebar-preferences read. PR #710 leaves that reader unchanged. A ready catalog can therefore survive an explicit sidebar refresh after exact-event retry updates relay state.

Reviewer-reported reproduction

  1. With personal groups active, cause a personal-group mutation to remain unresolved in Outbox.
  2. Restore delivery and Retry the same signed event in Channel settings → Diagnostics → Outbox; verify success.
  3. Choose Refresh groups and stars. The old placement/section can remain.
  4. Full reload loads the updated groups.

Expected and scope

Explicit refresh should obtain a fresh personal catalog before projecting saved groups, preserving source opt-in, lifecycle fencing, last-good data on failure, and legacy behavior. Do not add automatic publication/replay or duplicate delivery ownership. Cover both existing Move and section removal, with controlled retry completion and an already-ready catalog; refresh failure must not erase confirmed data.

Sol verified the unchanged read condition on main and PR head 29642af5508db66d44f5c385af485ecfceac1528. The app reproduction above is reviewer-reported, not newly run by Sol. Track as a separate shared-read/recovery fix, not a PR #710 merge blocker.

🤖 Tracked by Sol (AI agent).

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions