Commit Graph
175 Commits
Author SHA1 Message Date
Claude Fable 5.1 7274c21b63 split 2/4: store.js (db, saveStation, remember, the ledger, tapes incl. the KEPT virtual tape, tapeSpec) out of index.html
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>

Claude-Session: https://claude.ai/code/session_01Dhu3iHseRewQ2WpBSVLokG
2026-10-21 22:20:29 +00:00
Claude Fable 5.1 455f139842 split 1/4: covers.js (hash32, prng, keyHue, palettes, drawCover and the looks) and core.js (state, hooks, $, utils) out of index.html; the rest stays as an inline module
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>

Claude-Session: https://claude.ai/code/session_01Dhu3iHseRewQ2WpBSVLokG
2026-10-21 22:18:36 +00:00
teahubxyzandClaude Fable 5.1 f33029c261 harness-safari: copy the modules beside the page, not just brain.js
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01Dhu3iHseRewQ2WpBSVLokG
2026-10-21 22:17:59 +00:00
teahubxyzandClaude Fable 5.1 f855ee15b7 split tooling: line-map splitter, post edits, node checks, harness fragments as modules over window.g, a workflow that performs a step
The harness fragments now run as inline modules (after app.js) and stub the renderer through render.setFetcher; harness.sh's loop mode goes over http + DevTools like resume (file:// cannot load modules; --dump-dom also hangs on current Chrome). No page change yet.

Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01Dhu3iHseRewQ2WpBSVLokG
2026-10-21 22:17:50 +00:00
gitea-actions[bot] 0786964677 asmr: renders 2026-10-21 19:11:07 +00:00
teahubxyz 9376bd8c70 asmr: optional per-voice label 2026-10-21 19:10:18 +00:00
teahubxyz d8784c0318 asmr: Luna and eve rendered slower natively (pitch kept), to A/B against the 0.9× toggle
asmr / render (push) Successful in 1m10s
2026-10-21 19:10:16 +00:00
teahubxyz f02bc04c98 asmr: show cost per clip and per minute of audio on every voice 2026-10-21 19:01:51 +00:00
teahubxyz 8d200c5988 asmr: Venice TTS prices (USD per 1M input characters, from /models)
asmr / render (push) Successful in 1m0s
2026-10-21 19:01:40 +00:00
gitea-actions[bot] 6ca5c4d70d asmr: renders 2026-10-21 18:45:31 +00:00
gitea-actions[bot] 1cb6d53de1 asmr: renders 2026-10-21 18:43:42 +00:00
gitea-actions[bot] f7acd316ed asmr: renders 2026-10-21 18:42:31 +00:00
teahubxyz 4683129167 asmr: Inworld is wav-only; re-render Gemini and Grok with their whisper lead (first pass went out without it)
asmr / render (push) Successful in 1m20s
2026-10-21 18:41:11 +00:00
teahubxyz 599051c33f asmr: pull before rendering so back-to-back runs don't collide
asmr / render (push) Successful in 1m23s
2026-10-21 18:41:09 +00:00
gitea-actions[bot] c17a45f143 asmr: renders 2026-10-21 18:39:05 +00:00
teahubxyz 87de965fc9 asmr: hide the next-round list when it's empty; absolute favicon for the subdomain 2026-10-21 18:36:44 +00:00
teahubxyz 6803dfb029 asmr: per-voice lead/tail around the script (whisper tags, spoken direction)
asmr / render (push) Failing after 1m32s
2026-10-21 18:36:07 +00:00
teahubxyz 97e246507c asmr: round two — Inworld, Gemini, MiniMax, Grok
asmr / render (push) Successful in 1m40s
2026-10-21 18:35:31 +00:00
gitea-actions[bot] c883da7890 asmr: renders 2026-10-21 18:29:51 +00:00
teahubxyz dc1843c56d asmr: render workflow
asmr / render (push) Successful in 4m30s
2026-10-21 18:25:19 +00:00
teahubxyz f41c7abaac asmr: sampler page 2026-10-21 18:24:48 +00:00
teahubxyz e1e299788a asmr: renderer for the voice bake-off 2026-10-21 18:23:57 +00:00
teahubxyz 5e5b3b9e66 asmr: voice bake-off config 2026-10-21 18:23:46 +00:00
teahubxyzandClaude Fable 5.1 7176eb1f86 tools/harness-safari.py: the loop harness in WebKit, driven by safaridriver with a real click
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01K6897PWcUEwHiqZMcVnNF6
2026-10-21 09:37:11 +00:00
teahubxyzandClaude Fable 5.1 234dd00379 harness: safari mode (WebKit over safaridriver, real activation)
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01K6897PWcUEwHiqZMcVnNF6
2026-10-21 09:36:51 +00:00
teahubxyzandClaude Fable 5.1 b1c8e231d7 handoff: the player rules learned the hard way, and the dev-first lane for player changes
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01K6897PWcUEwHiqZMcVnNF6
2026-10-21 09:36:43 +00:00
gitea-actions[bot] d0797bc2c3 shots + sw stamp be3bce8aac 2026-10-21 09:32:11 +00:00
teahubxyzandClaude Fable 5.1 be3bce8aac handoff: the playing flag follows play()'s promise; a refused play shows TAP TO PLAY instead of a playing UI with no sound
shots / shots (push) Successful in 2m15s
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01K6897PWcUEwHiqZMcVnNF6
2026-10-21 09:30:08 +00:00
gitea-actions[bot] c9b89d0b15 shots + sw stamp 36a8d64684 2026-10-21 08:44:16 +00:00
teahubxyzandClaude Fable 5.1 36a8d64684 voice preview: one at a time; a later tap stops the earlier one, even mid-fetch
shots / shots (push) Successful in 2m21s
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01K6897PWcUEwHiqZMcVnNF6
2026-10-21 08:41:54 +00:00
teahubxyzandClaude Fable 5.1 6071116a26 station sheet: the × stays put while the sheet scrolls
shots / shots (push) Canceled after 42s
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01K6897PWcUEwHiqZMcVnNF6
2026-10-21 08:41:08 +00:00
teahubxyzandClaude Fable 5.1 12f92bc28f station sheet scrolls (capped at 88vh); the DJ section is a collapsed disclosure
shots / shots (push) Canceled after 34s
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01K6897PWcUEwHiqZMcVnNF6
2026-10-21 08:40:53 +00:00
gitea-actions[bot] 49010877ec shots + sw stamp d97628d1ad 2026-10-21 08:40:33 +00:00
teahubxyzandClaude Fable 5.1 d97628d1ad hold: the level is baked into the sample (iOS ignores element volume); OFF holds on pure silence
shots / shots (push) Successful in 2m21s
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01K6897PWcUEwHiqZMcVnNF6
2026-10-21 08:38:29 +00:00
gitea-actions[bot] bc7a16bb34 shots + sw stamp dbe369d2c3 2026-10-21 08:34:34 +00:00
teahubxyzandClaude Fable 5.1 dbe369d2c3 station name: bigger, in ink
shots / shots (push) Successful in 2m19s
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01K6897PWcUEwHiqZMcVnNF6
2026-10-21 08:32:08 +00:00
teahubxyzandClaude Fable 5.1 1dc150f977 room tone OFF switch next to the slider; off means no bed and a silent hold
shots / shots (push) Canceled after 2m15s
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01K6897PWcUEwHiqZMcVnNF6
2026-10-21 08:30:07 +00:00
teahubxyzandClaude Fable 5.1 d22117ba55 sw: stats.html offline too
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01K6897PWcUEwHiqZMcVnNF6
2026-10-21 08:26:51 +00:00
teahubxyzandClaude Fable 5.1 1261d14945 stats.html: your numbers, from the ledger and the library, on the device only
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01K6897PWcUEwHiqZMcVnNF6
2026-10-21 08:26:41 +00:00
teahubxyzandClaude Fable 5.1 cebaead521 a usage ledger in localStorage (cooks, costs, latency, fallbacks, reactions, plays) for stats.html; the station sheet links to it
shots / shots (push) Failing after 2m20s
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01K6897PWcUEwHiqZMcVnNF6
2026-10-21 08:24:31 +00:00
teahubxyzandClaude Fable 5.1 f0bbb5c95c voices across Venice's TTS models (Qwen3 with a style prompt for whisper/ASMR, Orpheus, ElevenLabs); the persona rides along as the style
shots / shots (push) Canceled after 2m15s
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01K6897PWcUEwHiqZMcVnNF6
2026-10-21 08:20:42 +00:00
teahubxyzandClaude Fable 5.1 cd1e040688 tones mode: binaural beats (delta..gamma), solfeggio frequencies, isochronic pulses, made on the device in stereo
shots / shots (push) Canceled after 2m15s
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01K6897PWcUEwHiqZMcVnNF6
2026-10-21 08:18:22 +00:00
teahubxyzandClaude Fable 5.1 5b1f63bd15 noise: made in slices so the page keeps breathing, 16 kHz, brown and crackle a little quieter
shots / shots (push) Canceled after 28s
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01K6897PWcUEwHiqZMcVnNF6
2026-10-21 08:17:29 +00:00
teahubxyzandClaude Fable 5.1 e281e104dd hold crackle at room-tone level, not music level, and the bed stops the moment the hold starts; station modes: music / freestyle / asmr / noise
shots / shots (push) Canceled after 1m55s
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01K6897PWcUEwHiqZMcVnNF6
2026-10-21 08:16:15 +00:00
gitea-actions[bot] eaaacfacc8 shots + sw stamp c1606fdf9b 2026-10-21 07:45:04 +00:00
teahubxyzandClaude Fable 5.1 c1606fdf9b welcome: a DJ with a chosen name keeps it instead of picking one
shots / shots (push) Successful in 2m15s
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01K6897PWcUEwHiqZMcVnNF6
2026-10-21 07:42:43 +00:00
teahubxyzandClaude Fable 5.1 d65505882c DJ personas: per-station name, voice (with preview), speaking speed and a persona brief; presets incl. ASMR; brief feeds the track prompt and the break scripts
shots / shots (push) Canceled after 29s
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01K6897PWcUEwHiqZMcVnNF6
2026-10-21 07:42:33 +00:00
gitea-actions[bot] 53101a498c shots + sw stamp 045b14b6a6 2026-10-21 07:41:04 +00:00
teahubxyzandClaude Fable 5.1 045b14b6a6 repeat toggle: the on state is a filled ink pill, not a 12% gold tint nobody can see
shots / shots (push) Successful in 2m23s
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01K6897PWcUEwHiqZMcVnNF6
2026-10-21 07:37:53 +00:00
teahubxyzandClaude Fable 5.1 ec8c563595 handoff: a track started inside ended counts as playing at once, and the bed never starts while the phase is playing (on iOS a Web Audio start right after the swap could interrupt the element)
shots / shots (push) Canceled after 2m17s
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01K6897PWcUEwHiqZMcVnNF6
2026-10-21 07:35:44 +00:00