From 863a70f20e0b69c4e67702e4f7d306cc75eba70a Mon Sep 17 00:00:00 2001 From: Andrea Pinto Date: Mon, 26 Oct 2026 19:29:38 -0700 Subject: [PATCH] Preserve legacy session start payloads --- internal/cmd/sessionstart_flags.gen.go | 4 ++-- internal/cmd/sessionstart_flags_test.go | 2 +- scripts/gen-flags/codegen.go | 7 ++++++- 3 files changed, 9 insertions(+), 4 deletions(-) diff --git a/internal/cmd/sessionstart_flags.gen.go b/internal/cmd/sessionstart_flags.gen.go index 4828077..09b6a88 100644 --- a/internal/cmd/sessionstart_flags.gen.go +++ b/internal/cmd/sessionstart_flags.gen.go @@ -151,7 +151,7 @@ func BuildSessionStartRequest(cmd *cobra.Command) (*api.ApiSessionStartRequest, body.IdleTimeoutMinutes = &SessionStartIdleTimeoutMinutes } - if cmd.Flags().Changed("log-session") { + if cmd.Flags().Changed("log-session") && !SessionStartLogSession { body.LogSession = &SessionStartLogSession } @@ -175,7 +175,7 @@ func BuildSessionStartRequest(cmd *cobra.Command) (*api.ApiSessionStartRequest, body.Profile = &profile } - if cmd.Flags().Changed("record-session") { + if cmd.Flags().Changed("record-session") && !SessionStartRecordSession { body.RecordSession = &SessionStartRecordSession } diff --git a/internal/cmd/sessionstart_flags_test.go b/internal/cmd/sessionstart_flags_test.go index 17691c7..20645d5 100644 --- a/internal/cmd/sessionstart_flags_test.go +++ b/internal/cmd/sessionstart_flags_test.go @@ -122,7 +122,7 @@ func TestCaptureFlagsPreserveFalseAndOmission(t *testing.T) { field = "log_session" } got, present := payload[field] - if present != (value != "") { + if present != (value == "false") { t.Fatalf("%s presence=%v", field, present) } if present && got != (value == "true") { diff --git a/scripts/gen-flags/codegen.go b/scripts/gen-flags/codegen.go index 28e933b..c96b9af 100644 --- a/scripts/gen-flags/codegen.go +++ b/scripts/gen-flags/codegen.go @@ -447,7 +447,12 @@ func generateSimpleFieldMapping(buf *bytes.Buffer, fc *FieldConfig) { if fc.Field.Type == "boolean" { // For booleans, check if flag was changed - fmt.Fprintf(buf, "\tif cmd.Flags().Changed(\"%s\") {\n", fc.FlagName) + if fc.Field.Name == "record_session" || fc.Field.Name == "log_session" { + // Both API generations capture by default; only opt-outs need a field. + fmt.Fprintf(buf, "\tif cmd.Flags().Changed(%q) && !%s {\n", fc.FlagName, fc.VarName) + } else { + fmt.Fprintf(buf, "\tif cmd.Flags().Changed(\"%s\") {\n", fc.FlagName) + } fmt.Fprintf(buf, "\t\tbody.%s = %s\n", apiFieldName, assignOp) buf.WriteString("\t}\n\n") } else if fc.Field.Required {