straw/rust/strawcore/src
Kayos 6cc789a8a0 vc=61: fix subs feed sort + date display
Cobb caught the regression on vc=60: subs feed only showed LTT +
WTYP because vc=56's RSS path emitted raw ISO timestamps in
upload_date_relative, but Kotlin's recencyScore() parser only
understands 'N units ago' format. Every item tied at MIN_VALUE,
sort order went to whichever channel resolved first in the
50-concurrent fan-out — LTT + WTYP just happened to win the race.

Fix in feed.rs: parse the RFC3339 published timestamp, compute
delta from now, format as 'N second/minute/hour/day/week/month/year
ago'. Matches recencyScore's regex exactly. RSS still gives ISO;
we convert at the Rust boundary.

Standalone RFC3339 parser (no chrono dep) — Howard Hinnant's
civil-to-days algo, 30 lines, handles negative years correctly.

Display ALSO benefits — UI was showing the raw ISO string
('2026-05-19T13:00:31+00:00') in the channel row. Now reads
'7 days ago' like every other YT client.
2026-05-26 12:24:33 -07:00
..
channel.rs vc=40: loop round 2/5 — round-1 misses + new HIGHs from round-5 audits 2026-05-25 15:12:30 -07:00
error.rs vc=39: loop round 1/5 — 9 HIGH + 7 MED from 3 Opus round-4 audits 2026-05-25 14:56:38 -07:00
feed.rs vc=61: fix subs feed sort + date display 2026-05-26 12:24:33 -07:00
lib.rs vc=56: subs feed via RSS (5-10x faster) + hide-shorts filter 2026-05-26 10:44:06 -07:00
runtime.rs vc=41: loop round 3/5 — round-2 misses caught + duplicate-entry zip guard 2026-05-25 15:25:25 -07:00
search.rs vc=40: loop round 2/5 — round-1 misses + new HIGHs from round-5 audits 2026-05-25 15:12:30 -07:00
stream.rs vc=40: loop round 2/5 — round-1 misses + new HIGHs from round-5 audits 2026-05-25 15:12:30 -07:00
uniffi-bindgen.rs v0.1.0-U (vc=8): Phase U-1 + U-2 — Rust core + rustypipe search 2026-05-24 08:36:50 -07:00