You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Introduce a Space home view (sitemap / room overview) for the state: user is in a Matrix Space but no channel/room is selected — similar to Element’s “Willkommen bei {space}” screen.
This is a general navigation surface, not a leave-room feature. Leaving a space channel may use this view later, but the primary entry is selecting a space without picking a room.
User stories
Click a space icon in the left space rail → main pane shows that space’s overview (not the global Home onboarding, not a stale channel from another context).
From the overview, open a channel, invite, or space settings.
Home rail entry (HOME_SPACE_ID) keeps today’s Home onboarding when no room is selected.
Context
Today selectSpace() in useChatPageShell only sets selectedSpaceId; it does not clear selectedRoomId, so the main pane can still show a room timeline while the sidebar lists another space’s channels.
When selectedRoomId === null, chat.vue always shows ChatOnboardingPanel — there is no space-specific empty state.
Related: #94 leave-room currently redirects all leaves to Home onboarding; once this issue ships, leaving a channel inside a space should land here (space still selected, room cleared) instead of Home.
Scope
New main-pane view when selectedSpaceId !== HOME_SPACE_IDandselectedRoomId === null
Space header: name, avatar, privacy/member summary (minimal v1)
Joined channels (and optionally subspaces) listed for the active space; click → selectRoom
Wire space railselectSpace: set space, clear room selection, show space home (respect suppressAutoRoomSelect only where leave-flow needs it)
i18n EN + DE
Out of scope (v1):
Bulk remove / “mark as not suggested” (Element extras)
Leaving the space itself
Replacing the left channel sidebar (overview is main pane, sidebar stays)
Branch
feature/space-home-view
Acceptance Criteria
Clicking a space in the left rail selects that space and shows space home in the main pane (no channel timeline)
Clicking Home in the rail with no room shows existing Home onboarding (unchanged)
Space home lists joined rooms/channels for the selected space; selecting one opens the channel
Space home exposes entry points aligned with existing flows (e.g. invite, space settings) where permissions allow
No stuck or cross-space timeline (room from space A must not display when space B is selected)
Test Checklist
Unit
Space-home component renders rooms from hierarchy helpers for a given selectedSpaceId
Goal
Introduce a Space home view (sitemap / room overview) for the state: user is in a Matrix Space but no channel/room is selected — similar to Element’s “Willkommen bei {space}” screen.
This is a general navigation surface, not a leave-room feature. Leaving a space channel may use this view later, but the primary entry is selecting a space without picking a room.
User stories
HOME_SPACE_ID) keeps today’s Home onboarding when no room is selected.Context
selectSpace()inuseChatPageShellonly setsselectedSpaceId; it does not clearselectedRoomId, so the main pane can still show a room timeline while the sidebar lists another space’s channels.selectedRoomId === null,chat.vuealways showsChatOnboardingPanel— there is no space-specific empty state.Scope
selectedSpaceId !== HOME_SPACE_IDandselectedRoomId === nullselectRoomselectSpace: set space, clear room selection, show space home (respectsuppressAutoRoomSelectonly where leave-flow needs it)Out of scope (v1):
Branch
feature/space-home-viewAcceptance Criteria
Test Checklist
Unit
selectedSpaceIdselectSpaceclearsselectedRoomId(or equivalent shell helper)Manual
E2E (optional)
Notes
SpaceHomePanel.vue,useChatPageShell.selectSpaceclears room + suppresses auto-pick, leave-in-space lands on space home, E2E@space_home+ updated@leave_roomspace scenario.docs/architecture.mdcheat sheet updated.chat.vue,useChatPageShell.ts(selectSpace), newcomponents/Chat/SpaceHomePanel.vue(name TBD),useChatRoomSidebar/spaceRoomCategoriesfor room lists.useChatSpaceRailauto-select watcher: ensure space-home state (selectedRoomId === nullin a space) is not overridden by auto-pick unless intended.