This repository was archived by the owner on Oct 28, 2026. It is now read-only.
Repository navigation
feat(moderation): sync private mute and block across sessions - #338
Merged
Merged
Conversation
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 subscribe to this conversation on GitHub.
Already have an account?
Sign in.
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.
Private mute and block across sessions
Readers can mute or block another account from its profile or hover card, then undo either choice in Settings. Allthing hides whole posts and notification groups involving that account, including known mentions, links, quotes and reply/recast provenance. Remote changes remove matching content from open views and previews while preserving editable drafts. Accessible hover, keyboard and touch help explains the scope, sync behavior and recognition limits. Profile cards keep their View profile link visible and tappable while longer details scroll.
Preferences use a private SpacetimeDB table and caller-scoped view on the existing verified connection. Independent revisions, retained clear tombstones, a committed IndexedDB outbox and account-switch fences prevent stale offline writes from restoring an undone choice. Signed-in content waits for private state. Connection bookkeeping leaves mounted posts and editors intact, and explicit Retry recovers failed local storage reads. Block additionally rejects new encrypted Allthing DMs in both directions using verified FIDs; existing ciphertext is retained. Public Farcaster data and other clients are unaffected.
Validation:
Publish the module additively with the unchanged attestation pin and --delete-data=never before the Worker advertises the new private view.