Commit Graph
192 Commits
Author SHA1 Message Date
teahubxyzandClaude Opus 5.5 c9f3823cc2 mcp: radio spike — Claude DJs gandora in chat (dj_play + ui://gandora/radio; render/speech via service binding to time-inference)
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_014mBuCaQSgWwqhtzsmTBQuM
2026-10-22 19:25:56 +00:00
teahubxyz 6da217f4c4 mcp: spike — gandora MCP App audio probe (ui://gandora/probe + get_track) 2026-10-22 19:13:41 +00:00
teahubxyzandClaude Opus 5.5 f173b9dffd dev: bump the SW REV so phones drop the pre-split cache
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01K6897PWcUEwHiqZMcVnNF6
2026-10-22 06:21:38 +00:00
teahubxyz 62f6f3951c Merge pull request 'split → dev: index.html as ES modules (no build step), for a phone pass' (#4) from split into dev 2026-10-22 06:20:49 +00:00
teahubxyzandClaude Opus 5.5 7cf03eb1f5 dev: webamp.html as on main (tapes, museum skins), so the split merges cleanly
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01K6897PWcUEwHiqZMcVnNF6
2026-10-22 06:20:25 +00:00
teahubxyzandClaude Fable 5.1 4aa94d8315 handoff: the seams after the module split, what the split left alone, the harness modes
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01Dhu3iHseRewQ2WpBSVLokG
2026-10-21 22:35:15 +00:00
teahubxyzandClaude Fable 5.1 2b2936a831 architecture: tidy the render.js row
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01Dhu3iHseRewQ2WpBSVLokG
2026-10-21 22:34:55 +00:00
teahubxyzandClaude Fable 5.1 db33db4673 architecture: the file map (ES modules, no build step) and the harness modes as they are now
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01Dhu3iHseRewQ2WpBSVLokG
2026-10-21 22:34:48 +00:00
teahubxyzandClaude Fable 5.1 4bbe457421 app.js: the comment on the seq accessor
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01Dhu3iHseRewQ2WpBSVLokG
2026-10-21 22:34:19 +00:00
teahubxyzandClaude Fable 5.1 189023b66f docs: the file map after the split, the globals brain.js and the harness use, and the harness modes as they are now
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01Dhu3iHseRewQ2WpBSVLokG
2026-10-21 22:34:13 +00:00
Claude Fable 5.1 479e110f5e split 4/4: player.js (the state machine and the one <audio>, moved as-is), ui/player.js, ui/library.js, ui/sheet.js, ui/taste.js, mashup.js and app.js (boot, window.g, brain.js globals); index.html is markup + CSS + two script tags
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>

Claude-Session: https://claude.ai/code/session_01Dhu3iHseRewQ2WpBSVLokG
2026-10-21 22:31:34 +00:00
Claude Fable 5.1 cc6c971423 split 3/4, fixed: the inline module imports setFetcher from render.js (the harness stub reaches it through window.g)
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>

Claude-Session: https://claude.ai/code/session_01Dhu3iHseRewQ2WpBSVLokG
2026-10-21 22:29:14 +00:00
teahubxyzandClaude Fable 5.1 5525104679 split.js: setFetcher (added by split-post) belongs to render.js, so the globals block imports it
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01Dhu3iHseRewQ2WpBSVLokG
2026-10-21 22:28:20 +00:00
teahubxyzandClaude Fable 5.1 cd6e02be11 harness-cdp: when the harness did not run, print the page's uncaught exceptions (a module that failed to load, say)
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01Dhu3iHseRewQ2WpBSVLokG
2026-10-21 22:27:29 +00:00
Claude Fable 5.1 baf43525f6 split 3/4: dj.js (the DJ prompt, askDJ/askBreak/askMash, modes, voices, personas, speak) and render.js (venice behind an injectable fetcher, renderTrack, noise and tone generators, wavBlob) 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:24:29 +00:00
teahubxyzandClaude Fable 5.1 5268620470 split-post: the regex-literal false positive (crackle) also points at index.html in the intermediate steps
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01Dhu3iHseRewQ2WpBSVLokG
2026-10-21 22:23:48 +00:00
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