Skip to content

feat(ui): [CPU] chip + tooltip on voice slot card (PR-15)#186

Merged
thinmintdev merged 1 commit into
mainfrom
feat/voice-cpu-chip-pr15
May 23, 2026
Merged

feat(ui): [CPU] chip + tooltip on voice slot card (PR-15)#186
thinmintdev merged 1 commit into
mainfrom
feat/voice-cpu-chip-pr15

Conversation

@thinmintdev
Copy link
Copy Markdown
Contributor

Summary

PR-15 of the hal0 v0.2 Lemonade migration — last of Phase 4. Surfaces the locked kokoro:cpu constraint as a small [CPU] chip with tooltip on the voice slot card.

  • VoiceCard.vue — chip added to the TTS sub-section header. Renders only when selection.tts.provider === 'kokoro'.
  • SlotCard.vue — same chip on any slot whose provider === 'kokoro', so custom kokoro slots operators create outside the capability surface get the same disclosure.
  • Hard-coded to provider === 'kokoro' per plan §1 fix(ci): clear ruff lint + format errors blocking CI #2 — no device-detection logic. GPU-accelerated TTS lands in v0.3.
  • Neutral slate palette (info, not warning); the constraint is intentional in v0.2.
  • A11y: chip is focusable (tabindex="0") so keyboard users see the native title= tooltip; aria-label carries the full disclosure for screen-reader users.

Tooltip copy (verbatim): Kokoro TTS runs on CPU in v0.2. GPU-accelerated TTS is planned for v0.3.

References: plan §1 #2, §11 PR-15 (docs/internal/lemonade-adoption-plan-2026-05-22.md); ADR-0008 §2 (docs/internal/adr/0008-lemonade-adoption.md).

Test plan

  • tests/e2e/specs/lemonade-voice-chip.spec.ts — 3 cases:
    • kokoro TTS sub-section renders [CPU] chip with correct aria-label
    • non-kokoro provider has no [CPU] chip
    • tooltip text matches the brief verbatim
  • Regression: dashboard-lemonade-state.spec.ts, slot-lifecycle.spec.ts, dashboard.spec.ts all green
  • Backend baseline: pytest tests/ — 1616 passed, 8 skipped (no Python touched)
  • npm run build clean

🤖 Generated with Claude Code

Surfaces the kokoro:cpu constraint locked in plan §1 #2 + ADR-0008 §2
as a small "[CPU]" chip with hover/focus tooltip on the voice slot
card's TTS sub-section. Hard-coded to provider === 'kokoro' per plan;
no device-detection logic. GPU-accelerated TTS lands in v0.3.

Chip also added to SlotCard.vue header for any custom kokoro slot
operators add outside the capability surface — same disclosure, same
neutral slate palette (info, not warning). Both chips share verbatim
copy: "Kokoro TTS runs on CPU in v0.2. GPU-accelerated TTS is
planned for v0.3."

A11y: chip is focusable with `tabindex="0"` so keyboard users see the
native title= tooltip; aria-label carries the full disclosure for
screen-reader users.

Tests: ui/tests/e2e/specs/lemonade-voice-chip.spec.ts — kokoro
present → chip visible + correct aria-label; non-kokoro provider →
chip absent; tooltip text matches the brief verbatim. Mocks
/api/capabilities to mount VoiceCard's TTS sub-section in isolation.

Plan §11 PR-15. ADR-0008 §2.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
@thinmintdev thinmintdev merged commit 5149a26 into main May 23, 2026
4 checks passed
@thinmintdev thinmintdev deleted the feat/voice-cpu-chip-pr15 branch May 27, 2026 16:58
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