Parent: #334 Contributes to: #337 Depends on: #350 Roadmap: #134
The first safe relocation path moves every eligible cell, which proves graph correctness but is not yet a useful compaction policy. Select only cells whose movement can release backing storage and publish deterministic effectiveness evidence.
Scope
- Compute a per-size-class dense prefix after the pre-compaction sweep.
- Pin live cells already inside that prefix and evacuate live tail cells into lower free/unissued slots.
- Never grow backing storage merely to relocate an already-live cell.
- Aggressively return newly emptied tail chunks after explicit compaction while retaining the ordinary collection reuse policy.
- Add real-Context fragmentation, mixed pinned/moved, already-dense, exact-accounting, and planning-OOM witnesses.
Acceptance
- Fragmented live heaps use fewer chunks and fewer retained capacity bytes after compaction.
- Moved and pinned cells preserve identity/edges and exact live accounting.
- Dense heaps report no candidates without mutation or backing growth.
- Relocation planning OOM remains failure-atomic.
- Focused Debug, ReleaseSafe, leak, TSan, and relocation inventory gates pass.