Commit History
-
docs: advertise local MCP integration Running
Khaneja766c61b -
feat: document and protect hosted API
Khaneja9d312e6 -
feat: improve agent discovery metadata
Khaneja6e61825
-
fix: clarify hosted YouTube availability
Khaneja50dd060 -
fix: bypass blocked YouTube webpage on hosted runtime
Khaneja2cb5ac8 -
fix: preserve PO provider ownership in runtime image
Khanejaef41f70 -
fix: verify hosted PO provider runtime
Khaneja7695648 -
chore: capture hosted extractor failure diagnostics
Khanejac93166c -
fix: add PO tokens for hosted YouTube requests
Khanejab166aa1 -
fix: impersonate browser for hosted extractor traffic
Khaneja7ffeed9 -
chore: log bounded extractor timeout diagnostics
Khaneja87396f6 -
feat: add hosted clip downloads and harden extractor
Khaneja6ce75c4
-
fix: trim overlay text reflects actual loading phase
Khaneja +1: Claude Opus 4.6Was 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>4325fed
-
fix: trim — 0-byte output for raw AAC + waveform-area overlay
Khaneja +1: Claude Opus 4.6Same 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>4d53b6b -
fix: trim page — COOP/COEP headers, reliable duration, loading status
Khaneja +1: Claude Opus 4.6- 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>715762d -
fix: switch to ffmpeg.wasm 0.11.6, robust AAC duration
Khaneja +1: Claude Opus 4.6- 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>dfcbf54 -
fix: dropzone collapses on /trim page
Khaneja +1: Claude Opus 4.6The .dropzone is a <label> element which defaults to display:inline, so the dashed border collapsed to a thin vertical strip and the inner <div>s broke out of the container. Force display:block + width:100%. Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>72cab1e -
Add /trim page (client-side ffmpeg.wasm) for hosted instance
Khaneja +1: Claude Opus 4.6Backend 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>a1eb75e
-
fix: correct dropdown mobile bleed and toggle behavior
Khaneja08207c4 -
fix: correct mobile dropdown positioning
Khaneja1462fc3
-
Add robots.txt and llms.txt for the hosted deployment
Khaneja +1: Claude Opus 4.6Block 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>fddb0f8
-
fix: replace em dash with colon in page title
Khanejafe11390 -
fix: hide bitrate chips for lossless/native audio codecs and auto-select best source
Khaneja63c7261
-
fix: perfectly sync the desktop app icon and web favicon with the true Instrument Serif font
Khaneja88b1bac -
fix: move theme toggle to bottom right to avoid overlapping with dropdown
Khaneja2cb41b5
-
feat: add video codec selector and automatic dark mode toggle
Khanejaf197f1b -
feat: allow users to select audio codec for downloads (MP3, M4A, FLAC, WAV, Native)
Khaneja323f55b
-
chore: remove METADATA_FINDINGS.md from tracking and add to gitignore
Khaneja8002562 -
docs: sync hf-deploy docs to accurately reflect new app logic and web dependencies
Khaneja7267f0e -
fix: add yt-dlp-ejs JS challenge solver to fix YouTube bot detection
Khaneja54a7cf4
-
docs: add findings for yt-dlp metadata extraction mapping
Khaneja61b8473 -
feat: intelligent filename construction using yt-dlp metadata (Artist, Track, Channel)
Khanejafbc4e93 -
feat: add tip banner explaining IP block limitations on web hosted environments
Khanejaf373b09 -
feat: sync native Save As frontend dialog fallback for desktop client
Khanejae69fed9
-
feat: implement mp3 quality selection and fix uuid routes
Khaneja1cc8a00 -
fix: add focus-within to dropdown to handle mobile touch events
Khaneja27820e7
-
chore: add pyinstaller build artifacts to gitignore
Khaneja345336f -
style: add squircle background to favicon
Khaneja18017d2 -
style: update Linux logo to official wikimedia SVG
Khaneja6e3c165 -
style: position dropdown to extreme right and update os logos
Khaneja5501cbe -
fix: Update download links to reflect new single-file executable formats
Khanejaffeb5a4 -
fix: pointing download buttons to direct zip file URLs
Khaneja1eb0bce -
feat: Update favicon to match brand style
Khaneja5e7f5aa -
feat: Add native app download dropdown to Hugging Face UI
Khanejae125c19 -
docs: Add CHANGES.md and update .gitignore for HF Spaces
Khanejaf82459b
-
Fix DNS: write resolv.conf as root, then drop to appuser via gosu
Khaneja +1: Claude Opus 4.6Previous approach failed because resolv.conf is read-only at build time and appuser can't write it at runtime. Now the entrypoint runs as root to set DNS, then uses gosu to drop privileges to appuser. Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>b36ba9f -
Fix DNS resolution for HF Spaces
Khaneja +1: Claude Opus 4.6Add explicit Google/Cloudflare DNS servers and entrypoint script to resolve Errno -5 (DNS lookup failure) when fetching videos. Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>0d61da0 -
Deploy ReClip to Hugging Face Spaces
Khaneja +1: Claude Opus 4.6Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>0f4f185