strawcore/src
Cobb 4f56893da6
Some checks failed
gitleaks / scan (push) Failing after 5s
reliability: bound the JS engine + self-heal on player.js rotation
Straw audit 2026-07-04. Three availability defects in the extraction core:

- runtime.rs: cap the embedded QuickJS runtime (64 MiB mem / 2 MiB stack / 5s
  wall-clock interrupt) so a hostile or looping player.js can't hang the
  extraction thread or OOM the process. Previously Runtime::new() set no limits.
- player_manager.rs: replace the never-cleared sticky-error flags with
  invalidate-on-failure. Any deobf/extract error now drops the cached player.js
  so the next call re-fetches fresh and retries, instead of one routine player.js
  rotation permanently wedging ALL extraction until app restart (clear_all_caches
  existed but was never called).
- stream_extractor.rs: per-format graceful degradation. nsig-deobf failure falls
  back to the throttled original URL (YouTube still serves it, rate-limited);
  sig-cipher failure skips just that format. One bad format no longer aborts the
  whole video, and manifests/captions still populate. NPE parity.
- Cargo.toml: release panic=unwind (inert as a straw dep; kept consistent for
  standalone builds/tests).

120 tests pass, clippy clean.
2026-07-04 06:28:47 -07:00
..
downloader perf(extract): borrow instead of clone + parallelize channel browse 2026-06-21 05:40:11 -07:00
stream Phase 4 (partial) — stream value types + InnerTube /player helpers 2026-05-24 17:01:03 -07:00
youtube reliability: bound the JS engine + self-heal on player.js rotation 2026-07-04 06:28:47 -07:00
exceptions.rs Phase 4 (complete) — stream_extractor orchestrator 2026-05-24 17:08:04 -07:00
image.rs chore: scrub internal references and tighten README 2026-05-27 13:29:52 -07:00
lib.rs Drop unused Phase-1 scaffolding: page, metainfo, service 2026-05-26 22:01:08 -07:00
localization.rs chore: scrub internal references and tighten README 2026-05-27 13:29:52 -07:00
newpipe.rs Phase 1 — Foundation 2026-05-24 16:32:36 -07:00