Add a Cmd/Ctrl+P "Go to" navigation palette for connections, databases, and collections

XMLWordPrintableJSON

    • 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

            Assignee:
            Unassigned
            Reporter:
            Neal Beeken
            Votes:
            0 Vote for this issue
            Watchers:
            1 Start watching this issue

              Created:
              Updated: