speakeasy-api / speakeasy-api/kit
Expose provider retry progress and attempt counts to ACP parents
Nobody has claimed this yet.
- Dominant language
- Rust
- Stars
- 40
- Forks
- 4
- Avg merge
- 4h 18m
- Merged PRs (30d)
- 148
Description
Summary
Kit now retries transient openai-subscription failures internally, but the parent sees no bounded progress while those retries are occurring. A long-running subagent(...) call can therefore appear stalled until it succeeds or exhausts its retry budget.
Split from #35 after the overload termination itself was fixed by #32 and released in v0.1.98.
Current behavior
The provider calculates the retry attempt and wait, then sleeps without emitting a runtime progress event. This is especially opaque when subagent(...) runs inside compose(background=true).
Desired behavior
Emit sanitized, bounded retry progress that a parent and UI can observe. Each update should include at least:
- provider route;
- current attempt number;
- reason category without raw provider payloads;
- next delay; and
- cumulative retry/backoff time.
Updates should be rate-limited or coalesced so sustained provider failures do not flood transcripts. The terminal result should remain the single success or failure result.
Suggested coverage
- A fake provider fails N times and succeeds: assert observable attempt updates and one final success.
- An always-failing provider: assert bounded updates followed by exhaustion.
- Exercise foreground subagents and
compose(background=true). - Assert updates contain no provider message body, credentials, prompts, or customer identifiers.
Environment
- Originally observed with Kit
0.1.96onDarwin 25.6.0 arm64. - Confirmed as a remaining gap on Kit
0.1.105onDarwin 25.5.0 arm64. - Surface: ACP; provider route:
openai-subscription.
Related work
- #35
- #32
- #36 can present these updates in its centralized activity view, but this issue owns producing the retry event.
Contributor guide
No contributing guide indexed for this repository
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
Research direction
Start by tracing the openai-subscription retry calculation and its ACP path, then inspect foreground subagents and compose(background=true). Add coverage with fake providers that fail repeatedly and verify sanitized, bounded attempt updates followed by one terminal success or exhaustion result.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- rust
- Domain
- api, observability, testing
- Issue type
- Feature
- Difficulty
- 4/5
- Estimated time
- 3-5 days
- Activity status
- Active
- Clarity
- Mostly clear
- Newbie friendliness
- 52/100