Commit graph

  • fb99a5e8c7 feat(vtt): add note field to VttUpdateRequest and wire through create_version calls main Vadym Samoilenko 2026-05-14 11:44:07 +01:00
  • 07d2112e53 fix(cost): use new_event_loop pattern for Whisper cost tracking (matches ingest_and_ai.py) Vadym Samoilenko 2026-05-14 11:43:20 +01:00
  • 922cb9318e feat(cost): add Whisper transcription cost tracking Vadym Samoilenko 2026-05-14 11:42:17 +01:00
  • cff62c51ff fix(audit): add details to submit_brief and approve_brief audit calls Vadym Samoilenko 2026-05-14 11:41:22 +01:00
  • b24f7a9a0f feat(audit): add audit logging to brief and share routes Vadym Samoilenko 2026-05-14 11:40:19 +01:00
  • 11bf08a29d feat(audit): add audit logging to org and invitation routes Vadym Samoilenko 2026-05-14 11:37:43 +01:00
  • 42a0c8acb1 fix(audit): deactivate_client details + non-raising audit insert in service Vadym Samoilenko 2026-05-14 11:35:40 +01:00
  • bd1dd69467 feat(audit): add audit logging to client management routes Vadym Samoilenko 2026-05-14 11:33:58 +01:00
  • 82d438df7c fix(audit): remove per-cue audit noise from mark_cue_reviewed endpoint Vadym Samoilenko 2026-05-14 11:31:37 +01:00
  • 7bba8256ce feat(audit): add audit logging to language QC routes Vadym Samoilenko 2026-05-14 11:30:28 +01:00
  • 000e99c2d0 feat(audit): add missing AuditAction enum values for clients, orgs, invitations, QC, briefs, share Vadym Samoilenko 2026-05-14 11:28:30 +01:00
  • 700347857a chore: ignore .worktrees directory Vadym Samoilenko 2026-05-14 11:27:13 +01:00
  • 3b31012901 fix(vtt): strip cue settings from end timestamp in parse_ad_cues Vadym Samoilenko 2026-05-13 19:18:02 +01:00
  • f22d568fc5 fix(security): fix false-positive injection blocks on French/multilingual VTT content Vadym Samoilenko 2026-05-13 19:11:01 +01:00
  • 4645e67611 fix(glossary-list): show real embedding progress in glossary list view Vadym Samoilenko 2026-05-13 19:00:56 +01:00
  • e70a67718e fix(glossary): hard-delete glossary with cascade on archive Vadym Samoilenko 2026-05-13 18:44:51 +01:00
  • 6bf88474ee feat(embed): switch embeddings to Vertex AI text-multilingual-embedding-002 Vadym Samoilenko 2026-05-13 18:41:32 +01:00
  • 7a7b6c1c12 fix(embed): respect Gemini 429 retryDelay and reduce concurrency Vadym Samoilenko 2026-05-13 18:07:22 +01:00
  • ca312d48fa chore(lint): fix all ruff errors — 0 warnings remaining Vadym Samoilenko 2026-05-13 17:13:08 +01:00
  • 16000a8bd9 fix(glossary,vtt): 4 bugs — locale fallback, ingestion source, cue settings, overlap on save Vadym Samoilenko 2026-05-13 16:58:13 +01:00
  • 69eff9ca9d chore(deps): regenerate poetry.lock after google-cloud-texttospeech upgrade Vadym Samoilenko 2026-05-08 18:38:36 +01:00
  • 76bee82119 fix(pipeline): fix 5 QA tickets — caption alignment, glossary, source_has_ad render, filler words, NL error surfacing Vadym Samoilenko 2026-05-08 18:36:59 +01:00
  • f7708f0214 chore(deps): upgrade google-cloud-texttospeech to ^2.36.0 Vadym Samoilenko 2026-05-08 17:26:30 +01:00
  • c380a96c72 refactor(tts): switch Gemini TTS from AI Studio API to Cloud TTS API Vadym Samoilenko 2026-05-08 17:16:32 +01:00
  • 95dbed03bd fix(tts): respect API retryDelay on 429 instead of short exponential backoff Vadym Samoilenko 2026-05-08 17:04:45 +01:00
  • 39a9d62b06 fix(qc): dispatch TTS+render for source-only jobs when accessible_video_mp4 is requested Vadym Samoilenko 2026-05-08 16:58:39 +01:00
  • 36b3b3e47c fix(ui): correct sdh field name to sdh_vtt in job detail outputs Vadym Samoilenko 2026-05-08 14:16:53 +01:00
  • 8598852da1 fix(ui): show all 5 requested output types in job detail Vadym Samoilenko 2026-05-08 14:14:50 +01:00
  • 77a4eb10e0 fix(auth): await get_redis() coroutine in membership cache Vadym Samoilenko 2026-05-08 13:57:57 +01:00
  • 5a93bdc1b6 fix(tts): run TTS pipeline when accessible_video_mp4=True even if audio_description_mp3=False Vadym Samoilenko 2026-05-08 13:53:49 +01:00
  • c8a610b3f7 fix(vtt): auto-fix overlapping cues from AI-generated output Vadym Samoilenko 2026-05-08 13:23:08 +01:00
  • 3371466e10 fix(ui): hide error banner for non-failed job statuses Vadym Samoilenko 2026-05-08 13:12:31 +01:00
  • cff1b35aa0 fix(gemini): fallback on empty response (response.text is None) Vadym Samoilenko 2026-05-08 12:54:10 +01:00
  • 796cd85a1d fix(gemini): include 503 UNAVAILABLE in fallback retry condition Vadym Samoilenko 2026-05-08 12:38:26 +01:00
  • e2391e2603 fix(gemini): correct fallback model ID + graceful downloads for failed jobs Vadym Samoilenko 2026-05-08 12:32:39 +01:00
  • 56a3a62368 feat(gemini): add model fallback chain on 429 quota errors Vadym Samoilenko 2026-05-08 12:02:59 +01:00
  • f38325b461 fix(tts): scope retranslation TTS to target language only Vadym Samoilenko 2026-05-07 16:57:20 +01:00
  • b873f0af6d fix(translation): use per-language dot-notation to prevent race condition Vadym Samoilenko 2026-05-07 16:45:28 +01:00
  • 865473937f feat(qc): bulk retranslate broken languages button Vadym Samoilenko 2026-05-07 16:41:55 +01:00
  • 290d5e32e6 fix: 7 caption/AD quality bugs + retranslation error handling Vadym Samoilenko 2026-05-07 15:38:20 +01:00
  • 00dd1643f5 docs(help): add screenshot to PM EN-first pipeline section Vadym Samoilenko 2026-05-06 12:47:50 +01:00
  • c3835843db docs(help): document EN-first translation pipeline for all roles Vadym Samoilenko 2026-05-06 12:42:58 +01:00
  • 4ba489eaaa docs(help): document EN-first translation pipeline for all roles docs/en-first-help-content Vadym Samoilenko 2026-05-06 12:42:03 +01:00
  • f99be62256 fix(briefs): replace video_native with traditional in NewBrief default Vadym Samoilenko 2026-05-06 12:21:29 +01:00
  • c74fde4f40 fix(translation): approve_source triggers translation for any role Vadym Samoilenko 2026-05-06 12:13:39 +01:00
  • fddf803b74 feat(translation): enforce EN-first pipeline with cue-preserving translations Vadym Samoilenko 2026-05-06 12:11:35 +01:00
  • e2af5c0f2f fix(share): correct decisionState type narrowing in ShareView Vadym Samoilenko 2026-05-06 09:57:35 +01:00
  • d70b5acaf9 feat(share): client review form on share link; hide client role from UI Vadym Samoilenko 2026-05-06 09:51:58 +01:00
  • f91cb16005 fix(middleware): add word boundaries to injection patterns; default role to admin Vadym Samoilenko 2026-05-06 09:45:28 +01:00
  • 3a2bbc9ca0 fix(membership): correct \$unwind option preserveNullAndEmpty → preserveNullAndEmptyArrays Vadym Samoilenko 2026-05-01 18:58:07 +01:00
  • 5f084f359f feat(help): add FAQ tab + full-content search Vadym Samoilenko 2026-05-01 18:46:06 +01:00
  • 6588feedc7 fix(membership): use 'or ""' to guard against null email/full_name Vadym Samoilenko 2026-05-01 18:41:31 +01:00
  • e52abca74b fix(qc): move accessibleCaptionCues memos after state declarations Vadym Samoilenko 2026-05-01 18:31:58 +01:00
  • 90867e9824 fix(qc): show captions on accessible video + allow admin/PM as linguist/reviewer Vadym Samoilenko 2026-05-01 18:07:55 +01:00
  • 68ac65ac05 fix(briefs): fix Project/Assign-To dropdowns and expand Requested Outputs Vadym Samoilenko 2026-05-01 17:54:21 +01:00
  • a14444d61c Revert "feat(briefs): remove Briefs feature from frontend" Vadym Samoilenko 2026-05-01 17:49:12 +01:00
  • 98ece9faac feat(briefs): remove Briefs feature from frontend Vadym Samoilenko 2026-05-01 17:48:02 +01:00
  • 27286e23db fix(sidebar): show org settings link for platform admins without memberships Vadym Samoilenko 2026-05-01 17:45:49 +01:00
  • e60e7c96e7 fix(settings): use organization_id (not slug) in /org/:orgSlug/settings URL Vadym Samoilenko 2026-05-01 17:34:20 +01:00
  • a3cfe2ff8c fix(renderer): skip ffprobe Phase 3.5 — use pre-computed freeze duration Vadym Samoilenko 2026-05-01 17:29:33 +01:00
  • 9733700874 fix(captions): remove duplicate native track display, fix position to bottom Vadym Samoilenko 2026-05-01 16:33:33 +01:00
  • df7fec701d fix(ui): connection dot in navbar, profile page, render error visibility + audit log Vadym Samoilenko 2026-05-01 16:19:12 +01:00
  • 2f4925353a feat(pause-insert): adaptive buffer, forward-snap, timeline drag + share link fix Vadym Samoilenko 2026-05-01 16:09:09 +01:00
  • 31d631f70d fix(qc-queue): correct sidebar badge and Refresh button loading state Vadym Samoilenko 2026-05-01 14:41:37 +01:00
  • 8dee0b6ff5 fix(membership): guard against missing/invalid role_in_org in membership docs Vadym Samoilenko 2026-05-01 14:35:09 +01:00
  • 997c1f622b fix(rbac): allow reviewer role to assign linguists and reviewers Vadym Samoilenko 2026-05-01 14:29:15 +01:00
  • d4cb31e5d9 feat(help): add real screenshots for all 7 role guides (77 images) Vadym Samoilenko 2026-05-01 14:02:54 +01:00
  • 2c816a5e69 docs(help): add Timeline Preview & Rendering section to linguist/reviewer/production/admin guides Vadym Samoilenko 2026-05-01 13:20:48 +01:00
  • ce048a2196 fix(help): resolve screenshot paths under Vite subpath deploy Vadym Samoilenko 2026-05-01 13:14:47 +01:00
  • 67219797b6 feat(help): add captured screenshots for all 7 role guides (25 images) Vadym Samoilenko 2026-05-01 13:11:40 +01:00
  • 6559ccc1f9 feat(help): in-app role-based help guides + screenshot capture pipeline Vadym Samoilenko 2026-05-01 13:08:13 +01:00
  • d2adfbc3b4 fix(dashboard): briefsData is array, not {briefs:[]} — remove stale .briefs accessor Vadym Samoilenko 2026-05-01 12:13:58 +01:00
  • c3a42cb5fe Merge fix/multi-tenancy-and-english-first into main Vadym Samoilenko 2026-05-01 12:07:37 +01:00
  • 9e6ce657bf fix(schema): empty string → None for captions/AD VTT fields (Bug 2B) fix/multi-tenancy-and-english-first Vadym Samoilenko 2026-05-01 12:06:09 +01:00
  • f2968a2989 fix(vtt): regenerate descriptive_transcript.txt after PATCH /vtt saves Vadym Samoilenko 2026-05-01 12:03:35 +01:00
  • 32b12ff0a6 feat(ux): P2 role UX — reviewer queue, dashboard widgets, org filter, WS toast Vadym Samoilenko 2026-05-01 11:58:29 +01:00
  • b427ee9f49 fix(authz): MT-3/6/7/8 org isolation + P1 English-first QC enforcement Vadym Samoilenko 2026-05-01 11:43:10 +01:00
  • 98764f5065 fix(tts-worker): make concurrency configurable via TTS_WORKER_CONCURRENCY env var Vadym Samoilenko 2026-05-01 10:22:06 +01:00
  • 5d8d992e5a feat(briefs+notify+downloads): fix projects dropdown, add assignee, expand languages, fix PM email, add Download All Vadym Samoilenko 2026-04-30 21:47:28 +01:00
  • 3bed598025 fix(glossary+jobs): add debug logging for glossary failures and fix AllJobs filter stale state Vadym Samoilenko 2026-04-30 21:25:41 +01:00
  • 713ae46d4a fix(tts): revert pro TTS to gemini-2.5-pro-preview-tts (3.1 pro TTS doesn't exist yet) Vadym Samoilenko 2026-04-30 21:01:22 +01:00
  • 3fb8dce3ee feat(ai): upgrade Gemini models to 3.1-pro-preview and 3.1-pro-tts-preview Vadym Samoilenko 2026-04-30 21:00:32 +01:00
  • 12fe4ebcbb feat(tts): upgrade Gemini TTS model to gemini-3.1-flash-tts-preview Vadym Samoilenko 2026-04-30 20:57:37 +01:00
  • 43ef3a6cd8 fix(migrations): correct listCollections cursor parsing, add processing_failed+cancelled to status enum Vadym Samoilenko 2026-04-30 20:47:21 +01:00
  • 8a1440201e fix(migrations): connect to mongo before running migrations in run.py Vadym Samoilenko 2026-04-30 20:43:48 +01:00
  • 99554173e6 feat(migrations): add run.py entry point for python -m app.migrations.run Vadym Samoilenko 2026-04-30 20:41:52 +01:00
  • 2e8cf8269e fix(tts): fetch job_doc before gcs_path call in _generate_language_tts; add cancelled migration Vadym Samoilenko 2026-04-30 20:36:03 +01:00
  • f681bd4f53 feat: add Stop Process button to cancel in-progress jobs Vadym Samoilenko 2026-04-30 19:50:39 +01:00
  • 08a8a0d636 fix(tts): convert lameenc bytearray to bytes before GCS upload Vadym Samoilenko 2026-04-30 19:35:28 +01:00
  • 77a9d3b255 fix(docker): add ffmpeg to base image — fixes pydub AudioSegment in worker Vadym Samoilenko 2026-04-30 19:12:57 +01:00
  • 7c15acc18a chore: update poetry.lock after adding lameenc dependency Vadym Samoilenko 2026-04-30 18:34:04 +01:00
  • a53cf960ae fix(tts): replace pydub MP3 export with lameenc (pure Python, no system ffmpeg) Vadym Samoilenko 2026-04-30 18:24:15 +01:00
  • b0a90777ed fix(ts): cast job.error to string before rendering in failure banner Vadym Samoilenko 2026-04-30 18:03:04 +01:00
  • efa2395527 feat: inline title rename in JobDetail and QCDetail Vadym Samoilenko 2026-04-30 17:52:43 +01:00
  • 0badae9e5d feat(jobs-list): add per-row Edit (rename) and Delete buttons Vadym Samoilenko 2026-04-30 17:49:51 +01:00
  • 5db01248b6 fix: pass USE_CELERY_FALLBACK to containers and show real error in failure UI Vadym Samoilenko 2026-04-30 17:48:02 +01:00
  • 37873c433d fix(deploy): set USE_CELERY_FALLBACK=true on optical-dev — no Cloud Run Jobs here Vadym Samoilenko 2026-04-30 17:14:45 +01:00
  • 105895dd14 feat: apply EN source VTT changes to all target languages Vadym Samoilenko 2026-04-30 17:13:06 +01:00
  • ce4b3b0d95 fix(frontend): prevent premature downloads fetch before job has outputs Vadym Samoilenko 2026-04-30 16:54:01 +01:00
  • 46477b7b32 fix(deploy): target sites-enabled instead of sites-available for Apache Include injection Vadym Samoilenko 2026-04-30 16:32:23 +01:00