fix: trim overlay text reflects actual loading phase
Khaneja+1: Claude Opus 4.6
4325fed
Was showing "Reading file… 100%" while WaveSurfer was actually
decoding the audio (which can take many seconds for long files).
Now transitions through Reading → Decoding → Drawing → hidden.
Safety timeout extended from 25s to 90s for very long files.
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
fix: trim — 0-byte output for raw AAC + waveform-area overlay
Khaneja+1: Claude Opus 4.6
4d53b6b
Same fixes as on main:
- Force re-encode for raw .aac (no timestamps → -c copy produces 0 bytes)
- Loading spinner overlaying the waveform area; hides on 'ready'
- HTML5 audio seek-to-end trick for reliable AAC duration
- Empty-output check after ffmpeg.wasm exec
- Cache-bust trim.js (?v=4)
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
fix: trim page — COOP/COEP headers, reliable duration, loading status
Khaneja+1: Claude Opus 4.6
715762d
- Set COOP: same-origin and COEP: credentialless globally so
SharedArrayBuffer is available for ffmpeg.wasm on /trim.
- Detect duration via Web Audio API in parallel with WaveSurfer.
Latch the value so a later event reporting 0 cannot overwrite a
previously-detected good value (was wiping the END field).
- Show "Reading file…" and "Loading audio…" status while WaveSurfer
fetches and decodes, so the user knows something is happening.
- Cache-bust trim.js (?v=3) so updates aren't masked by browser cache.
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
fix: switch to ffmpeg.wasm 0.11.6, robust AAC duration
Khaneja+1: Claude Opus 4.6
dfcbf54
- ffmpeg.wasm 0.12.x uses Web Workers that can hang silently when
cross-origin worker creation stalls. 0.11.6 has a simpler load path
and is more reliable in browsers. Also adds a 90s timeout so
failures surface to the user instead of staying stuck.
- Raw AAC files report 0 from WaveSurfer's getDuration(); fall back
to the decoded audio buffer's duration on the decode event.
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Add /trim page (client-side ffmpeg.wasm) for hosted instance
Khaneja+1: Claude Opus 4.6
a1eb75e
Backend trim endpoint is disabled via RECLIP_TRIM_BACKEND=disabled env
var in the Dockerfile, so the frontend automatically falls back to
ffmpeg.wasm in the browser. Keeps all processing client-side on the
hosted website.
Includes /api/capabilities and /api/recent-downloads so the trim page
can detect the engine and surface recent audio downloads.
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Add robots.txt and llms.txt for the hosted deployment
Khaneja+1: Claude Opus 4.6
fddb0f8
Block AI training crawlers (GPTBot, ClaudeBot, Google-Extended, etc.)
while allowing search engines. Add llms.txt with project info per
the llmstxt.org standard.
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
fix: perfectly sync the desktop app icon and web favicon with the true Instrument Serif font
Khaneja
88b1bac
style: add squircle background to favicon
Khaneja
18017d2
feat: Update favicon to match brand style
Khaneja
5e7f5aa
Deploy ReClip to Hugging Face Spaces
Khaneja+1: Claude Opus 4.6
0f4f185
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>