feat: add Maestro replay compatibility#561
Conversation
There was a problem hiding this comment.
💡 Codex Review
Here are some automated review suggestions for this pull request.
Reviewed commit: 0b353c2b12
ℹ️ About Codex in GitHub
Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you
- Open a pull request for review
- Mark a draft as ready
- Comment "@codex review".
If Codex has suggestions, it will comment; otherwise it will react with 👍.
Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".
| ): MaestroReplayFlow { | ||
| const values = parseYamlDocuments(script); | ||
| const { config, commands } = splitMaestroDocuments(values); | ||
| const nextContext = { ...context, env: { ...context.env, ...(config.env ?? {}) } }; |
There was a problem hiding this comment.
Preserve replay -e overrides for Maestro env defaults
When a Maestro flow defines env and a command references ${KEY}, this merge resolves ${KEY} during parsing from config.env, so the resulting SessionAction already contains the literal value. Later runReplayScriptFile builds a replay scope where CLI --env KEY=... is supposed to override file env, but there is no placeholder left, so agent-device replay flow.yaml --maestro -e USER_NAME=Bob still uses the YAML default instead of the CLI override.
Useful? React with 👍 / 👎.
| postcss: 8.5.12 | ||
| uuid: 14.0.0 | ||
|
|
||
| importers: |
There was a problem hiding this comment.
Keep test-app lockfile overrides in sync
The lockfile now omits the top-level overrides block even though examples/test-app/package.json still declares pnpm.overrides for postcss and uuid. In a clean checkout, running pnpm install in examples/test-app will reapply those overrides and rewrite this lockfile back to the pinned versions, so the committed lockfile is not reproducible for the test app.
Useful? React with 👍 / 👎.
0b353c2 to
576f945
Compare
|
576f945 to
ed52d37
Compare
ed52d37 to
819f957
Compare
Summary
Add Maestro YAML compatibility for Agent Device replay and keep Maestro-specific parsing isolated under
src/compat/maestro.Details
replay --maestrothrough neutral replay backend plumbing instead of daemon/client Maestro-specific flags.src/replay.Validation
Verified with
pnpm check:quick, focused replay/client parser tests,git diff --check, andpnpm check:unitoutside the sandbox. The in-sandbox unit run hit expected localhost/Swift permission failures, then passed with sandbox permissions.