Repository navigation
Closed
Labels
enhancementNew feature or requestNew feature or request
Description
Context
Audit of the CLI on 2026-11-09: user-visible inconsistencies and duplicates. All verified on main at 949d449.
-ois the output format oncheck/status/doctor/fleet, a directory onbackup(backup.go:182, default/raid/backup, DGX-specific) and a file onuser backup(user.go:137).tenant passwdandtenant resetare the same command from one constructor (tenant.go:28,331).tunnel installsays "Install cloudflared binary" but runs the whole cloudflared module Apply (tunnel.go:31), overlappingtunnel setupandapply --module cloudflared.user add --pubkeyduplicates the persistent--ssh-pubkey;user passwd --suffixis described as a legacy scheme that builds predictable passwords (users.go:1048-1060).- Stale help: status hint shows
gpu assign <user> <indices>(real:--gpus 0,1,status.go:323);user rehome [USERNAME]requires the name; root Short omits Rocky and fleet;--profilehelp hardcodes the list; no command hasExample. - Gaps: no
schedule status;fleet targetsregisters--host/--group/--alland ignores them;fleet schedulecannot pass--on-calendar; fleet--dry-runstill demands--yes.
Implementation starts only on the owner's go-ahead.
Decisions
- Renamed or removed flags keep a cobra deprecated alias for at least one minor release; the release notes list them under Action needed.
-o/--outputmeans output format everywhere.
| Decision | Owner | Limits | Revisit when |
|---|---|---|---|
Remove user passwd --suffix after one release of deprecation |
user | Operators who still use it must switch to --password/--file |
— |
tunnel install becomes an alias of setup vs. only fixing its help |
AI proposes alias, user picks | — | — |
-
2026-11-09:
user passwd --suffixis deprecated now and removed in the next minor release;tunnel installbecomes an alias oftunnel setup. Basis: owner decision in the planning session. -
2026-11-09: replace the former DGX VLAN address in CLI help and prompts (root
--vlan-addressflag help, the interactive VLAN prompt in apply) with a TEST-NET example (203.0.113.10/32). Basis: review of PR fix(profiles)!: keep site-specific and no-op values out of the embedded profiles #101.
Design
backup --dir(default derived from the state/home base),user backup --file;-o/--outputkept as deprecated aliases on both.tenant reset→ alias oftenant passwd.user add --pubkeydeprecated in favour of--ssh-pubkey;user passwd --suffixdeprecated.- Help text fixes;
Exampleonapply,check,user add,gpu assign,tenant create,fleet apply;--profilehelp fromconfig.AvailableProfiles(). schedule status;fleet targetshonours selection;fleet schedule enable --on-calendar;fleet --dry-runwithout--yes.
Changes
internal/cli/{backup,user,userlife,tenant,tunnel,status,root,schedule,fleet}.go, tests, README/command reference, release notes.
Acceptance criteria
- AC1:
rootfiles backup -o Xstill works and prints a deprecation notice naming--dir. - AC2:
rootfiles tenant --helplists one password command;resetstill resolves. - AC3: a test walks the cobra tree and fails when any
Usecontains a flag or an[ARG]marked optional whileArgsrequires it. - AC4:
rootfiles schedule statusshows the timer state;fleet targets --host hlimits output. - AC5: release notes list every deprecated flag with its replacement.
Tasks
- T1: output-flag rename with aliases (AC1)
- T2: tenant/user/tunnel duplicates and deprecations (AC2)
- T3: help text, examples, cobra-tree lint test (AC3)
- T4: schedule status, fleet gaps (AC4)
- T5: release notes (AC5)
Out of scope
- Merging
check/status/doctor: they differ by design (drift exit 2 / overview exit 0 / live health) and fleet sudoers depend on all three. Their help text will say so.
Metadata
Metadata
Assignees
Labels
enhancementNew feature or requestNew feature or request
Activity
feat(cli): give the duplicate password and install commands one name
feat(cli): correct the help text and show a working example per command
feat(cli): report the report timer and make the fleet gaps honest
feat(cli): name the backup destinations with --dir and --file
feat(cli): give the duplicate password and install commands one name
feat(cli): correct the help text and show a working example per command
feat(cli): report the report timer and make the fleet gaps honest
feat(cli): name the backup destinations with --dir and --file
feat(cli): give the duplicate password and install commands one name
feat(cli): correct the help text and show a working example per command
feat(cli): report the report timer and make the fleet gaps honest
feat(cli): consistent flags, deduplicated commands and accurate help (#…