Spaces:
Sleeping
Sleeping
Commit History
5 days ago
-
feat: new reels inherit nearest cluster; drop unused fallbacks
- Save paths copy the cluster of the closest clustered reel (match_reels, >= 0.4) - Remove GET /reels, /reels/{id}/details and the no-Supabase frontend fallback - Remove init_local_db; reel load failures now show an error - Scheduled worker runs pythonw.exe directly instead of a VBScript Claude-Session: https://claude.ai/code/session_01Y9VNLc1qrK3HkwUguu1p6s737ff6a -
fix: API key handling, cheaper clustering and queue polling
- Wrong API key is cleared with a clear error; drop build-time VITE_API_KEY - Local backend binds 127.0.0.1 only - Cluster recompute reuses stored embeddings, repairs missing ones - Poll only queued reels; retry /health until the backend answers - Batch re-import counts reels by their real status Claude-Session: https://claude.ai/code/session_01Y9VNLc1qrK3HkwUguu1p6sf2e5f75
-
feat(backend): store and query reel embeddings in the data layer
Claude-Session: https://claude.ai/code/session_01MV2z14HLUeGpAd4apqTpCha927b9c -
chore: small review leftovers
- Recompute resets queued/failed reels to Unclustered instead of clustering their empty text as "Uncategorized content". - Log full LLM responses at debug, not info. - check_queue.py only inspects; it no longer deletes a hard-coded test row. - Dockerfile: drop unused curl. - Fix stale model names in .env.example, a docstring and two UI labels; give the page a real title. Claude-Session: https://claude.ai/code/session_0166W7S7XvHg5P2uyJtP4GiC9a7ec08 -
refactor(backend): route batch and cluster queries through db.py
- main.py no longer touches the Supabase client: batch status/enqueue use db.statuses_for_urls and db.insert_pending_reels. - Recompute writes one update per cluster (chunked) instead of one per reel. - reels_for_clustering pages past the 1000-row request cap. - Fold mark_failed_with_status into mark_failed and keep one FAILURE_STATUSES set in db.py. - Batch endpoints are sync so their blocking DB calls stay off the event loop. Claude-Session: https://claude.ai/code/session_0166W7S7XvHg5P2uyJtP4GiCef8a11d -
chore: delete retired clustering engine, uncalled endpoints, template leftovers
- Remove the old chunked-LLM clustering shims and the three tests that only exercised them; recompute calls cluster_topics_semantically directly. - Remove POST /reels/status and GET /clusters (+ db.cluster_counts): the frontend never calls them and derives clusters itself. - Remove the one-shot SQLite migration script (migration is done). - Remove Vite template assets, template README and the placeholder smoke test. Claude-Session: https://claude.ai/code/session_0166W7S7XvHg5P2uyJtP4GiCf94590b -
fix: load full reel library, unblock server during extraction, bulk drop
- Dashboard fetched only the newest 500 reels; page through Supabase so the whole library loads (754 rows today). db.list_reels pages too. - /extract/url, /extract/file and /extract/text were async but ran the blocking pipeline, freezing every other request. Make them sync so FastAPI runs them in its threadpool. - Bulk import drop zone called the audio drop handler and rejected saved_posts.json. Give it its own handler. - Drop the unused /reels search param, which interpolated raw text into a PostgREST filter. Claude-Session: https://claude.ai/code/session_0166W7S7XvHg5P2uyJtP4GiC82b2e56
-
feat: improve semantic clustering and failed reel recovery
53163d6
-
fix(worker): add recovery and bounded retries
274b7fb
-
feat: add self-healing pipeline error handling and yt-dlp auto-updates
210f9f6
-
implement plans 004-008: async cluster recompute, details payload optimization, env template, API access gate, and vitest act warning fix
c488f66 -
fix(backend): guard row_to_record against malformed extracted_json
3721257
-
feat(backend): Supabase queue functions (claim/update/mark_failed)
9b5f12c -
refactor(backend): route all persistence through Supabase db.py (drop SQLite)
Recompute now updates clusters per-row; delete + cache + reels/clusters all via db.12dc286 -
feat(backend): add Supabase db.py data layer (no wiring yet)
8f0c113