Contexto
Grieta agent-native #1 del ADR 0043 (nombrada como roadmap, sin issue hasta ahora). Es la única con daño documentado en uso real (Nota 23: el agente ruteó alrededor del motor al no poder distinguir un rate-limit transitorio de un fallo upstream).
Hoy el envelope de error tiene un code de alto nivel (0–5) pero no distingue por qué falló la red. Un agente no puede decidir "reintentá con backoff" (429) vs "el upstream está caído" (504) sin parsear el mensaje crudo.
Propuesta
Campo aditivo error.subcode en el envelope:
- HTTP 429 →
RATE_LIMITED
- HTTP 504 / timeout →
UPSTREAM_TIMEOUT
DoD
Arrastra ADR: toca el contrato (docs/API.md) → necesita su propio ADR antes de mergear (ya anotado en ADR 0043). Sin milestone: candidata fuerte a un release "agent-native de verdad"; el PO decide si sube.
Origen: ADR 0043 (grieta 3a) · Nota 23. Relacionada #204.
Contexto
Grieta agent-native #1 del ADR 0043 (nombrada como roadmap, sin issue hasta ahora). Es la única con daño documentado en uso real (Nota 23: el agente ruteó alrededor del motor al no poder distinguir un rate-limit transitorio de un fallo upstream).
Hoy el envelope de error tiene un code de alto nivel (0–5) pero no distingue por qué falló la red. Un agente no puede decidir "reintentá con backoff" (429) vs "el upstream está caído" (504) sin parsear el mensaje crudo.
Propuesta
Campo aditivo
error.subcodeen el envelope:RATE_LIMITEDUPSTREAM_TIMEOUTDoD
error.subcodepresente en el envelope cuando el fallo es de red.RATE_LIMITED, 504/timeout→UPSTREAM_TIMEOUT.docs/API.mdactualizado.Origen: ADR 0043 (grieta 3a) · Nota 23. Relacionada #204.