Port of main's 804707bea6 onto the Pruner. On the checkpoint-take path a count
trim or a size round rewrites the ref and marks the store .gc-pending; the full
repack (tens of seconds on a GB store — it was holding write_file for the whole
gc) runs only in prune_checkpoints, which reclaims when it deleted something or
the marker is set. Over the cap a checkpoint drops ONE round of oldest snapshots
per project; the 20-round loop with gc per round stays in the periodic prune,
where the measurement actually moves.
The two size-cap tests pin the deferred contract now: no gc call inside
ensure_checkpoint, marker present, store under cap after the prune. A failed
rewrite still aborts the take-path pruning before the size round with history
intact. clear_legacy counts the deletion failures it already reported.
Keep downloads bound to their remote representation and publish through
atomic destination-local staging. Serialize shared partial ownership.
Keep explicit CA trust scoped to provider probes. Preserve checkpoint
history and edited files, validate all profile inputs before dependency
publication, and separate data removal from installed runtime ownership.
Exclude machine-specific PM state from portable transfers. Keep plugin
files and nested skill tools intact. Preserve native test isolation.
Focused native Windows receipts cover the individual repairs and their
integration. This commit does not claim a full-suite or release build.