TenantAtlas/specs/121-workspace-switch-fix/contracts/routes.md
2026-03-08 01:55:28 +01:00

54 lines
1.7 KiB
Markdown

# Route Contract: Workspace Switch Semantic Fix
**Feature**: 121-workspace-switch-fix | **Date**: 2026-03-07
## Intent-level contract
### Switch workspace
- **Surface**: admin and tenant-panel context bar
- **Label**: `Switch workspace`
- **Canonical target**: `ChooseWorkspace::getUrl(panel: 'admin').'?choose=1'`
- **Meaning**: enter the explicit workspace chooser flow
- **User-menu duplication**: not allowed
### Manage workspaces
- **Surface**: existing administrative navigation / chooser management affordance
- **Canonical target**: workspace management resource index
- **Meaning**: create, view, and edit workspace records
## Before / After
### Before
```text
Context bar "Switch workspace"
-> /admin/workspaces
-> lands on workspace management CRUD index
```
### After
```text
Context bar "Switch workspace"
-> /admin/choose-workspace?choose=1
-> lands on chooser flow
```
## Invariants
1. Workspace chooser remains the canonical manual-switch surface.
2. `?choose=1` remains the explicit forced-chooser signal for intentional switching.
3. The top-right user menu must not expose a duplicate workspace-switch shortcut.
4. Workspace management remains separately reachable and semantically distinct.
5. Choosing a workspace continues to use existing `WorkspaceIntendedUrl` / `WorkspaceRedirectResolver` behavior.
6. No new routes, middleware rules, or authorization rules are introduced.
## Verification expectations
- Response rendering for a real admin page containing the context bar must show the chooser target.
- Filament user-menu evaluation must not register a `switch-workspace` item.
- Existing chooser behavior tests remain green.
- Workspace management navigation remains reachable through its existing destination.