check / check (push) Successful in 22s
Two background fills start inside open() with no caller input, through the shared pools (#45) at background priority, so on-demand work always preempts them. Thumbnails: every file newest first until all are on disk, sharing the thumbnail pool with thumbnails.ensure. Originals: the pinned set — the favorites album, then the latest-week window ending at the newest file — through the content pool. The pinned set is the eviction predicate (#47), so a pinned original is never evicted and a file that leaves the set (favorite removed or window moved on a later refresh) becomes an ordinary, evictable original. A cached file costs one map lookup and no fetch; each refresh re-kicks the fills to pick up new files and retry failures. Progress via open() onProgress and status() (thumbnailsCached/Total, originalsCached/Pinned). Model: opus-4-8