Skip to content

refactor: rename --env to --node/-n across the CLI - #275

Draft
outofcoffee wants to merge 3 commits into
mainfrom
refactor/rename-env-flag-to-node
Draft

outofcoffee wants to merge 3 commits into
mainfrom
refactor/rename-env-flag-to-node

Conversation

@outofcoffee

@outofcoffee outofcoffee commented Oct 29, 2026 •

Copy link
Copy Markdown
Collaborator

Why

--env implied environment variables, but the domain word has always been node — a fleet node to pin a launch or a drive to, or a registered cloud environment when no fleet is in force. Align the external flag with the internal vocabulary.

Closes #236.

What changes

  • The launch's two target flags — the fleet-pin --node and the renamed --env — merge into one -n/--node.
  • --fleet names the fleet, --node names the node within it — flagged or discovered, and on every command: the launch pins to it, the read commands narrow to its row, fleet start/stop take it in lieu of the positional name. A name a named file lacks fails naming the file and its nodes; only beside a discovered fleet.yaml does an unknown name fall back to a registered environment, since a file that merely sits in the directory states no intent. (An earlier draft refused the pair on the fleet commands; review caught that the launch path already accepted it, making the refusal the odd half — checkOneTarget is gone.)
  • --env is removed outright, no compatibility alias. splitHarnessArgs catches a forwarded --env/-e on the launch and names the new spelling.
  • -n is the short form everywhere except fleet deploy and cloud deploy, where -n stays --dry-run and the node is named long-form only.
  • Genuinely environmental spellings are untouched: the ENV instruction, .env files, --print-env, --token-env, and the cloud env command (only its target flag becomes --node).
  • --node completion on the fleet commands now offers the fleet in force's node names as well as registered environments, honouring an explicit --fleet value on the line.

Notes

  • Internal cloud package vocabulary (Environment, the clouds/<name>/cloud.json registry, the AWS env wire param) is deliberately not renamed — this is CLI surface only.
  • Specs, design and docs updated under openspec/changes/rename-env-flag-to-node/.
  • Verified end-to-end with stub daemons (15 checks): narrowing via discovered and named fleets, the ghost-name refusal wording, pinned launch carrying the node's endpoint with its engine key travelling only through the harness's environment (never to disk), and fleet start -n riding the node's Spinloop as a deploy config.

#236

Aligns the external target vocabulary with the internal node term. One
flag resolves as a fleet-node pin with a fleet in force and as a
registered environment without one; --env/-e is removed cleanly.

Closes #236
"env" read as environment variables where the domain word has always
been node. The launch's two target flags — the fleet pin --node and
the renamed --env — merge into one --node/-n: a fleet node with a
fleet in force, a registered cloud environment otherwise, refused
outright beside an explicit --fleet as two answers to one target.
Beside a fleet.yaml discovered in the working directory, --node now
narrows reads and drives to that node rather than being refused.
fleet deploy and cloud deploy keep --node long-form only, their -n
being --dry-run. Genuinely environmental spellings are untouched:
the ENV instruction, .env files, --print-env, --token-env and the
cloud env command. --env itself is removed without an alias.

Closes #236
@outofcoffee outofcoffee changed the title refactor!: rename --env to --node/-n across the CLI refactor: rename --env to --node/-n across the CLI Oct 29, 2026
Review of the draft caught the refusal of --node beside --fleet as
half-incoherent: the launch path had long accepted exactly that pair
(--fleet the file, --node the pin into it), so the same flags read
one way on code and failed another on status. The refusal was a
memento of --env, which named a separate registered environment and
so genuinely competed with a fleet; --node names a node of whatever
fleet is in force, flagged or discovered, and that is one answer.

A name a *named* file lacks now fails naming the file and its nodes;
the registry fallback remains only beside a discovered fleet.yaml, a
file that states no intent. --node completion feeds from the fleet
in force, an explicit --fleet value beating the directory's file.

This branch has not been deployed

No deployments
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.

refactor: rename --env to --node/-n

1 participant