Skip to content

feat(cli): subcódigo de red en el envelope de error — RATE_LIMITED (429) vs UPSTREAM_TIMEOUT (504) #258

Description

@complexluise

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

  • error.subcode presente en el envelope cuando el fallo es de red.
  • Mapeo 429→RATE_LIMITED, 504/timeout→UPSTREAM_TIMEOUT.
  • Tests que sellen el mapeo.
  • docs/API.md actualizado.

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.

Metadata

Metadata

Assignees

No one assigned

    Projects

    No projects

    Milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions