Skip to content

Expose typed runtime execution limits for bounded agent turns #1732

Description

@jhgaylor

Review Loop cannot bound a running reviewer through the public Fountain API. Usage arrives after completion, so several parallel reviewers can exceed a run allowance before the consumer can stop further work. #1730 demonstrated this gap.

The pinned claude-agent-acp 0.66.0 accepts SDK maxTurns and maxBudgetUsd via session/new._meta.claudeCode.options; Fountain's public agent/conversation schema and the ACP peer do not expose typed execution limits. Inspected adapter revision: 6b405138fc82be947964612fac04e56654827b66. Arbitrary metadata or environment injection is not an appropriate public interface.

Acceptance:

  • Add allowlisted, validated execution-limit fields with explicit runtime capability checks; unsupported controls must fail clearly.
  • Enforce host/account ceilings and prevent a conversation override from expanding authorized limits.
  • Preserve limits across session load, resume and worker recreation; document whether each limit is per turn or per session.
  • Return an explicit incomplete/limit outcome, retaining partial usage and its uncertainty. A stopped review must not appear successful.
  • Prove a deliberately bounded live run stops, cancellation/restart preserves the limit, and the worker is physically deleted.
  • Document that SDK dollar limits are estimates and requests already started can consume additional usage.

This supplies per-task enforcement. Review Loop still owns allocation and durable reservations across parallel reviewers: managoat/review-loop#30.

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    P2Important planned work; not an emergency.area:apiHTTP API, OpenAPI and CLI contracts.area:conversationsConversation lifecycle, turns, streaming, recovery and orchestration.type:featureAdds or improves product behavior.type:trackerCoordinates child deliverables; not a separate implementation task.

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions