Skip to content

feat(chat): chat-debug shadcn polish — dark zinc chrome + status pill + switch#251

Merged
blove merged 13 commits into
mainfrom
chat-debug-shadcn-polish
May 11, 2026
Merged

feat(chat): chat-debug shadcn polish — dark zinc chrome + status pill + switch#251
blove merged 13 commits into
mainfrom
chat-debug-shadcn-polish

Conversation

@blove
Copy link
Copy Markdown
Contributor

@blove blove commented May 11, 2026

Summary

Aligns chat-debug visual chrome with the design language from palette v2 (PR #244, since deleted): persistent dark shadcn-zinc surface, status-pill launcher, sliding switch, custom select trigger, mount animation, click-outside dismiss.

Built on --ngaf-chat-debug-* token namespace (host-overridable), independent of the chat library's theme tokens — devtools chrome is theme-stable by default, like every other dev tool.

  • New chat-debug-tokens.ts with shadcn zinc-900 defaults; cascade shim rewires --ngaf-chat-* color tokens for chat-debug's subtree so embedded checkpoint-card / state-diff / state-inspector inherit the dark surface without per-file re-skinning.
  • <chat-debug-toggle> removed; <chat-debug-switch> added (sliding thumb on track, role="switch", aria-checked).
  • Status-pill launcher (36×36px) replaces the gear icon. Dot is green when idle, pulsing blue when agent.status() === 'running'.
  • Panel: 12px radius, 0 8px 32px rgba(0,0,0,0.5) shadow, scale(0.96) → scale(1) mount animation anchored to dock origin.
  • Custom select trigger with invisible-overlay native <select> — keeps OS dropdown chrome + keyboard a11y, fully styled face.
  • Click-outside dismiss via @HostListener('document:click') using composedPath against the host element.

Spec: docs/superpowers/specs/2026-05-11-chat-debug-shadcn-polish-design.md
Plan: docs/superpowers/plans/2026-05-11-chat-debug-shadcn-polish.md

Test plan

  • cd libs/chat && npx vitest run chat-debug — 30 tests pass (chat-debug.component.spec / persistence.spec / primitives.spec / timeline-inspector.spec)
  • npx nx build chat and npx nx build examples-chat-angular — both succeed
  • npx nx lint chat — clean
  • Browser verification at http://localhost:4201/embed (worktree dev server):
    • Status pill bottom-right with green dot (not gear icon)
    • Click pill → dark panel mounts with scale+fade animation
    • Header dock toggles render as sunken segmented group; close button SVG
    • Controls zone: Mode segmented, three selects with custom triggers, action button
    • Selects clickable; native OS dropdown opens; selecting an option updates trigger label
    • Tab strip with #4f8df5 accent underline on active tab
    • Click outside panel → closes
    • Pill reappears with green dot
    • Esc closes panel
    • Send a chat message → pill dot turns blue + pulses while streaming

Breaking changes

  • ChatDebugToggleComponent removed from public surface. No external consumer exists in the repo; v0.0.x → no migration concern.

🤖 Generated with Claude Code

blove and others added 13 commits May 11, 2026 16:02
Align chat-debug chrome with the design language from palette v2
(PR #244, since deleted): persistent dark zinc-900 surface, status-pill
launcher, sliding switch, custom select trigger, mount animation.

Introduces --ngaf-chat-debug-* token namespace independent of chat
tokens, so the devtools chrome is theme-stable regardless of host
theme. Hosts can override any token.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
12 bite-sized tasks: define --ngaf-chat-debug-* tokens, build the new
switch primitive, swap toggle, re-skin every chat-debug primitive +
inspector + the launcher chrome to the dark zinc palette, with mount
animation and click-outside dismiss. CHAT_DEBUG_TOKENS also rewires
the chat library's color tokens for chat-debug's subtree so embedded
checkpoint cards / state-diff / state-inspector inherit the dark
surface without per-file re-skinning.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
@vercel
Copy link
Copy Markdown

vercel Bot commented May 11, 2026

The latest updates on your projects. Learn more about Vercel for GitHub.

Project Deployment Actions Updated (UTC)
cacheplane Ready Ready Preview, Comment May 11, 2026 11:19pm

Request Review

@blove blove merged commit f784e4f into main May 11, 2026
14 checks passed
@blove blove deleted the chat-debug-shadcn-polish branch May 11, 2026 23:24
blove added a commit that referenced this pull request May 12, 2026
…rk (#271)

Brings the canonical smoke checklist current with 29 PRs that landed
between Phase 7 (#239) and today without checklist updates. Specifically:

Updated sections:
- chat-debug devtools — replaced bottom-drawer model with floating
  launcher + status pill + switch (PRs #249, #251)
- Control palette — palette v2 (status pill, shadcn-styled panel, PR #244)
- Generative UI / A2UI surfaces — single-bubble invariant (PR #255),
  parent-emits-envelopes architecture (PR #259), wrapped-content +
  tool_calls coexistence (PR #255), envelope reorder
- Server-side wire format — tool_calls preserved on the final AI
- Replaced 'Multi-thread' section with 'Sidenav (thread management)'
  reflecting the permanent semantic <nav> + Active/Archived sections
  (PR #253) and removing the old palette-toggled drawer model

Added sections:
- Cmd+K history search — palette open/search/select/close, archived
  result subtitle, keyboard navigation (PR #253)
- Per-row thread actions — kebab menu order per state (active, pinned,
  archived), rename + pin/unpin + archive/unarchive + delete flows
  (PRs #258, #260, #267)
- Thread titles — first-user-message derivation, idempotent writes,
  manual rename precedence (PR #242)
- Progressive A2UI streaming — per-component fallback transition
  observable during streaming window (PRs #252, #261, #262, #268, #269)
- Inline checkpoint markers — render between messages during multi-step
  runs (PR #243)
- Responsive sidenav — viewport breakpoints, auto-collapse behavior (PR #240)

Total: ~58 new check items across 6 new sections, plus rewrites to 5
existing sections. Original 333-line checklist → 391 lines / 237 check
items.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant