Skip to content

CLI: Update hypeman SDK to fea5b3beedd949cd92698ae9f0f1771c5945a0ad and add new commands/flags - #64

Merged
chruffins merged 11 commits into
mainfrom
cli-coverage-update
Sep 1, 2026
Merged

CLI: Update hypeman SDK to fea5b3beedd949cd92698ae9f0f1771c5945a0ad and add new commands/flags#64
chruffins merged 11 commits into
mainfrom
cli-coverage-update

Conversation

@kernel-internal

@kernel-internal kernel-internal Bot commented Aug 14, 2026

Copy link
Copy Markdown
Contributor

This PR updates the Hypeman Go SDK to fea5b3beedd949cd92698ae9f0f1771c5945a0ad and carries the CLI commands/flags added for new SDK methods on this evergreen branch.

SDK Update

  • Updated hypeman-go to fea5b3beedd949cd92698ae9f0f1771c5945a0ad (module version v0.28.0)

Coverage Analysis

This PR was generated by performing a full enumeration of SDK methods and CLI commands.

  • Every method listed in the SDK api.md was enumerated and each now has a corresponding CLI command, or a verified internal call site: client.Health.Check behind hypeman health, client.Instances.Get behind inspect/rm, client.Instances.Stat behind cp, client.Volumes.NewFromArchive behind volume create --from-archive, and client.Builds.Events behind the event stream that hypeman build follows.
  • All fields across the SDK param structs, including nested param types such as HealthCheckParam, AutoStandbyPolicyParam, SnapshotCompressionConfigParam, IngressRuleParam, and TagImageRequestParam, were checked against the CLI flag set. The only fields without a dedicated flag remain InstanceNewParamsCredential.Inject and InstanceNewParamsCredentialInject.Hosts, which are reachable through hypeman run --credentials-json since that flag unmarshals the full credential policy map.
  • openapi.yaml contains no endpoints marked x-cli-skip: true.

Version v0.28.0 is the release tag for the "local image tagging on shared content storage" change (bfd38ed), which this branch already covers with hypeman image tag. No new methods or param fields came with this bump, so this run is a version bump only and the commands and flags below are the accumulated coverage this branch adds over main.

New Commands

  • hypeman image tag <source> <target> for client.Images.Tag(), sending TagImageRequestParam.Target
  • hypeman capabilities for client.Capabilities.Get()
  • hypeman update expiration for client.Instances.Update() with InstanceUpdateParams.Ttl / ExpiresAt

New Flags

  • --graceful-shutdown on hypeman rm for InstanceDeleteParams.GracefulShutdown
  • --ttl and --expires-at on hypeman run for InstanceNewParams.Ttl and InstanceNewParams.ExpiresAt
  • --ttl and --expires-at on hypeman update expiration for InstanceUpdateParams.Ttl and InstanceUpdateParams.ExpiresAt
  • --username, --password, and --registry-token on hypeman image create and hypeman pull for ImageNewParams.Credentials (PushCredentialsParam.Username / Password / RegistryToken)

hypeman image tag takes its source and target as positional arguments in the style of docker tag, so TagImageRequestParam.Target needs no flag. The reference check that hypeman push already applied to its destination is now shared between the two commands, since a tag destination has the same requirement of an explicit tag.

Verification

  • go build ./..., go vet ./..., and go test ./... all pass against v0.28.0.

Triggered by: kernel/hypeman-go@fea5b3b
Reviewer: @chruffins


Note

Low Risk
Mostly new commands and optional flags; instance delete defaults to graceful shutdown, which slightly changes rm behavior versus always hard-deleting.

Overview
Bumps hypeman-go from v0.24.0 to v0.28.0 and wires new SDK surface into the CLI.

Adds hypeman capabilities to call Capabilities.Get and print host/server runtime features, networking, and image platforms (table by default; --format json / --transform runtimes like other commands). README documents the new command.

Image workflow: hypeman image tag <source> <target> tags local content without re-pulling. --username / --password / --registry-token are factored into shared registry credential helpers and attached to image create and pull; push reuses the same flags. Tag/push destinations share validateTaggedImageReference (explicit tag required).

Instances: hypeman run and hypeman update expiration accept mutually exclusive --ttl and --expires-at. hypeman rm adds --graceful-shutdown (default true) via InstanceDeleteParams; compose reconcile passes empty delete params where the API signature changed.

Reviewed by Cursor Bugbot for commit c2de6c7. Bugbot is set up for automated code reviews on this repo. Configure here.

kernel-internal Bot and others added 2 commits August 14, 2026 15:30
The SDK now accepts Docker-style registry credentials on ImageNewParams, so a
private-registry image can be pulled without the server holding credentials for
that registry. Expose them as --username/--password/--registry-token on
`hypeman image create` and `hypeman pull`.

`hypeman push create` already had the same three flags for the outbound push
credentials, so both call sites now share one flag set and one builder.

A full enumeration of the 61 SDK methods in api.md and their param struct fields
against the CLI command tree found no other coverage gaps.

Co-authored-by: Cursor <cursoragent@cursor.com>
Bump github.com/kernel/hypeman-go to 7f21c67d750f6dd66c6b6af04e88c710841f2daf,
which adds the GET /capabilities resource.

Expose it as `hypeman capabilities` so users can discover which runtimes and
features a host actually supports instead of hard-coding hypervisor knowledge.

Co-authored-by: Cursor <cursoragent@cursor.com>
@kernel-internal kernel-internal Bot changed the title CLI: Update hypeman SDK to 913f5b9d8432fe6bd2f0c7af7aba16a71bfe1c5a and add new commands/flags CLI: Update hypeman SDK to 7f21c67d750f6dd66c6b6af04e88c710841f2daf and add new commands/flags Aug 17, 2026
Co-authored-by: Cursor <cursoragent@cursor.com>

# Conflicts:
#	pkg/cmd/pushcmd.go
@kernel-internal kernel-internal Bot changed the title CLI: Update hypeman SDK to 7f21c67d750f6dd66c6b6af04e88c710841f2daf and add new commands/flags CLI: Update hypeman SDK to 3819f7931388d925f77c3f1e921d76ea65ff3e43 and add new commands/flags Aug 19, 2026
Comment thread pkg/cmd/capabilitiescmd.go
Bumps github.com/kernel/hypeman-go to ea5a7f8d0d069b51e10189a8d0196f6155aaa4a8.

A full enumeration of api.md against the pkg/cmd command tree found every SDK
method already reachable from the CLI, but the SDK bump adds instance TTL /
absolute expiration to InstanceNewParams and InstanceUpdateParams, which had no
CLI surface. Expose them as --ttl and --expires-at on `hypeman run` and a new
`hypeman update expiration` subcommand, rejecting the mutually exclusive
combination and malformed values before the API round trip.

Co-authored-by: Cursor <cursoragent@cursor.com>
@kernel-internal kernel-internal Bot changed the title CLI: Update hypeman SDK to 3819f7931388d925f77c3f1e921d76ea65ff3e43 and add new commands/flags CLI: Update hypeman SDK to ea5a7f8d0d069b51e10189a8d0196f6155aaa4a8 and add new commands/flags Aug 21, 2026
Pin the CLI to the tagged v0.26.0 release of github.com/kernel/hypeman-go
instead of the pseudo-version for the unreleased ea5a7f8d commit.

A full enumeration of api.md methods and their param structs against the
CLI command tree found no coverage gaps: all 62 SDK methods and every
param field already map to an existing command or flag.

Co-authored-by: Cursor <cursoragent@cursor.com>
@kernel-internal kernel-internal Bot changed the title CLI: Update hypeman SDK to ea5a7f8d0d069b51e10189a8d0196f6155aaa4a8 and add new commands/flags CLI: Update hypeman SDK to cf8022d3a0b1dd8cabd16e1b7dde0a7b1b193b51 and add new commands/flags Aug 21, 2026
Resolves the go.sum conflict by regenerating it against the current
module graph, and bumps github.com/kernel/hypeman-go to v0.26.1
(392f55111d188fad255676e90c0c55d7c4b35b73).

A full enumeration of api.md methods and their param structs against
pkg/cmd found no coverage gaps, so no new commands or flags are needed.

Co-authored-by: Cursor <cursoragent@cursor.com>
@kernel-internal kernel-internal Bot changed the title CLI: Update hypeman SDK to cf8022d3a0b1dd8cabd16e1b7dde0a7b1b193b51 and add new commands/flags CLI: Update Hypeman Go SDK to 392f55111d188fad255676e90c0c55d7c4b35b73 Aug 27, 2026
Bumps github.com/kernel/hypeman-go to 013dac97bc8391d82f4b583f1a579c3024f23f88,
which adds InstanceDeleteParams so callers can skip the graceful guest shutdown
that DELETE /instances/{id} performs by default.

Exposes the new field as `hypeman rm --graceful-shutdown`. The value is only
sent when explicitly set so the server default (true) still applies otherwise.
Compose teardown passes empty params to preserve its current behavior.

Co-authored-by: Cursor <cursoragent@cursor.com>
@kernel-internal kernel-internal Bot changed the title CLI: Update Hypeman Go SDK to 392f55111d188fad255676e90c0c55d7c4b35b73 CLI: Update hypeman SDK to 013dac97bc8391d82f4b583f1a579c3024f23f88 and add new commands/flags Aug 31, 2026

@cursor cursor Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Cursor Bugbot has reviewed your changes using default effort and found 1 potential issue.

There are 2 total unresolved issues (including 1 from previous review).

Fix All in Cursor

❌ Bugbot Autofix is OFF. To automatically fix reported issues with cloud agents, enable autofix in the Cursor dashboard.

Want higher recall? High effort reviews run extra passes and find more bugs. A team admin can switch effort levels in the Cursor dashboard.

Reviewed by Cursor Bugbot for commit d650026. Configure here.

Comment thread pkg/cmd/rm.go
Full enumeration of api.md methods and CLI commands found no coverage
gaps; the SDK change since 013dac97 is a release-only commit.

Co-authored-by: Cursor <cursoragent@cursor.com>
@kernel-internal kernel-internal Bot changed the title CLI: Update hypeman SDK to 013dac97bc8391d82f4b583f1a579c3024f23f88 and add new commands/flags CLI: Update hypeman SDK to v0.27.0 (3ea9a13) and add new commands/flags Aug 31, 2026
Bumps github.com/kernel/hypeman-go to
v0.27.1-0.20260901144111-bfd38eda3b82.

That SDK release adds client.Images.Tag (POST /images/{name}/tag), which
had no CLI equivalent, so this adds `hypeman image tag <source> <target>`.
The target validation push already performed is now shared, since a tag
destination has the same requirement of an explicit tag.

Co-authored-by: Cursor <cursoragent@cursor.com>
@kernel-internal kernel-internal Bot changed the title CLI: Update hypeman SDK to v0.27.0 (3ea9a13) and add new commands/flags CLI: Update hypeman SDK to bfd38eda3b8207bde8198dcb3b1f208d4e965c86 and add new commands/flags Sep 1, 2026
Full enumeration of api.md methods and CLI commands found no coverage
gaps; v0.28.0 tags the local image tagging change already exposed as
`hypeman image tag`.

Co-authored-by: Cursor <cursoragent@cursor.com>
@kernel-internal kernel-internal Bot changed the title CLI: Update hypeman SDK to bfd38eda3b8207bde8198dcb3b1f208d4e965c86 and add new commands/flags CLI: Update hypeman SDK to fea5b3beedd949cd92698ae9f0f1771c5945a0ad and add new commands/flags Sep 1, 2026

@chruffins chruffins left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

reviewed after fixing the Bugbot findings; the CLI changes and tests are ready to merge.

@chruffins
chruffins merged commit 141103e into main Sep 1, 2026
7 checks passed
@chruffins
chruffins deleted the cli-coverage-update branch September 1, 2026 15:26
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.

1 participant