From 4085805c18197474b69b30fd58573468a32f9b03 Mon Sep 17 00:00:00 2001 From: "kernel-internal[bot]" <260533166+kernel-internal[bot]@users.noreply.github.com> Date: Wed, 8 Apr 2026 20:14:35 +0000 Subject: [PATCH 1/3] CLI: Update Hypeman Go SDK to deb21b92fea795fd8b9ab6c54fd9afe15d91c2ea Refresh the CLI to the latest hypeman-go revision after a full SDK/CLI coverage audit confirmed there are no new user-facing commands or flags to add. Made-with: Cursor --- go.mod | 2 +- go.sum | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/go.mod b/go.mod index 4a545dc..4100f68 100644 --- a/go.mod +++ b/go.mod @@ -11,7 +11,7 @@ require ( github.com/google/go-containerregistry v0.20.7 github.com/gorilla/websocket v1.5.3 github.com/itchyny/json2yaml v0.1.4 - github.com/kernel/hypeman-go v0.17.0 + github.com/kernel/hypeman-go v0.17.1-0.20260408200916-deb21b92fea7 github.com/knadh/koanf/parsers/yaml v1.1.0 github.com/knadh/koanf/providers/env v1.1.0 github.com/knadh/koanf/providers/file v1.2.1 diff --git a/go.sum b/go.sum index c910977..a7ed7f7 100644 --- a/go.sum +++ b/go.sum @@ -78,8 +78,8 @@ github.com/grpc-ecosystem/grpc-gateway/v2 v2.27.2 h1:8Tjv8EJ+pM1xP8mK6egEbD1OgnV github.com/grpc-ecosystem/grpc-gateway/v2 v2.27.2/go.mod h1:pkJQ2tZHJ0aFOVEEot6oZmaVEZcRme73eIFmhiVuRWs= github.com/itchyny/json2yaml v0.1.4 h1:/pErVOXGG5iTyXHi/QKR4y3uzhLjGTEmmJIy97YT+k8= github.com/itchyny/json2yaml v0.1.4/go.mod h1:6iudhBZdarpjLFRNj+clWLAkGft+9uCcjAZYXUH9eGI= -github.com/kernel/hypeman-go v0.17.0 h1:OaGS0pFUwXYaFtlXaIQleokgNM7Z+KO0mGhL953yiMQ= -github.com/kernel/hypeman-go v0.17.0/go.mod h1:guRrhyP9QW/ebUS1UcZ0uZLLJeGAAhDNzSi68U4M9hI= +github.com/kernel/hypeman-go v0.17.1-0.20260408200916-deb21b92fea7 h1:71uvHkL9pTCwTyoTOitBvrwIBq2OQvwGFiQZT7+Ji+o= +github.com/kernel/hypeman-go v0.17.1-0.20260408200916-deb21b92fea7/go.mod h1:guRrhyP9QW/ebUS1UcZ0uZLLJeGAAhDNzSi68U4M9hI= github.com/klauspost/compress v1.18.1 h1:bcSGx7UbpBqMChDtsF28Lw6v/G94LPrrbMbdC3JH2co= github.com/klauspost/compress v1.18.1/go.mod h1:ZQFFVG+MdnR0P+l6wpXgIL4NTtwiKIdBnrBd8Nrxr+0= github.com/knadh/koanf/maps v0.1.2 h1:RBfmAW5CnZT+PJ1CVc1QSJKf4Xu9kxfQgYVQSu8hpbo= From 08a550ec537c6e77b5c4de533d648bf00b8cd268 Mon Sep 17 00:00:00 2001 From: "kernel-internal[bot]" <260533166+kernel-internal[bot]@users.noreply.github.com> Date: Fri, 17 Apr 2026 17:49:16 +0000 Subject: [PATCH 2/3] CLI: Update hypeman SDK to e77b77e3fe42c57676648f873cf87701d80728fa and add standby compression delay flags Bump the CLI to the latest hypeman-go release and wire through the new standby compression delay settings so the existing run and standby flows stay aligned with the SDK surface. Made-with: Cursor --- go.mod | 2 +- go.sum | 4 ++-- pkg/cmd/lifecycle.go | 14 ++++++++++++-- pkg/cmd/run.go | 43 ++++++++++++++++++++++++++----------------- 4 files changed, 41 insertions(+), 22 deletions(-) diff --git a/go.mod b/go.mod index 4100f68..b6c551a 100644 --- a/go.mod +++ b/go.mod @@ -11,7 +11,7 @@ require ( github.com/google/go-containerregistry v0.20.7 github.com/gorilla/websocket v1.5.3 github.com/itchyny/json2yaml v0.1.4 - github.com/kernel/hypeman-go v0.17.1-0.20260408200916-deb21b92fea7 + github.com/kernel/hypeman-go v0.18.0 github.com/knadh/koanf/parsers/yaml v1.1.0 github.com/knadh/koanf/providers/env v1.1.0 github.com/knadh/koanf/providers/file v1.2.1 diff --git a/go.sum b/go.sum index a7ed7f7..0460edd 100644 --- a/go.sum +++ b/go.sum @@ -78,8 +78,8 @@ github.com/grpc-ecosystem/grpc-gateway/v2 v2.27.2 h1:8Tjv8EJ+pM1xP8mK6egEbD1OgnV github.com/grpc-ecosystem/grpc-gateway/v2 v2.27.2/go.mod h1:pkJQ2tZHJ0aFOVEEot6oZmaVEZcRme73eIFmhiVuRWs= github.com/itchyny/json2yaml v0.1.4 h1:/pErVOXGG5iTyXHi/QKR4y3uzhLjGTEmmJIy97YT+k8= github.com/itchyny/json2yaml v0.1.4/go.mod h1:6iudhBZdarpjLFRNj+clWLAkGft+9uCcjAZYXUH9eGI= -github.com/kernel/hypeman-go v0.17.1-0.20260408200916-deb21b92fea7 h1:71uvHkL9pTCwTyoTOitBvrwIBq2OQvwGFiQZT7+Ji+o= -github.com/kernel/hypeman-go v0.17.1-0.20260408200916-deb21b92fea7/go.mod h1:guRrhyP9QW/ebUS1UcZ0uZLLJeGAAhDNzSi68U4M9hI= +github.com/kernel/hypeman-go v0.18.0 h1:lznsO93fxpBfOLzr0mdMEMM0SsJHbeQhZ1Z7uyxLmOI= +github.com/kernel/hypeman-go v0.18.0/go.mod h1:guRrhyP9QW/ebUS1UcZ0uZLLJeGAAhDNzSi68U4M9hI= github.com/klauspost/compress v1.18.1 h1:bcSGx7UbpBqMChDtsF28Lw6v/G94LPrrbMbdC3JH2co= github.com/klauspost/compress v1.18.1/go.mod h1:ZQFFVG+MdnR0P+l6wpXgIL4NTtwiKIdBnrBd8Nrxr+0= github.com/knadh/koanf/maps v0.1.2 h1:RBfmAW5CnZT+PJ1CVc1QSJKf4Xu9kxfQgYVQSu8hpbo= diff --git a/pkg/cmd/lifecycle.go b/pkg/cmd/lifecycle.go index 91b229b..5ac8a5f 100644 --- a/pkg/cmd/lifecycle.go +++ b/pkg/cmd/lifecycle.go @@ -46,6 +46,10 @@ var standbyCmd = cli.Command{ Name: "compression-enabled", Usage: "Enable memory compression for this standby operation", }, + &cli.StringFlag{ + Name: "compression-delay", + Usage: `Delay before standby snapshot compression begins (e.g., "30s", "5m")`, + }, &cli.StringFlag{ Name: "compression-algorithm", Usage: `Compression algorithm: "zstd" or "lz4"`, @@ -153,7 +157,12 @@ func handleStandby(ctx context.Context, cmd *cli.Command) error { } params := hypeman.InstanceStandbyParams{} - if cmd.IsSet("compression-enabled") || cmd.IsSet("compression-algorithm") || cmd.IsSet("compression-level") { + if cmd.IsSet("compression-enabled") || cmd.IsSet("compression-delay") || cmd.IsSet("compression-algorithm") || cmd.IsSet("compression-level") { + request := hypeman.StandbyInstanceRequestParam{} + if delay := cmd.String("compression-delay"); delay != "" { + request.CompressionDelay = hypeman.Opt(delay) + } + compression := shared.SnapshotCompressionConfigParam{ Enabled: cmd.Bool("compression-enabled"), } @@ -170,7 +179,8 @@ func handleStandby(ctx context.Context, cmd *cli.Command) error { } compression.Algorithm = parsedAlgorithm } - params.Compression = compression + request.Compression = compression + params.StandbyInstanceRequest = request } fmt.Fprintf(os.Stderr, "Putting %s into standby...\n", args[0]) diff --git a/pkg/cmd/run.go b/pkg/cmd/run.go index f13a09e..b5d9642 100644 --- a/pkg/cmd/run.go +++ b/pkg/cmd/run.go @@ -142,6 +142,10 @@ Examples: Name: "snapshot-compression-enabled", Usage: "Enable snapshot memory compression for this instance policy", }, + &cli.StringFlag{ + Name: "snapshot-compression-delay", + Usage: `Delay before standby snapshot compression begins (e.g., "30s", "5m")`, + }, &cli.StringFlag{ Name: "snapshot-compression-algorithm", Usage: `Snapshot compression algorithm: "zstd" or "lz4"`, @@ -347,26 +351,31 @@ func handleRun(ctx context.Context, cmd *cli.Command) error { } // Snapshot policy compression - if cmd.IsSet("snapshot-compression-enabled") || cmd.IsSet("snapshot-compression-algorithm") || cmd.IsSet("snapshot-compression-level") { - compression := shared.SnapshotCompressionConfigParam{ - Enabled: cmd.Bool("snapshot-compression-enabled"), - } - if !cmd.IsSet("snapshot-compression-enabled") { - compression.Enabled = true + if cmd.IsSet("snapshot-compression-enabled") || cmd.IsSet("snapshot-compression-delay") || cmd.IsSet("snapshot-compression-algorithm") || cmd.IsSet("snapshot-compression-level") { + policy := hypeman.SnapshotPolicyParam{} + if delay := cmd.String("snapshot-compression-delay"); delay != "" { + policy.StandbyCompressionDelay = hypeman.Opt(delay) } - if cmd.IsSet("snapshot-compression-level") { - compression.Level = hypeman.Opt(int64(cmd.Int("snapshot-compression-level"))) - } - if algorithm := cmd.String("snapshot-compression-algorithm"); algorithm != "" { - parsedAlgorithm, err := parseSnapshotCompressionAlgorithm(algorithm) - if err != nil { - return fmt.Errorf("invalid snapshot compression algorithm: %w", err) + if cmd.IsSet("snapshot-compression-enabled") || cmd.IsSet("snapshot-compression-algorithm") || cmd.IsSet("snapshot-compression-level") { + compression := shared.SnapshotCompressionConfigParam{ + Enabled: cmd.Bool("snapshot-compression-enabled"), } - compression.Algorithm = parsedAlgorithm - } - params.SnapshotPolicy = hypeman.SnapshotPolicyParam{ - Compression: compression, + if !cmd.IsSet("snapshot-compression-enabled") { + compression.Enabled = true + } + if cmd.IsSet("snapshot-compression-level") { + compression.Level = hypeman.Opt(int64(cmd.Int("snapshot-compression-level"))) + } + if algorithm := cmd.String("snapshot-compression-algorithm"); algorithm != "" { + parsedAlgorithm, err := parseSnapshotCompressionAlgorithm(algorithm) + if err != nil { + return fmt.Errorf("invalid snapshot compression algorithm: %w", err) + } + compression.Algorithm = parsedAlgorithm + } + policy.Compression = compression } + params.SnapshotPolicy = policy } // Volume mounts From 1b03594298ec5807e055d6780595781fc4aca68f Mon Sep 17 00:00:00 2001 From: "kernel-internal[bot]" <260533166+kernel-internal[bot]@users.noreply.github.com> Date: Wed, 29 Apr 2026 19:23:25 +0000 Subject: [PATCH 3/3] CLI: Update Hypeman Go SDK to 12737aa4d289754ed9205d2fb49b17de4689b305 Bump the CLI to the latest hypeman-go SDK so it stays aligned with the generated API surface. A full SDK and CLI coverage pass found no new command or flag gaps to add in this update. Made-with: Cursor --- go.mod | 2 +- go.sum | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/go.mod b/go.mod index b6c551a..4d005fd 100644 --- a/go.mod +++ b/go.mod @@ -11,7 +11,7 @@ require ( github.com/google/go-containerregistry v0.20.7 github.com/gorilla/websocket v1.5.3 github.com/itchyny/json2yaml v0.1.4 - github.com/kernel/hypeman-go v0.18.0 + github.com/kernel/hypeman-go v0.18.1-0.20260429191511-12737aa4d289 github.com/knadh/koanf/parsers/yaml v1.1.0 github.com/knadh/koanf/providers/env v1.1.0 github.com/knadh/koanf/providers/file v1.2.1 diff --git a/go.sum b/go.sum index 0460edd..13e2504 100644 --- a/go.sum +++ b/go.sum @@ -78,8 +78,8 @@ github.com/grpc-ecosystem/grpc-gateway/v2 v2.27.2 h1:8Tjv8EJ+pM1xP8mK6egEbD1OgnV github.com/grpc-ecosystem/grpc-gateway/v2 v2.27.2/go.mod h1:pkJQ2tZHJ0aFOVEEot6oZmaVEZcRme73eIFmhiVuRWs= github.com/itchyny/json2yaml v0.1.4 h1:/pErVOXGG5iTyXHi/QKR4y3uzhLjGTEmmJIy97YT+k8= github.com/itchyny/json2yaml v0.1.4/go.mod h1:6iudhBZdarpjLFRNj+clWLAkGft+9uCcjAZYXUH9eGI= -github.com/kernel/hypeman-go v0.18.0 h1:lznsO93fxpBfOLzr0mdMEMM0SsJHbeQhZ1Z7uyxLmOI= -github.com/kernel/hypeman-go v0.18.0/go.mod h1:guRrhyP9QW/ebUS1UcZ0uZLLJeGAAhDNzSi68U4M9hI= +github.com/kernel/hypeman-go v0.18.1-0.20260429191511-12737aa4d289 h1:8czAk4+cYrurd4qOC+a69U0x0XMTMl+5VCThaG5jKsc= +github.com/kernel/hypeman-go v0.18.1-0.20260429191511-12737aa4d289/go.mod h1:guRrhyP9QW/ebUS1UcZ0uZLLJeGAAhDNzSi68U4M9hI= github.com/klauspost/compress v1.18.1 h1:bcSGx7UbpBqMChDtsF28Lw6v/G94LPrrbMbdC3JH2co= github.com/klauspost/compress v1.18.1/go.mod h1:ZQFFVG+MdnR0P+l6wpXgIL4NTtwiKIdBnrBd8Nrxr+0= github.com/knadh/koanf/maps v0.1.2 h1:RBfmAW5CnZT+PJ1CVc1QSJKf4Xu9kxfQgYVQSu8hpbo=