- Add force parameter to plugin index fetch with cache-busting headers and timestamp
- Add openIndexView and reloadIndex methods to pluginInstallStore for explicit refresh
- Add request sequence tracking to prevent race conditions in concurrent index loads
- Move models summary state from component to store with loading/caching support
- Add refreshModelsSummary, ensureModelsSummaryLoaded, and modal
The browse view used x-create on install-index to load the index, but
that hook was not a dependable signal when returning from the Git or ZIP
tabs. setTab('store') now resets browse state and calls fetchIndex so the
hub stays in sync whenever Browse is selected, including on modal open.
Surface repository metadata for installed custom plugins and add quick actions from the plugin info modal to open plugin files or jump back into the Plugin Hub. Refresh Plugin Hub card/status styling and modal spacing.