Repository navigation
Conversation
FTS5 reads a bare uppercase AND, OR, NOT or NEAR as an operator, and the sanitiser joins the words with explicit ANDs, so "rock OR roll" became "rock AND OR AND (roll* OR roll)" and raised a syntax error. The per-channel try/except swallowed it and the transcript and on-screen channels returned nothing. Lowercasing the four words, whole words only, makes them ordinary words.
The asset src was "file://" plus the raw path, which is not a URL when the path has a space, "#" or "%" in it, so Final Cut reported that media as missing on import.
- /api/export/fcpxml applies the same workspace-and-index allowlist as the other file endpoints, before anything runs ffprobe on a request path. - /api/index answers 503 with the real cause when the image model cannot be loaded, instead of an unhandled 500, and claims the run atomically so two quick requests cannot both start one. - /api/license/activate no longer replaces an active licence with the result of a different key that failed validation. - Responses carry the Content-Security-Policy as a header, with frame-ancestors 'none' (browsers ignore it in a meta tag), plus X-Frame-Options, X-Content-Type-Options and Referrer-Policy. The generated /docs and /redoc pages keep their own defaults. - The UI page is served with Cache-Control: no-cache like its scripts and styles, so an old copy is not reused after an update.
…cks that need absent audio - real_videos/download.sh asked for a single combined stream that YouTube no longer serves. It now asks for H.264 video plus AAC audio up to 720p, and fetches the lecture whole and cuts the first ten minutes locally, because a section download ran at playback speed. - init_demo.sh exits with a message when the trial refused or failed files, instead of reporting a ready demo. - qa_smoke.py skips the checks that need the synthetic podcast episodes when no audio is indexed.
Python: pillow 13.0.0, starlette 1.3.1, python-multipart 0.0.32, urllib3 2.8.0, torch 2.13.0, transformers 5.10.4, sentence-transformers 5.6.1, aiohttp, multidict, anyio, certifi and others that had published advisories, with floors raised for python-multipart and pillow. Rust: rustls, rustls-webpki, tokio and webpki-root-certs. Actions: checkout v7.0.1, setup-uv v10.3.2, rust-cache v2.9.3 and the current rust-toolchain stable branch, still pinned by SHA, now on Node 24.
…ection Test counts, search channels described as independent rather than parallel, the update check noted as unconfigured, the Whisper model size (574 MB), measured indexing times, the FCPXML file URLs, security headers, operator handling in queries, the missing licence endpoint in the shell and symlinked media in the Status list, and a Dependency advisories section in SECURITY.md.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
What changes
Bug fixes found by rebuilding the project from a clean clone and following the README step by step:
AND,OR,NOTorNEARraised an FTS5 syntax error, so the transcript and on-screen channels returned nothing. The four words are now treated as plain words (whole words only).srcis now a percent-encodedfile://URL. A raw path with a space,#or%in it is not a URL, and Final Cut reported that media as missing./api/export/fcpxmlapplies the same workspace-and-index allowlist as the other file endpoints, before ffprobe runs on a request path. The README already claimed this for every file endpoint./api/indexanswers 503 with the real cause when the image model cannot be loaded, instead of an unhandled 500, and claims the run atomically so two quick requests cannot both start one.frame-ancestors 'none'(browsers ignore that directive in a<meta>tag, and log an error), plusX-Frame-Options,X-Content-Type-OptionsandReferrer-Policy. The UI page is served withCache-Control: no-cachelike its scripts and styles.demo/real_videos/download.shasked YouTube for a single combined stream that it no longer serves.init_demo.shexits with a message when the trial refused or failed files instead of reporting a ready demo.qa_smoke.pyskips the three checks that need the synthetic podcast episodes when no audio is indexed.Dependencies and CI:
pillow13.0.0,starlette1.3.1,python-multipart0.0.32,urllib32.8.0,torch2.13.0,transformers5.10.4,sentence-transformers5.6.1 and others with published advisories. Vulnerable packages go from 16 to 3 inapi/uv.lockand from 9 to 3 inservice_pipeline/uv.lock. The remaining three have no fix or are not used in the affected way (seeSECURITY.md).rustls,rustls-webpki,tokio,webpki-root-certs.checkoutv7.0.1,setup-uvv10.3.2,rust-cachev2.9.3 and the currentrust-toolchainstable branch, still pinned by SHA, now on Node 24.Docs: test counts, "searched independently" instead of "in parallel", the unconfigured update check, the Whisper model size (574 MB), measured indexing times, and a new "Dependency advisories" section in
SECURITY.md.Checks
scripts/qa_smoke.pyis 89/89. On a fresh clone with the downloadable demo, 357 pass and 15 skip, andqa_smoke.pyis 71/71 with 4 skips.terncommand line was run end to end on a folder with spaces in its name.Not covered
A packaged
.appor DMG was not built. The FCPXML was not imported into Final Cut Pro. The UI was checked in a Chromium browser, not in the Tauri webview.