ReadonlypromiseSettles with the decoded chunk (or the underlying error).
ReadonlycontrollerOwns the underlying fetch/decode; aborted when waiters hits 0.
Callers still waiting on promise (not yet aborted).
OptionalabandonedEvery waiter left and controller was aborted. The entry STAYS registered until it settles: an abort that lands after the chunk's bytes arrived cannot stop the decode, which then completes and commits, and a caller arriving meanwhile waits for that outcome instead of starting a second fetch + decode of the same chunk (it retries only if the abandoned decode really was cancelled).
One fetch + decode in flight for an L0 key, shared by EVERY proxy wrapping an array over this cache (see
cached-zarr-array.ts).The decode runs under its own controller, never under any single caller's signal: it is aborted only once every waiter has abandoned it, so a superseded caller cannot cancel work a live caller still awaits.