dec-0090

Vista generada de dec-0090: Handoff single-authority semantics

ImplementadoSin versión del tren todavía· generada desde docs/decisions/dec-0090-handoff-single-authority-semantics.md
track/docsdec-0124track/docs:DC10

Vista generada desde docs/decisions/dec-0090-handoff-single-authority-semantics.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 legadar60-D2
Ficherodocs/decisions/dec-0090-handoff-single-authority-semantics.md

Enmienda a: r17, r27, r40, r45, r52, r54, r59

Por qué importa (del frontmatter del ADR):

Ya materializado: r54 §D2.3 (línea 105 del archivo, confirmado por lectura directa) contiene el texto del amend, ya committeado (git status limpio sobre el archivo). TKT-046 abierto referenciándolo.

Nodos del roadmap que lo citan en refs: ninguno.

Páginas de la documentación que lo citan: Dispositivos, mando y handoff (especificado)

Texto del ADR

Leído de docs/decisions/dec-0090-handoff-single-authority-semantics.md, el fichero canónico.

Handoff single-authority semantics

Handoff single-authority semantics: origin Client Session Controller TRANSFIERE la LogicalGenerationId activa, receiver hereda sin crear. Amend explícito a r54 §D2.3.

Por qué pasa gate-3

  • Hard-to-reverse: Si implementamos que receiver crea nueva generation post-handoff, cambiar a 'transfer' requiere replantear state transfer y rolling upgrades. No es trivial.
  • Surprising sin contexto: La semántica '¿quién crea la generation post-HANDOFF?' NO es obvia sin el ADR. r54 solo dice 'creator único', no especifica handoff edge case.
  • Trade-off real: Alternativa considered y rejected: receiver crea nueva generation (pattern clásico). Coste visible: race conditions en handoff, duplicated state, ambiguity en 'cuándo aplica la nueva?'. Waxin pick cont. 41 preview A: origin TRANSFIERE.

Procedencia

Split de docs/decisions/r60-boundary-authorities-2026-07-15.md (lock r60-D2) durante PASO 7 (2026-07-16). Ver el fichero padre para el contexto completo del pack original.