✨ feat(skills): redesign agent skills page with unified inspector#413
Open
vaayne wants to merge 8 commits into
Open
✨ feat(skills): redesign agent skills page with unified inspector#413vaayne wants to merge 8 commits into
vaayne wants to merge 8 commits into
Conversation
What: - Rebuild the agent/project skills page around the approved D5 layout: installed/discover tabs, four scope groups (project/user/agent/system), a unified bordered container with an inline detail inspector, large file viewer dialog, and a ⌘K install dialog (ClawHub search + ZIP upload). - Add a row-based discover tab backed by a mock catalog (TODO(discover)). - Rework the inspector settings tab: ToggleGroup status, editable description + model-invocation switch, and an AlertDialog-confirmed delete. Why: - The old page did not surface skills by scope or expose install/discover flows; the new layout matches app master-detail conventions. How: - Mutually exclusive desktop inspector vs mobile Sheet (useIsMobile) so the Sheet backdrop no longer blocks desktop clicks. - Relative timestamps via lib/time; localized status labels; en+zh i18n keys. - Route search params gain a `tab` field for installed/discover. Refs: skills page redesign
📊 Coverage ReportTotal coverage: 47.7% (generated files excluded) Per-package breakdown |
This was referenced Jun 12, 2026
Replace the mock discover catalog with the real GET /api/clawhub/skills endpoint (debounced search, loading/error/empty states), and hide the installed-only filter row on the discover tab so it no longer shows a second, non-functional search box. Refs #415
Add GET /api/clawhub/skills/{slug}, which resolves a skill's metadata and
downloads its archive to surface the README (SKILL.md) and file list.
Clicking a discover row now opens a URL-driven (?dslug=) detail sheet that
renders the rendered README, version, install count, author, and file
list, with an inline install button.
Refs #415
- Strip YAML frontmatter from SKILL.md before preview so it no longer renders as a giant setext heading. - Richer list rows: skill glyph, author avatar/handle, 2-line summary clamp, hover chevron; skeleton loading and Empty states. - Detail sheet: identity header, meta chips (version/installs/author/ updated), collapsible file list, scrollable README, pinned install footer; widened to max-w-xl. Refs #415
InstallToStore set only UserID for user-scope skills, leaving agent_id NULL. But a user skill lives within an agent's context (system → agent → user), so ListSkillsForAgentContext requires agent_id to match — the installed skill was filtered out of both the skills list and the agent runtime, so installs silently "did nothing". Set agent_id on install, matching CreateAgentSkill. Also translate the duplicate-name UNIQUE constraint on install into a 409 with a clear message instead of a generic 500. Refs #415
- Install failures showed a generic toast: throwOnError rejects with the parsed error body, not an Error, so `instanceof Error` missed the message. Extract it via a shared apiErrorMessage helper. - Discover rows keyed "installed" off the ClawHub display name, which differs from the installed skill's frontmatter name (≈ slug), so an already-installed skill kept showing the Install button and 409'd on re-install. Match against the slug too. Refs #415
…kills A ClawHub skill's slug can differ from its SKILL.md frontmatter name (the installed skill's name), so matching by name alone left already-installed skills showing an Install button. Record the install source (clawhub:<slug>) in skill metadata, expose it as Skill.source in the API, and match discover rows by source — falling back to name/slug for skills installed before this change. Refs #415
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
What
Redesign the agent/project skills page around the approved D5 layout: installed/discover tabs, four scope groups (project/user/agent/system), a unified bordered container with an inline detail inspector, a large file viewer dialog, and a ⌘K install dialog (ClawHub search + ZIP upload). Adds a row-based Discover tab backed by a mock catalog.
Why
The old page did not surface skills by scope or expose install/discover flows, and its floating-card layout looked inconsistent with the app's master-detail conventions.
How
border-lsplit instead of a floating card inspector.useIsMobile) — fixes the Sheet backdrop intercepting desktop clicks.window.confirm).lib/time; localized status labels; en + zh i18n keys; routetabsearch param.vp check --fix✅ andvp build✅.Refs
Closes #412. Discover tab uses mock data until the ClawHub
metaContentpass-through (DisplayDescription / Keywords / stats + empty-query browse) is implemented backend-side — follow-up.