mirror of
https://github.com/lfnovo/open-notebook.git
synced 2026-08-10 09:28:54 +00:00
|
Some checks are pending
Development Build / summary (push) Blocked by required conditions
Development Build / build-single (push) Blocked by required conditions
Development Build / extract-version (push) Waiting to run
Development Build / build-regular (push) Blocked by required conditions
Tests / Backend Tests (push) Waiting to run
Tests / Backend Lint (push) Waiting to run
Tests / Backend Typecheck (push) Waiting to run
Tests / Frontend Tests (push) Waiting to run
Tests / Frontend Lint (push) Waiting to run
Tests / Frontend Build (push) Waiting to run
* refactor(podcasts): store audio paths relative to PODCASTS_FOLDER audio_file previously stored the absolute path returned by podcast-creator (sometimes as a file:// URI), which kept path traversal representable in the DB and broke playback when DATA_FOLDER moved. - New single choke point open_notebook/podcasts/audio_paths.py: to_relative_audio_path() validates at write time (the DB can never hold an absolute or root-escaping value) and resolve_contained_audio_path() joins + resolves + contains at read time, replacing the per-router guards from #1018. Absolute/file:// legacy values are treated as invalid (same 403/404 as before). - Generation command stores the relative form; in-band "ERROR: ..." values from podcast-creator now fail the job with the real error. - build_episode_output_dir() builds from PODCASTS_FOLDER so the write root and the validation root cannot drift. - Migration 21 converts legacy rows under the known roots (plain file:/// URIs, /app/data/podcasts/, /data/podcasts/, ./data/podcasts/, data/podcasts/) via a single-strip IF/ELSE chain; rows under other roots stay untouched by design. Closes #1030 * test: use the tolerant migration-count assertion pattern Per review: assert >= 21 with up/down parity and a distinctive-SQL check on index 20, matching the convention from the migration-19/20 tests, so the next migration doesn't trip an unrelated test file. |
||
|---|---|---|
| .. | ||
| routers | ||
| __init__.py | ||
| AGENTS.md | ||
| auth.py | ||
| CLAUDE.md | ||
| command_service.py | ||
| credentials_service.py | ||
| main.py | ||
| middleware.py | ||
| models.py | ||
| podcast_service.py | ||