Skip to content

enhance: group sidebar workspaces by remote server#26

Merged
mroops0111 merged 3 commits into
masterfrom
feat/sidebar-multi-server
Jun 8, 2026
Merged

enhance: group sidebar workspaces by remote server#26
mroops0111 merged 3 commits into
masterfrom
feat/sidebar-multi-server

Conversation

@mroops0111

Copy link
Copy Markdown
Owner

Summary

  • Sidebar now renders one section per configured remote (Local + each named server) so workspaces across all servers are visible without round-tripping through Settings. Clicking a workspace from a non-active remote silently switches both server and workspace.
  • Adds a tiny color stripe on the left edge of each row so server identity stays visible at a glance, and inline Sign In affordances for remotes without a stored token.
  • React-query cache is reset when the active remote flips so workspace-scoped data doesn't carry over from the previous server.

Notes

  • New fetchJsonAt(remoteId, …) lets the aggregate hook target an explicit remote without touching the active singleton. The active-server fetchJson is unchanged.
  • The Details button on each workspace row moved from a real <button> to <span role="button"> to fix a long-standing nested-button HTML validity warning.
  • useResetOnRemoteChange clears the whole react-query cache; can be narrowed to workspace-scoped keys later if cost matters.

mroops0111 and others added 2 commits June 7, 2026 23:41
The sidebar previously only showed workspaces from the active server,
forcing users to round-trip through Settings to see what was on other
servers. Now every configured remote renders as its own section so the
full inventory is visible in one glance and a single click switches
both server and workspace.

- api: rawFetch helper splits transport from singleton resolution so
  the new fetchJsonAt(remoteId, ...) can target any remote without
  disturbing the active one
- useAllRemoteWorkspaces hook parallel-fetches /workspaces from every
  remote via useQueries; unauthenticated and unreachable states are
  surfaced so the sidebar can render Sign In / error affordances inline
- useResetOnRemoteChange clears the react-query cache when the active
  remote flips so workspace-scoped queries don't return stale data from
  the previous server
- Sidebar renders one section per remote with Notion-style heading
  (Laptop / Globe icon + name); clicking a workspace from a non-active
  remote silently switches active before navigating
- ListRow gains stripeClassName / stripeDim so the row can advertise
  which remote it belongs to via a 2px left-edge bar that coexists
  with the active indicator
- Details affordance moved from <button> to <span role="button"> to
  resolve a long-standing nested-button HTML validity warning

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
@mroops0111 mroops0111 changed the title Group sidebar workspaces by remote server enhance: group sidebar workspaces by remote server Jun 7, 2026
@github-actions github-actions Bot added the enhancement New feature or request label Jun 7, 2026
list() now skips unreadable rootPaths with a warn-level log so one
ghost entry doesn't block boot. load() unchanged. Also drops the
unused api.registerWorkspace shim in Studio whose server endpoint
was removed earlier.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
@mroops0111 mroops0111 merged commit 7549fc9 into master Jun 8, 2026
6 checks passed
@mroops0111 mroops0111 deleted the feat/sidebar-multi-server branch June 8, 2026 04:08
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

enhancement New feature or request

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant