refactor(nav): split the Sessions umbrella into Workspaces and Conversations - #91
Merged
Merged
Conversation
…sations agents-api#68: navigation now shows top-level Workspaces (Scratch and Repo-backed together, tabbed) and Conversations, and unqualified "session" in user-facing copy becomes "Agent session" or "Conversation" depending on meaning. /sessions, its ?tab= variants, and /sessions/workspace/:id redirect to their new homes so existing bookmarks and history keep working. Workspace/Scratch UI (WorkspaceTab, ScratchTab, CreateWorkspaceWizard) moved from the sessions feature into workspaces, untangling the sessions barrel down to Conversation-only exports. No API path, request shape, or service call changes — chatSessionsService.ts still calls /chat-sessions as-is.
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 join this conversation on GitHub.
Already have an account?
Sign in to comment
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.
Summary
The UI half of JorisJonkers-dev/agents-api#68: "agents-ui's navigation splits the Sessions umbrella into Workspaces and Conversations, and unqualified 'session' disappears from the UI."
"Sessions" was one nav item hiding three unrelated things behind
?tab=: Repo-backed Workspaces, Scratch Workspaces, and the no-Workspace chat. It is now two top-level items — Workspaces (Repo-backed and Scratch, both Workspaces under the glossary) and Conversations. Workspaces gains a real list route; it only had a detail route before.Bare "session" meaning an Agent Session is now "agent session" throughout the workspaces feature.
New session, which actually created a Workspace, is nowNew workspace.No API path, request shape or service call changed.
chatSessionsService.tsstill calls/chat-sessionsexactly as before. The backend rename is a separate, currently blocked decision — see Notes.Validation
pnpm lint— clean,--max-warnings 0pnpm typecheck— cleanpnpm test— 59 files, 467 tests, all passedpnpm verify— coverage, dependency-cruiser (192 modules, no violations) and build all cleanpnpm test:e2e— 60/60 across chromium, firefox, webkit and mobile-chromiumNotes
/sessions,/sessions?tab=workspace|scratch|chat,/sessions?tab=workspace&new=1and/sessions/workspace/:idall redirect, preserving the tab selection, thenew=1create flag and route params. Nothing redirected these before, so a hard cut would have 404'd every existing bookmark and history entry. Covered by unit tests on the pure mapping plus three Playwright tests that drive real browsers through the auth guard.?tab=chatleaked onto/conversationsuntil the branch passedquery: {}explicitly; and Playwright'sgetByRole('heading')substring-matches by default, soWorkspacesalso matchedRepo-backed workspaces.sessions/directory keeps its name. The glossary governs user-visible words, not module paths, and renaming it would touch imports, the feature key and CI paths for no user-facing gain. Its barrel now exports only the Conversation surface instead of mixing both.CredentialsPanel.vueuses "session" for the OAuth device-flow sign-in — a third meaning, unrelated to this split. AndWorkspaceKinddeclares a'CHAT'value that nothing constructs; it is dead modelling of exactly the ambiguity this ticket resolves, but removing it belongs with the backend change.