Problem
Buzz's existing channel sections are personal sidebar organization, not shared Discord-style categories. The Nuri web client also has no Space rail or Create/Join onboarding.
User flow
chat.nuri.com shows the user's joined Spaces in a left rail and offers Create Space / Join Space.
- Selecting a Space connects to its isolated
<slug>.relay.nuri.com tenant.
- Inside the Space, shared Categories group stream/forum Channels;
#general opens after creation or join.
Acceptance criteria
- Add shared category metadata and channel assignments scoped to one community, owner/admin-writeable and member-readable, with ordering and deletion semantics that never move channels between communities.
- Add a browser Space rail and Create/Join dialogs backed by the self-service Space APIs; switching Spaces tears down subscriptions and reloads only the selected tenant while preserving the in-memory Nuri signer.
- Render Categories → Channels → history/live subscription/composer with loading, empty, reconnect and permission states; Playwright covers create → switch → join → send/receive across two identities.
Not doing
- Personal section sync parity
- Voice/huddles, files, reactions or threads in the first web release
- Categories nested inside categories
Branch reference
Integration follows feat/nuri-web-chat and the self-service Spaces issue.
Session
@session:default/20260724_150854_84a994
Problem
Buzz's existing channel sections are personal sidebar organization, not shared Discord-style categories. The Nuri web client also has no Space rail or Create/Join onboarding.
User flow
chat.nuri.comshows the user's joined Spaces in a left rail and offers Create Space / Join Space.<slug>.relay.nuri.comtenant.#generalopens after creation or join.Acceptance criteria
Not doing
Branch reference
Integration follows
feat/nuri-web-chatand the self-service Spaces issue.Session
@session:default/20260724_150854_84a994