Repository navigation
fix(flow): emit, serve-execute, bench and resume stop assuming a browser - #1285
Merged
Merged
Conversation
- emit-mcp: a bundle recorded off the browser gets a server that takes no URL. Started with --config deploy.yaml (or OPENADAPT_DEPLOYMENT), it drives the app the backend: section names and refuses one that names another surface. - emit-skill: the SKILL.md for such a bundle runs it with --config, not --url. - serve-execute refuses a non-web bundle before any effect, and bench refuses one instead of replaying it against the web demo. - The attended console refuses Citrix actions without backend.rdp_readiness_text, as run and resume already do. - resume refuses a backend other than the bundle's recorded surface unless --allow-surface-override is passed, as run already does. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
…ds an override Review fixes: - The emitted server for a non-web bundle now runs openadapt-flow run bundle --config <file> per call (params in an owner-only file, deleted after), so backend hints, the Citrix readiness refusal, the record check, policy and approvals all apply, and run refusals come back as REFUSED. Parameters named like locals (kind, section, workflow) reach the run unchanged; the web template builds params first too. - resume threads surface_override into the resumed report, as run does. - bundle_surface reads a multi-surface bundle's primary surface. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
The printed hint hard-coded the engine spelling, which test_cli_hints forbids: the launcher (openadapt flow) and the engine (openadapt-flow) print their own spelling. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Fixes the silent web-only paths that the parity matrix (#1282) found. Each one now follows the bundle's recorded surface, or refuses with the reason before any action.
What changed
emit-mcp: a bundle recorded on Windows, macOS, Linux, RDP or Citrix gets a server whose tool takes no URL. Start it withpython server.py --config deploy.yaml(or setOPENADAPT_DEPLOYMENT). It builds the app from that file'sbackend:section and refuses a section that names another surface. Web bundles are unchanged.emit-skill: the SKILL.md for such a bundle saysopenadapt-flow run bundle --config <DEPLOYMENT_FILE>, not--url <APP_URL>.serve-execute: refuses a non-web bundle before any effect: "the reference Execute worker drives a browser only, and this bundle was recorded on 'macos'…".bench: refuses a non-web bundle instead of replaying it against the web demo.console --attend: the attended action service refuses Citrix withoutbackend.rdp_readiness_text, asrunandresumealready do.resume: refuses a backend that isn't the bundle's recorded surface, unless--allow-surface-overrideis passed.runalready worked this way.emit-mcpserver.Tests
tests/test_backend_parity_refusals.pycovers each item. Foremit-mcpit loads the generated server with a fake FastMCP and checks three cases: no deployment file, the wrong surface, and a Citrix section that builds the backend and passesexecution_target_kind.tests/test_cli_new_commands.py: a new resume surface-mismatch test.test_backend_parity_refusals.py,test_emit.pyandtest_cli_new_commands.pygive 76 passed. Attended, execute, console, surface-selection and run-gate suites give 318 passed.The matrix rows for these move from "web only (silent)" to tested in #1282's follow-up, after both merge.
🤖 Generated with Claude Code
Review fixes (second commit)
openadapt-flow run bundle --config <file>for each call. Params go in an owner-only file that is deleted after the run. So backend hints, the Citrix readiness refusal, the record check, policy and approvals all apply, and a run refusal comes back asREFUSED(tested end to end against the real CLI).kind,section,workflow) reach the run unchanged. The web template now builds params first too.resume --allow-surface-overriderecords the override in the resumed report, asrundoes.bundle_surfacereads a multi-surface bundle's primary surface.