Add Plugins settings registry UI #175

Closed
opened 2026-05-31 19:20:25 +00:00 by steve · 0 comments
Owner

Problem

Users need a clear plugin management UI that distinguishes installed, official, community, manual, and bundled provenance.

Goal

Add the Plugins settings registry UI with browsing, installed state, updates, sources, details, progress, permissions, uninstall, and failures.

Scope

  • Add Plugins settings tabs for Installed, Browse, Updates, and Sources.
  • Show the locked official source in Sources.
  • Show official/community/manual provenance and compatibility badges.
  • Reuse the existing Details/Features panel machinery where possible.
  • Add install progress and actionable error dialogs.
  • Add permissions and uninstall confirmation dialogs.

Non-goals

  • Do not add arbitrary user-managed registry sources in v1.
  • Do not remove legacy core/community plugin controls until parity is complete.

Acceptance Criteria

  • Browse renders fake official registry entries and supports search/filtering.
  • Installed tab shows installed records and current enabled/disabled status.
  • Install and update progress phases are visible.
  • Signature/hash failures show specific, copyable diagnostics.
  • Manual or unverified plugins are clearly labeled and not shown as official.

Implementation Notes

  • Prefer preserving existing configuration UI patterns over introducing a separate app surface.
  • Active plan:
    1. Add a workspace Plugins settings tab that uses the existing SettingTab/Setting pattern and preserves the current Core Plugins and Community Plugins tabs.
    2. Render Installed, Browse, Updates, and Sources subviews from app.pluginDistribution, including locked official source, provenance labels, manual community labels, progress phases, install/update/uninstall actions, and copyable registry error diagnostics.
    3. Add focused workspace tests with fake registry/installed data for browse rendering, installed provenance/manual labeling, progress, and diagnostics.
    4. Update the workspace spec and run workspace/app validation because settings UI affects runtime shell behavior.

Suggested Files or Specs To Inspect

  • packages/workspace/src/lib/components/configuration/community-plugins.ts
  • packages/workspace/src/lib/components/configuration/core-plugins.ts
  • packages/workspace/src/lib/components/configuration/plugin-extension-panel.svelte

Validation Commands

  • pnpm --filter @lapis-notes/workspace check:all
  • pnpm test:smoke
  • Full Registry V1 milestone sequence.

Follow-up Tasks

  • Keep follow-up work in separate backlog issues rather than expanding this scope.

Implementation Summary

Added the Plugins settings registry tab with Installed, Browse, Updates, and Sources views backed by app.pluginDistribution. The UI shows official installed provenance separately from manual community plugins, renders locked official source metadata, exposes install/update/uninstall actions, shows recent progress phases, and surfaces registry/install diagnostics in a copyable field. Validation used workspace/API format, type, Svelte checks, spec lint/build, and smoke; an isolated workspace Vitest attempt was removed because the workspace package lacks a working runtime-import Vitest path for @lapis-notes/api-backed tabs.

## Problem Users need a clear plugin management UI that distinguishes installed, official, community, manual, and bundled provenance. ## Goal Add the Plugins settings registry UI with browsing, installed state, updates, sources, details, progress, permissions, uninstall, and failures. ## Scope - Add Plugins settings tabs for Installed, Browse, Updates, and Sources. - Show the locked official source in Sources. - Show official/community/manual provenance and compatibility badges. - Reuse the existing Details/Features panel machinery where possible. - Add install progress and actionable error dialogs. - Add permissions and uninstall confirmation dialogs. ## Non-goals - Do not add arbitrary user-managed registry sources in v1. - Do not remove legacy core/community plugin controls until parity is complete. ## Acceptance Criteria - Browse renders fake official registry entries and supports search/filtering. - Installed tab shows installed records and current enabled/disabled status. - Install and update progress phases are visible. - Signature/hash failures show specific, copyable diagnostics. - Manual or unverified plugins are clearly labeled and not shown as official. ## Implementation Notes - Prefer preserving existing configuration UI patterns over introducing a separate app surface. - Active plan: 1. Add a workspace `Plugins` settings tab that uses the existing `SettingTab`/`Setting` pattern and preserves the current Core Plugins and Community Plugins tabs. 2. Render Installed, Browse, Updates, and Sources subviews from `app.pluginDistribution`, including locked official source, provenance labels, manual community labels, progress phases, install/update/uninstall actions, and copyable registry error diagnostics. 3. Add focused workspace tests with fake registry/installed data for browse rendering, installed provenance/manual labeling, progress, and diagnostics. 4. Update the workspace spec and run workspace/app validation because settings UI affects runtime shell behavior. ## Suggested Files or Specs To Inspect - packages/workspace/src/lib/components/configuration/community-plugins.ts - packages/workspace/src/lib/components/configuration/core-plugins.ts - packages/workspace/src/lib/components/configuration/plugin-extension-panel.svelte ## Validation Commands - `pnpm --filter @lapis-notes/workspace check:all` - `pnpm test:smoke` ## Related Issues - Full Registry V1 milestone sequence. ## Follow-up Tasks - Keep follow-up work in separate backlog issues rather than expanding this scope. ## Implementation Summary Added the Plugins settings registry tab with Installed, Browse, Updates, and Sources views backed by app.pluginDistribution. The UI shows official installed provenance separately from manual community plugins, renders locked official source metadata, exposes install/update/uninstall actions, shows recent progress phases, and surfaces registry/install diagnostics in a copyable field. Validation used workspace/API format, type, Svelte checks, spec lint/build, and smoke; an isolated workspace Vitest attempt was removed because the workspace package lacks a working runtime-import Vitest path for @lapis-notes/api-backed tabs. <!-- backlog:task_id=TASK-PLUGIN-REGISTRY-005 source_spec=spec/src/50-roadmap/full-registry-v1.md -->
steve added this to the Full Registry V1 milestone 2026-05-31 19:20:25 +00:00
Sign in to join this conversation.
No milestone
No project
No assignees
1 participant
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set.

Reference
lapis-notes/lapis#175
No description provided.