dec-0066

Vista generada de dec-0066: Invariante

ImplementadoSin versión del tren todavía· generada desde docs/decisions/dec-0066-invariante-existe-scheduler-multimedia-externo.md
track/docsdec-0124track/docs:DC10

Vista generada desde docs/decisions/dec-0066-invariante-existe-scheduler-multimedia-externo.md. No se edita a mano: bun run docs:gen la regenera y bun run docs:check falla si difiere. El estado aquí es el del model: si discrepa con otra página, manda el model.

CampoValor
EstadoLOCKED (migrado de un rNN por gate-3: el fichero no declara estado)
Referencia legadaL3-no-external-scheduler-compete-byteruntime
Ficherodocs/decisions/dec-0066-invariante-existe-scheduler-multimedia-externo.md

Por qué importa (del frontmatter del ADR):

Núcleo del boundary r54 (PresentationBufferSink + PlaybackSurface, Client Session Controller como único creador de generations) y extensión directa de r04 (SeekableMediaSource como abstracción central).

Nodos del roadmap que lo citan en refs: ninguno.

Páginas de la documentación que lo citan: ninguna todavía.

Texto del ADR

Leído de docs/decisions/dec-0066-invariante-existe-scheduler-multimedia-externo.md, el fichero canónico.

Invariante

Invariante: no existe scheduler multimedia externo compitiendo con ByteRuntime; ningún dominio DASH/HLS externo modela PlaybackPlan/generations/cancellation/transport semantics.

Por qué pasa gate-3

  • Hard-to-reverse: Revertir introduciría una segunda autoridad sobre manifests/fetch/buffering/retries/representaciones/state machine, lo cual rompe el boundary de autoridad que r54 refina (Client Session Controller como único creator de generations)
  • Surprising sin contexto: Un ingeniero no inferiría que Styx prohíbe que DASH/HLS externos (p.ej Shaka Player) modelen sus propias abstracciones de buffer/generation/cancellation - default assumption sería usar esas abstracciones externas
  • Trade-off real: Se rechaza adoptar runtimes que imponen su propia autoridad sobre buffer/generation/cancellation; se asume el coste de mantener ByteRuntime como única fuente de verdad de scheduler/cache

Procedencia

Split de docs/decisions/r53-web-player-ownership-2026-07-15.md (lock L3-no-external-scheduler-compete-byteruntime) durante PASO 7 (2026-07-16). Ver el fichero padre para el contexto completo del pack original.