Adds PruneAcquireHistoryAsync to InventoryTransaction.CommitAsync; runs inside the open DB transaction after history rows are flushed, keeping at most 300 rows per viewer (oldest discarded). Adds a covering test that verifies the cap and per-viewer isolation. Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>