4.5 KiB
description, kind
| description | kind |
|---|---|
| Read-only Cordis Loader inventory tab in Web Plugins settings for the dsh web client: searchable plugin catalog with enablement state and configuration. | package-reference |
@deepseek-ai/dsh-client-ui-settings-plugin-inventory
English | 中文
Summary
dsh-client-ui-settings-plugin-inventory contributes the read-only Plugin list tab to the Web Settings Plugins section. The tab lazily calls ctx.remote.pluginInventory.list() the first time it is selected and renders a searchable two-column catalog of compact disclosure cards: each collapsed card shows the short module name, an effective-enablement tag, and (for enabled entries) a colored root-fiber status dot; expanding a card reveals the Loader-tree entry id, effective configuration, and Cordis status. Loading, empty, no-match, and generic failure states stay local to the mounted component, and a failed read can be retried without exposing transport details.
Table of Contents
- Use this package
- Understand the implementation
- Further Exploration
- Model Experience
- Known Limitations and Deferred Work
- Dev Note
Use this package
Open the Plugins section in Settings and select the Plugin list tab to inspect the Host's plugin inventory. The tab reads no Remote during plugin activation — selecting it for the first time mounts the component and lazily calls ctx.remote.pluginInventory.list() through api-remotes.
Reading a card
Each collapsed card uses the short module name as its title and a small effective-enablement tag; enabled entries also show a colored root-fiber status dot. Expanding one card reveals its Loader-tree entry id, followed by the effective configuration and, for enabled entries, Cordis status; disabled entries omit the redundant unmounted runtime state. Search filters the catalog by name and entry id.
Retrying a failed read
A failed read renders a generic failure state inside the tab; retrying re-runs the lazy list() call without exposing transport details.
Understand the implementation
Implementation internals — click to expand
The tab is a read-only projection of a Host-owned snapshot; it performs no Remote read during plugin activation and takes the snapshot on first selection.
Registration
The browser plugin registers one localized settings.plugins.tab contribution with id all; the Plugins section owns the navigation entry and tab chrome. Registration uses ctx.slots.inject(), so it follows late tab declaration, redeclaration, locale changes, and teardown without importing the section owner.
Rendering
The entry id remains the React key, disclosure identity, detail value, and an additional search target; it is never classified by string shape.
Further Exploration
These pages cover the settings section, the remote call, and the Host-side projection.
- ui-settings-plugins — the Plugins section this tab registers into.
- ui-settings — the domain base declaring
settings.plugins.tab. - api-remotes — the Remote BFF surface behind
pluginInventory.list(). - plugin-inventory — the Host-side read-only Loader projection this tab renders.
Model Experience
None, as the package is a browser-side inventory projection that registers nothing model-facing.
KV Cache effect
None; this package neither assembles nor sends a provider request.
Known Limitations and Deferred Work
These limits define the freshness and reach of the inventory view; they are current package constraints.
- One snapshot per Settings mount or retry — the tab does not subscribe to Loader changes or automatically refetch after reconnect; switching tabs preserves the current snapshot, while reopening Settings obtains a new one.
- Read-only Loader view — local search does not add provenance, current-browser activation diagnosis, grouping by source, or plugin mutation controls.
Dev Note
Working context for maintainers — click to expand
None.