c077fceba6
The dedup cache (.bincio_cache.json) persists source hashes across runs. If the activities/ directory is wiped (--fresh in another session, or macOS clearing /tmp after a restart) while the cache file survives at the user dir level, re-running extract skips all files as "already extracted" and leaves activities/ empty. Now only hashes whose corresponding .json file is present on disk are treated as known, so missing files are always re-extracted.