keeps: fix handle resolution + livelier rekeep telemetry
store-kidlisp: ?recent=true was running $lookup on the full kidlisp
collection before $sort/$limit, silently emptying handleInfo on the
big scan and returning handle=null for every entry. Reorder so
$sort+$limit run first, push handle-filter $match after $lookup when
needed, and pass allowDiskUse: true. Mirrors the working pattern in
tv.mjs/fetchKidlisp.
keeps.html: push the per-user filter to the server (was hauling ~17K
rows over the wire to client-filter down to a few hundred), drop the
limit accordingly, and wire the existing oven /grab-status poll to
update the timeline detail directly during thumbnail/bundle stages
so users don't wait 2-4s for the MongoDB → keep-status round-trip.
keep-prepare-background: tighten the server-side oven poller from
2s to 1s so clients reading via keep-status (rather than directly
hitting oven) also see fresher stages.
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>