Skip to content

feat(agent): authoring pins the app a deployment file names - #1287

Merged
abrichr merged 2 commits into
mainfrom
claude/authoring-pin-surface
Oct 18, 2026
Merged

abrichr merged 2 commits into
mainfrom
claude/authoring-pin-surface

Conversation

@abrichr

@abrichr abrichr commented Oct 18, 2026 •

Copy link
Copy Markdown
Member

Agent authoring (openadapt-agent serve --authoring) couldn't record a Linux app at all, and on macOS it could pin only the frontmost window. It can now pin whatever app a deployment file names.

What changed

  • serve --authoring --config deploy.yaml --authoring-from-config pins the app named by the file's backend: section. This can be a Windows app, one macOS or Linux window, or an RDP or Citrix client window. It uses the same build_backend that openadapt-flow run --config uses, so the recording and its runs drive the same app.
  • pin_local_backend(deployment_backend=...) and open_authoring_session(deployment_backend=...) take the section directly.
  • For RDP and Citrix, the section's window, title and readiness text go into the recording's backend_hints, so replay binds the same client window.
  • Refused:
    • a section plus --url, --windows-agent-url, --remote-window or --citrix ("pin one target");
    • a kind: web section (use --url --headed).
  • packages/agent/README.md: one paragraph.

Tests

packages/agent/tests/test_authoring_native.py (factory faked, real Flow AuthoringSession):

  • every kind pins with its section's fields;
  • the two refusals;
  • an agent-driven recording on Linux and on Citrix, with surface and hints in meta.json;
  • the serve-side rule for when --config pins.

Result: 19 passed. Locally, 5 tests in test_authoring.py fail on main too, because of this machine's mcp version; CI decides.

Part of the backend parity work (#1282).

🤖 Generated with Claude Code

Review fixes (second commit)

  • Opt in with --authoring-from-config. A --config given only for runs no longer pins authoring.
  • Network RDP (rdp_host) is refused for authoring, because each run's own session would disconnect the recording's.
  • A Windows section without agent_token takes OAFLOW_AGENT_TOKEN, as --windows-agent-url does.
  • --remote-window-title now counts as another pin.
  • An unreadable deployment file is reported as an authoring error instead of a traceback.
  • The README notes that a Linux section needs linux_allow_physical_input: true for agent clicks.

abrichr and others added 2 commits October 18, 2026 14:50
openadapt-agent serve --authoring --config deploy.yaml now pins the app the
file's backend: section names, through the same factory openadapt-flow run
uses: a Windows app, one macOS or Linux window, or an RDP or Citrix client
window. Linux had no pin at all, and macOS could pin only the frontmost
window. Combining it with another pin flag, or a web section, is refused.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
…rk RDP

Review fixes:
- --authoring-from-config opts in. A --config given only for runs no
  longer pins authoring.
- Network RDP (rdp_host) is refused for authoring: each run's own session
  would disconnect it.
- A Windows section without agent_token takes OAFLOW_AGENT_TOKEN, as
  --windows-agent-url does; --remote-window-title counts as another pin.
- An unreadable deployment file is reported as an authoring error, not a
  traceback.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
@abrichr
abrichr merged commit b0ad9bc into main Oct 18, 2026
31 checks passed
@abrichr
abrichr deleted the claude/authoring-pin-surface branch October 18, 2026 22:27
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant