Skip to content

docs: TUI two-process + Go/Charm decision; cliamp auth reference - #7

Merged
wine-fall merged 5 commits into
mainfrom
zachg-0703--spec-tui-arch-and-music-auth
Jul 4, 2026
Merged

docs: TUI two-process + Go/Charm decision; cliamp auth reference#7
wine-fall merged 5 commits into
mainfrom
zachg-0703--spec-tui-arch-and-music-auth

Conversation

@wine-fall

Copy link
Copy Markdown
Owner

Summary

Design decisions captured in the specs (docs only — no code):

  1. TUI architecture (spec10/10-tui.md + DESIGN.md §3.6) — the richer front-end becomes a separate process attached to a headless Python engine over a language-neutral IPC, superseding the earlier locked "single in-process TUI, no IPC" decision. Framework decided: Go / Charm (Bubble Tea) (+ Lip Gloss, Harmonica, ntcharts), with the rationale recorded — including why not Rust/Ratatui. Consequence: the pixel pet is block/half-block sprite art, not true bitmaps (accepted for v1).
  2. Music-source auth reference (DESIGN.md §5)cliamp (Go/Bubble Tea) noted as a reference for the login/auth flow of gray sources (NetEase, etc.); borrow its credential mechanics only, not its user-picks model (murmur is AI-picks-by-context).

Still open (logged in spec10 §6 / §6.1): IPC protocol + Host-seam mapping, daemon/detach reconciliation (master §10.1), and the creative design conversation (art direction, the pet, audio animation).

AI coding brief

  • Original request: In a design session scoped to the TUI, the user wanted to (a) pick a TUI tech direction for murmur's companion-radio front-end — AI-friendliness first, then a warm/fun/fancy feel (audio animation, a pixel pet), explicitly not a dev-tool look — and (b) record cliamp as a reference for authenticating to music sources. Why: murmur is a companion radio where the AI, not the user, curates music, and the front-end must feel alive rather than utilitarian.
  • Manual interventions: User challenged an early over-recommendation of Textual (wrong shape for a radio); corrected a conflation of framework demos vs unrelated aesthetic references; deferred the Go-vs-Rust choice, then chose Go once we established no ready-made bitmap pet exists in either ecosystem (so Rust's crisp-sprite edge is unleveraged); directed that cliamp auth notes belong with music, not the TUI spec; confirmed the two-process split; asked to combine two branches into one PR.
  • Retro: Faster next time by (1) leading with each candidate's shape fit (ambient radio vs dashboard) instead of "same language as the engine"; (2) separating "built-with-this-framework demos" from "aesthetic references" from the first mention; (3) reading the existing spec10 (which already locked Python/same-process) before exploring a Go/Rust two-process front-end, so the conflict surfaced up front.

🤖 Generated with Claude Code

wine-fall and others added 4 commits July 3, 2026 19:03
Supersede the locked "single in-process TUI, no IPC" decision:
- DESIGN.md §3.6: the TUI front-end is a separate process attached to a
  headless Python engine over language-neutral IPC (same class as the TTS
  sidecar); plain CLI host stays in-process. Flags overlap with the
  deferred daemon/detach model (§10.1) to reconcile.
- spec10: §2.2 rewritten (two processes over IPC; Host seam becomes an
  engine-side IPC bridge), §3.1 candidates now Go/Charm vs Rust/Ratatui,
  header/scope/deps/open-questions updated.

Locked: two processes over IPC. Deferred (open): front-end
language/framework, IPC protocol + Host-seam mapping, daemon reconciliation.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Resolve the language/framework open question in favor of Go/Charm
(+ Lip Gloss, Harmonica, ntcharts). Record the rationale: pet is DIY in
both ecosystems and no ready-made bitmap pet exists, so Rust/ratatui-image's
crisp-sprite edge is unleveraged off-the-shelf, while Charm wins on
warmth, ready-made audio viz, and AI-friendliness. Consequence: the pixel
pet is block/half-block sprite art, not true bitmaps (accepted for v1).
Engine↔TUI boundary is now genuinely cross-language (Python ↔ Go), so the
IPC (still open) must be language-neutral.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Add spec10 §6.1: the creative side of the TUI (art direction, the pixel
pet's behavior/sprites, audio-visualizer style, and overall layout/
personality) is intentionally not designed yet — captured as the next
brainstorming session so it is not lost.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Note in DESIGN.md §5 that cliamp (Go/Bubble Tea) already implements the
login/auth flow for auth-gated sources (NetEase, YouTube, SoundCloud,
Bilibili, Spotify, etc.). Borrow its credential/cookie mechanics only,
not its user-picks interaction model — murmur is AI-picks-by-context.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
@wine-fall wine-fall changed the title Spec: TUI two-process + Go/Charm decision; cliamp auth reference docs: TUI two-process + Go/Charm decision; cliamp auth reference Jul 4, 2026
@wine-fall
wine-fall merged commit 7129a72 into main Jul 4, 2026
3 checks passed
@wine-fall
wine-fall deleted the zachg-0703--spec-tui-arch-and-music-auth branch July 4, 2026 12:22
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