feat(lab): add lab user subcommand wiring lab::user::* to CLI #246

Merged
mahmoud merged 2 commits from development_lab_user_cli into development 2026-05-10 14:30:21 +00:00
Owner

New top-level subcommand (Linux only) mirrors lab::user library API
with 7 verbs following the existing lab repo / lab secrets style:

lab user create [--memory --cpu --sudo --ssh-pub --forge-token --reset]
lab user delete
lab user reset
lab user info # bridge + limits in one block
lab user list
lab user limit [--memory SIZE|max] [--cpu QUOTA|max]
lab user host-install

The User variant of TopCmd and the cmd_user dispatcher are gated with
#[cfg(target_os = "linux")] so macOS builds remain clean — lab user
simply doesn't appear in --help on non-Linux hosts (matching how
lab::user is itself a Linux-only module).

Also re-exports print_user_info and print_user_list from the
inspection submodule so cmd_user can render the info/list verbs without
reaching into private paths. Cargo.lock refresh picks up the now-correct
source = "git+..." line for herolib_ai (fix-up of the prior commit
that switched Cargo.toml from path= to git=).

CPU caps stay opt-in. The library's "§40: stubbed — use sparingly"
warning at limits.rs:213 still fires every time --cpu is used; no
policy change.

New top-level subcommand (Linux only) mirrors lab::user library API with 7 verbs following the existing `lab repo` / `lab secrets` style: lab user create <name> [--memory --cpu --sudo --ssh-pub --forge-token --reset] lab user delete <name> lab user reset <name> lab user info <name> # bridge + limits in one block lab user list lab user limit <name> [--memory SIZE|max] [--cpu QUOTA|max] lab user host-install The User variant of TopCmd and the cmd_user dispatcher are gated with `#[cfg(target_os = "linux")]` so macOS builds remain clean — `lab user` simply doesn't appear in `--help` on non-Linux hosts (matching how lab::user is itself a Linux-only module). Also re-exports `print_user_info` and `print_user_list` from the inspection submodule so cmd_user can render the info/list verbs without reaching into private paths. Cargo.lock refresh picks up the now-correct `source = "git+..."` line for herolib_ai (fix-up of the prior commit that switched Cargo.toml from path= to git=). CPU caps stay opt-in. The library's "§40: stubbed — use sparingly" warning at limits.rs:213 still fires every time --cpu is used; no policy change.
feat(lab): add lab user subcommand wiring lab::user::* to CLI
Some checks failed
Build and Publish Skills / build-and-publish (pull_request) Failing after 3s
683311f435
New top-level subcommand (Linux only) mirrors lab::user library API
with 7 verbs following the existing `lab repo` / `lab secrets` style:

  lab user create  <name> [--memory --cpu --sudo --ssh-pub --forge-token --reset]
  lab user delete  <name>
  lab user reset   <name>
  lab user info    <name>      # bridge + limits in one block
  lab user list
  lab user limit   <name> [--memory SIZE|max] [--cpu QUOTA|max]
  lab user host-install

The User variant of TopCmd and the cmd_user dispatcher are gated with
`#[cfg(target_os = "linux")]` so macOS builds remain clean — `lab user`
simply doesn't appear in `--help` on non-Linux hosts (matching how
lab::user is itself a Linux-only module).

Also re-exports `print_user_info` and `print_user_list` from the
inspection submodule so cmd_user can render the info/list verbs without
reaching into private paths. Cargo.lock refresh picks up the now-correct
`source = "git+..."` line for herolib_ai (fix-up of the prior commit
that switched Cargo.toml from path= to git=).

CPU caps stay opt-in. The library's "§40: stubbed — use sparingly"
warning at limits.rs:213 still fires every time --cpu is used; no
policy change.
Merge branch 'development' into development_lab_user_cli
Some checks failed
Build and Publish Skills / build-and-publish (pull_request) Failing after 2s
57d5f609ab
mahmoud merged commit be1873d2ee into development 2026-05-10 14:30:21 +00:00
mahmoud deleted branch development_lab_user_cli 2026-05-10 14:30:26 +00:00
Sign in to join this conversation.
No reviewers
No milestone
No project
No assignees
1 participant
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set.

Reference
lhumina_code/hero_skills!246
No description provided.