Commit History

  1. Add ZeroGPU Klein portrait provider

    844dab5
  2. Portraits: in-browser WebGPU via vendored Bonsai (FLUX.2-Klein 4B, on-device)⁠

    polats +1: Claude Opus 4.8 (1M context)
    db6b273
  3. Portraits step 4: in-browser Janus-Pro-1B (WebGPU) portrait engine⁠

    polats +1: Claude Opus 4.8 (1M context)
    69e8c08
  4. Portraits step 3: persona panel Portrait section + per-hero caching⁠

    polats +1: Claude Opus 4.8 (1M context)
    6a861b9
  5. Portraits step 2: /portrait engine routing + imagen facade + Settings picker⁠

    polats +1: Claude Opus 4.8 (1M context)
    2151ea1

  1. Settings: hide the app URL printed in Gradio's Settings header⁠

    polats +1: Claude Opus 4.8 (1M context)
    476605d
  2. Settings: "Use recommended for this device" button (GPU/device-tier heuristic)⁠

    polats +1: Claude Opus 4.8 (1M context)
    7b49a92
  3. Settings presets: real padding (beat Gradio reset) + readable active hover⁠

    polats +1: Claude Opus 4.8 (1M context)
    dbd7553
  4. Settings: recommended quality presets + device readout; persist all choices⁠

    polats +1: Claude Opus 4.8 (1M context)
    750ca83
  5. Voice: default prod provider to Kokoro (in-browser), not cloud Qwen3-TTS⁠

    polats +1: Claude Opus 4.8 (1M context)
    585578b
  6. Voice: provider-driven per-hero voices; settings is provider-only⁠

    polats +1: Claude Opus 4.8 (1M context)
    e648dca
  7. Persona: simplify prompt to name/about/quote/voice; editable in Settings⁠

    polats +1: Claude Opus 4.8 (1M context)
    575fb61
  8. Persona voice: re-DESIGN when the voice description changes (not clone)⁠

    polats +1: Claude Opus 4.8 (1M context)
    c531198
  9. Persona voice: play↔stop toggle, loading spinner, auto-stop on nav/new pick⁠

    polats +1: Claude Opus 4.8 (1M context)
    ba238a8
  10. Persona voice: cloud voice-clone, varied voice designs, animated class picker⁠

    polats +1: Claude Opus 4.8 (1M context)
    26cb5c0
  11. Personas → heroes: shield icon, hero terminology, empty state, active highlight⁠

    polats +1: Claude Opus 4.8 (1M context)
    29474fc
  12. Fix: red headings, voice-edit badge, and voices persisting across refresh⁠

    polats +1: Claude Opus 4.8 (1M context)
    9f5e779
  13. Persona voice: one pulsing play button, sidebar-style headings, live badge⁠

    polats +1: Claude Opus 4.8 (1M context)
    ea860c1
  14. Persona: red section headings, icon buttons, edit-aware voice + clone-on-play⁠

    polats +1: Claude Opus 4.8 (1M context)
    72160ec
  15. Persona: editable fields (auto-save), quote after about, Create/Replay voice⁠

    polats +1: Claude Opus 4.8 (1M context)
    308478f
  16. Personas-as-agents: spoken quote + save to a local-first barracks roster⁠

    polats +1: Claude Opus 4.8 (1M context)
    0ecdf98
  17. Voice: cloud Qwen3-TTS is the default engine in prod (was Kokoro)⁠

    polats +1: Claude Opus 4.8 (1M context)
    fc20b4d
  18. Voice settings: add "Qwen3-TTS local" engine — localhost-only, default on localhost⁠

    polats +1: Claude Opus 4.8 (1M context)
    e352ff3
  19. Add Qwen3-TTS local bridge: ?tts= override + tts_server.py⁠

    polats +1: Claude Opus 4.8 (1M context)
    3bc1b31
  20. Move Voice settings into the Settings page; add a sidebar ⚙ Settings button⁠

    polats +1: Claude Opus 4.8 (1M context)
    dffe06d
  21. Add Qwen3-TTS Voice Design (DashScope) + persona voice descriptions⁠

    polats +1: Claude Opus 4.8 (1M context)
    717332c
  22. Cap persona + diary at 100 tokens; shorten prompts; stream the diary⁠

    polats +1: Claude Opus 4.8 (1M context)
    b862211
  23. Fix empty-JSON: keep the answer when a model leaves <think> unclosed⁠

    polats +1: Claude Opus 4.8 (1M context)
    62070d0
  24. Model bar: show params once (avoid '0.6B · 0.6B' for byte-less engines)⁠

    polats +1: Claude Opus 4.8 (1M context)
    5264fdb
  25. Settings: model section to top; default WebLLM + Qwen3 0.6B; copyable debug⁠

    polats +1: Claude Opus 4.8 (1M context)
    898540a
  26. Put the model picker in Gradio's OWN settings page (not a custom tab)⁠

    polats +1: Claude Opus 4.8 (1M context)
    cd43499
  27. Move engine/model settings to a Settings page; share one model across both pages⁠

    polats +1: Claude Opus 4.8 (1M context)
    627d835
  28. Cache status + delete for WebLLM and Transformers.js (like wllama)⁠

    polats +1: Claude Opus 4.8 (1M context)
    b0f48f8
  29. Transformers.js: pre-flight WebGPU device, else WASM (fixes load + caching)⁠

    polats +1: Claude Opus 4.8 (1M context)
    bed3298
  30. Fix stale JS (no-cache on /web) + Transformers.js WebGPU→WASM fallback⁠

    polats +1: Claude Opus 4.8 (1M context)
    559041f
  31. Fix Qwen3 on WebLLM: budget for thinking + capture reasoning_content⁠

    polats +1: Claude Opus 4.8 (1M context)
    eba5aae
  32. Fix Qwen3 parsing (/no_think) + WebLLM double-load guard & progress clarity⁠

    polats +1: Claude Opus 4.8 (1M context)
    ab87288
  33. Mobile: collapse model/voice control bars behind tap-to-expand⁠

    polats +1: Claude Opus 4.8 (1M context)
    0218dca
  34. Mobile: give persona/diary content real space on phones⁠

    polats +1: Claude Opus 4.8 (1M context)
    db5fc22
  35. Add in-browser TTS: read war diaries aloud (Kokoro / Kitten / Web Speech)⁠

    polats +1: Claude Opus 4.8 (1M context)
    9c371b5
  36. Fix model re-downloads (persistent storage) + WebLLM shader-f16 crash⁠

    polats +1: Claude Opus 4.8 (1M context)
    fa27f81
  37. Multi-engine benchmark: wllama vs Transformers.js vs WebLLM (engine selector)⁠

    polats +1: Claude Opus 4.8 (1M context)
    f8d0843
  38. Add Qwen3-0.6B; surface WebGPU backend; strip <think> from answers⁠

    polats +1: Claude Opus 4.8 (1M context)
    a4ca9e9
  39. In-browser models: catalog + picker + cache delete, live tok/s stats, raw 'thinking' stream⁠

    polats +1: Claude Opus 4.8 (1M context)
    8eac3eb
  40. Personas + War Diary now run llama.cpp IN THE BROWSER via wllama (local-first)⁠

    polats +1: Claude Opus 4.8 (1M context)
    03708ca
  41. Personas + war-diary via llama.cpp (reusing woid's persona SSE protocol)⁠

    polats +1: Claude Opus 4.8 (1M context)
    67f4321

  1. Space: brand title in Fraunces w/ red dot + 'small minds, big dreams' subtitle; CHARACTERS title small+red; stage fixed-fills full height like main sidebar

    0d345ef
  2. Chrome: left-align picker rows (Gradio was centering them)

    48bdfa8
  3. Space: fix Carnival assets (URL-decode), red section headers w/ line, square selections, kill Gradio list bullets/margins, stage fills page

    8f28cd7
  4. Shell/chrome: force label spans to inherit link colour (Gradio --body-text-color hid active-item + compass text on dark fills)

    0feb400