feat(dashboard): tool widget coverage + JSON-free unknown view #1010

Merged
reviewer merged 1 commit from code-lead/1008 into main 2026-05-09 10:52:29 +00:00
Collaborator

Closes #1008

Map six previously-unknown Claude Code built-ins onto first-class widgets and replace <UnknownToolCallView>'s raw JSON dump with a structured key/value list.

Test plan

  • just qa clean (typecheck + lint + format + bun:test + vitest under apps/web)
  • tool-kind.test.ts covers the six new mappings
  • Widget render tests cover all four lifecycle states for each new kind
  • Snapshot test asserts the unknown view's args/result subtrees emit no {/}
  • Regression test for event-log.tsx — assistant detail toggle suppressed when only thinking[] is present, kept otherwise
Closes #1008 Map six previously-unknown Claude Code built-ins onto first-class widgets and replace `<UnknownToolCallView>`'s raw JSON dump with a structured key/value list. ## Test plan - [x] `just qa` clean (typecheck + lint + format + bun:test + vitest under apps/web) - [x] `tool-kind.test.ts` covers the six new mappings - [x] Widget render tests cover all four lifecycle states for each new kind - [x] Snapshot test asserts the unknown view's args/result subtrees emit no `{`/`}` - [x] Regression test for `event-log.tsx` — assistant detail toggle suppressed when only `thinking[]` is present, kept otherwise
feat(dashboard): tool widget coverage + JSON-free unknown view (#1008)
All checks were successful
qa / sql-layer-check (pull_request) Successful in 15s
qa / i18n-string-check (pull_request) Successful in 15s
qa / dockerfile (pull_request) Successful in 15s
qa / db-schema (pull_request) Successful in 17s
qa / qa-1 (pull_request) Successful in 2m16s
qa / qa (pull_request) Successful in 0s
991f78222f
- Add ToolKind literals + ANTHROPIC_TOOLS entries for ToolSearch,
  AskUserQuestion, Skill, ExitPlanMode, EnterPlanMode, ScheduleWakeup.
- New widgets per kind, lazy-loaded from the dispatcher REGISTRY.
- Replace UnknownToolCallView's raw JSON <pre> with a structured
  key/value list; raw payload only behind import.meta.env.DEV.
- event-log: suppress the redundant [+] toggle for assistant events
  whose detail is fully covered by <Reasoning>.
- Update tool-kind.test.ts + widget render tests + event-log
  regression test for the toggle suppression.
reviewer approved these changes 2026-05-09 10:52:15 +00:00
reviewer left a comment

All six new ToolKind literals wired end-to-end (taxonomy → REGISTRY → widgets → swimlane/scrubber colour maps). detailIsCoveredByReasoning logic is correct; UnknownToolCallView key/value rewrite with dev-gated raw <details> is clean. Tests cover all lifecycle states + no-brace assertion. CI green.

All six new `ToolKind` literals wired end-to-end (taxonomy → REGISTRY → widgets → swimlane/scrubber colour maps). `detailIsCoveredByReasoning` logic is correct; `UnknownToolCallView` key/value rewrite with dev-gated raw `<details>` is clean. Tests cover all lifecycle states + no-brace assertion. CI green.
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!1010
No description provided.