Document retry composition and preserve error summaries

This commit is contained in:
2026-09-25 22:03:50 +00:00
parent b09ce47d4a
commit 227c05b154
3 changed files with 14 additions and 1 deletions

View File

@@ -163,6 +163,17 @@ operator needs one HTTP attempt per generation. A semantic correction rebuilds
the ordinary producer request and supplies only the latest rejected model
response plus aggregated validator guidance; it is not a conversation replay.
These budgets multiply only by their declared scopes. With two outer producer
retries, two transient retries, and one structural repair, a single producer
can issue up to 18 HTTP attempts: three producer attempts, each with an initial
generation and one repair generation, each allowing three HTTP attempts. This
is an illustration, not a total-deadline or exactly-once guarantee. Every
built-in HTTP attempt has its own generation timeout; caller cancellation
remains the overall authority and interrupts Retry-After waiting. The shared
Notarius scheduler keeps its permit through those waits, so retry budgets can
increase latency and provider cost. Observed usage can remain incomplete when
providers omit accounting fields.
After the applicable budgets are exhausted, the resolved
[`validation_policy`](config.md#pipelines) determines the result. Structural
failure and semantic rejection normally fail the run; an explicit

View File

@@ -310,6 +310,8 @@ the new projection assertions. No new warnings result from recovered retries.
## Stage 7 — Verify Retry Composition And Finish Operator Guidance
**Status:** Completed 2026-09-25.
**Goal:** Validate the cross-boundary behavior that individual stages cannot
prove, then reconcile current documentation. One prompt; no generalized retry
test framework or runtime redesign.

View File

@@ -38,7 +38,7 @@ func (c *scheduledClient) CompleteStructured(ctx context.Context, req contracts.
return callErr
})
if err != nil {
return contracts.StructuredCompletionResponse{}, err
return response, err
}
return response, nil
}