Skip to content

Expose provider retry progress and attempt counts to ACP parents #45

Description

@danielkov

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

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions