52bb910f4d
Review fixes (no behavior change): - Fold the over-cap elide INTO the existing copy-on-write normalize pass: one loop now replaces the first toElide (oldest) images with the placeholder and size-normalizes the rest, so the Messages slice is copied at most once (the prior dropOldestImages + the normalize loop double-copied when overflow and a transform both applied — the dominant review finding, 5 models). - Remove dropOldestImages (the name implied removal; it substituted) and the one-shot hasImagePart helper — both subsumed by the single pass. - Trim the 9-line inline comment that restated the package doc. - Test: rename TestNormalizeTooManyImages_DropsOldest → TestNormalizeOverCount (file convention) and assert the EXACT survivors ([b, c], in order) + a content-based non-mutation check (first input part is still image a, which a len check wouldn't catch). Build + media + majordomo suites green (-race). Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>