fix: preserve remote config for interaction commands#616
Merged
Conversation
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.
Summary
PR #593 introduced structured command definitions for the CLI/MCP path. Interaction commands (
press,click,fill,longpress,get) now parse CLI input into structured input, then convert that back into client options withcommonToClientOptions().That conversion returned remote fields even when they were absent from the command input:
Because per-command options are merged over the configured client defaults, those explicit
undefinedvalues erased the remote daemon fields loaded from--config. This showed up in remote-device environments that run through a generated config file. Read-only commands still reached the remote daemon, but interaction commands fell back to local daemon metadata and failed before dispatch:agent-device --config remote-dev-infra/agent-device.json press @e13 # Error: Daemon HTTP endpoint is unavailableThis PR wraps
commonToClientOptions()incompactRecord().compactRecord()removes entries whose value isundefined, so absent per-command fields are omitted instead of overwriting the configured remote defaults. Regression coverage now checkspress,click,fill,longpress, andgetwith remote config defaults.Validation
pressthrough--config. The current broken CLI failed withDaemon HTTP endpoint is unavailable; CLI with these changes reached the daemon and failed later withSESSION_NOT_FOUND