Skip to content

feat(runner): perform a sequence of actions in one request with runner actions - #1624

Draft
Goran Gajic (gorangajic) wants to merge 2 commits into
mainfrom
goran/wiz-12132-runner-actions
Draft

Goran Gajic (gorangajic) wants to merge 2 commits into
mainfrom
goran/wiz-12132-runner-actions

Conversation

@gorangajic

Copy link
Copy Markdown
Contributor

Relates to WIZ-12132. Depends on @qawolf/api-contracts 0.61.0, which ships with qawolf/platform#33491.

Overview of Changes

An agent that already knows its next few steps had to send each one as its own qawolf runner act call, a full round trip per step. qawolf runner actions takes a JSON array of up to ten of the same actions and performs them in one request, so the agent looks at the screen once, at the end. The answer reports each action as performed, not performed, or unknown when the runner stopped answering and the action may have landed, and says where the sequence stopped and why. --screenshot saves a frame after the last action, --screenshot-mode each saves one per action, and --continue-on-failure carries on past an action that did not take effect.

Testing

Ran end to end against the platform PR's preview with a real playwright runner: a four-action batch with a final frame, a two-action batch with a frame per step, a batch spanning a navigation, and a batch whose first step was a navigation the runner could not confirm. Frames and per-step results matched the screen.

bun run typecheck
bun run lint
bun run format:check
bun run knip
bun run test
bun run build

Three run.create tests fail on main as well (a workspaceId drift unrelated to this change).

To Do

  • Bump @qawolf/api-contracts to 0.61.0 once it is published; typecheck fails against the current pin until then.

Checklist

  • Changes follow the code style of this project
  • Self-review completed
  • Tests added/updated (or not applicable)
  • No breaking changes (or described below)

🤖 Generated with Claude Code

…r actions

An agent that already knows its next few steps paid one round trip per
step through runner act. runner actions takes a JSON array of the same
actions and sends it as one runner.performActions call; the frames it
asks for are written as files, never echoed as base64. Each result
carries the effect the contract fixes per reason, and a stop names the
action, why, and how many were left unperformed. The contract is listed
as hand-written so the generator does not try to give a list of actions a
flag shape.
@coderabbitai

coderabbitai Bot commented Sep 17, 2026

Copy link
Copy Markdown

Important

Draft PR not reviewed

Draft PRs are not automatically reviewed by default.

  • Trigger a manual review

To automatically review draft PRs, update your CodeRabbit configuration:

reviews:
  auto_review:
    drafts: true

Comment @coderabbitai help to get the list of available commands.

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

Labels

None yet

Development

Successfully merging this pull request may close these issues.

1 participant