ci / vet-and-test (pull_request) Successful in 44s
Why: trimOldest dropped single messages without tool-pair awareness — after leading users were evicted it could orphan tool results or leave dangling calls (acceptance clause 2's product-side gap). Evidence: go test -count=1 ./... green; TestTrimOldestKeepsToolPairs (pairing holds across repeated trims), TestTrimOldestDropsLeadingOrphanToolRun, TestTrimOldestStopsWhenGroupCrossesCurrentTurn, TestPrefixHashStableForIdenticalInput; native pins carry the spill and cache-contract work (Agent-Native#25). Impact: trimming now evicts whole tool groups; the window may be slightly exceeded when a group would cross the current turn — pairing is never broken. Report.Truncations still records the count. Refs: Agent-Native#25, Agent-Squad#29, N2 plan WP1