speakeasy-api / speakeasy-api/kit

Expose provider retry progress and attempt counts to ACP parents

Open
#45 0 comments 0 reactions 0 assignees View on GitHub

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.96 on Darwin 25.6.0 arm64.
  • Confirmed as a remaining gap on Kit 0.1.105 on Darwin 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

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. 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

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.