Problem
Four Daytona board operations require node agent options that the built CLI no longer defines, so they fail with commander's unknown option error on a live campaign:
| Operation |
Required option(s) |
Leaf |
node-agent-set-model |
--json |
node agent set-model |
node-agent-set-model-app-server-a |
--endpoint, --protocol, --session-id, --release |
node agent spawn |
node-agent-set-model-app-server-b |
--endpoint, --protocol, --session-id, --release |
node agent spawn |
node-agent-new-reject-headless |
--release (plus --runtime headless) |
node agent new |
Confirmed against the built CLI:
$ node packages/cli/dist/cli/index.js node agent set-model foo bar --json
error: unknown option '--json'
$ node packages/cli/dist/cli/index.js node agent spawn --help | grep -E -- '--protocol|--endpoint|--session-id|--release'
(no output)
node agent set-model takes no options at all and prints a best-effort text line (packages/cli/src/cli/commands/local-agent.ts:934-944), but the harness parses a rich JSON receipt from it (scripts/verify-features/fleet-daytona.mjs nodeAgentControls, and the public AppServer proof). node agent spawn --runtime accepts auto | native | pty only, so the headless AppServer path the two app-server operations prove has no CLI surface either.
Root cause
Pre-existing CLI drift: the options were removed (or never landed) while the board kept requiring them. matrix.optionCoverage can only describe options that exist in the regenerated inventory, so the drift left no signal there — regenerating the inventory just drops the coverage entry.
PR #1842 added matrix.optionDrift to tests/relayflows/cleanroom/fleet-daytona.matrix.json plus validateFleetOptionDrift in scripts/verify-features/fleet-daytona.mjs, which now validates argvMustContain → inventory in both directions and fails at matrix load if a required option is neither defined by the CLI nor declared as known drift. The four entries there point at this issue.
Expected
Either:
- restore the CLI surfaces the board proves (
node agent set-model --json receipt from relay#1658, headless AppServer spawn options), or
- rewrite the four operations/harness assertions against the surfaces that exist today.
Then delete the matching matrix.optionDrift entries — validateFleetOptionDrift fails if an entry names an option the CLI defines again, so the declaration is self-retiring.
Acceptance
- No
matrix.optionDrift entries remain for node agent set-model, node agent spawn, or node agent new.
- A live Daytona campaign runs the four operations without an
unknown option failure.
Problem
Four Daytona board operations require
node agentoptions that the built CLI no longer defines, so they fail with commander'sunknown optionerror on a live campaign:node-agent-set-model--jsonnode agent set-modelnode-agent-set-model-app-server-a--endpoint,--protocol,--session-id,--releasenode agent spawnnode-agent-set-model-app-server-b--endpoint,--protocol,--session-id,--releasenode agent spawnnode-agent-new-reject-headless--release(plus--runtime headless)node agent newConfirmed against the built CLI:
node agent set-modeltakes no options at all and prints a best-effort text line (packages/cli/src/cli/commands/local-agent.ts:934-944), but the harness parses a rich JSON receipt from it (scripts/verify-features/fleet-daytona.mjsnodeAgentControls, and the public AppServer proof).node agent spawn --runtimeacceptsauto | native | ptyonly, so the headless AppServer path the twoapp-serveroperations prove has no CLI surface either.Root cause
Pre-existing CLI drift: the options were removed (or never landed) while the board kept requiring them.
matrix.optionCoveragecan only describe options that exist in the regenerated inventory, so the drift left no signal there — regenerating the inventory just drops the coverage entry.PR #1842 added
matrix.optionDrifttotests/relayflows/cleanroom/fleet-daytona.matrix.jsonplusvalidateFleetOptionDriftinscripts/verify-features/fleet-daytona.mjs, which now validatesargvMustContain → inventoryin both directions and fails at matrix load if a required option is neither defined by the CLI nor declared as known drift. The four entries there point at this issue.Expected
Either:
node agent set-model --jsonreceipt from relay#1658, headless AppServer spawn options), orThen delete the matching
matrix.optionDriftentries —validateFleetOptionDriftfails if an entry names an option the CLI defines again, so the declaration is self-retiring.Acceptance
matrix.optionDriftentries remain fornode agent set-model,node agent spawn, ornode agent new.unknown optionfailure.