-
Type:
Story
-
Resolution: Unresolved
-
Priority:
Major - P3
-
None
-
Affects Version/s: None
-
Component/s: None
-
None
-
None
-
None
-
Developer Tools
Use Case
As a Compass user working with many connections, databases, and collections
I want a keyboard-first "Go to" palette that I can open with Cmd/Ctrl+P and fuzzy-search my inventory
So that I can jump directly to a connection, database, or collection without walking the sidebar tree.
User Experience
- The palette opens via Cmd/Ctrl+P, or via File -> Go to..., when the enableGoTo feature flag is on.
- Typing fuzzy-searches candidates across connections, databases, and collections (Fuse.js).
- Activating a result opens the matching workspace: Databases, Collections, or Collection.
- Activating a row for a disconnected connection connects first, then opens the Databases workspace.
- If connecting fails, the palette stays open and shows an inline error rather than closing.
- On open, the palette refreshes its inventory from already-loaded sidebar data, then does a best-effort listDatabases / listCollections for connected hosts. Search works immediately against cached inventory and is not blocked by the fetch.
Risks/Unknowns
- Cluster load: each open can trigger listDatabases plus per-database listCollections for every connected host. Worst case is many connected hosts x many databases producing many parallel calls on every open.
- Open question: whether inventory refresh should be throttled/deduped when the palette is opened repeatedly with many connections.
- Design review is still needed for the palette UI.
- Requires a change in compass-connections so plugins keep a live connections.current (a getter, not frozen by useInitialValue) - potential for regressions in other consumers of that context.
- Feature must remain fully inert when the flag is off, including the keyboard shortcut and the File menu item.
Acceptance Criteria
Implementation Requirements
- New plugin package @mongodb-js/compass-go-to providing the palette component and Redux store.
- New development feature flag enableGoTo in compass-preferences-model; all entry points gated on it.
- Wired into both Compass desktop (packages/compass/src/app/components/workspace.tsx) and Compass Web (packages/compass-web/src/entrypoint.tsx).
- Store builds candidates from the connections list and the instance manager; activation is routed through the workspaces service.
- Fix compass-connections store context so connections.current stays live for plugins.
- Inventory fetches are best-effort: failures must not break search or leave the palette in a broken state.
Testing Requirements
- Unit tests for candidate construction from connections + instance manager.
- Unit tests for fuzzy search ranking/matching behavior.
- Unit tests for activation routing to the correct workspace type per candidate.
- Component tests covering open, search, activate, and the connect-failure inline error path.
- Verify the palette and its shortcut are absent when enableGoTo is off.
References
- PR: https://github.com/mongodb-js/compass/pull/8409 - "feat(go-to): add Cmd/Ctrl+P navigation palette"