strawcore/src
Cobb a21a6e14ab
Some checks failed
gitleaks / scan (push) Failing after 2s
youtube: S3 narrowed-$fields feed metadata + S7 player.js byte-release
Post-outage-review batch (Fable adversarially audited: SHIP-WITH-FIXES; the one
MED is folded below).

S3 — cheaper stream_metadata feed-enrich. On the anonymous reel path, ask
reel_item_watch for only playabilityStatus+videoDetails via a narrowed nested
$fields selector (~3-6 KB vs the full ~150-500 KB reel body). BEST-EFFORT with a
HARD fallback to the unchanged full fetch_android, so feed enrichment can never
regress: the narrowed response is trusted only when videoDetails.videoId equals
the requested id — a bare is_some() would accept a gutted videoDetails:{} or wave
through a videoId-stripped decoy, so the id binding also subsumes the decoy check
for this path (audit MED). Full extraction path untouched; po_token path skips
the narrowing.

S7 — reclaim the raw ~1.5 MB player.js once the hot-path snippets (signature
timestamp + nsig) are built, keeping player_url as the installed-generation
sentinel. memo_verdict is rekeyed off player_url (was player_code): under the
old lockstep invariant the two were equivalent, and decoupling is REQUIRED so a
byte-released generation is still "installed" for memo purposes. Release is
single-site, build-success-only, under the state lock; a build FAILURE keeps the
bytes so sibling artifacts still extract; the dead-in-android sig path re-fetches
on demand via ensure_player_code.

Also fixes three leftovers from the 2026-07-29 outage flip (23ab7ad) that the
fdroid CI never caught (it builds the APK but runs no cargo test/clippy): a test
still asserting the old visionOS-true default (cargo test was red on main), the
stale struct doc, and a derivable_impls lint (kept the manual impl explicit +
#[allow] so the load-bearing false default stays greppable). 161 tests, clippy clean.
2026-07-29 11:28:33 -07:00
..
downloader speed: move-not-clone reel playerResponse, overlap sig-timestamp fetch, cut player.js copies 2026-07-29 07:50:57 -07:00
stream npe-sync: visitorData + visionOS(101) + xtags audio typing (best-effort, additive) 2026-07-29 07:07:42 -07:00
youtube youtube: S3 narrowed-$fields feed metadata + S7 player.js byte-release 2026-07-29 11:28:33 -07:00
exceptions.rs reliability+safety: nsig shape fixes, bounded self-heal, no url/id leaks, revived JS tests 2026-07-28 22:31:20 -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 npe-sync: visitorData + visionOS(101) + xtags audio typing (best-effort, additive) 2026-07-29 07:07:42 -07:00