25 Commits

Author SHA1 Message Date
878d1e01ab feat(feed): signature-aware volatile merge with date-banded fetch-more 2026-08-13 17:46:27 -04:00
91d4acca90 fix: fetch more respects episode cache mode 2026-08-12 22:28:13 -04:00
26729fa5e6 feat(feed): make episode cache bound user-configurable (date window or count)
Add episodeCacheMode/count/days preferences (default: date, 60 days).
Apply the bound when reading instead of writing, so a preference change
takes effect without a refetch; the full parse cache stays intact so
fetch-more can page beyond the bound. Thread the window through
load/saveFeedsToFile and update tests and task docs.
2026-08-12 15:41:22 -04:00
deac6081ca feat(feed): bound feed lifecycle to 30-day window with nonblocking refresh
Persisted feeds keep only episodes from the last 30 days (plus completed
downloads); older episodes live in volatile memory and survive refreshes
via union merge, with per-feed in-memory caches capped at 500. Refresh
batches run at FETCH_CONCURRENCY=4 with per-feed incremental apply (no
Promise.all barrier), config.json writes are trailing-edge debounced
(250ms, immediate flushPendingSave for unsubscribes), and cold
fetch-more refetches abort at FETCH_TIMEOUT_MS. A shared activity store
powers a global top-right indicator covering refresh, fetch-more,
subscribe, search, and downloads.

Also includes the in-flight incremental RSS parsing (chunked with
event-loop yields) and refresh spinner work this tree already carried.
2026-08-12 10:13:20 -04:00
f758b53336 drop tasks dir 2026-08-09 22:29:24 -04:00
c8d29ed59d fix navigation flow 2026-08-07 00:28:24 -04:00
6cd90ad6c0 docs(yazi-remake): mark task 07 blocked, file task 04 blocker for player/search panes
The verification gate found that Task 04's core deliverable was never
implemented: Player and Search pages are not routed through <YaziPaneRow>,
so Player renders a single full-width column and Search's three columns
sit at equal thirds (31/32/31) instead of the target 1:3:3 ratio
(~14/43/43).

- Mark task 07 status BLOCKED with a pointer to the blocker evidence
- Add 07-blocker-task-04-player-search.md documenting the missing
  implementation, evidence (player/search harness frames), failing exit
  criteria, and a fix plan for the task 04 do-over
2026-07-31 19:30:40 -04:00
21b088b5a9 redesign tasks 2026-07-31 09:27:57 -04:00
1e3b794b8e file ordering 2026-02-06 14:55:42 -05:00
e1dc242b1d better visualizer 2026-02-06 11:08:41 -05:00
8d6b19582c implementing cava for real time visualization 2026-02-06 10:11:51 -05:00
0e4f47323f mulitmedia pass, downloads 2026-02-06 00:00:15 -05:00
42a1ddf458 meh 2026-02-05 23:43:19 -05:00
168e6d5a61 final feature set 2026-02-05 22:55:24 -05:00
f3344fbed2 start player 2026-02-05 18:42:56 -05:00
03e69d04dc fix 2026-02-05 18:29:05 -05:00
e239b33042 getting terminal colors working 2026-02-05 13:46:47 -05:00
6950deaa88 it is time 2026-02-05 00:55:10 -05:00
c26150221a pause 2026-02-04 22:48:54 -05:00
39a4f88496 proper layering work 2026-02-04 16:23:25 -05:00
624a6ba022 pause to fix nav/theme 2026-02-04 12:38:35 -05:00
b8549777ba missing md 2026-02-04 11:36:47 -05:00
bd4747679d fix keyboard, finish 05 2026-02-04 01:18:59 -05:00
d5ce8452e4 4, partial 5 2026-02-04 01:00:57 -05:00
f08afb2ed1 init 2026-02-03 23:29:36 -05:00