feat(install-modal): multi-install skills without closing the dialog #14
Loading…
Add table
Add a link
Reference in a new issue
No description provided.
Delete branch "feat/multi-install"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
Summary
The Install Skill modal in the Config Explorer is no longer single-shot. Operators can install many skills per dialog session, both across
skills.shsearches and from a single pasted repo.idle / installing / installed ✓ / error). The dialog stays open after each install so the operator can keep searching.Install all remaining (N)header button that walks the idle/errored rows sequentially. Single-skill paste flow is unchanged (auto-install + close).installFromStagingno longer wipes the staging directory after a successful install. Cleanup is delegated to explicitcancelStaging(already called by the modal on close) and the existing TTL sweep.Commits
2970a30feat(skills-installer): keep staging alive across multiple installs876e4dbfeat(install-modal): per-row install in search results, dialog stays open1dd3e5cfeat(install-modal): per-row install in repo picker, install-all shortcut, repo renameTest plan
pnpm --filter nexus test— 219 passed, 10 skipped (documentedvault-storeskips). Includes newmulti-install from a single staging → both installed, meta survives until canceltest.pnpm --filter nexus build— 257 Svelte modules transformed, 0 compile errors. (Post-build SSR step crashes on the unrelated better-sqlite3 native-binding mismatch from running Node 20 here.)Installed ✓, dialog stays open.⚠ already installed, button re-enables, other rows still work.Install all remainingappears → click it → rows pulseInstalling… → Installed ✓in order.STAGING_EXPIRED. Close + re-paste works.Search results and repo picker now share the same right-aligned install button driven by a single `installLabel`/`installClass` pair. The button transitions accent → dim-accent → green ("Installed ✓") → danger ("Retry"). An `installedNames` prop from the parent panel surfaces the green state for skills that are already on disk, gated through `effectiveStatus()` so live transitions still win.