aboutsummaryrefslogtreecommitdiffstats
path: root/src/community.js
Commit message (Collapse)AuthorAgeFilesLines
* The built-in community's fallback name is Coinos, matching its new ↵Adam Soltys6 days1-1/+1
| | | | | | owner-signed metadata (edition v3), so the public /chat page and a client that hasn't folded the control plane yet agree Co-Authored-By: Claude Opus 5.5 <[email protected]>
* Public read-only coinos community chat at /chat — a share-anywhere link ↵Adam Soltys2026-09-041-0/+17
that shows the live chat history to anyone, logged in or not, with a "Sign in to chat" button ("Open coinos" when the device already has an account). No server-side decoder needed: the community's join material was already public by construction (baked into the client bundle — every coinos user is meant to be a member), so the page derives the stream keys and decrypts wraps client-side exactly like the app's Chat tab, worker-offloaded with the same sliced fallback. Renders messages + edits + deletes + reactions and honors the folded control state's ban list; presence/typing/guestbook deliberately omitted. Profiles come from ONE batched kind-0 query per burst (a REQ per author tripped relay concurrency limits). Plumbing: the join material moved to src/community.js (shared with messages.js so they can never drift), /chat is excluded from the single-segment profile deep-link (which was eating the path and rewriting the URL before the route ran), and app renders stand down in public-chat mode so a feature-init render can't paint onboarding over the page. Verified headless against the live relays: 59 messages decrypt, ban-fold applies, names resolve Co-Authored-By: Claude Fable 5 <[email protected]> Claude-Session: https://claude.ai/code/session_01MGzU12QrAA4G6BYGzGVdXz