Skip to content

Build a filterable plugin catalog and selection UI #4

Closed
5 of 5 issues completed
Closed

Description

@cchacs

Context

Users should be able to browse a controlled list and choose only the plugins relevant to their instruments and workflow.

Depends on the catalog/schema issue and the catalog-based installation service. Related strategy decision: #1.

Scope

Extend or replace the current desktop Plugin Manager screen with a catalog view supporting:

  • text search
  • category filters
  • instrument filters
  • source/maintainer filter
  • stability filter
  • installed / available / update-available filter
  • compatibility and requirements indicators
  • multi-select followed by one install action

Each card/row should show the plugin name, description, version, category, source, stability, download size, installed state, and relevant compatibility information.

Selection behavior

  • Automatically select required dependencies and explain why they were added.
  • Prevent deselecting a dependency while another selected plugin requires it.
  • Report conflicts before downloading.
  • Disable incompatible entries with an actionable explanation.
  • Keep recommendations distinct from hard requirements.
  • Never silently install optional recommendations.
  • Show the final resolved installation set before confirmation.

Accessibility and resilience

  • Keyboard-accessible filters and selection controls.
  • Screen-reader labels and visible focus states.
  • Useful empty, offline, loading, and error states.
  • The bundled catalog remains browsable offline; installation clearly reports when a network connection is required.

Acceptance criteria

  • Users can combine multiple filters and clear them.
  • Dependency changes are visible before installation.
  • Installed, bundled, and writable-override states are distinguishable.
  • The UI invokes only the main-process installation API; the renderer does not write plugin files.
  • Tests cover filtering, dependency selection, conflicts, and incompatible entries.

Activity

  1. cchacs commented on Sep 12, 2026

    @cchacs
    Author

    Per the added requirement on #2: the filter set here needs a source filter that includes "All get-flashbacks plugins," not just curated/upstream/community. Concretely:

    • Add a top-level tier toggle (or a source filter value) for "All org plugins" that lists every plugin-shaped repo under get-flashbacks live from the GitHub API, independent of whatever has been reviewed into the curated catalog.
    • Cards from this tier show an explicit "unreviewed / not pinned" badge in place of the stability/compatibility indicators the curated tier has (since there's no catalog metadata to source those from).
    • Multi-select + install still funnels through the same main-process install service (Implement secure catalog-based plugin installation #3) regardless of tier — no separate code path for org-wide installs.

    This keeps the acceptance criterion "users can combine multiple filters and clear them" meaningful even before a given org plugin has been reviewed into the catalog.

    https://claude.ai/code/session_019Xndb3R3yf4UTr44fksnNL


    Generated by Claude Code

  2. added theissue type on Sep 23, 2026
  3. cchacs commented on Oct 2, 2026

    @cchacs
    Author

    Split into sub-issues (proposed; adjust freely). The "Catalog UI N/5" titles map to issue numbers as shown:

    Order Sub-issue Depends on
    1 #15 1/5 read-only catalog view with search and filters the catalog/schema issue
    2 #16 2/5 plugin card content and installed/bundled/override state #15
    3 #17 3/5 multi-select with dependency resolution, conflicts, final install set #15, #16
    4 #18 4/5 one install action via the main-process API, offline/error states #17 and the installation-service issue
    any #19 5/5 keyboard and screen-reader accessibility pass built alongside #15-#17

    Generated by Claude Code

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    enhancementNew feature or request

    Type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions