Context
The data layer already supports an instances[] array with a single activeId (packages/web/src/lib/config.ts). With Cloud + Self-Hosted presets now in place, users can add multiple connections — but the dashboard still only ever queries the active one.
A natural follow-up is a dashboard view that fans out across all stored instances (workspaces, sessions, queue stats) and renders them side-by-side with an instance badge.
Why it's not trivial
The API client is hard-coded to the active instance (packages/web/src/api/client.ts:1-25). TanStack Query keys are entity-only (packages/web/src/api/keys.ts) — switching instances today calls qc.clear() (packages/web/src/hooks/useInstances.ts:74) precisely because the cache would otherwise collide.
To aggregate, we'd need:
- A client factory
createHonchoClient(instanceId) instead of a singleton tied to loadConfig().
- Instance id threaded into every query key so the same workspace from two instances is cached independently.
- New
useAllWorkspaces() / useAllQueueStats() hooks that fan out across instances[] and merge results, marking each row with the originating instance.
- Sidebar "All Instances" toggle that switches the dashboard between single-instance (current) and aggregated views.
- UI affordance to distinguish duplicate-name entities ("workspace
prod on Cloud" vs "workspace prod on Local").
Estimated 2–3 days of work.
Acceptance
Related
Surfaced during review of #(PR for Honcho Cloud preset)
Context
The data layer already supports an
instances[]array with a singleactiveId(packages/web/src/lib/config.ts). With Cloud + Self-Hosted presets now in place, users can add multiple connections — but the dashboard still only ever queries the active one.A natural follow-up is a dashboard view that fans out across all stored instances (workspaces, sessions, queue stats) and renders them side-by-side with an instance badge.
Why it's not trivial
The API client is hard-coded to the active instance (
packages/web/src/api/client.ts:1-25). TanStack Query keys are entity-only (packages/web/src/api/keys.ts) — switching instances today callsqc.clear()(packages/web/src/hooks/useInstances.ts:74) precisely because the cache would otherwise collide.To aggregate, we'd need:
createHonchoClient(instanceId)instead of a singleton tied toloadConfig().useAllWorkspaces()/useAllQueueStats()hooks that fan out acrossinstances[]and merge results, marking each row with the originating instance.prodon Cloud" vs "workspaceprodon Local").Estimated 2–3 days of work.
Acceptance
Related
Surfaced during review of #(PR for Honcho Cloud preset)