Context
#115 (backport of #110) added retry and execution-outcome telemetry: cliVersion on every event, retry_scheduled / retry_complete events, and an interrupted reason. #122 has since landed a retry NDJSON event {attempt, code, next}, backed by SessionRetry.Reason (no_finish_reason, rate_limited, overloaded, server_error, network, unknown) and documented in EVENTS.md. The two designs clash:
- they have different reason vocabularies (
rate_limited vs rate_limit, server_error vs provider);
- merging both would emit three events per retry.
#115 is closed in favour of building on #122.
Goal
Keep #115's useful parts on top of the existing retry event:
Acceptance Criteria
References
Context
#115 (backport of #110) added retry and execution-outcome telemetry:
cliVersionon every event,retry_scheduled/retry_completeevents, and aninterruptedreason. #122 has since landed aretryNDJSON event{attempt, code, next}, backed bySessionRetry.Reason(no_finish_reason,rate_limited,overloaded,server_error,network,unknown) and documented inEVENTS.md. The two designs clash:rate_limitedvsrate_limit,server_errorvsprovider);#115 is closed in favour of building on #122.
Goal
Keep #115's useful parts on top of the existing
retryevent:cliVersionon every event, or oninvocation_start/session_startif that's enough;retry, e.g. the step or message id and the underlying error class;interruptedterminal reason, if it's still needed after fix: propagate provider finish errors to headless runs #113 and fix(session): retry steps that end without a finish reason (#121) #122.Acceptance Criteria
SessionRetry.Reasonstays the single source, and theEVENTS.md/ SDK parity test from fix(session): retry steps that end without a finish reason (#121) #122 still passes.retryper attempt, plus at most one completion event.EVENTS.mdschema policy, and documented.References