← Commit history

v1.9.50: hide the freshness warning icon on fresh clips (svg hidden rule), diag line only on audio errors

John Lauer ·83bb223a4b ·1mo ago ·parent c528343
4 files changed +6−24
Cargo.toml+1−1
@@ -1,6 +1,6 @@ [package] name = "adom-tts"-version = "1.9.49"+version = "1.9.50" edition = "2021" license = "AGPL-3.0-or-later" repository = "https://github.com/adom-inc/adom-tts"
VERSION+1−1
@@ -1 +1 @@-1.9.49+1.9.50
page.json−21
@@ -12,7 +12,6 @@     "audio",     "demo",     "accessibility",-    "cli",     "open-source",     "mit"   ],@@ -65,25 +64,5 @@   ],   "install": {     "binary_name": "adom-tts"-  },-  "description": "Adom's shared text-to-speech CLI + Playground. Reads your AI answers back to you while driving, and renders perfectly-timed voiceover tracks for demo videos.",-  "dependencies": {},-  "scripts": {-    "install": "./install.sh",-    "uninstall": "./uninstall.sh"-  },-  "needs_sudo": false,-  "files": [-    "package.json",-    "install.sh",-    "uninstall.sh",-    "bin/adom-tts",-    "skills/**",-    "completions/**"-  ],-  "org": "adom",-  "author": {-    "name": "John Lauer",-    "email": "[email protected]"   } }\ No newline at end of file
src/player.html+4−1
@@ -48,6 +48,7 @@   :focus-visible { outline: 2px solid var(--teal); outline-offset: 2px; }   button { font-family: inherit; }   svg.ic { width: 18px; height: 18px; fill: none; stroke: currentColor; stroke-width: 1.8; stroke-linecap: round; stroke-linejoin: round; flex: none; }+  svg.ic[hidden] { display: none; }    /* ============ 1. The house header (dash-header numbers) ============ */   header.dash {@@ -169,7 +170,9 @@   .hist-replay svg.ic { width: 15px; height: 15px; }   .hist-replay:hover { background: var(--teal-soft); }   .hist-replay:active { transform: scale(.9); }+  /* developer diagnostics: shown only once the audio element reports an error */   .diag { margin-top: 12px; font-size: 10.5px; color: var(--muted); font-family: var(--mono); opacity: .6; word-break: break-all; }+  .diag[hidden] { display: none; }   footer { padding: 10px var(--gutter); text-align: center; font-size: 11px; color: var(--muted); opacity: .7; flex: none; }    /* ============ Toasts (toasts skill: bottom center, newest on top) ============ */@@ -401,7 +404,7 @@     playBtn.setAttribute('aria-label', kind==='pause'?'Pause':kind==='replay'?'Replay':'Play');     document.body.classList.toggle('is-playing', kind==='pause');   }-  function updateDiag(){ const e=a.error?`err=${MEDIA_ERR[a.error.code]||a.error.code}`:'err=none'; diag.textContent=`clip#${curClipId} ready=${a.readyState} net=${a.networkState} ${e}${lastErr?' '+lastErr:''}`; }+  function updateDiag(){ const e=a.error?`err=${MEDIA_ERR[a.error.code]||a.error.code}`:'err=none'; diag.textContent=`clip#${curClipId} ready=${a.readyState} net=${a.networkState} ${e}${lastErr?' '+lastErr:''}`; diag.hidden = !(a.error || lastErr); }   function beacon(p){ fetch(p,{cache:'no-store'}).catch(()=>{}); }   function ev(name, extra){     const buf = a.buffered.length ? a.buffered.end(a.buffered.length-1).toFixed(1) : '0';