Script 'mail_helper' called by obssrc
Hello community,

here is the log from the commit of package qubesome for openSUSE:Factory 
checked in at 2026-07-24 00:43:01
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/qubesome (Old)
 and      /work/SRC/openSUSE:Factory/.qubesome.new.2004 (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Package is "qubesome"

Fri Jul 24 00:43:01 2026 rev:15 rq:1367539 version:0.0.20

Changes:
--------
--- /work/SRC/openSUSE:Factory/qubesome/qubesome.changes        2026-05-20 
15:25:12.235827158 +0200
+++ /work/SRC/openSUSE:Factory/.qubesome.new.2004/qubesome.changes      
2026-07-24 00:43:03.707074987 +0200
@@ -1,0 +2,16 @@
+Thu Jul 23 20:05:30 UTC 2026 - Paulo Gomes <[email protected]>
+
+- Update to version 0.0.20:
+  * Redact container env vars in logs
+  * entire enable
+  * build(deps): bump the go_modules group across 1 directory with 2 updates
+  * chore(deps): update dependency protocolbuffers/protobuf to v35.1
+  * fix(deps): update golang
+  * Fix timezone symlink
+  * chore(deps): update dependency protocolbuffers/protobuf to v35
+  * fix(deps): update module golang.org/x/sys to v0.45.0
+  * chore(deps): update dependency protocolbuffers/protobuf to v34.2
+  * fix: resolve make verify failures with golangci v2.12.2
+  * chore(deps): update dependency golangci/golangci-lint to v2.12.2
+
+-------------------------------------------------------------------

Old:
----
  qubesome-0.0.19.tar.gz

New:
----
  qubesome-0.0.20.tar.gz

++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Other differences:
------------------
++++++ qubesome.spec ++++++
--- /var/tmp/diff_new_pack.AhXm9A/_old  2026-07-24 00:43:06.579175282 +0200
+++ /var/tmp/diff_new_pack.AhXm9A/_new  2026-07-24 00:43:06.579175282 +0200
@@ -17,7 +17,7 @@
 
 
 Name:           qubesome
-Version:        0.0.19
+Version:        0.0.20
 Release:        0
 Summary:        Containerize Window Managers, apps and config from a 
declarative state in Git
 License:        Apache-2.0

++++++ _service ++++++
--- /var/tmp/diff_new_pack.AhXm9A/_old  2026-07-24 00:43:06.671178495 +0200
+++ /var/tmp/diff_new_pack.AhXm9A/_new  2026-07-24 00:43:06.679178774 +0200
@@ -3,7 +3,7 @@
     <param name="url">https://github.com/qubesome/cli.git</param>
     <param name="scm">git</param>
     <param name="exclude">.git</param>
-    <param name="revision">v0.0.19</param>
+    <param name="revision">v0.0.20</param>
     <param name="versionformat">@PARENT_TAG@</param>
     <param name="changesgenerate">enable</param>
     <param name="match-tag">v*</param>

++++++ _servicedata ++++++
--- /var/tmp/diff_new_pack.AhXm9A/_old  2026-07-24 00:43:06.723180310 +0200
+++ /var/tmp/diff_new_pack.AhXm9A/_new  2026-07-24 00:43:06.731180590 +0200
@@ -1,6 +1,6 @@
 <servicedata>
 <service name="tar_scm">
                 <param name="url">https://github.com/qubesome/cli.git</param>
-              <param 
name="changesrevision">b61caa5033eb9e8a53cb3da610b2167a1807578e</param></service></servicedata>
+              <param 
name="changesrevision">43b5fcf07a457ef1c4768cf4b1ab692c8c239c0e</param></service></servicedata>
 (No newline at EOF)
 

++++++ qubesome-0.0.19.tar.gz -> qubesome-0.0.20.tar.gz ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/qubesome-0.0.19/.claude/settings.json 
new/qubesome-0.0.20/.claude/settings.json
--- old/qubesome-0.0.19/.claude/settings.json   1970-01-01 01:00:00.000000000 
+0100
+++ new/qubesome-0.0.20/.claude/settings.json   2026-07-23 20:24:39.000000000 
+0200
@@ -0,0 +1,84 @@
+{
+  "hooks": {
+    "PostToolUse": [
+      {
+        "matcher": "Task",
+        "hooks": [
+          {
+            "type": "command",
+            "command": "sh -c 'if ! command -v entire >/dev/null 2>&1; then 
exit 0; fi; exec entire hooks claude-code post-task'"
+          }
+        ]
+      },
+      {
+        "matcher": "TodoWrite",
+        "hooks": [
+          {
+            "type": "command",
+            "command": "sh -c 'if ! command -v entire >/dev/null 2>&1; then 
exit 0; fi; exec entire hooks claude-code post-todo'"
+          }
+        ]
+      }
+    ],
+    "PreToolUse": [
+      {
+        "matcher": "Task",
+        "hooks": [
+          {
+            "type": "command",
+            "command": "sh -c 'if ! command -v entire >/dev/null 2>&1; then 
exit 0; fi; exec entire hooks claude-code pre-task'"
+          }
+        ]
+      }
+    ],
+    "SessionEnd": [
+      {
+        "matcher": "",
+        "hooks": [
+          {
+            "type": "command",
+            "command": "sh -c 'if ! command -v entire >/dev/null 2>&1; then 
exit 0; fi; exec entire hooks claude-code session-end'"
+          }
+        ]
+      }
+    ],
+    "SessionStart": [
+      {
+        "matcher": "",
+        "hooks": [
+          {
+            "type": "command",
+            "command": "sh -c 'if ! command -v entire >/dev/null 2>&1; then 
printf \"%s\\n\" \"{\\\"systemMessage\\\":\\\"\\\\n\\\\nEntire CLI is enabled 
but not installed or not on PATH.\\\\nInstallation guide: 
https://docs.entire.io/cli/installation#installation-methods\\\"}\";; exit 0; 
fi; exec entire hooks claude-code session-start'"
+          }
+        ]
+      }
+    ],
+    "Stop": [
+      {
+        "matcher": "",
+        "hooks": [
+          {
+            "type": "command",
+            "command": "sh -c 'if ! command -v entire >/dev/null 2>&1; then 
exit 0; fi; exec entire hooks claude-code stop'"
+          }
+        ]
+      }
+    ],
+    "UserPromptSubmit": [
+      {
+        "matcher": "",
+        "hooks": [
+          {
+            "type": "command",
+            "command": "sh -c 'if ! command -v entire >/dev/null 2>&1; then 
exit 0; fi; exec entire hooks claude-code user-prompt-submit'"
+          }
+        ]
+      }
+    ]
+  },
+  "permissions": {
+    "deny": [
+      "Read(./.entire/metadata/**)"
+    ]
+  }
+}
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/qubesome-0.0.19/.codex/config.toml 
new/qubesome-0.0.20/.codex/config.toml
--- old/qubesome-0.0.19/.codex/config.toml      1970-01-01 01:00:00.000000000 
+0100
+++ new/qubesome-0.0.20/.codex/config.toml      2026-07-23 20:24:39.000000000 
+0200
@@ -0,0 +1,3 @@
+
+[features]
+hooks = true
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/qubesome-0.0.19/.codex/hooks.json 
new/qubesome-0.0.20/.codex/hooks.json
--- old/qubesome-0.0.19/.codex/hooks.json       1970-01-01 01:00:00.000000000 
+0100
+++ new/qubesome-0.0.20/.codex/hooks.json       2026-07-23 20:24:39.000000000 
+0200
@@ -0,0 +1,52 @@
+{
+  "hooks": {
+    "PostToolUse": [
+      {
+        "matcher": null,
+        "hooks": [
+          {
+            "type": "command",
+            "command": "sh -c 'if ! command -v entire >/dev/null 2>&1; then 
exit 0; fi; exec entire hooks codex post-tool-use'",
+            "timeout": 30
+          }
+        ]
+      }
+    ],
+    "SessionStart": [
+      {
+        "matcher": null,
+        "hooks": [
+          {
+            "type": "command",
+            "command": "sh -c 'if ! command -v entire >/dev/null 2>&1; then 
printf \"%s\\n\" \"{\\\"systemMessage\\\":\\\"Entire CLI is enabled but not 
installed or not on PATH. Installation guide: 
https://docs.entire.io/cli/installation#installation-methods\\\"}\";; exit 0; 
fi; exec entire hooks codex session-start'",
+            "timeout": 30
+          }
+        ]
+      }
+    ],
+    "Stop": [
+      {
+        "matcher": null,
+        "hooks": [
+          {
+            "type": "command",
+            "command": "sh -c 'if ! command -v entire >/dev/null 2>&1; then 
exit 0; fi; exec entire hooks codex stop'",
+            "timeout": 30
+          }
+        ]
+      }
+    ],
+    "UserPromptSubmit": [
+      {
+        "matcher": null,
+        "hooks": [
+          {
+            "type": "command",
+            "command": "sh -c 'if ! command -v entire >/dev/null 2>&1; then 
exit 0; fi; exec entire hooks codex user-prompt-submit'",
+            "timeout": 30
+          }
+        ]
+      }
+    ]
+  }
+}
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/qubesome-0.0.19/.entire/settings.json 
new/qubesome-0.0.20/.entire/settings.json
--- old/qubesome-0.0.19/.entire/settings.json   1970-01-01 01:00:00.000000000 
+0100
+++ new/qubesome-0.0.20/.entire/settings.json   2026-07-23 20:24:39.000000000 
+0200
@@ -0,0 +1,14 @@
+{
+  "enabled": true,
+  "strategy_options": {
+    "checkpoint_remote": {
+      "provider": "github",
+      "repo": "qubesome/entire"
+    }
+  },
+  "checkpoints": {
+    "primary": {
+      "type": "git-refs"
+    }
+  }
+}
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/qubesome-0.0.19/.golangci.yaml 
new/qubesome-0.0.20/.golangci.yaml
--- old/qubesome-0.0.19/.golangci.yaml  2026-05-19 19:19:12.000000000 +0200
+++ new/qubesome-0.0.20/.golangci.yaml  2026-07-23 20:24:39.000000000 +0200
@@ -24,7 +24,7 @@
     - gochecksumtype
     - goconst
     - goheader
-    - gomodguard
+    - gomodguard_v2
     - goprintffuncname
     - gosec
     - gosmopolitan
@@ -76,6 +76,10 @@
       - third_party$
       - builtin$
       - examples$
+  settings:
+    goconst:
+      ignore-tests: true
+      min-occurrences: 10
 formatters:
   enable:
     - gofmt
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/qubesome-0.0.19/go.mod new/qubesome-0.0.20/go.mod
--- old/qubesome-0.0.19/go.mod  2026-05-19 19:19:12.000000000 +0200
+++ new/qubesome-0.0.20/go.mod  2026-07-23 20:24:39.000000000 +0200
@@ -9,8 +9,8 @@
        github.com/stretchr/testify v1.11.1
        github.com/urfave/cli/v3 v3.9.0
        github.com/zalando/go-keyring v0.2.8
-       golang.org/x/sys v0.44.0
-       golang.org/x/term v0.43.0
+       golang.org/x/sys v0.46.0
+       golang.org/x/term v0.44.0
        google.golang.org/grpc v1.81.1
        google.golang.org/protobuf v1.36.11
        gopkg.in/yaml.v3 v3.0.1
@@ -32,8 +32,8 @@
        github.com/pjbgf/sha1cd v0.6.0 // indirect
        github.com/pmezard/go-difflib v1.0.0 // indirect
        github.com/sergi/go-diff v1.4.0 // indirect
-       golang.org/x/crypto v0.51.0 // indirect
-       golang.org/x/net v0.54.0 // indirect
+       golang.org/x/crypto v0.52.0 // indirect
+       golang.org/x/net v0.55.0 // indirect
        golang.org/x/sync v0.20.0 // indirect
        golang.org/x/text v0.37.0 // indirect
        google.golang.org/genproto/googleapis/rpc 
v0.0.0-20260226221140-a57be14db171 // indirect
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/qubesome-0.0.19/go.sum new/qubesome-0.0.20/go.sum
--- old/qubesome-0.0.19/go.sum  2026-05-19 19:19:12.000000000 +0200
+++ new/qubesome-0.0.20/go.sum  2026-07-23 20:24:39.000000000 +0200
@@ -80,16 +80,16 @@
 go.opentelemetry.io/otel/sdk/metric v1.43.0/go.mod 
h1:C/RJtwSEJ5hzTiUz5pXF1kILHStzb9zFlIEe85bhj6A=
 go.opentelemetry.io/otel/trace v1.43.0 
h1:BkNrHpup+4k4w+ZZ86CZoHHEkohws8AY+WTX09nk+3A=
 go.opentelemetry.io/otel/trace v1.43.0/go.mod 
h1:/QJhyVBUUswCphDVxq+8mld+AvhXZLhe+8WVFxiFff0=
-golang.org/x/crypto v0.51.0 h1:IBPXwPfKxY7cWQZ38ZCIRPI50YLeevDLlLnyC5wRGTI=
-golang.org/x/crypto v0.51.0/go.mod 
h1:8AdwkbraGNABw2kOX6YFPs3WM22XqI4EXEd8g+x7Oc8=
-golang.org/x/net v0.54.0 h1:2zJIZAxAHV/OHCDTCOHAYehQzLfSXuf/5SoL/Dv6w/w=
-golang.org/x/net v0.54.0/go.mod h1:Sj4oj8jK6XmHpBZU/zWHw3BV3abl4Kvi+Ut7cQcY+cQ=
+golang.org/x/crypto v0.52.0 h1:RMs7fP2rXdep0CftQlK8Uf+kibLm7qkCcradZWYz988=
+golang.org/x/crypto v0.52.0/go.mod 
h1:1QgfPxDqh0T2M/elOJtp9RvuR95kVjir0e6/BvEmGbc=
+golang.org/x/net v0.55.0 h1:bcvxaJn3e1U6InsFWt1JUq1aSjnRxLzT2rtD2KfkDF8=
+golang.org/x/net v0.55.0/go.mod h1:L5U2KuzuOe1lY7Z+aWVIKK6qEeJXnXV9yzGA+WCHJww=
 golang.org/x/sync v0.20.0 h1:e0PTpb7pjO8GAtTs2dQ6jYa5BWYlMuX047Dco/pItO4=
 golang.org/x/sync v0.20.0/go.mod 
h1:9xrNwdLfx4jkKbNva9FpL6vEN7evnE43NNNJQ2LF3+0=
-golang.org/x/sys v0.44.0 h1:ildZl3J4uzeKP07r2F++Op7E9B29JRUy+a27EibtBTQ=
-golang.org/x/sys v0.44.0/go.mod h1:4GL1E5IUh+htKOUEOaiffhrAeqysfVGipDYzABqnCmw=
-golang.org/x/term v0.43.0 h1:S4RLU2sB31O/NCl+zFN9Aru9A/Cq2aqKpTZJ6B+DwT4=
-golang.org/x/term v0.43.0/go.mod 
h1:lrhlHNdQJHO+1qVYiHfFKVuVioJIheAc3fBSMFYEIsk=
+golang.org/x/sys v0.46.0 h1:noSf2Fq6F8DBgS+LysIkx7rIExoNHJsxOAtPp4rthXw=
+golang.org/x/sys v0.46.0/go.mod h1:4GL1E5IUh+htKOUEOaiffhrAeqysfVGipDYzABqnCmw=
+golang.org/x/term v0.44.0 h1:0rLvDRCtNj0gZkyIXhCyOb2OAzEhLVqc4B+hrsBhrmc=
+golang.org/x/term v0.44.0/go.mod 
h1:7ze4MdzUzLXpSAoFP1H0bOI9aXDqveSvatT5vKcFh2Y=
 golang.org/x/text v0.37.0 h1:Cqjiwd9eSg8e0QAkyCaQTNHFIIzWtidPahFWR83rTrc=
 golang.org/x/text v0.37.0/go.mod 
h1:a5sjxXGs9hsn/AJVwuElvCAo9v8QYLzvavO5z2PiM38=
 gonum.org/v1/gonum v0.17.0 h1:VbpOemQlsSMrYmn7T2OUvQ4dqxQXU+ouZFQsZOx50z4=
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/qubesome-0.0.19/hack/base.mk 
new/qubesome-0.0.20/hack/base.mk
--- old/qubesome-0.0.19/hack/base.mk    2026-05-19 19:19:12.000000000 +0200
+++ new/qubesome-0.0.20/hack/base.mk    2026-07-23 20:24:39.000000000 +0200
@@ -1,7 +1,7 @@
 # renovate: datasource=github-tags depName=golangci/golangci-lint
-GOLANGCI_VERSION ?= v2.11.4
+GOLANGCI_VERSION ?= v2.12.2
 # renovate: datasource=github-tags depName=protocolbuffers/protobuf
-PROTOC_VERSION ?= v34.1
+PROTOC_VERSION ?= v35.1
 TOOLS_BIN := $(shell mkdir -p build/tools && realpath build/tools)
 
 ifneq ($(shell git status --porcelain --untracked-files=no),)
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/qubesome-0.0.19/internal/profiles/profiles.go 
new/qubesome-0.0.20/internal/profiles/profiles.go
--- old/qubesome-0.0.19/internal/profiles/profiles.go   2026-05-19 
19:19:12.000000000 +0200
+++ new/qubesome-0.0.20/internal/profiles/profiles.go   2026-07-23 
20:24:39.000000000 +0200
@@ -249,7 +249,7 @@
                }
        }
 
-       if len(imgs) > 1 && term.IsTerminal(int(os.Stdout.Fd())) { 
//nolint:gosec // G115: fd values fit in int
+       if len(imgs) > 1 && term.IsTerminal(int(os.Stdout.Fd())) {
                if proceed("Not all workload images are present. Start loading 
them on the background?") {
                        go images.PreemptWorkloadImages(binary, cfg)
                }
@@ -417,8 +417,8 @@
                xauthority = os.ExpandEnv("${HOME}/.XAUTHORITY")
        }
 
-       slog.Debug("opening parent xauthority", "path", xauthority) 
//nolint:gosec // G706: path is from trusted env var
-       parent, err := os.Open(xauthority)                          
//nolint:gosec // G703: path is from trusted env var
+       slog.Debug("opening parent xauthority", "path", xauthority)
+       parent, err := os.Open(xauthority) //nolint:gosec // G703: path is from 
trusted env var
        if err != nil {
                slog.Debug("failed to open parent xauthority", "error", err)
                return err
@@ -670,7 +670,7 @@
                        grabberShortcut())
        }
 
-       slog.Debug("exec", "binary", bin, "args", dockerArgs) //nolint:gosec // 
G706: binary path is from trusted config
+       slog.Debug("exec", "binary", bin, "args", 
container.RedactEnvArgs(dockerArgs))
        cmd := execabs.Command(bin, dockerArgs...)
        cmd.Env = append(cmd.Env, os.Environ()...)
 
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/qubesome-0.0.19/internal/runners/docker/run.go 
new/qubesome-0.0.20/internal/runners/docker/run.go
--- old/qubesome-0.0.19/internal/runners/docker/run.go  2026-05-19 
19:19:12.000000000 +0200
+++ new/qubesome-0.0.20/internal/runners/docker/run.go  2026-07-23 
20:24:39.000000000 +0200
@@ -49,6 +49,9 @@
                paths = append(paths, fmt.Sprintf("-v=%[1]s:%[1]s:ro", file))
 
                if target, err := os.Readlink(file); err == nil {
+                       if !filepath.IsAbs(target) {
+                               target = filepath.Join(filepath.Dir(file), 
target)
+                       }
                        paths = append(paths, fmt.Sprintf("-v=%[1]s:%[1]s:ro", 
target))
                }
        }
@@ -263,7 +266,7 @@
        args = append(args, wl.Command)
        args = append(args, wl.Args...)
 
-       slog.Debug("exec", "binary", runnerBinary, "args", args) //nolint:gosec 
// G706: binary path is from trusted config
+       slog.Debug("exec", "binary", runnerBinary, "args", 
container.RedactEnvArgs(args))
        cmd := execabs.Command(runnerBinary, args...)
 
        if ew.Workload.HostAccess.Mime {
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/qubesome-0.0.19/internal/runners/podman/run.go 
new/qubesome-0.0.20/internal/runners/podman/run.go
--- old/qubesome-0.0.19/internal/runners/podman/run.go  2026-05-19 
19:19:12.000000000 +0200
+++ new/qubesome-0.0.20/internal/runners/podman/run.go  2026-07-23 
20:24:39.000000000 +0200
@@ -49,6 +49,9 @@
                paths = append(paths, fmt.Sprintf("-v=%[1]s:%[1]s:ro", file))
 
                if target, err := os.Readlink(file); err == nil {
+                       if !filepath.IsAbs(target) {
+                               target = filepath.Join(filepath.Dir(file), 
target)
+                       }
                        paths = append(paths, fmt.Sprintf("-v=%[1]s:%[1]s:ro", 
target))
                }
        }
@@ -251,7 +254,7 @@
        args = append(args, wl.Command)
        args = append(args, wl.Args...)
 
-       slog.Debug("exec", "binary", runnerBinary, "args", args) //nolint:gosec 
// G706: binary path is from trusted config
+       slog.Debug("exec", "binary", runnerBinary, "args", 
container.RedactEnvArgs(args))
        cmd := execabs.Command(runnerBinary, args...)
 
        if ew.Workload.HostAccess.Mime {
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/qubesome-0.0.19/internal/runners/util/container/redact.go 
new/qubesome-0.0.20/internal/runners/util/container/redact.go
--- old/qubesome-0.0.19/internal/runners/util/container/redact.go       
1970-01-01 01:00:00.000000000 +0100
+++ new/qubesome-0.0.20/internal/runners/util/container/redact.go       
2026-07-23 20:24:39.000000000 +0200
@@ -0,0 +1,41 @@
+package container
+
+import "strings"
+
+const redactedEnvValue = "REDACTED"
+
+// RedactEnvArgs returns a copy of container runner arguments with explicit
+// environment variable values removed. The original arguments are left
+// untouched so callers can safely use the result for logging and the original
+// slice for execution.
+func RedactEnvArgs(args []string) []string {
+       redacted := append([]string(nil), args...)
+
+       for i := 0; i < len(redacted); i++ {
+               switch redacted[i] {
+               case "-e", "--env":
+                       if i+1 < len(redacted) {
+                               redacted[i+1] = redactEnvSpec(redacted[i+1])
+                               i++
+                       }
+               default:
+                       for _, prefix := range []string{"-e=", "--env="} {
+                               if spec, ok := strings.CutPrefix(redacted[i], 
prefix); ok {
+                                       redacted[i] = prefix + 
redactEnvSpec(spec)
+                                       break
+                               }
+                       }
+               }
+       }
+
+       return redacted
+}
+
+func redactEnvSpec(spec string) string {
+       name, _, ok := strings.Cut(spec, "=")
+       if !ok {
+               return spec
+       }
+
+       return name + "=" + redactedEnvValue
+}
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/qubesome-0.0.19/internal/runners/util/container/redact_test.go 
new/qubesome-0.0.20/internal/runners/util/container/redact_test.go
--- old/qubesome-0.0.19/internal/runners/util/container/redact_test.go  
1970-01-01 01:00:00.000000000 +0100
+++ new/qubesome-0.0.20/internal/runners/util/container/redact_test.go  
2026-07-23 20:24:39.000000000 +0200
@@ -0,0 +1,64 @@
+package container
+
+import (
+       "reflect"
+       "testing"
+)
+
+func TestRedactEnvArgs(t *testing.T) {
+       t.Parallel()
+
+       tests := []struct {
+               name string
+               args []string
+               want []string
+       }{
+               {
+                       name: "short flag with separate value",
+                       args: []string{"run", "-e", "TOKEN=secret", "image"},
+                       want: []string{"run", "-e", "TOKEN=REDACTED", "image"},
+               },
+               {
+                       name: "long flag with separate value",
+                       args: []string{"run", "--env", "PASSWORD=two=parts", 
"image"},
+                       want: []string{"run", "--env", "PASSWORD=REDACTED", 
"image"},
+               },
+               {
+                       name: "short flag with inline value",
+                       args: []string{"run", "-e=API_KEY=secret", "image"},
+                       want: []string{"run", "-e=API_KEY=REDACTED", "image"},
+               },
+               {
+                       name: "long flag with inline value",
+                       args: []string{"run", "--env=CLIENT_SECRET=secret", 
"image"},
+                       want: []string{"run", "--env=CLIENT_SECRET=REDACTED", 
"image"},
+               },
+               {
+                       name: "inherited environment variable",
+                       args: []string{"run", "-e", "TOKEN", "--env=PASSWORD", 
"image"},
+                       want: []string{"run", "-e", "TOKEN", "--env=PASSWORD", 
"image"},
+               },
+               {
+                       name: "unrelated arguments",
+                       args: []string{"run", "--entrypoint=/bin/env", "image", 
"TOKEN=secret"},
+                       want: []string{"run", "--entrypoint=/bin/env", "image", 
"TOKEN=secret"},
+               },
+       }
+
+       for _, tc := range tests {
+               tc := tc
+               t.Run(tc.name, func(t *testing.T) {
+                       t.Parallel()
+
+                       original := append([]string(nil), tc.args...)
+                       got := RedactEnvArgs(tc.args)
+
+                       if !reflect.DeepEqual(got, tc.want) {
+                               t.Fatalf("RedactEnvArgs() = %q, want %q", got, 
tc.want)
+                       }
+                       if !reflect.DeepEqual(tc.args, original) {
+                               t.Fatalf("RedactEnvArgs() mutated input: got 
%q, want %q", tc.args, original)
+                       }
+               })
+       }
+}
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/qubesome-0.0.19/pkg/inception/proto/host.pb.go 
new/qubesome-0.0.20/pkg/inception/proto/host.pb.go
--- old/qubesome-0.0.19/pkg/inception/proto/host.pb.go  2026-05-19 
19:19:12.000000000 +0200
+++ new/qubesome-0.0.20/pkg/inception/proto/host.pb.go  2026-07-23 
20:24:39.000000000 +0200
@@ -1,7 +1,7 @@
 // Code generated by protoc-gen-go. DO NOT EDIT.
 // versions:
 //     protoc-gen-go v1.36.11
-//     protoc        v6.33.5
+//     protoc        v7.34.1
 // source: pkg/inception/proto/host.proto
 
 package proto
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/qubesome-0.0.19/pkg/inception/proto/host_grpc.pb.go 
new/qubesome-0.0.20/pkg/inception/proto/host_grpc.pb.go
--- old/qubesome-0.0.19/pkg/inception/proto/host_grpc.pb.go     2026-05-19 
19:19:12.000000000 +0200
+++ new/qubesome-0.0.20/pkg/inception/proto/host_grpc.pb.go     2026-07-23 
20:24:39.000000000 +0200
@@ -1,7 +1,7 @@
 // Code generated by protoc-gen-go-grpc. DO NOT EDIT.
 // versions:
-// - protoc-gen-go-grpc v1.6.1
-// - protoc             v6.33.5
+// - protoc-gen-go-grpc v1.6.2
+// - protoc             v7.34.1
 // source: pkg/inception/proto/host.proto
 
 package proto

++++++ vendor.tar.gz ++++++
++++ 5364 lines of diff (skipped)

Reply via email to