Files
v10/packages
Christian PillsburyandClaude Opus 4.8 1d51582d8c refactor(spf): inject the track-load gate so resolve-track stays live-agnostic
Replace the inline completeness check (and the `state[reloadEpochKey].get()`
ping read) in the loader's effect with an injected `shouldLoadTrack(track,
params)` gate, mirroring track-switching's rule pattern. The core
(`setupTrackResolution`) now knows nothing about reload epochs or completeness:
its effect just runs `if (!track || !shouldLoadTrack(track, params)) return;`.

- Default gate `loadIfUnresolved` (`!isResolvedTrack`) is the live-agnostic
  one-shot resolve. Each `resolve*` variant injects `shouldLoadLiveTrack`, which
  reloads incomplete windows and subscribes the effect to the scheduler's
  per-type reload-epoch ping (read for subscription only; value unused).
- `ResolveTrackState`, the variants' `stateKeys`, and `TrackResolutionConfig`
  drop the epoch slots + `reloadEpochKey`. The live gate reads its slot
  defensively off an optional `ReloadEpochStateView` (the `bandwidthState?`
  pattern), with the per-type key closured in at the variant — so only the gate
  names the ping, never the core. The scheduler still materializes the slots.
- `setupTrackResolution` takes `params` whole (destructured in the body, not the
  signature) and threads it through to the gate, so a future gate can reach
  `context` without changing the seam.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-06-25 09:59:24 -07:00
..