feat(web): SR-8 skills tab on agent_skill API (#876) #891

Merged
charles merged 2 commits from feat/876-skills-tab-sr8 into main 2026-05-05 23:15:40 +00:00
Collaborator

Closes #876.

Summary

Implements SR-8 Skills tab: anchored type/instance UI on agent_skill REST (SR-7), no scope ladder for skills.

Changes

  • api.ts: CRUD helpers for /agents/:type/skills and /agents/:type/:instanceId/skills.
  • agent-db-skills-tab.tsx: list, Add picker (/agents/skills/library + custom name), CodeMirror + preview toggle, Edit/Delete/Reset, type bulk-apply dialog, instance inherit + Override here, pool session warning, URL edit compatible with legacy name:scope:… prefix.
  • skills-tab.tsx: routes kind === "skills" to DB tab or unanchored hint; system-prompts remains on existing ladder (AgentConfigArtifactTab) with correct hook ordering.
  • Tests: SR-8 + system-prompts coverage; removed obsolete snapshot.

How tested

  • just qa
Closes #876. ## Summary Implements SR-8 Skills tab: anchored type/instance UI on `agent_skill` REST (SR-7), no scope ladder for skills. ## Changes - **`api.ts`**: CRUD helpers for `/agents/:type/skills` and `/agents/:type/:instanceId/skills`. - **`agent-db-skills-tab.tsx`**: list, Add picker (`/agents/skills/library` + custom name), CodeMirror + preview toggle, Edit/Delete/Reset, type bulk-apply dialog, instance inherit + Override here, pool session warning, URL `edit` compatible with legacy `name:scope:…` prefix. - **`skills-tab.tsx`**: routes `kind === "skills"` to DB tab or unanchored hint; `system-prompts` remains on existing ladder (`AgentConfigArtifactTab`) with correct hook ordering. - **Tests**: SR-8 + system-prompts coverage; removed obsolete snapshot. ## How tested - `just qa`
feat(web): SR-8 skills tab on agent_skill API (#876)
All checks were successful
qa / sql-layer-check (pull_request) Successful in 8s
qa / db-schema (pull_request) Successful in 10s
qa / dockerfile (pull_request) Successful in 13s
qa / qa-1 (pull_request) Successful in 49s
qa / qa (pull_request) Successful in 0s
3caf99e466
- Add agent_skill REST helpers in api.ts
- New AgentDbSkillsTab: type/instance lists, picker, editor, reset, bulk apply, pool warning
- SkillsTab routes skills to DB UI or unanchored hint; system-prompts stay on ladder via AgentConfigArtifactTab
- Refresh unit tests; drop obsolete snapshot

Co-authored-by: Cursor <cursoragent@cursor.com>
fix(web): address SR-8 review findings
All checks were successful
qa / sql-layer-check (pull_request) Successful in 6s
qa / dockerfile (pull_request) Successful in 6s
qa / db-schema (pull_request) Successful in 32s
qa / qa-1 (pull_request) Successful in 49s
qa / qa (pull_request) Successful in 0s
fd4f5325f9
- Use onChange ref in SkillMarkdownEditor to avoid editor remount on
  inline callback identity change
- Replace onKeyDown on aria-hidden backdrop with document keydown
  useEffect in EditableSkillRow and InheritedTypeSkillRow so Escape
  actually closes the menu
- Switch bulkMutation to Promise.allSettled; report partial-success
  count instead of silently dropping failed targets
- Guard inheritedRows derivation until typeQ.isSuccess to prevent rows
  disappearing while type query is still in-flight
- Remove untyped pool_sessions?: unknown field from
  UpsertAgentInstanceSkillResult
- Fix Markdown test mock to accept children instead of content prop

Co-authored-by: Cursor <cursoragent@cursor.com>
charles deleted branch feat/876-skills-tab-sr8 2026-05-05 23:15:41 +00:00
Sign in to join this conversation.
No reviewers
No milestone
No project
No assignees
2 participants
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
charles/claude-hooks!891
No description provided.