Visitar URL original
feat: add ownership verification before deleting resources during uni… by banjoh · Pull Request #31584 · helm/helm · GitHub
Skip to content

feat: add ownership verification before deleting resources during uni… - #31584

Merged
banjoh merged 9 commits into
helm:mainfrom
banjoh:em/check-ownership-before-delete
Jun 12, 2026
Merged

banjoh merged 9 commits into
helm:mainfrom
banjoh:em/check-ownership-before-delete

Conversation

@banjoh

@banjoh banjoh commented Nov 26, 2025 •

Copy link
Copy Markdown
Contributor

What this PR does / why we need it:

Helm uninstall action now verifies resource ownership before deletion by checking Helm labels and annotations. Resources not owned by the release being uninstalled are skipped with warnings, preventing accidental deletion of resources belonging to other releases.

Fixes #31333

Special notes for your reviewer:

Manual test using same steps described in the bug report

  1. Take a chart that has a resource without a templated name
  2. helm install chart-a my-chart/
    (at this point in time, the resource belongs to chart-a)
  3. Delete the resource manually with k delete ...
  4. helm install chart-b my-chart/
    (at this point in time, the resource belongs to chart-b)
  5. helm uninstall chart-a
helm uninstall chart-a --dry-run --debug
level=WARN msg="dry-run: resources would be skipped because they are not owned by this release" release=chart-a count=1
level=WARN msg="dry-run: would skip resource" kind=HorizontalPodAutoscaler name=my-hpa namespace=default
level=DEBUG msg="dry-run: resources would be deleted" release=chart-a count=3
level=DEBUG msg="dry-run: would delete resource" kind=Service name=chart-a-my-chart namespace=default
level=DEBUG msg="dry-run: would delete resource" kind=Deployment name=chart-a-my-chart namespace=default
level=DEBUG msg="dry-run: would delete resource" kind=ServiceAccount name=chart-a-my-chart namespace=default
release "chart-a" uninstalled

If applicable:

  • this PR contains user facing changes (the docs needed label should be applied if so)
  • this PR contains unit tests
  • this PR has been tested for backwards compatibility

…nstall

Fixes helm#31333

Helm uninstall now verifies resource ownership before deletion by checking
Helm labels and annotations. Resources not owned by the release being
uninstalled are skipped with warnings, preventing accidental deletion of
resources belonging to other releases.

Signed-off-by: Evans Mungai <mbuevans@gmail.com>
@pull-request-size pull-request-size Bot added the size/L Denotes a PR that changes 100-499 lines, ignoring generated files. label Nov 26, 2025
Signed-off-by: Evans Mungai <mbuevans@gmail.com>

@TerryHowe TerryHowe 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.

This would need some tests.

This commit adds ownership verification to the uninstall action. It checks that the resource to be deleted is owned by the chart before deleting it.

Fixes: helm#31333

Signed-off-by: Evans Mungai <mbuevans@gmail.com>
@banjoh

banjoh commented Nov 27, 2025

Copy link
Copy Markdown
Contributor Author

This would need some tests.

I had some, but I added more to cover uninstall action

Signed-off-by: Evans Mungai <mbuevans@gmail.com>
@github-actions

github-actions Bot commented Apr 8, 2026

Copy link
Copy Markdown

This pull request has been marked as stale because it has been open for 90 days with no activity. This pull request will be automatically closed in 30 days if no further activity occurs.

@github-actions github-actions Bot added the Stale label Apr 8, 2026
@VenturiEffect02

Copy link
Copy Markdown

hello, is this still being worked on? this is an issue to us

Copilot AI 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.

Pull request overview

This PR updates the helm uninstall action to verify Kubernetes resource ownership (via Helm’s managed-by label and release name/namespace annotations) before deleting resources, skipping resources that are no longer owned by the release being uninstalled (Fixes #31333).

Changes:

  • Added verifyOwnershipBeforeDelete() to partition resources into “owned” (safe to delete) vs “unowned” (skipped) based on checkOwnership().
  • Updated uninstall execution (and dry-run logging) to skip deletion of unowned resources and emit warnings/debug logs describing what is skipped vs deleted.
  • Added unit tests for ownership verification and uninstall behavior.

Reviewed changes

Copilot reviewed 4 out of 4 changed files in this pull request and generated 7 comments.

File Description
pkg/action/validate.go Adds ownership verification helper used by uninstall to decide which resources are safe to delete.
pkg/action/validate_test.go Adds unit tests covering owned/unowned/missing ownership verification behavior.
pkg/action/uninstall.go Integrates ownership verification into uninstall deletion path and improves dry-run visibility via logs.
pkg/action/uninstall_test.go Adds/updates uninstall tests to cover ownership verification behavior and logging.

💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.

Comment thread pkg/action/validate.go Resolved
Comment thread pkg/action/uninstall.go
Comment on lines +341 to +354
// Log warnings for unowned resources
if len(unownedResources) > 0 {
for _, info := range unownedResources {
u.cfg.Logger().Warn("skipping delete of resource not owned by this release",
"kind", info.Mapping.GroupVersionKind.Kind,
"name", info.Name,
"namespace", info.Namespace,
"release", rel.Name)
}
kept.WriteString(fmt.Sprintf("\n%d resource(s) were not deleted because they are not owned by this release:\n", len(unownedResources)))
for _, info := range unownedResources {
fmt.Fprintf(&kept, "[%s] %s\n", info.Mapping.GroupVersionKind.Kind, info.Name)
}
}
Comment thread pkg/action/uninstall.go Outdated
Comment on lines +341 to +350
// Log warnings for unowned resources
if len(unownedResources) > 0 {
for _, info := range unownedResources {
u.cfg.Logger().Warn("skipping delete of resource not owned by this release",
"kind", info.Mapping.GroupVersionKind.Kind,
"name", info.Name,
"namespace", info.Namespace,
"release", rel.Name)
}
kept.WriteString(fmt.Sprintf("\n%d resource(s) were not deleted because they are not owned by this release:\n", len(unownedResources)))
Comment thread pkg/action/uninstall_test.go Outdated
}
}`
require.NoError(t, unAction.cfg.Releases.Create(rel))
unAction.cfg.Releases.Create(rel)
Comment thread pkg/action/uninstall_test.go Outdated
meta.helm.sh/release-namespace: default
data:
key: value`
config.Releases.Create(rel)
Comment on lines +282 to +285
data:
key: value`
config.Releases.Create(rel)

Comment thread pkg/action/uninstall_test.go Outdated
meta.helm.sh/release-namespace: default
data:
key: value`
config.Releases.Create(rel)
banjoh and others added 2 commits May 5, 2026 18:00
Co-authored-by: Copilot Autofix powered by AI <175728472+Copilot@users.noreply.github.com>
Signed-off-by: Evans Mungai <mbuevans@gmail.com>
Copilot AI review requested due to automatic review settings May 5, 2026 17:09

Copilot AI 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.

Pull request overview

Copilot reviewed 4 out of 4 changed files in this pull request and generated 9 comments.


💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.

Comment thread pkg/action/validate.go Resolved
Comment thread pkg/action/validate.go Resolved
Comment thread pkg/action/validate.go Resolved
Comment thread pkg/action/validate.go Resolved
Comment thread pkg/action/uninstall.go
Comment on lines +349 to +360
if len(unownedResources) > 0 {
for _, info := range unownedResources {
u.cfg.Logger().Warn("skipping delete of resource not owned by this release",
"kind", info.Mapping.GroupVersionKind.Kind,
"name", info.Name,
"namespace", info.Namespace,
"release", rel.Name)
}
kept.WriteString(fmt.Sprintf("\n%d resource(s) were not deleted because they are not owned by this release:\n", len(unownedResources)))
for _, info := range unownedResources {
fmt.Fprintf(&kept, "[%s] %s\n", info.Mapping.GroupVersionKind.Kind, info.Name)
}
Comment on lines 146 to +152
"type": "Opaque",
"data": {
"password": "password"
}
}`
require.NoError(t, unAction.cfg.Releases.Create(rel))
unAction.cfg.Releases.Create(rel)

Comment thread pkg/action/uninstall_test.go Outdated
meta.helm.sh/release-namespace: default
data:
key: value`
config.Releases.Create(rel)
Comment on lines +279 to 285
annotations:
meta.helm.sh/release-name: keep-and-ownership
meta.helm.sh/release-namespace: default
data:
key: value`
config.Releases.Create(rel)

Comment thread pkg/action/uninstall_test.go Outdated
meta.helm.sh/release-namespace: default
data:
key: value`
config.Releases.Create(rel)
banjoh added 2 commits May 5, 2026 19:02
- Distinguish unowned resources from those whose ownership could not be
verified (e.g. RBAC/network errors). Unverifiable resources are now
returned in a separate list with the underlying error so log output
and the "kept" summary describe what actually happened.
- Only prefix the kept summary with the resource-policy header when
there are policy-kept resources, so users with only ownership-skipped
resources don't see a misleading header.
- Update verifyOwnershipBeforeDelete doc comment to reflect that
not-found resources are excluded from all returned lists.
- Assert success of Releases.Create in uninstall tests so fixture
setup failures are surfaced immediately.

Signed-off-by: Evans Mungai <mbuevans@gmail.com>
Signed-off-by: Evans Mungai <mbuevans@gmail.com>
Copilot AI review requested due to automatic review settings May 5, 2026 22:13
@pull-request-size pull-request-size Bot added size/XL Denotes a PR that changes 500-999 lines, ignoring generated files. and removed size/L Denotes a PR that changes 100-499 lines, ignoring generated files. labels May 5, 2026

Copilot AI 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.

Pull request overview

Copilot reviewed 9 out of 9 changed files in this pull request and generated 4 comments.

Comments suppressed due to low confidence (1)

pkg/cmd/history.go:216

  • This loop uses v as the element name and then immediately redefines v := r.Version inside the loop, shadowing the loop variable. Rename one of these (e.g., for _, r := range ... or ver := r.Version) to avoid shadowing and make the code easier to follow.
func getReleaseHistory(rls []*release.Release) (history releaseHistory) {
	for _, v := range slices.Backward(rls) {
		r := v
		c := formatChartName(r.Chart)
		s := r.Info.Status.String()
		v := r.Version
		d := r.Info.Description

💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.

Comment thread pkg/action/validate.go
return fmt.Errorf("%s exists and cannot be imported into the current release: %s", resourceString(info), err)
}

// Resources that are not found are skipped because they are already deleted and do not need deletion.
Comment thread pkg/action/validate.go
Comment on lines +133 to +136
// If client is not available, skip verification (test scenario or build failure)
if info.Client == nil {
infoCopy := *info
owned.Append(&infoCopy)
Comment thread pkg/action/validate.go
Comment on lines +140 to +150
helper := resource.NewHelper(info.Client, info.Mapping)
existing, err := helper.Get(info.Namespace, info.Name)
if err != nil {
if apierrors.IsNotFound(err) {
// Resource already deleted; nothing to do.
return nil
}
// Cannot fetch resource (network/permission issue); ownership unverifiable.
infoCopy := *info
unverifiable = append(unverifiable, unverifiableResource{Info: &infoCopy, Err: err})
return nil
Comment on lines +152 to +155
// Create dummy resources with Mapping but no Client - this skips ownership verification
// (nil Client is treated as owned) and goes directly to delete
dummyResources := kube.ResourceList{
newDeploymentResource("secret", "", ""),
@gabrimonfa

Copy link
Copy Markdown

Any news on this? This would render option --take-ownership more useful, since right now "passing" a resource to another chart is affected by this issue

@venom02

venom02 commented May 20, 2026

Copy link
Copy Markdown

Hello @banjoh , can you find time to resolve this and merge conflicts it in the next release? many thanks

@TerryHowe

Copy link
Copy Markdown
Contributor

Conflicts

@banjoh

banjoh commented May 23, 2026

Copy link
Copy Markdown
Contributor Author

I'll resolve the conflicts asap

Signed-off-by: Evans Mungai <mbuevans@gmail.com>
@pull-request-size pull-request-size Bot added size/L Denotes a PR that changes 100-499 lines, ignoring generated files. and removed size/XL Denotes a PR that changes 500-999 lines, ignoring generated files. labels Jun 4, 2026
@banjoh

banjoh commented Jun 4, 2026

Copy link
Copy Markdown
Contributor Author

Not exactly "asap", but conflicts resolved

@TerryHowe TerryHowe 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.

/lgtm

@banjoh
banjoh merged commit ac4f8a6 into helm:main Jun 12, 2026
5 checks passed
@banjoh
banjoh deleted the em/check-ownership-before-delete branch June 12, 2026 11:33
@promptless-for-oss

Copy link
Copy Markdown

Promptless prepared a documentation update related to this change.

Triggered by PR #31584

Added a troubleshooting entry documenting the new ownership verification behavior during helm uninstall. The entry explains the warning messages users will see when resources are skipped, the ownership metadata fields Helm checks, and how to use --dry-run --debug to preview what would be deleted.

Review: Document uninstall ownership verification

@scottrigby scottrigby added this to the 4.3.0 milestone Sep 9, 2026
hbjydev pushed a commit to hbjydev/phoebe that referenced this pull request Sep 10, 2026
This PR contains the following updates:

| Package | Type | Update | Change |
|---|---|---|---|
| [aqua:helm/helm](https://github.com/helm/helm) | tools | minor | `4.2.4` → `4.3.0` |

---

> ⚠️ **Warning**
>
> Some dependencies could not be looked up. Check the [Dependency Dashboard](issues/141) for more information.

---

### Release Notes

<details>
<summary>helm/helm (aqua:helm/helm)</summary>

### [`v4.3.0`](https://github.com/helm/helm/releases/tag/v4.3.0): Helm v4.3.0

[Compare Source](https://github.com/helm/helm/compare/v4.2.4...v4.3.0-rc.1)

Helm v4.3.0 is a feature release. Users are encouraged to upgrade for the best experience.

The community keeps growing, and we'd love to see you there!

- Join the discussion in [Kubernetes Slack](https://kubernetes.slack.com):
  - for questions and just to hang out
  - for discussing PRs, code, and bugs
- Hang out at the Public Developer Call: Thursday, 9:30 Pacific via [Zoom](https://zoom-lfx.platform.linuxfoundation.org/meeting/91295593969?password=17825db5-c698-44cc-9f00-ef1f61f5d3fb)
- Test, debug, and contribute charts: [ArtifactHub/packages](https://artifacthub.io/packages/search?kind=0)

#### Notable Changes

- feat: Add duration functions by [@&#8203;aeroyorch](https://github.com/aeroyorch) in [#&#8203;31695](https://github.com/helm/helm/pull/31695)
- feat(engine): add debug logging when lookup returns empty by [@&#8203;ogulcanaydogan](https://github.com/ogulcanaydogan) in [#&#8203;32205](https://github.com/helm/helm/pull/32205)
- feat: add ownership verification before deleting resources during uni… by [@&#8203;banjoh](https://github.com/banjoh) in [#&#8203;31584](https://github.com/helm/helm/pull/31584)
- feat: honor SOURCE\_DATE\_EPOCH for chart archives by [@&#8203;lohitkolluri](https://github.com/lohitkolluri) in [#&#8203;32162](https://github.com/helm/helm/pull/32162)
- feat(rollback): add --description flag to provide rollback reason by [@&#8203;biagiopietro](https://github.com/biagiopietro) in [#&#8203;31580](https://github.com/helm/helm/pull/31580)
- fix (internal/plugin): remove zero-width spaces from plugin name comment by [@&#8203;lexfrei](https://github.com/lexfrei) in [#&#8203;32134](https://github.com/helm/helm/pull/32134)
- fix(loader): do not drop values files ending at a 4096-byte boundary by [@&#8203;locker95](https://github.com/locker95) in [#&#8203;32525](https://github.com/helm/helm/pull/32525)
- fix(chart): normalize StampModTimes timestamp to UTC/truncate + Chart.lock reproducibility test by [@&#8203;Mentigen](https://github.com/Mentigen) in [#&#8203;32485](https://github.com/helm/helm/pull/32485)
- fix(provenance): support GnuPG keybox (pubring.kbx) keyrings by [@&#8203;ruslan-shaydullin](https://github.com/ruslan-shaydullin) in [#&#8203;32281](https://github.com/helm/helm/pull/32281)
- fix(template): regression - route registry messages to stderr in template and show by [@&#8203;amarkdotdev](https://github.com/amarkdotdev) in [#&#8203;32217](https://github.com/helm/helm/pull/32217)
- refactor: lower resync period from one hour to 3 minutes by [@&#8203;AustinAbro321](https://github.com/AustinAbro321) in [#&#8203;31944](https://github.com/helm/helm/pull/31944)
- perf: enable concurrent status computation to prevent multi-minute delays by [@&#8203;mapleeit](https://github.com/mapleeit) in [#&#8203;32043](https://github.com/helm/helm/pull/32043)
- chore(deps): bump the k8s-io group to 0.37.0 - [#&#8203;32598](https://github.com/helm/helm/issues/32598)

#### Installation and Upgrading

Download Helm v4.3.0. The common platform binaries are here:

- [MacOS amd64](https://get.helm.sh/helm-v4.3.0-darwin-amd64.tar.gz) ([checksum](https://get.helm.sh/helm-v4.3.0-darwin-amd64.tar.gz.sha256sum) / 347a784877e0e20eac865e8d1c36a80f6bb0861d6f29abd34defb6570ef95d92)
- [MacOS arm64](https://get.helm.sh/helm-v4.3.0-darwin-arm64.tar.gz) ([checksum](https://get.helm.sh/helm-v4.3.0-darwin-arm64.tar.gz.sha256sum) / d3870437e1e95b67f8edbde964156c84a26503f560821d40c542441658934fba)
- [Linux amd64](https://get.helm.sh/helm-v4.3.0-linux-amd64.tar.gz) ([checksum](https://get.helm.sh/helm-v4.3.0-linux-amd64.tar.gz.sha256sum) / 86584a54def73570558f66f5111cc53dfed56689637ae32c1201205d494f54fb)
- [Linux arm](https://get.helm.sh/helm-v4.3.0-linux-arm.tar.gz) ([checksum](https://get.helm.sh/helm-v4.3.0-linux-arm.tar.gz.sha256sum) / 467c353e4a1ab57412dd00c6bfb1a6a2ab4a57d775506f8b38c58502c0ba6861)
- [Linux arm64](https://get.helm.sh/helm-v4.3.0-linux-arm64.tar.gz) ([checksum](https://get.helm.sh/helm-v4.3.0-linux-arm64.tar.gz.sha256sum) / 31c5794dd55c66a51e6b7d2e2ac7a114ae8b1de41ff1d9ba51748ac973b06a08)
- [Linux i386](https://get.helm.sh/helm-v4.3.0-linux-386.tar.gz) ([checksum](https://get.helm.sh/helm-v4.3.0-linux-386.tar.gz.sha256sum) / e969a9492ac128097069aef7eb63be3b2504a20b5377a240b4c5c9bfc4b51575)
- [Linux loong64](https://get.helm.sh/helm-v4.3.0-linux-loong64.tar.gz) ([checksum](https://get.helm.sh/helm-v4.3.0-linux-loong64.tar.gz.sha256sum) / 4ffe485ef474d722699794851642e1c7037e4776233e77637c649f69f3e9a4ce)
- [Linux ppc64le](https://get.helm.sh/helm-v4.3.0-linux-ppc64le.tar.gz) ([checksum](https://get.helm.sh/helm-v4.3.0-linux-ppc64le.tar.gz.sha256sum) / 5ff7d5ea6f396c15f3cfda3fb8ecb0ecb1b11bc283785adeb55eefb2c62e0bda)
- [Linux s390x](https://get.helm.sh/helm-v4.3.0-linux-s390x.tar.gz) ([checksum](https://get.helm.sh/helm-v4.3.0-linux-s390x.tar.gz.sha256sum) / ab637a6a1c3d457b9975726c100d74e484e579d5462c4fd2e3bfcfa97df57cd7)
- [Linux riscv64](https://get.helm.sh/helm-v4.3.0-linux-riscv64.tar.gz) ([checksum](https://get.helm.sh/helm-v4.3.0-linux-riscv64.tar.gz.sha256sum) / 5359f5544478de80de2dfd60bdc5e0c22f26255b3c44335483e0f9bd3ba6ec58)
- [Windows amd64](https://get.helm.sh/helm-v4.3.0-windows-amd64.zip) ([checksum](https://get.helm.sh/helm-v4.3.0-windows-amd64.zip.sha256sum) / 304ea163cce4d9ad14e189c01846c6a34de9cfdfe48536ae54b2e8ba7884e67c)
- [Windows arm64](https://get.helm.sh/helm-v4.3.0-windows-arm64.zip) ([checksum](https://get.helm.sh/helm-v4.3.0-windows-arm64.zip.sha256sum) / 4a9eefa30d26eb73900a9a0f16e97eae678582172204db60cbd454c68acea246)

This release was signed with `208D D36E D5BB 3745 A167 43A4 C7C6 FBB5 B91C 1155` and can be found at [@&#8203;scottrigby](https://github.com/scottrigby) [keybase account](https://keybase.io/r6by). Please use the attached signatures for verifying this release using `gpg`.

The [Quickstart Guide](https://helm.sh/docs/intro/quickstart/) will get you going from there. For **upgrade instructions** or detailed installation notes, check the [install guide](https://helm.sh/docs/intro/install/). You can also use a [script to install](https://raw.githubusercontent.com/helm/helm/main/scripts/get-helm-4) on any system with `bash`.

#### What's Next

- 4.3.1 and 3.22.1 are the next patch releases scheduled for October 14, 2026
- 4.4.0 is the next minor release scheduled for January 13, 2027. There will be no further Helm 3 minor releases (see <https://helm.sh/blog/helm-v3-end-of-life>)

#### Changelog

- chore(deps): bump google.golang.org/grpc from 1.82.1 to 1.83.1 [`bec5b06`](https://github.com/helm/helm/commit/bec5b06ed841fe5269972d864d5177944fd5970f) (dependabot\[bot])
- chore(deps): bump the k8s-io group across 1 directory with 6 updates [`d0d42e7`](https://github.com/helm/helm/commit/d0d42e7dd2b3948281300e5ac2d8d3a74c2a7c8f) (dependabot\[bot])
- bump version to 4.3 ([#&#8203;32605](https://github.com/helm/helm/issues/32605)) [`7328f42`](https://github.com/helm/helm/commit/7328f42a01d7fb96bd41b8fc70abc1fd7258cdb5) (Scott Rigby)
- chore: Fix independent-merge lint issues [`ca6681c`](https://github.com/helm/helm/commit/ca6681ca55d39913b880871b6aa259efdf15e0b9) (George Jenkins)
- refactor(repo): Use byte buffer to build index file ([#&#8203;32579](https://github.com/helm/helm/issues/32579)) [`37752b7`](https://github.com/helm/helm/commit/37752b70b2f9c49dc6ac2f01e2a0aca1f32f0529) (Tom Wieczorek)
- chore: fix gofumpt extra-rules ([#&#8203;32486](https://github.com/helm/helm/issues/32486)) [`28e64bd`](https://github.com/helm/helm/commit/28e64bd2ddb5412bff6d94d62b0114bb53f40931) (Matthieu MOREL)
- Remove deprecated `internal/chart/v3/` code ([#&#8203;32365](https://github.com/helm/helm/issues/32365)) [`4dfbaa4`](https://github.com/helm/helm/commit/4dfbaa40c6cd67e1df345889113a7879ec66136c) (George Jenkins)
- fix(template): regression - route registry messages to stderr in template and show ([#&#8203;32217](https://github.com/helm/helm/issues/32217)) [`9a3c040`](https://github.com/helm/helm/commit/9a3c040369361678aef1ab251e83a38b455f5159) (Aaron Mark)
- refactor: remove per-file decompression size limit ([#&#8203;31748](https://github.com/helm/helm/issues/31748)) [`11e2010`](https://github.com/helm/helm/commit/11e2010aebedf9f495a5c295635df096de7252f7) (Benoit Tigeot)
- Updating the Go version [`b5b498b`](https://github.com/helm/helm/commit/b5b498b77403f93de037cba383f424953e87eaaa) (Matt Farina)
- Updating the Go version [`6d1f67c`](https://github.com/helm/helm/commit/6d1f67cf6a9918ebe6c41f05096b6fa3fdde1b5b) (Matt Farina)
- chore(deps): bump the github-actions group across 1 directory with 4 updates ([#&#8203;32574](https://github.com/helm/helm/issues/32574)) [`0f4decb`](https://github.com/helm/helm/commit/0f4decb96b1c4ac45981f495d45eef6cc82e3192) (dependabot\[bot])
- chore(deps): bump the k8s-io group with 7 updates ([#&#8203;32572](https://github.com/helm/helm/issues/32572)) [`fb19300`](https://github.com/helm/helm/commit/fb1930096eacec13ac911b8499905fc94eb09a8f) (dependabot\[bot])
- fix: correct 'doest not match' in readiness debug logs [`6888b0a`](https://github.com/helm/helm/commit/6888b0a280bb6fbb847c85d2a473c425b6a0862d) (MsfPablo)
- fix(provenance): support GnuPG keybox (pubring.kbx) keyrings ([#&#8203;32281](https://github.com/helm/helm/issues/32281)) [`67d54fd`](https://github.com/helm/helm/commit/67d54fd8808ab47e93dad40f4238d5fe28d1efd0) (Ruslan Shaydullin)
- chore(deps): bump github.com/stretchr/testify from 1.12.0 to 1.12.1 ([#&#8203;32562](https://github.com/helm/helm/issues/32562)) [`e9b85e4`](https://github.com/helm/helm/commit/e9b85e4de16ad45805843fb121748018cf89094b) (dependabot\[bot])
- chore(deps): bump the github-actions group across 1 directory with 4 updates ([#&#8203;32556](https://github.com/helm/helm/issues/32556)) [`c000a40`](https://github.com/helm/helm/commit/c000a408b81266d328db64aea2ff9e2e70844790) (dependabot\[bot])
- chore(deps): bump github.com/stretchr/testify from 1.11.1 to 1.12.0 ([#&#8203;32555](https://github.com/helm/helm/issues/32555)) [`bafdcde`](https://github.com/helm/helm/commit/bafdcde8ecd83119afd7f98363b364138d3b35dc) (dependabot\[bot])
- chore(deps): bump golang.org/x/crypto from 0.54.0 to 0.55.0 ([#&#8203;32545](https://github.com/helm/helm/issues/32545)) [`2a29f17`](https://github.com/helm/helm/commit/2a29f1770b62844b27197d2507377361d45ad7c0) (dependabot\[bot])
- chore(deps): bump golang.org/x/text from 0.40.0 to 0.41.0 ([#&#8203;32543](https://github.com/helm/helm/issues/32543)) [`edb94f8`](https://github.com/helm/helm/commit/edb94f897d1e0ec3335fb7268f07e0fd2666fbb8) (dependabot\[bot])
- test(loader): cover 8192-byte EOF boundary for LoadValues [`fd4ed49`](https://github.com/helm/helm/commit/fd4ed4952b5f9f54344a0c014f7acd7885bd60c6) (Dean Chen)
- fix(loader): do not drop values files ending at a 4096-byte boundary [`601445e`](https://github.com/helm/helm/commit/601445e88cf1fe66b2885c793d564030aad1d707) (Dean Chen)
- chore(deps): bump the github-actions group with 4 updates ([#&#8203;32523](https://github.com/helm/helm/issues/32523)) [`f3d68cd`](https://github.com/helm/helm/commit/f3d68cdbea3076a0283cbd1e3ec44a409ad48a43) (dependabot\[bot])
- fix: bump go.opentelemetry.io/otel to v1.44.0 for GO-2026-5158 ([#&#8203;32521](https://github.com/helm/helm/issues/32521)) [`a0c2f6d`](https://github.com/helm/helm/commit/a0c2f6dade5180fdb08bcc5debef56357cd586ab) (Terry Howe)
- chore(deps): bump github.com/santhosh-tekuri/jsonschema/v6 ([#&#8203;32514](https://github.com/helm/helm/issues/32514)) [`f8a308c`](https://github.com/helm/helm/commit/f8a308cd470bc1f087b3f4915ba775af18c5ffab) (dependabot\[bot])
- chore(deps): bump the github-actions group with 4 updates [`47eb219`](https://github.com/helm/helm/commit/47eb219a71bac4638a9b9db916a5d8c415c553bc) (dependabot\[bot])
- chore(deps): bump the github-actions group with 4 updates ([#&#8203;32508](https://github.com/helm/helm/issues/32508)) [`ae877c8`](https://github.com/helm/helm/commit/ae877c8bfb943d2cc1aa10b34f0c4fada55e6f56) (dependabot\[bot])
- test(action): poll for the interrupted install goroutine instead of a zero-margin sleep ([#&#8203;32328](https://github.com/helm/helm/issues/32328)) [`a8ab76e`](https://github.com/helm/helm/commit/a8ab76e86f11e2ece5a3d0262313140e21db249b) (Nikolaus Schuetz)
- chore(deps): bump actions/stale in the github-actions group ([#&#8203;32487](https://github.com/helm/helm/issues/32487)) [`ac1c687`](https://github.com/helm/helm/commit/ac1c68746f72e5bbbe5b7e5a052629aab7e5ab61) (dependabot\[bot])
- test(package): fix errorlint + exact path match in lock test [`e923167`](https://github.com/helm/helm/commit/e92316751375bafd4621232bb39a1238a22e91c4) (Ilya Kiselev)
- fix(chart): normalize StampModTimes timestamp + Chart.lock test [`3c3be92`](https://github.com/helm/helm/commit/3c3be926aaea573cf94931877e8072aefb231b60) (Ilya Kiselev)
- chore(deps): bump go.yaml.in/yaml/v3 from 3.0.4 to 3.0.5 [`ce27485`](https://github.com/helm/helm/commit/ce27485634fcbd54be8fc8d99a5e4799456420c9) (dependabot\[bot])
- fix(scripts): clarify cache-busting behavior [`bc0114c`](https://github.com/helm/helm/commit/bc0114c70841e2a05c95e53e20358fb761dbfb2e) (Solomon Wakhungu)
- chore: fix gofumpt issues [`24bbb46`](https://github.com/helm/helm/commit/24bbb46c62a54000394ce77c4e3fda17d5566ffc) (Matthieu MOREL)
- fix(scripts): address cache-busting review feedback [`bbaf420`](https://github.com/helm/helm/commit/bbaf420a101379dad4f8452129cf26f2fff7e536) (Solomon Wakhungu)
- Make golangci-lint happy [`f3edb83`](https://github.com/helm/helm/commit/f3edb83df48c505878ffd3ebb89ef6a809e14008) (MrJack)
- Added missing import [`94a3315`](https://github.com/helm/helm/commit/94a3315f4d699c6bb4140550d4c98b46bb4382d2) (MrJack)
- Readded "unicode/utf8" [`500f02d`](https://github.com/helm/helm/commit/500f02d597628d8ca7be8b530edcbedbf397b676) (MrJack)
- Potential fix for pull request finding [`f1ede7c`](https://github.com/helm/helm/commit/f1ede7c9c114c745da2f5c6cef8d27e1eb342498) (MrJack)
- Apply suggestions from code review [`4fcc4e4`](https://github.com/helm/helm/commit/4fcc4e4b3db363654f3dd5240211b195e309970e) (MrJack)
- refactor(rollback): validate description length before cluster reachability check [`91520a7`](https://github.com/helm/helm/commit/91520a78063582ab8265d9364815665f688deebc) (MrJack)
- refactor(test): reuse existing rollback.txt golden file [`e73dfab`](https://github.com/helm/helm/commit/e73dfab5fb47c9f3a0f24cb3f3a7a4aa8b65143e) (MrJack)
- Removed extra space in rollback-with-description.txt [`b177a8e`](https://github.com/helm/helm/commit/b177a8e9060720e91c402cdba2224c6d58789fa3) (MrJack)
- Enhance rune count in pkg/cmd/rollback.go and pkg/action/rollback.go [`a92611c`](https://github.com/helm/helm/commit/a92611c20241be8e7dc32f9b229afd2a722a06f8) (MrJack)
- Use rune count to count properly multi-byte UTF-8 characters [`8a34f3b`](https://github.com/helm/helm/commit/8a34f3b7b4d9ffa4e82c7893eb3d8572fd464198) (MrJack)
- Enhanced rollback description length [`cb91040`](https://github.com/helm/helm/commit/cb91040c447723a7338a513a6d1604e5daaa1e0b) (MrJack)
- Changed if construction [`e69e424`](https://github.com/helm/helm/commit/e69e424ab1917f0d53eafe63c408b5280b39624a) (MrJack)
- Set 256 as limit for maxDescriptionLength. 256 comes from MAX value for key and value [`b606955`](https://github.com/helm/helm/commit/b606955f095408270914c47eac8414b9061bfb49) (MrJack)
- feat(rollback): add --description flag to provide rollback reason [`f8180e6`](https://github.com/helm/helm/commit/f8180e6de473bb4b1008b76aa2ac63b8bcd104c0) (MrJack)
- Update resource\_test.go [`622f16b`](https://github.com/helm/helm/commit/622f16b37fdb1f1915aece9436165dc53c26b3c5) (Matthieu MOREL)
- Update labels\_test.go [`61d99a8`](https://github.com/helm/helm/commit/61d99a8bdbc90219c474c96e11790ab6a90cde61) (Matthieu MOREL)
- Update chartrepo\_test.go [`532eabf`](https://github.com/helm/helm/commit/532eabf88afa2b119f90ef82d1bf309923cbbb78) (Matthieu MOREL)
- Update show\_test.go [`bfca068`](https://github.com/helm/helm/commit/bfca0688b1a44b1cf7ae37ac5f64792a8dffe7f1) (Matthieu MOREL)
- Update rollback\_test.go [`b59dfd3`](https://github.com/helm/helm/commit/b59dfd39015311d94c04541ec5b91959c6b4b6d3) (Matthieu MOREL)
- Potential fix for pull request finding [`a27f3a0`](https://github.com/helm/helm/commit/a27f3a062027d8b459eed2186076fb9384b82f38) (Matthieu MOREL)
- chore(pkg): refactor: finer tests conversions to testify part 1 [`828d01a`](https://github.com/helm/helm/commit/828d01a8786162987482408b7803ceb3f3c176ac) (Matthieu MOREL)
- chore(pkg): refactor: finer tests conversions to testify part 3 [`9a2be11`](https://github.com/helm/helm/commit/9a2be11e6f1af0c89dc0988b88fd339751baa44c) (Matthieu MOREL)
- chore(pkg): refactor: finer tests conversions to testify part 2 [`4d9c03f`](https://github.com/helm/helm/commit/4d9c03f51c30f851a03676a1315f492de10210e6) (Matthieu MOREL)
- chore(internal): refactor: finer tests conversions to testify part 1 [`5142ca8`](https://github.com/helm/helm/commit/5142ca8ddca79a19c8529508c77ab4b27cb23a8f) (Matthieu MOREL)
- chore(deps): bump the k8s-io group across 1 directory with 7 updates ([#&#8203;32459](https://github.com/helm/helm/issues/32459)) [`8f74dce`](https://github.com/helm/helm/commit/8f74dce6ba8d7264ce75f52507616720865e712d) (dependabot\[bot])
- chore(deps): bump ossf/scorecard-action in the github-actions group ([#&#8203;32458](https://github.com/helm/helm/issues/32458)) [`050d3e9`](https://github.com/helm/helm/commit/050d3e99b9dc8796ced4b99cb272cba91c43055f) (dependabot\[bot])
- chore(deps): bump the github-actions group with 4 updates [`ea7c838`](https://github.com/helm/helm/commit/ea7c838e0875449a4b2fe141a961aa29f1435a5d) (dependabot\[bot])
- chore(deps): bump google.golang.org/grpc from 1.80.0 to 1.82.1 [`fe3f98b`](https://github.com/helm/helm/commit/fe3f98b5641fe3a0a9fa2575df8698136c2a0029) (dependabot\[bot])
- chore(deps): bump actions/labeler from 6.2.0 to 7.0.0 ([#&#8203;32441](https://github.com/helm/helm/issues/32441)) [`ed246e2`](https://github.com/helm/helm/commit/ed246e29f7940fffa4631aa67cfef66c5722d4a7) (dependabot\[bot])
- chore(deps): bump github/codeql-action/upload-sarif ([#&#8203;32440](https://github.com/helm/helm/issues/32440)) [`5223cea`](https://github.com/helm/helm/commit/5223ceacda672bdd72efe8995d4abd9327c6539c) (dependabot\[bot])
- chore(deps): bump github/codeql-action/autobuild from 4.37.1 to 4.37.2 [`a0f954e`](https://github.com/helm/helm/commit/a0f954e277702f87883d18760207b34ba3efbf80) (dependabot\[bot])
- chore(deps): bump github/codeql-action/init from 4.37.1 to 4.37.2 [`cdccef4`](https://github.com/helm/helm/commit/cdccef4818c06e4d1ee9521cfb9bcadc30c282e9) (dependabot\[bot])
- chore(deps): bump github/codeql-action/analyze from 4.37.1 to 4.37.2 [`065d3a6`](https://github.com/helm/helm/commit/065d3a6a3dcda016a9de88a9b32f0e9eedcf0876) (dependabot\[bot])
- chore: group github-actions dependabot updates [`cd4c5d3`](https://github.com/helm/helm/commit/cd4c5d3bfd7d19be9a3a01ba63a650cf044e1409) (Terry Howe)
- chore(pkg): refactor: convert tests to testify assert/require part 19 [`33c2839`](https://github.com/helm/helm/commit/33c28395695c53b579c1f94d3dfcadbe2ff2b862) (Matthieu MOREL)
- chore(pkg): refactor: convert tests to testify assert/require part 22 [`0b1aa55`](https://github.com/helm/helm/commit/0b1aa55cbb14ce3b7c805a6262e2159c4a70bf73) (Matthieu MOREL)
- chore(pkg): refactor: convert tests to testify assert/require part 21 [`a934b82`](https://github.com/helm/helm/commit/a934b827fa9569c8769c981b1d4847f72a4c1f94) (Matthieu MOREL)
- chore(pkg): refactor: convert tests to testify assert/require part 20 [`1d4665e`](https://github.com/helm/helm/commit/1d4665e54c28a41a5631c19f3bff14ef3d4e058f) (Matthieu MOREL)
- chore(pkg): refactor: convert tests to testify assert/require part 18 [`fb8a62b`](https://github.com/helm/helm/commit/fb8a62bf13cbc0ad78d0856678365b246b224997) (Matthieu MOREL)
- chore(pkg): refactor: convert tests to testify assert/require part 16 [`0fa9f7d`](https://github.com/helm/helm/commit/0fa9f7d427b99437e51dbb8ada21d19f93898652) (Matthieu MOREL)
- chore(pkg): refactor: convert tests to testify assert/require part 17 [`4073566`](https://github.com/helm/helm/commit/4073566e285d5bfaafaf0cec2b927fa037bfcb2a) (Matthieu MOREL)
- chore(pkg): refactor: convert tests to testify assert/require part 15 [`7173365`](https://github.com/helm/helm/commit/71733656a5c64307f85290bc9fe6480ad637a117) (Matthieu MOREL)
- chore(pkg): refactor: convert tests to testify assert/require part 14 [`dc66ee7`](https://github.com/helm/helm/commit/dc66ee7be786b1ac146a21fb2114b9678aaf25a4) (Matthieu MOREL)
- chore(pkg): refactor: convert tests to testify assert/require part 13 [`aae82bf`](https://github.com/helm/helm/commit/aae82bf97a4c02c70982c14118912c459db43ec9) (Matthieu MOREL)
- chore(pkg): refactor: convert tests to testify assert/require part 12 [`a3fa28a`](https://github.com/helm/helm/commit/a3fa28ae22934450389ab31343c0ca20321d302c) (Matthieu MOREL)
- chore(pkg): refactor: convert tests to testify assert/require part 11 [`dc3e3a5`](https://github.com/helm/helm/commit/dc3e3a5e7efadff49fd26eac511cf18801af0ebc) (Matthieu MOREL)
- chore(pkg): refactor: convert tests to testify assert/require part 10 [`2f5a33f`](https://github.com/helm/helm/commit/2f5a33fb77daca9ade910ed7fe557e3e85fd77f6) (Matthieu MOREL)
- chore(pkg): refactor: convert tests to testify assert/require part 9 [`13d1edc`](https://github.com/helm/helm/commit/13d1edc5f346e136b249d4c8232e83689f07c3b4) (Matthieu MOREL)
- chore(pkg): refactor: convert tests to testify assert/require part 8 [`e5f0e07`](https://github.com/helm/helm/commit/e5f0e07b96580305c3902eceb738cef230b44bec) (Matthieu MOREL)
- chore(pkg): refactor: convert tests to testify assert/require part 7 [`ca1767b`](https://github.com/helm/helm/commit/ca1767b81397e5ee3b3a5f7926590ddf1134c9c5) (Matthieu MOREL)
- chore(pkg): refactor: convert tests to testify assert/require part 2 [`0daa77f`](https://github.com/helm/helm/commit/0daa77fa9bffe2c8359bb079d3e978fe74a0b5a4) (Matthieu MOREL)
- chore(pkg): refactor: convert tests to testify assert/require part 1 [`d4ec8e9`](https://github.com/helm/helm/commit/d4ec8e9b87a002d48c2d7a8f3c145c9a324bfaef) (Matthieu MOREL)
- chore(pkg): refactor: convert tests to testify assert/require part 6 [`0844b3b`](https://github.com/helm/helm/commit/0844b3b8b513e1ae6787c44fc5cfd224bf86c573) (Matthieu MOREL)
- chore(pkg): refactor: convert tests to testify assert/require part 5 [`3ff05c8`](https://github.com/helm/helm/commit/3ff05c835ecb1bbf794089d309556dbc75778ef7) (Matthieu MOREL)
- chore(pkg): refactor: convert tests to testify assert/require part 4 [`658a8fa`](https://github.com/helm/helm/commit/658a8fac156a92a7462cc9aab98da796da6dc116) (Matthieu MOREL)
- chore(pkg): refactor: convert tests to testify assert/require part 3 [`df2d013`](https://github.com/helm/helm/commit/df2d013517b0a237ea8858677558db3129a92911) (Matthieu MOREL)
- chore(deps): bump actions/checkout from 7.0.0 to 7.0.1 ([#&#8203;32411](https://github.com/helm/helm/issues/32411)) [`8c7f3a1`](https://github.com/helm/helm/commit/8c7f3a14d2cbde663847641b1f4274d266e6f0f3) (dependabot\[bot])
- chore(internal): refactor: convert tests to testify assert/require part 4 ([#&#8203;32408](https://github.com/helm/helm/issues/32408)) [`6c45810`](https://github.com/helm/helm/commit/6c45810119937e8fcbbc4f0b7f56c32a40c52d87) (Matthieu MOREL)
- chore(internal): refactor: convert tests to testify assert/require part 3 [`668e7e5`](https://github.com/helm/helm/commit/668e7e580a01dbf66da0f620da6b980ee0cb4d80) (Matthieu MOREL)
- chore(internal): refactor: convert tests to testify assert/require part 5 [`f1d5979`](https://github.com/helm/helm/commit/f1d5979e7d8b9d1e36b3cf703d150e8078c2e16e) (Matthieu MOREL)
- chore(internal): refactor: convert tests to testify assert/require part 6 [`f3402c1`](https://github.com/helm/helm/commit/f3402c1cd69b84d278af5a30551e376d727d27c1) (Matthieu MOREL)
- chore(internal): refactor: convert tests to testify assert/require part 1 [`ba31ca0`](https://github.com/helm/helm/commit/ba31ca0c0b455541f05986e8dcb8a0554fa70dd2) (Matthieu MOREL)
- chore(internal): refactor: convert tests to testify assert/require part 2 [`615a299`](https://github.com/helm/helm/commit/615a29987660b11909f984887b47f7f608757d87) (Matthieu MOREL)
- fix: pass registry client to downloader.Manager in upgrade [`0604d8f`](https://github.com/helm/helm/commit/0604d8fb1ee8ea172604cb739c93ea8d5ad068c6) (Gates Wang)
- perf: enable concurrent status computation to prevent multi-minute delays ([#&#8203;32043](https://github.com/helm/helm/issues/32043)) [`3bcf965`](https://github.com/helm/helm/commit/3bcf965f997499c477436515e6ccf5d51ab82e5e) (Zhaofeng Miao)
- remove legacy import comments from remaining packages ([#&#8203;31933](https://github.com/helm/helm/issues/31933)) [`82be04d`](https://github.com/helm/helm/commit/82be04d7f2881f59b3a85483eb248417e1d18fc3) (Abhay Chaurasiya)
- Potential fix for pull request finding [`c2fda5a`](https://github.com/helm/helm/commit/c2fda5ac5835cd1eca44a29047c18edcde66e00f) (Terry Howe)
- fix: enhance error handling and improve test assertions ([#&#8203;32352](https://github.com/helm/helm/issues/32352)) [`a2b1a60`](https://github.com/helm/helm/commit/a2b1a60d51223254bd9c2f08cf3f411eb9d9fc58) (Matthieu MOREL)
- fix(scripts): add cache-busting to get-helm-3 version check [`5a30c7a`](https://github.com/helm/helm/commit/5a30c7ae8504218fd68d87c5a7d929d0a3bb3891) (Solomon Wakhungu)
- chore(deps): bump github/codeql-action init and analyze to 4.37.1 [`0563162`](https://github.com/helm/helm/commit/0563162dd95dcff0f7b1ac09e0c784ae21b72245) (Terry Howe)
- chore(deps): bump github/codeql-action/upload-sarif ([#&#8203;32378](https://github.com/helm/helm/issues/32378)) [`06b9586`](https://github.com/helm/helm/commit/06b95860dc2419062834a5e59921569676b45031) (dependabot\[bot])
- chore(deps): bump actions/setup-go from 6.5.0 to 7.0.0 ([#&#8203;32376](https://github.com/helm/helm/issues/32376)) [`a494169`](https://github.com/helm/helm/commit/a494169853d1e6f752eb838fedbb00d1a8593b66) (dependabot\[bot])
- chore(deps): bump github/codeql-action/autobuild from 4.37.0 to 4.37.1 [`eeb37ed`](https://github.com/helm/helm/commit/eeb37edfeafffdb562b97774f85a394332cf58dd) (dependabot\[bot])
- chore: Add AI Vendor specific paths to `.gitignore` [`8cd3a48`](https://github.com/helm/helm/commit/8cd3a48c34136f14fa6ba60554ef5ab0e12625be) (George Jenkins)
- ci: auto-label PRs targeting main with v4.x [`9f3c89a`](https://github.com/helm/helm/commit/9f3c89a4b50e99a46c23b6942b87b205bdd8c33f) (Benoit Tigeot)
- fix: 'gocritic: filepathJoin path seperator' lint error [`96a25ab`](https://github.com/helm/helm/commit/96a25ab4f86c2c78de2acfe45a69c0a40055aa3c) (George Jenkins)
- chore(internal): refactor: convert tests to testify assert/require part 3 [`caac755`](https://github.com/helm/helm/commit/caac755f199adf5ac4fbbc8c46a741d004ed7276) (Matthieu MOREL)
- feat: honor SOURCE\_DATE\_EPOCH for chart archives ([#&#8203;32162](https://github.com/helm/helm/issues/32162)) [`ad93b7d`](https://github.com/helm/helm/commit/ad93b7df635d032a71201206cc3490e76b83bef4) (Lohit Kolluri)
- Fix missing conflict retry with server-side apply ([#&#8203;32088](https://github.com/helm/helm/issues/32088)) [`aa1ae3a`](https://github.com/helm/helm/commit/aa1ae3a36017156817e89e59eee0e88af9fc6365) (Jakub Jaruszewski)
- chore: fix elseif and ifElseChain issues from gocritic ([#&#8203;32289](https://github.com/helm/helm/issues/32289)) [`a02a571`](https://github.com/helm/helm/commit/a02a5713deef0c0c1bf4359dcb0218a9c640224d) (Matthieu MOREL)
- chore(internal): refactor: convert tests to testify assert/require part 2 [`f280d9c`](https://github.com/helm/helm/commit/f280d9c1b5da4e2f25cac76b2fcce58bad35aae9) (Matthieu MOREL)
- chore(internal): refactor: convert tests to testify assert/require part 1 [`d72b28e`](https://github.com/helm/helm/commit/d72b28ebcbecf1c582e57f17c1272536b90513d1) (Matthieu MOREL)
- fix(ci): pin govulncheck-action to the v1.1.0 release ([#&#8203;32304](https://github.com/helm/helm/issues/32304)) [`68977ec`](https://github.com/helm/helm/commit/68977ec0b5a446286668170dd72bdf59695f8cd5) (秀吉)
- ci: track GitHub Actions updates on dev-v3 via Dependabot [`b963afa`](https://github.com/helm/helm/commit/b963afaddfe127620c70773e46b1d3a1f9c559e8) (Terry Howe)
- chore(deps): bump actions/stale from 10.3.0 to 10.4.0 ([#&#8203;32330](https://github.com/helm/helm/issues/32330)) [`fb53c00`](https://github.com/helm/helm/commit/fb53c00ae72c08cf6d64289efde3aaeeda6c42fc) (dependabot\[bot])
- chore(deps): bump github.com/mattn/go-shellwords from 1.0.13 to 1.0.14 ([#&#8203;32334](https://github.com/helm/helm/issues/32334)) [`dad026a`](https://github.com/helm/helm/commit/dad026acb8caab81411514715c50e50510f558ca) (dependabot\[bot])
- chore(deps): bump oras.land/oras-go/v2 from 2.6.1 to 2.6.2 ([#&#8203;32333](https://github.com/helm/helm/issues/32333)) [`84e63e5`](https://github.com/helm/helm/commit/84e63e5c38913594e476b15609fb6c7ab2d60467) (dependabot\[bot])
- Address review comments [`73c1fb2`](https://github.com/helm/helm/commit/73c1fb245120df3f3adb53c12e69f29134147de7) (Matheus Pimenta)
- Fix vanishing empty lines [`bfebbb7`](https://github.com/helm/helm/commit/bfebbb7c1a3cea951dcc33d3253492f6a6df4eb2) (Matheus Pimenta)
- fix: add missing https\:// to Oracle link in ADOPTERS.md ([#&#8203;32324](https://github.com/helm/helm/issues/32324)) [`7b9a5c8`](https://github.com/helm/helm/commit/7b9a5c8911c7aa53eab1bfde995c63ff626a7ca4) (Akanksha Trehun)
- fix: remove trailing whitespace in .golangci.yml ([#&#8203;32325](https://github.com/helm/helm/issues/32325)) [`cfa3b24`](https://github.com/helm/helm/commit/cfa3b24fe6c2a0e4bf22887cc1051d7674c6b348) (Akanksha Trehun)
- fix(Makefile): update outdated .sha256 comment for Helm v4 ([#&#8203;32323](https://github.com/helm/helm/issues/32323)) [`a91e9f6`](https://github.com/helm/helm/commit/a91e9f6a249533cfd8fdb98cbd909ecb16bbc813) (Akanksha Trehun)
- feat(linters): add new revive rules for better code quality [`16787d6`](https://github.com/helm/helm/commit/16787d65f5091cf5c5e4f2884ef0027ada117465) (Matthieu MOREL)
- refactor: enable several checks from gocritic [`9662fdd`](https://github.com/helm/helm/commit/9662fdd73b848e04889b452335b60250414ef6db) (Matthieu MOREL)
- fix(linters): update golangci-lint to 2.12.2 [`7bfcdb0`](https://github.com/helm/helm/commit/7bfcdb0fc34894ec6f1622f48608161188b2e2a8) (Matthieu MOREL)
- chore(deps): bump github/codeql-action/analyze from 4.36.2 to 4.37.0 [`8118a4d`](https://github.com/helm/helm/commit/8118a4da1ed0ba470571ee3e150e4949b373ba9c) (Terry Howe)
- chore(deps): bump golang.org/x/crypto from 0.53.0 to 0.54.0 [`0fc3b93`](https://github.com/helm/helm/commit/0fc3b9385348b0d346728de3b0969ae2a3b7d47f) (Terry Howe)
- chore(deps): bump github/codeql-action/analyze from 4.36.2 to 4.37.0 [`71901a4`](https://github.com/helm/helm/commit/71901a4c7cc6280317b892341b5dde5a866c952c) (Terry Howe)
- chore(deps): bump github/codeql-action/init from 4.36.2 to 4.37.0 ([#&#8203;32313](https://github.com/helm/helm/issues/32313)) [`a71eb99`](https://github.com/helm/helm/commit/a71eb99db4f0c08fae21d3bfafa3bdfb6465b2a4) (dependabot\[bot])
- chore(deps): bump github/codeql-action/autobuild from 4.36.2 to 4.37.0 ([#&#8203;32305](https://github.com/helm/helm/issues/32305)) [`ea52bdf`](https://github.com/helm/helm/commit/ea52bdf7e2c5155d629c85aa7eb7f625eef92936) (dependabot\[bot])
- chore(deps): bump golang.org/x/text from 0.39.0 to 0.40.0 ([#&#8203;32309](https://github.com/helm/helm/issues/32309)) [`a242855`](https://github.com/helm/helm/commit/a242855a7e2c31efd1f0f69ad1c5ae24be0563de) (dependabot\[bot])
- chore(deps): bump github/codeql-action/upload-sarif ([#&#8203;32311](https://github.com/helm/helm/issues/32311)) [`f25f955`](https://github.com/helm/helm/commit/f25f9555785b15fc7f41aa2e5e43979b1bca5021) (dependabot\[bot])
- Potential fix for pull request finding [`ed651de`](https://github.com/helm/helm/commit/ed651de9b12ff98c0aa13985a88bca9aca0aa4fb) (Benoit Tigeot)
- fix(ci): resolve Node 20 deprecation in govulncheck [`ca24a55`](https://github.com/helm/helm/commit/ca24a55c314d2fd84430d88c55ce09a391798d8e) (Benoit Tigeot)
- chore(deps): bump golang.org/x/text from 0.38.0 to 0.39.0 [`e3fbe2e`](https://github.com/helm/helm/commit/e3fbe2e9d10985fa30aeeb678c376d9556a2b6f7) (dependabot\[bot])
- chore: fix emptyStringTest, nestingReduce and  singleCaseSwitch checks issues from gocritic [`96b315f`](https://github.com/helm/helm/commit/96b315f188932b7602e1ab1497e2d81d1caa8068) (Matthieu MOREL)
- Update pkg/cmd/history\_test.go [`c1569ea`](https://github.com/helm/helm/commit/c1569ea83ff40ab534f3db531316cb0408717d3c) (Matthieu MOREL)
- test: replace assert.Equal with require.EqualError for improved error handling [`65077c1`](https://github.com/helm/helm/commit/65077c10fa3e4f339142f498d84c1c7bfb1d320b) (Matthieu MOREL)
- test: replace assert.Contains with assert.ErrorContains for better error handling [`4ade4a5`](https://github.com/helm/helm/commit/4ade4a5495b81a4cf465906a2414267ed0b1dcc8) (Matthieu MOREL)
- chore: fix several checks issues from testifylint [`f34ad6c`](https://github.com/helm/helm/commit/f34ad6c337a53f0d77d1e24b5d1c6cdd1c57bc63) (Matthieu MOREL)
- test(cli): use t.Cleanup for resetEnv with t.Setenv [`47bde11`](https://github.com/helm/helm/commit/47bde119597961113d769a9d46a565f448565e7a) (LarytheLord)
- test(cli): isolate user-agent rest config test from host kubeconfig [`9b30076`](https://github.com/helm/helm/commit/9b30076180b8f73bbe25d0f4cd752207154ad0c1) (LarytheLord)
- chore: fix several checks issues from gocritic [`07259ec`](https://github.com/helm/helm/commit/07259ecc86521db556c4a18331241bbefc6bb6b2) (Matthieu MOREL)
- fix(engine): prevent Files.Lines panic on empty file [`143631f`](https://github.com/helm/helm/commit/143631f7356d7f2250540c044ae20277f495cc2f) (Mahesh Sadupalli)
- Potential fix for pull request finding [`d539556`](https://github.com/helm/helm/commit/d539556a8d03c48258d08207aaf918c202c90df6) (kimsungmin1)
- chore(deps): bump github/codeql-action/upload-sarif [`e9eda8c`](https://github.com/helm/helm/commit/e9eda8c5988d74172862b3b72cb1f8edf2226191) (dependabot\[bot])
- fix(registry): resolve golangci-lint issues in token-auth tests [`503acff`](https://github.com/helm/helm/commit/503acff97580aa803f5d639fb1fbb06ad1226c31) (kimsm28)
- chore: go mod tidy after rebase on main [`4e9ca06`](https://github.com/helm/helm/commit/4e9ca06856b1aeba65c4d4cd8e4dce4c83445776) (kimsm28)
- fix(registry): use plain-http registry in token-auth scope test [`3cbee7e`](https://github.com/helm/helm/commit/3cbee7e935eb6e783c36b17d6eb79eb6edcda15b) (kimsm28)
- Update pkg/registry/client.go [`26ada49`](https://github.com/helm/helm/commit/26ada49c1ad50af5e11dbb8a65b703251295c689) (Terry Howe)
- test: improve client\_scope\_test.go to avoid data races and brittle assertions [`9b7a70f`](https://github.com/helm/helm/commit/9b7a70f0ca4bf0dcfd242962d9eef211188057dd) (kimsm28)
- fix typos in withScopeHint function comment [`ee181f4`](https://github.com/helm/helm/commit/ee181f4570550d61379bf59f2a69b993b74d49cf) (kimsm28)
- fix registry test failures by adjusting DockerRegistryHost and auth server listener management [`1f0a728`](https://github.com/helm/helm/commit/1f0a72849657c3fe167320f7f5729c377f6dadf8) (kimsm28)
- fix variable naming requestUrl -> requestURL [`8883c9c`](https://github.com/helm/helm/commit/8883c9cc7006eef7e3d07836b2d5dd7ca1066168) (kimsm28)
- fix typo, remove unnecessary code, fix to avoid to use the assertion in http hanlder [`530e728`](https://github.com/helm/helm/commit/530e728ea932109befc4a8165cd9a2bc78170c07) (kimsm28)
- change suite.Nil, suite.NotNill to more proper function(suite.NoError, suite.Error) [`26e5071`](https://github.com/helm/helm/commit/26e5071f6680272d773f0ca22ea946a35c4dce66) (kimsungmin1)
- change client\_scope\_test.go to use httptest [`8c8d6e3`](https://github.com/helm/helm/commit/8c8d6e3262be77783ef42a47c9593b6e42a3066a) (kimsungmin1)
- fix typo [`9d77ccd`](https://github.com/helm/helm/commit/9d77ccd46ddf9b2675137891c159d1de35674072) (kimsungmin1)
- remove freeport dependency [`fc743b2`](https://github.com/helm/helm/commit/fc743b2a1be47c69cc3bf58e0fdc023f8844f866) (kimsungmin1)
- add newline in license header [`319e06c`](https://github.com/helm/helm/commit/319e06cda30e706db541066d5fe07249b0ed656c) (kimsungmin1)
- fix scope when helm push to a registry that use token auth [`301e3a1`](https://github.com/helm/helm/commit/301e3a12d55c279ef3bd0b1976bafd43bc1e0b7b) (kimsungmin1)
- chore(deps): bump github.com/fluxcd/cli-utils from 1.2.1 to 1.2.2 [`5a9b8a7`](https://github.com/helm/helm/commit/5a9b8a788ff260c031f2d2f3e1b6903bd31b3496) (dependabot\[bot])
- chore(deps): bump golangci/golangci-lint-action from 9.2.1 to 9.3.0 [`f76136d`](https://github.com/helm/helm/commit/f76136d39f8c1fd6110a23317786c4c53f6f9cb9) (dependabot\[bot])
- Potential fix for pull request finding [`144246c`](https://github.com/helm/helm/commit/144246cd2893f92ee8e477c691837ea27e8c2733) (George Jenkins)
- chore(deps): bump actions/setup-go from 6.4.0 to 6.5.0 [`07faec5`](https://github.com/helm/helm/commit/07faec5593aabbde72c357d9c10123b6a3da33c5) (dependabot\[bot])
- Apply suggestions [`61bba7c`](https://github.com/helm/helm/commit/61bba7c659e3b45ba4db195d58acc668a9c32441) (Will Noble)
- Properly format the extra field in gzipped packages [`d887779`](https://github.com/helm/helm/commit/d887779b9b0eeb720672a7927479fc627e599c24) (Will Noble)
- refactor(internal): convert tests to testify assert/require [`addbab2`](https://github.com/helm/helm/commit/addbab2e6444954eb1a9bde86730ee7d11810b46) (George Jenkins)
- refactor(internal/release): convert tests to testify assert/require [`7ab295f`](https://github.com/helm/helm/commit/7ab295fcfcf3977599939d76ffbf7a266401bfbc) (George Jenkins)
- refactor(pkg/release): convert tests to testify assert/require [`4cce0e9`](https://github.com/helm/helm/commit/4cce0e9e2a870508864c1d497918e201dc0f339c) (George Jenkins)
- refactor(pkg/registry): convert tests to testify assert/require [`8b0a167`](https://github.com/helm/helm/commit/8b0a167484a7f6de4a2cb12bf81641873a275d7b) (George Jenkins)
- refactor(internal): convert tests to testify assert/require [`3ce02c5`](https://github.com/helm/helm/commit/3ce02c585a18b38c5dba1177a54c3a0322c53d3c) (George Jenkins)
- refactor(repotest): convert tests to testify assert/require [`b42faba`](https://github.com/helm/helm/commit/b42faba9d293d45d2654dac5b540adb5b50e5b4f) (George Jenkins)
- chore: enable contextcheck, fatcontext and noctx linters [`34cfdfd`](https://github.com/helm/helm/commit/34cfdfdbe57ec9690113e141395c499a7c00ca6b) (Matthieu MOREL)
- chore(deps): bump github.com/cyphar/filepath-securejoin [`a0c7d1e`](https://github.com/helm/helm/commit/a0c7d1e1f5ef222fb1be143e9846cebf8b3a2d54) (dependabot\[bot])
- chore(deps): bump actions/checkout from 6.0.3 to 7.0.0 [`5848047`](https://github.com/helm/helm/commit/5848047c6b1e854fe7d451e451dbf748225232b9) (dependabot\[bot])
- test: use assert.Empty for zero-length assertions in validate\_test [`c36e4d5`](https://github.com/helm/helm/commit/c36e4d52bdf92a05a8d2d9f40e5927a1245dce2d) (Terry Howe)
- docs: fix typo in helm version command description [`dd442c0`](https://github.com/helm/helm/commit/dd442c0cc7c3d7f397bbf93ac5a9551a4e2f0139) (s3onghyun)
- chore(deps): bump the k8s-io group across 1 directory with 7 updates [`fa68e6c`](https://github.com/helm/helm/commit/fa68e6cb094e84076bfad53af494d7db7642ceee) (dependabot\[bot])
- chore(deps): bump actions/checkout from 6.0.2 to 6.0.3 [`3d2ff2a`](https://github.com/helm/helm/commit/3d2ff2a1aa3d8696105af5367a254c6824dff4a6) (dependabot\[bot])
- refactor(pkg/strvals): convert tests to testify assert/require [`daa045d`](https://github.com/helm/helm/commit/daa045d4923007c1ab815b39038b81491506dc0a) (George Jenkins)
- refactor(pkg/cli): convert tests to testify assert/require [`16b0760`](https://github.com/helm/helm/commit/16b0760dfd99b5c501cbfc2138a207e1b3512c0f) (George Jenkins)
- Revert "fix(kube): prevent spurious early exit in WaitForDelete during informer sync" [`d3bd091`](https://github.com/helm/helm/commit/d3bd09147bbae09ca85615452bda31b8215e66f5) (George Jenkins)
- Update pkg/ignore/rules\_test.go [`9ad5620`](https://github.com/helm/helm/commit/9ad5620edc1b51507d111f7f998cc0f5b95e5726) (George Jenkins)
- docs: improve CONTRIBUTING.md wording [`fa9cb49`](https://github.com/helm/helm/commit/fa9cb4919423e80d1693275396f9d8fa6b324baf) (devShaik010)
- refactor(pkg): convert tests to testify assert/require [`f4d713a`](https://github.com/helm/helm/commit/f4d713abb210230b3935c4a9685f1f34a8330970) (George Jenkins)
- refactor(cmd/helm): convert tests to testify assert/require [`ed76a36`](https://github.com/helm/helm/commit/ed76a36ab9b4c8f5a56049aa201dd8ce04836ecb) (George Jenkins)
- chore: rename savedErr to clear its specific purpose [`9c1d5a3`](https://github.com/helm/helm/commit/9c1d5a3b249c6684bfe902455a61e728bbf7dcf6) (Jeaeun Kim)
- chore: fix lint [`99baa2e`](https://github.com/helm/helm/commit/99baa2edd493af15ffd98f39808fac5c4a9b12f7) (Jeaeun Kim)
- chore: store err separately for clarity [`ea847fe`](https://github.com/helm/helm/commit/ea847fef95702ca53ec5ab3c627c696ea1488598) (Jeaeun Kim)
- chore: Improve error reporting for `helm template --debug` with `--show-only` [`2014946`](https://github.com/helm/helm/commit/2014946e550ed7a667b9ae8cfe15a377a2fe94ca) (Jeaeun Kim)
- fix panic on repeated IsReachable calls [`1f7869c`](https://github.com/helm/helm/commit/1f7869c31f8d96638d238957b20a27d665001d88) (Mohammad Abdolirad)
- fix: protect FailingKubeClient.RecordedWaitOptions from data race ([#&#8203;31925](https://github.com/helm/helm/issues/31925)) [`a5552ed`](https://github.com/helm/helm/commit/a5552edf9fb0e23b475310d943a2ecd1df5aeafd) (Terry Howe)
- fix: route registry client output to stdout instead of stderr ([#&#8203;32056](https://github.com/helm/helm/issues/32056)) [`c2f1b23`](https://github.com/helm/helm/commit/c2f1b238a114d6d7a85b37f80fc6975bd48e4c09) (Terry Howe)
- fix(engine): add debug logging when lookup returns empty ([#&#8203;32205](https://github.com/helm/helm/issues/32205)) [`7058f84`](https://github.com/helm/helm/commit/7058f841af78112f81098e3f434f90d30c43b4fd) (Ogulcan Aydogan)
- chore(deps): bump oras.land/oras-go/v2 from 2.6.0 to 2.6.1 [`74c1702`](https://github.com/helm/helm/commit/74c1702157722e44f72c4a731c652c9e6ed58f83) (dependabot\[bot])
- chore(deps): bump golang.org/x/crypto from 0.52.0 to 0.53.0 [`33b4071`](https://github.com/helm/helm/commit/33b40718860fcb563ef34d0a4af2a1e565fdd108) (dependabot\[bot])
- chore(deps): bump golang.org/x/term from 0.43.0 to 0.44.0 [`1019146`](https://github.com/helm/helm/commit/1019146bb36fde225ee93fdb173d12c91d96b834) (dependabot\[bot])
- chore(deps): bump golang.org/x/text from 0.37.0 to 0.38.0 [`7f855df`](https://github.com/helm/helm/commit/7f855dfe8a1176d41808451aa0e8ab7b11664f03) (dependabot\[bot])
- chore(deps): bump github/codeql-action from 4.36.1 to 4.36.2 [`c603c50`](https://github.com/helm/helm/commit/c603c50aa654b23c46c7e248cdf5cd016f0a3fa8) (dependabot\[bot])
- chore(deps): bump github/codeql-action from 4.36.0 to 4.36.1 [`f8abbfd`](https://github.com/helm/helm/commit/f8abbfd7d4ab7d9cd883fab5d24c8175eaec56b4) (dependabot\[bot])
- chore(deps): bump github.com/tetratelabs/wazero from 1.11.0 to 1.12.0 [`3aa1b74`](https://github.com/helm/helm/commit/3aa1b742b9228219378ce3d1b978d8d9e30547cd) (dependabot\[bot])
- Fix empty and len testifylint violations across test files [`488c4a8`](https://github.com/helm/helm/commit/488c4a805debe0fc1b2777fa1823e079e79a5869) (Matthieu MOREL)
- lower resync period [`6dc1c1c`](https://github.com/helm/helm/commit/6dc1c1ccf8066b06f5e30c5bf1d2cdd2924c8c43) (Austin Abro)
- chore(deps): bump golang.org/x/crypto from 0.51.0 to 0.52.0 [`7510b83`](https://github.com/helm/helm/commit/7510b832149ee739b3ace110f8238e1ffd922cca) (dependabot\[bot])
- ci: enable bidichk linter to prevent invisible Unicode characters [`e679ec9`](https://github.com/helm/helm/commit/e679ec9f041f9fa484f8539efd4b5e665526b883) (Arnav Nagzirkar)
- fix(deps): bump golang.org/x/net to v0.55.0 to address GO-2026-5026 [`54ae27f`](https://github.com/helm/helm/commit/54ae27fd841f33fd979476b1c378fe58fe7ff52f) (Terry Howe)
- chore(deps): bump golangci/golangci-lint-action from 9.2.0 to 9.2.1 [`dbb3e35`](https://github.com/helm/helm/commit/dbb3e353372f6e4abca9155c44d8b9a5f1e97626) (dependabot\[bot])
- chore(deps): bump github/codeql-action from 4.35.5 to 4.36.0 [`60665e9`](https://github.com/helm/helm/commit/60665e9035ccab375780ef77934bde2ffa674448) (dependabot\[bot])
- docs: update version status for v4 stable release [`442e146`](https://github.com/helm/helm/commit/442e1460b9ec4450a7c12d6b6a59848e7b16d9d1) (Benoit Tigeot)
- chore(deps): bump actions/stale from 10.2.0 to 10.3.0 [`ace245b`](https://github.com/helm/helm/commit/ace245b8273e23c9f12993befa535a19ab1bc172) (dependabot\[bot])
- fix(provenance): check error return in Digest [`e095e69`](https://github.com/helm/helm/commit/e095e690a8b3c31b6dbcb9af02f870cc41fbf18b) (Sebastien Tardif)
- internal/plugin: remove zero-width spaces from plugin name comment [`979e68f`](https://github.com/helm/helm/commit/979e68fbbd5a932c67b756884880d7641f268632) (Aleksei Sviridkin)
- Renamed flag from show-rollback to show-rollback-revision [`d097d88`](https://github.com/helm/helm/commit/d097d882d473b42c7460d0be674138a3b52c08da) (MrJack)
- fix: skip non-Pod test hooks in GetPodLogs [`1a1ec6e`](https://github.com/helm/helm/commit/1a1ec6e3cc052f1358ff668eeb439acd3f8e60c1) (Gregory Man)
- fix(upstream): upgrade to cli-utils 1.2.1, controller-runtime 0.24.1 and k8s 1.36.1 [`378ceac`](https://github.com/helm/helm/commit/378ceacd9ce239e5b3de1e7ce7c55cf18e16f69b) (Matheus Pimenta)
- chore(deps): bump github.com/fluxcd/cli-utils from 1.2.0 to 1.2.1 [`b5a9299`](https://github.com/helm/helm/commit/b5a9299eecefe45da13a01188cabac6af4c336d0) (dependabot\[bot])
- chore(deps): bump github/codeql-action from 4.35.4 to 4.35.5 [`f772ffe`](https://github.com/helm/helm/commit/f772ffedc6154f82bc0ac680f9ffa46054112ac0) (dependabot\[bot])
- fix(repo): use structured slog args in index.go [`ea2343e`](https://github.com/helm/helm/commit/ea2343ebeaf7b4b6b115fd1c7b34a159d6a573ff) (Sebastien Tardif)
- docs: fix 'than'->'that' typo in deprecatedAPIError godoc [`2032ec5`](https://github.com/helm/helm/commit/2032ec5cbaf168de0fadc59959319e4b580ff72e) (Kai Tanaka)
- refactor: use slices.Backward to simplify the code [`432fc8a`](https://github.com/helm/helm/commit/432fc8a21724cc75e0cd8ec8fd754d2bde42c15f) (box4wangjing)
- Potential fix for pull request finding [`53d5f13`](https://github.com/helm/helm/commit/53d5f13f46f7dd555be8bd90616abdc77d470000) (Sumit Solanki)
- fix(downloader): order DiskCache.Get checks for overlayfs empty dirs [`6620fec`](https://github.com/helm/helm/commit/6620fec5d19f6c86425501ee64f8cb8a8fb3fa3e) (Sumit Solanki)
- chore(deps): bump golang.org/x/crypto from 0.50.0 to 0.51.0 [`2cc6925`](https://github.com/helm/helm/commit/2cc69251d81ad94e9e0edbea6c31dedf4e2c25d4) (dependabot\[bot])
- chore(deps): bump github/codeql-action from 4.35.3 to 4.35.4 [`d9b2716`](https://github.com/helm/helm/commit/d9b2716be5fbb3309c3176b0c887d91ffb16c048) (dependabot\[bot])
- Bump to version v4.2 ([#&#8203;32102](https://github.com/helm/helm/issues/32102)) [`19b3656`](https://github.com/helm/helm/commit/19b3656306829cae166f484feb4a1319f47844c0) (George Jenkins)
- Fix lint errors [`03a65a7`](https://github.com/helm/helm/commit/03a65a71f7397620315747ecac4ba60b73f63623) (Evans Mungai)
- fix: address Copilot review on ownership-verified uninstall [`0077130`](https://github.com/helm/helm/commit/007713087bd4f381bb8b74f66f35af9e3dafa376) (Evans Mungai)
- Potential fix for pull request finding [`9728c5a`](https://github.com/helm/helm/commit/9728c5af31c7039e9806037c4e59e46eeb43d79c) (Evans Mungai)
- fix: address review feedback [`922558f`](https://github.com/helm/helm/commit/922558fc1a3b3f2c2b7e8ad0f32bd5bcd46ca70e) (Sebastien Tardif)
- fix: fetch logs from all containers in test pods [`854f7f6`](https://github.com/helm/helm/commit/854f7f6b7217dcfe135df9e4652517d3ec9c3913) (Sebastien Tardif)
- fix(registry): remove pre-Go-1.20 transport cloner fallback [`73f71bc`](https://github.com/helm/helm/commit/73f71bceae2674d41fb2f082ee4fa5a842b613cc) (Ogulcan Aydogan)
- testifylint: enable error-is-as and error-nil rules [`f8ba28b`](https://github.com/helm/helm/commit/f8ba28bb17f9254bc2c1b6409b24c16a59934a9c) (Matthieu MOREL)
- fix(kube): always propagate context.Canceled in WaitForDelete [`5e09ee7`](https://github.com/helm/helm/commit/5e09ee78ee5861b857a3526a2fd1ddf2f73950e2) (Terry Howe)
- fix(kube): prevent spurious early exit in WaitForDelete during informer sync [`4e24ee4`](https://github.com/helm/helm/commit/4e24ee41a436889a2542a008eaa0ecab8332a1eb) (Terry Howe)
- fix(version): avoid false range detection on prerelease x/X [`740174a`](https://github.com/helm/helm/commit/740174a2b12074f7ca506ff330a918a4ff335c39) (Benoit Tigeot)
- fix(version): version range || can has no space [`b79d7f1`](https://github.com/helm/helm/commit/b79d7f18813796f101f66eff6c513ded25edf0ad) (Benoit Tigeot)
- feat: report in debug the version we select with version range arg [`bf78b87`](https://github.com/helm/helm/commit/bf78b876c74ee4359a6cebb54e0b97183cdfe129) (Benoit Tigeot)
- fix: prevent warning when using version range constraints [`1e145ee`](https://github.com/helm/helm/commit/1e145ee2b243ef97bce0622cf55da8aa17ebb65f) (Benoit Tigeot)
- Add duration functions [`722dd3e`](https://github.com/helm/helm/commit/722dd3e3a82b06fbda60ebf24edc653e7b74e3f9) (Jorge Rocamora)
- chore: fix deprecatedComment issues from gocritic [`83a0138`](https://github.com/helm/helm/commit/83a0138172e22f5efb7d9852b3ed0fb5fc8117b2) (Matthieu MOREL)
- chore: enable errorlint linter [`af31a67`](https://github.com/helm/helm/commit/af31a679244b584317fd8053aee498c4d5ec301c) (Matthieu MOREL)
- chore: fix whitespace linter [`1e0f702`](https://github.com/helm/helm/commit/1e0f702f00d5fd36c9de9448e3271787bc588273) (Matthieu MOREL)
- fix: address Copilot review feedback on rollback revision PR [`6927cde`](https://github.com/helm/helm/commit/6927cde3f98d9e5f248418805e40c7408e629746) (MrJack)
- feat(history): add --show-rollback flag for opt-in rollback column [`e889cff`](https://github.com/helm/helm/commit/e889cff0896d842c7e1854729611ac520a925d0b) (MrJack)
- Update pkg/cmd/testdata/output/history-with-rollback.txt [`681ccb1`](https://github.com/helm/helm/commit/681ccb19a68dab98b75e407ba38b37c45ee9c5d1) (MrJack)
- Update pkg/cmd/history\_test.go [`0737e43`](https://github.com/helm/helm/commit/0737e438aae04fca872b66f185b0f2aab8bd0d86) (MrJack)
- Added missing pkg/cmd/testdata/output files [`d52b489`](https://github.com/helm/helm/commit/d52b489459d51d67d9db877f169bd09273b6cd6c) (MrJack)
- feat(history): add rollback revision column to helm history output [`300f71b`](https://github.com/helm/helm/commit/300f71b1ebb1b383241a1806a813c6f30a8ff382) (MrJack)
- Add ownership verification to uninstall action [`f552950`](https://github.com/helm/helm/commit/f552950b05066d4d6a9d6cf9a91c26656f4a90fc) (Evans Mungai)
- Additional logging for ownership verification in dry-run mode [`6d5b5aa`](https://github.com/helm/helm/commit/6d5b5aab32be039f8f56b0c497a7f4af28ce21f0) (Evans Mungai)
- feat: add ownership verification before deleting resources during uninstall [`906f87c`](https://github.com/helm/helm/commit/906f87ce1d6d7a46bc68601c1217623e40b78877) (Evans Mungai)

</details>

---

### Configuration

📅 **Schedule**: (in timezone Europe/London)

- Branch creation
  - At any time (no schedule defined)
- Automerge
  - At any time (no schedule defined)

🚦 **Automerge**: Disabled by config. Please merge this manually once you are satisfied.

♻ **Rebasing**: Whenever PR becomes conflicted, or you tick the rebase/retry checkbox.

🔕 **Ignore**: Close this PR and you won't be reminded about this update again.

---

 - [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check this box

---

This PR has been generated by [Mend Renovate CLI](https://github.com/renovatebot/renovate).
<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiI0NC43NC4wIiwidXBkYXRlZEluVmVyIjoiNDQuNzkuMiIsInRhcmdldEJyYW5jaCI6Im1haW4iLCJsYWJlbHMiOlsidHlwZS9taW5vciJdfQ==-->

Reviewed-on: https://git.hayden.moe/hayden/phoebe/pulls/541
kirmanak pushed a commit to jumi-ai/jumi that referenced this pull request Sep 13, 2026
This PR contains the following updates:

| Package | Update | Change |
|---|---|---|
| [helm/helm](https://github.com/helm/helm) | minor | `4.2.4` → `4.3.0` |

---

### Release Notes

<details>
<summary>helm/helm (helm/helm)</summary>

### [`v4.3.0`](https://github.com/helm/helm/releases/tag/v4.3.0): Helm v4.3.0

[Compare Source](https://github.com/helm/helm/compare/v4.2.4...v4.3.0-rc.1)

Helm v4.3.0 is a feature release. Users are encouraged to upgrade for the best experience.

The community keeps growing, and we'd love to see you there!

- Join the discussion in [Kubernetes Slack](https://kubernetes.slack.com):
  - for questions and just to hang out
  - for discussing PRs, code, and bugs
- Hang out at the Public Developer Call: Thursday, 9:30 Pacific via [Zoom](https://zoom-lfx.platform.linuxfoundation.org/meeting/91295593969?password=17825db5-c698-44cc-9f00-ef1f61f5d3fb)
- Test, debug, and contribute charts: [ArtifactHub/packages](https://artifacthub.io/packages/search?kind=0)

#### Notable Changes

- feat: Add duration functions by [@&#8203;aeroyorch](https://github.com/aeroyorch) in [#&#8203;31695](https://github.com/helm/helm/pull/31695)
- feat(engine): add debug logging when lookup returns empty by [@&#8203;ogulcanaydogan](https://github.com/ogulcanaydogan) in [#&#8203;32205](https://github.com/helm/helm/pull/32205)
- feat: add ownership verification before deleting resources during uni… by [@&#8203;banjoh](https://github.com/banjoh) in [#&#8203;31584](https://github.com/helm/helm/pull/31584)
- feat: honor SOURCE\_DATE\_EPOCH for chart archives by [@&#8203;lohitkolluri](https://github.com/lohitkolluri) in [#&#8203;32162](https://github.com/helm/helm/pull/32162)
- feat(rollback): add --description flag to provide rollback reason by [@&#8203;biagiopietro](https://github.com/biagiopietro) in [#&#8203;31580](https://github.com/helm/helm/pull/31580)
- fix (internal/plugin): remove zero-width spaces from plugin name comment by [@&#8203;lexfrei](https://github.com/lexfrei) in [#&#8203;32134](https://github.com/helm/helm/pull/32134)
- fix(loader): do not drop values files ending at a 4096-byte boundary by [@&#8203;locker95](https://github.com/locker95) in [#&#8203;32525](https://github.com/helm/helm/pull/32525)
- fix(chart): normalize StampModTimes timestamp to UTC/truncate + Chart.lock reproducibility test by [@&#8203;Mentigen](https://github.com/Mentigen) in [#&#8203;32485](https://github.com/helm/helm/pull/32485)
- fix(provenance): support GnuPG keybox (pubring.kbx) keyrings by [@&#8203;ruslan-shaydullin](https://github.com/ruslan-shaydullin) in [#&#8203;32281](https://github.com/helm/helm/pull/32281)
- fix(template): regression - route registry messages to stderr in template and show by [@&#8203;amarkdotdev](https://github.com/amarkdotdev) in [#&#8203;32217](https://github.com/helm/helm/pull/32217)
- refactor: lower resync period from one hour to 3 minutes by [@&#8203;AustinAbro321](https://github.com/AustinAbro321) in [#&#8203;31944](https://github.com/helm/helm/pull/31944)
- perf: enable concurrent status computation to prevent multi-minute delays by [@&#8203;mapleeit](https://github.com/mapleeit) in [#&#8203;32043](https://github.com/helm/helm/pull/32043)
- chore(deps): bump the k8s-io group to 0.37.0 - [#&#8203;32598](https://github.com/helm/helm/issues/32598)

#### Installation and Upgrading

Download Helm v4.3.0. The common platform binaries are here:

- [MacOS amd64](https://get.helm.sh/helm-v4.3.0-darwin-amd64.tar.gz) ([checksum](https://get.helm.sh/helm-v4.3.0-darwin-amd64.tar.gz.sha256sum) / 347a784877e0e20eac865e8d1c36a80f6bb0861d6f29abd34defb6570ef95d92)
- [MacOS arm64](https://get.helm.sh/helm-v4.3.0-darwin-arm64.tar.gz) ([checksum](https://get.helm.sh/helm-v4.3.0-darwin-arm64.tar.gz.sha256sum) / d3870437e1e95b67f8edbde964156c84a26503f560821d40c542441658934fba)
- [Linux amd64](https://get.helm.sh/helm-v4.3.0-linux-amd64.tar.gz) ([checksum](https://get.helm.sh/helm-v4.3.0-linux-amd64.tar.gz.sha256sum) / 86584a54def73570558f66f5111cc53dfed56689637ae32c1201205d494f54fb)
- [Linux arm](https://get.helm.sh/helm-v4.3.0-linux-arm.tar.gz) ([checksum](https://get.helm.sh/helm-v4.3.0-linux-arm.tar.gz.sha256sum) / 467c353e4a1ab57412dd00c6bfb1a6a2ab4a57d775506f8b38c58502c0ba6861)
- [Linux arm64](https://get.helm.sh/helm-v4.3.0-linux-arm64.tar.gz) ([checksum](https://get.helm.sh/helm-v4.3.0-linux-arm64.tar.gz.sha256sum) / 31c5794dd55c66a51e6b7d2e2ac7a114ae8b1de41ff1d9ba51748ac973b06a08)
- [Linux i386](https://get.helm.sh/helm-v4.3.0-linux-386.tar.gz) ([checksum](https://get.helm.sh/helm-v4.3.0-linux-386.tar.gz.sha256sum) / e969a9492ac128097069aef7eb63be3b2504a20b5377a240b4c5c9bfc4b51575)
- [Linux loong64](https://get.helm.sh/helm-v4.3.0-linux-loong64.tar.gz) ([checksum](https://get.helm.sh/helm-v4.3.0-linux-loong64.tar.gz.sha256sum) / 4ffe485ef474d722699794851642e1c7037e4776233e77637c649f69f3e9a4ce)
- [Linux ppc64le](https://get.helm.sh/helm-v4.3.0-linux-ppc64le.tar.gz) ([checksum](https://get.helm.sh/helm-v4.3.0-linux-ppc64le.tar.gz.sha256sum) / 5ff7d5ea6f396c15f3cfda3fb8ecb0ecb1b11bc283785adeb55eefb2c62e0bda)
- [Linux s390x](https://get.helm.sh/helm-v4.3.0-linux-s390x.tar.gz) ([checksum](https://get.helm.sh/helm-v4.3.0-linux-s390x.tar.gz.sha256sum) / ab637a6a1c3d457b9975726c100d74e484e579d5462c4fd2e3bfcfa97df57cd7)
- [Linux riscv64](https://get.helm.sh/helm-v4.3.0-linux-riscv64.tar.gz) ([checksum](https://get.helm.sh/helm-v4.3.0-linux-riscv64.tar.gz.sha256sum) / 5359f5544478de80de2dfd60bdc5e0c22f26255b3c44335483e0f9bd3ba6ec58)
- [Windows amd64](https://get.helm.sh/helm-v4.3.0-windows-amd64.zip) ([checksum](https://get.helm.sh/helm-v4.3.0-windows-amd64.zip.sha256sum) / 304ea163cce4d9ad14e189c01846c6a34de9cfdfe48536ae54b2e8ba7884e67c)
- [Windows arm64](https://get.helm.sh/helm-v4.3.0-windows-arm64.zip) ([checksum](https://get.helm.sh/helm-v4.3.0-windows-arm64.zip.sha256sum) / 4a9eefa30d26eb73900a9a0f16e97eae678582172204db60cbd454c68acea246)

This release was signed with `208D D36E D5BB 3745 A167 43A4 C7C6 FBB5 B91C 1155` and can be found at [@&#8203;scottrigby](https://github.com/scottrigby) [keybase account](https://keybase.io/r6by). Please use the attached signatures for verifying this release using `gpg`.

The [Quickstart Guide](https://helm.sh/docs/intro/quickstart/) will get you going from there. For **upgrade instructions** or detailed installation notes, check the [install guide](https://helm.sh/docs/intro/install/). You can also use a [script to install](https://raw.githubusercontent.com/helm/helm/main/scripts/get-helm-4) on any system with `bash`.

#### What's Next

- 4.3.1 and 3.22.1 are the next patch releases scheduled for October 14, 2026
- 4.4.0 is the next minor release scheduled for January 13, 2027. There will be no further Helm 3 minor releases (see <https://helm.sh/blog/helm-v3-end-of-life>)

#### Changelog

- chore(deps): bump google.golang.org/grpc from 1.82.1 to 1.83.1 [`bec5b06`](https://github.com/helm/helm/commit/bec5b06ed841fe5269972d864d5177944fd5970f) (dependabot\[bot])
- chore(deps): bump the k8s-io group across 1 directory with 6 updates [`d0d42e7`](https://github.com/helm/helm/commit/d0d42e7dd2b3948281300e5ac2d8d3a74c2a7c8f) (dependabot\[bot])
- bump version to 4.3 ([#&#8203;32605](https://github.com/helm/helm/issues/32605)) [`7328f42`](https://github.com/helm/helm/commit/7328f42a01d7fb96bd41b8fc70abc1fd7258cdb5) (Scott Rigby)
- chore: Fix independent-merge lint issues [`ca6681c`](https://github.com/helm/helm/commit/ca6681ca55d39913b880871b6aa259efdf15e0b9) (George Jenkins)
- refactor(repo): Use byte buffer to build index file ([#&#8203;32579](https://github.com/helm/helm/issues/32579)) [`37752b7`](https://github.com/helm/helm/commit/37752b70b2f9c49dc6ac2f01e2a0aca1f32f0529) (Tom Wieczorek)
- chore: fix gofumpt extra-rules ([#&#8203;32486](https://github.com/helm/helm/issues/32486)) [`28e64bd`](https://github.com/helm/helm/commit/28e64bd2ddb5412bff6d94d62b0114bb53f40931) (Matthieu MOREL)
- Remove deprecated `internal/chart/v3/` code ([#&#8203;32365](https://github.com/helm/helm/issues/32365)) [`4dfbaa4`](https://github.com/helm/helm/commit/4dfbaa40c6cd67e1df345889113a7879ec66136c) (George Jenkins)
- fix(template): regression - route registry messages to stderr in template and show ([#&#8203;32217](https://github.com/helm/helm/issues/32217)) [`9a3c040`](https://github.com/helm/helm/commit/9a3c040369361678aef1ab251e83a38b455f5159) (Aaron Mark)
- refactor: remove per-file decompression size limit ([#&#8203;31748](https://github.com/helm/helm/issues/31748)) [`11e2010`](https://github.com/helm/helm/commit/11e2010aebedf9f495a5c295635df096de7252f7) (Benoit Tigeot)
- Updating the Go version [`b5b498b`](https://github.com/helm/helm/commit/b5b498b77403f93de037cba383f424953e87eaaa) (Matt Farina)
- Updating the Go version [`6d1f67c`](https://github.com/helm/helm/commit/6d1f67cf6a9918ebe6c41f05096b6fa3fdde1b5b) (Matt Farina)
- chore(deps): bump the github-actions group across 1 directory with 4 updates ([#&#8203;32574](https://github.com/helm/helm/issues/32574)) [`0f4decb`](https://github.com/helm/helm/commit/0f4decb96b1c4ac45981f495d45eef6cc82e3192) (dependabot\[bot])
- chore(deps): bump the k8s-io group with 7 updates ([#&#8203;32572](https://github.com/helm/helm/issues/32572)) [`fb19300`](https://github.com/helm/helm/commit/fb1930096eacec13ac911b8499905fc94eb09a8f) (dependabot\[bot])
- fix: correct 'doest not match' in readiness debug logs [`6888b0a`](https://github.com/helm/helm/commit/6888b0a280bb6fbb847c85d2a473c425b6a0862d) (MsfPablo)
- fix(provenance): support GnuPG keybox (pubring.kbx) keyrings ([#&#8203;32281](https://github.com/helm/helm/issues/32281)) [`67d54fd`](https://github.com/helm/helm/commit/67d54fd8808ab47e93dad40f4238d5fe28d1efd0) (Ruslan Shaydullin)
- chore(deps): bump github.com/stretchr/testify from 1.12.0 to 1.12.1 ([#&#8203;32562](https://github.com/helm/helm/issues/32562)) [`e9b85e4`](https://github.com/helm/helm/commit/e9b85e4de16ad45805843fb121748018cf89094b) (dependabot\[bot])
- chore(deps): bump the github-actions group across 1 directory with 4 updates ([#&#8203;32556](https://github.com/helm/helm/issues/32556)) [`c000a40`](https://github.com/helm/helm/commit/c000a408b81266d328db64aea2ff9e2e70844790) (dependabot\[bot])
- chore(deps): bump github.com/stretchr/testify from 1.11.1 to 1.12.0 ([#&#8203;32555](https://github.com/helm/helm/issues/32555)) [`bafdcde`](https://github.com/helm/helm/commit/bafdcde8ecd83119afd7f98363b364138d3b35dc) (dependabot\[bot])
- chore(deps): bump golang.org/x/crypto from 0.54.0 to 0.55.0 ([#&#8203;32545](https://github.com/helm/helm/issues/32545)) [`2a29f17`](https://github.com/helm/helm/commit/2a29f1770b62844b27197d2507377361d45ad7c0) (dependabot\[bot])
- chore(deps): bump golang.org/x/text from 0.40.0 to 0.41.0 ([#&#8203;32543](https://github.com/helm/helm/issues/32543)) [`edb94f8`](https://github.com/helm/helm/commit/edb94f897d1e0ec3335fb7268f07e0fd2666fbb8) (dependabot\[bot])
- test(loader): cover 8192-byte EOF boundary for LoadValues [`fd4ed49`](https://github.com/helm/helm/commit/fd4ed4952b5f9f54344a0c014f7acd7885bd60c6) (Dean Chen)
- fix(loader): do not drop values files ending at a 4096-byte boundary [`601445e`](https://github.com/helm/helm/commit/601445e88cf1fe66b2885c793d564030aad1d707) (Dean Chen)
- chore(deps): bump the github-actions group with 4 updates ([#&#8203;32523](https://github.com/helm/helm/issues/32523)) [`f3d68cd`](https://github.com/helm/helm/commit/f3d68cdbea3076a0283cbd1e3ec44a409ad48a43) (dependabot\[bot])
- fix: bump go.opentelemetry.io/otel to v1.44.0 for GO-2026-5158 ([#&#8203;32521](https://github.com/helm/helm/issues/32521)) [`a0c2f6d`](https://github.com/helm/helm/commit/a0c2f6dade5180fdb08bcc5debef56357cd586ab) (Terry Howe)
- chore(deps): bump github.com/santhosh-tekuri/jsonschema/v6 ([#&#8203;32514](https://github.com/helm/helm/issues/32514)) [`f8a308c`](https://github.com/helm/helm/commit/f8a308cd470bc1f087b3f4915ba775af18c5ffab) (dependabot\[bot])
- chore(deps): bump the github-actions group with 4 updates [`47eb219`](https://github.com/helm/helm/commit/47eb219a71bac4638a9b9db916a5d8c415c553bc) (dependabot\[bot])
- chore(deps): bump the github-actions group with 4 updates ([#&#8203;32508](https://github.com/helm/helm/issues/32508)) [`ae877c8`](https://github.com/helm/helm/commit/ae877c8bfb943d2cc1aa10b34f0c4fada55e6f56) (dependabot\[bot])
- test(action): poll for the interrupted install goroutine instead of a zero-margin sleep ([#&#8203;32328](https://github.com/helm/helm/issues/32328)) [`a8ab76e`](https://github.com/helm/helm/commit/a8ab76e86f11e2ece5a3d0262313140e21db249b) (Nikolaus Schuetz)
- chore(deps): bump actions/stale in the github-actions group ([#&#8203;32487](https://github.com/helm/helm/issues/32487)) [`ac1c687`](https://github.com/helm/helm/commit/ac1c68746f72e5bbbe5b7e5a052629aab7e5ab61) (dependabot\[bot])
- test(package): fix errorlint + exact path match in lock test [`e923167`](https://github.com/helm/helm/commit/e92316751375bafd4621232bb39a1238a22e91c4) (Ilya Kiselev)
- fix(chart): normalize StampModTimes timestamp + Chart.lock test [`3c3be92`](https://github.com/helm/helm/commit/3c3be926aaea573cf94931877e8072aefb231b60) (Ilya Kiselev)
- chore(deps): bump go.yaml.in/yaml/v3 from 3.0.4 to 3.0.5 [`ce27485`](https://github.com/helm/helm/commit/ce27485634fcbd54be8fc8d99a5e4799456420c9) (dependabot\[bot])
- fix(scripts): clarify cache-busting behavior [`bc0114c`](https://github.com/helm/helm/commit/bc0114c70841e2a05c95e53e20358fb761dbfb2e) (Solomon Wakhungu)
- chore: fix gofumpt issues [`24bbb46`](https://github.com/helm/helm/commit/24bbb46c62a54000394ce77c4e3fda17d5566ffc) (Matthieu MOREL)
- fix(scripts): address cache-busting review feedback [`bbaf420`](https://github.com/helm/helm/commit/bbaf420a101379dad4f8452129cf26f2fff7e536) (Solomon Wakhungu)
- Make golangci-lint happy [`f3edb83`](https://github.com/helm/helm/commit/f3edb83df48c505878ffd3ebb89ef6a809e14008) (MrJack)
- Added missing import [`94a3315`](https://github.com/helm/helm/commit/94a3315f4d699c6bb4140550d4c98b46bb4382d2) (MrJack)
- Readded "unicode/utf8" [`500f02d`](https://github.com/helm/helm/commit/500f02d597628d8ca7be8b530edcbedbf397b676) (MrJack)
- Potential fix for pull request finding [`f1ede7c`](https://github.com/helm/helm/commit/f1ede7c9c114c745da2f5c6cef8d27e1eb342498) (MrJack)
- Apply suggestions from code review [`4fcc4e4`](https://github.com/helm/helm/commit/4fcc4e4b3db363654f3dd5240211b195e309970e) (MrJack)
- refactor(rollback): validate description length before cluster reachability check [`91520a7`](https://github.com/helm/helm/commit/91520a78063582ab8265d9364815665f688deebc) (MrJack)
- refactor(test): reuse existing rollback.txt golden file [`e73dfab`](https://github.com/helm/helm/commit/e73dfab5fb47c9f3a0f24cb3f3a7a4aa8b65143e) (MrJack)
- Removed extra space in rollback-with-description.txt [`b177a8e`](https://github.com/helm/helm/commit/b177a8e9060720e91c402cdba2224c6d58789fa3) (MrJack)
- Enhance rune count in pkg/cmd/rollback.go and pkg/action/rollback.go [`a92611c`](https://github.com/helm/helm/commit/a92611c20241be8e7dc32f9b229afd2a722a06f8) (MrJack)
- Use rune count to count properly multi-byte UTF-8 characters [`8a34f3b`](https://github.com/helm/helm/commit/8a34f3b7b4d9ffa4e82c7893eb3d8572fd464198) (MrJack)
- Enhanced rollback description length [`cb91040`](https://github.com/helm/helm/commit/cb91040c447723a7338a513a6d1604e5daaa1e0b) (MrJack)
- Changed if construction [`e69e424`](https://github.com/helm/helm/commit/e69e424ab1917f0d53eafe63c408b5280b39624a) (MrJack)
- Set 256 as limit for maxDescriptionLength. 256 comes from MAX value for key and value [`b606955`](https://github.com/helm/helm/commit/b606955f095408270914c47eac8414b9061bfb49) (MrJack)
- feat(rollback): add --description flag to provide rollback reason [`f8180e6`](https://github.com/helm/helm/commit/f8180e6de473bb4b1008b76aa2ac63b8bcd104c0) (MrJack)
- Update resource\_test.go [`622f16b`](https://github.com/helm/helm/commit/622f16b37fdb1f1915aece9436165dc53c26b3c5) (Matthieu MOREL)
- Update labels\_test.go [`61d99a8`](https://github.com/helm/helm/commit/61d99a8bdbc90219c474c96e11790ab6a90cde61) (Matthieu MOREL)
- Update chartrepo\_test.go [`532eabf`](https://github.com/helm/helm/commit/532eabf88afa2b119f90ef82d1bf309923cbbb78) (Matthieu MOREL)
- Update show\_test.go [`bfca068`](https://github.com/helm/helm/commit/bfca0688b1a44b1cf7ae37ac5f64792a8dffe7f1) (Matthieu MOREL)
- Update rollback\_test.go [`b59dfd3`](https://github.com/helm/helm/commit/b59dfd39015311d94c04541ec5b91959c6b4b6d3) (Matthieu MOREL)
- Potential fix for pull request finding [`a27f3a0`](https://github.com/helm/helm/commit/a27f3a062027d8b459eed2186076fb9384b82f38) (Matthieu MOREL)
- chore(pkg): refactor: finer tests conversions to testify part 1 [`828d01a`](https://github.com/helm/helm/commit/828d01a8786162987482408b7803ceb3f3c176ac) (Matthieu MOREL)
- chore(pkg): refactor: finer tests conversions to testify part 3 [`9a2be11`](https://github.com/helm/helm/commit/9a2be11e6f1af0c89dc0988b88fd339751baa44c) (Matthieu MOREL)
- chore(pkg): refactor: finer tests conversions to testify part 2 [`4d9c03f`](https://github.com/helm/helm/commit/4d9c03f51c30f851a03676a1315f492de10210e6) (Matthieu MOREL)
- chore(internal): refactor: finer tests conversions to testify part 1 [`5142ca8`](https://github.com/helm/helm/commit/5142ca8ddca79a19c8529508c77ab4b27cb23a8f) (Matthieu MOREL)
- chore(deps): bump the k8s-io group across 1 directory with 7 updates ([#&#8203;32459](https://github.com/helm/helm/issues/32459)) [`8f74dce`](https://github.com/helm/helm/commit/8f74dce6ba8d7264ce75f52507616720865e712d) (dependabot\[bot])
- chore(deps): bump ossf/scorecard-action in the github-actions group ([#&#8203;32458](https://github.com/helm/helm/issues/32458)) [`050d3e9`](https://github.com/helm/helm/commit/050d3e99b9dc8796ced4b99cb272cba91c43055f) (dependabot\[bot])
- chore(deps): bump the github-actions group with 4 updates [`ea7c838`](https://github.com/helm/helm/commit/ea7c838e0875449a4b2fe141a961aa29f1435a5d) (dependabot\[bot])
- chore(deps): bump google.golang.org/grpc from 1.80.0 to 1.82.1 [`fe3f98b`](https://github.com/helm/helm/commit/fe3f98b5641fe3a0a9fa2575df8698136c2a0029) (dependabot\[bot])
- chore(deps): bump actions/labeler from 6.2.0 to 7.0.0 ([#&#8203;32441](https://github.com/helm/helm/issues/32441)) [`ed246e2`](https://github.com/helm/helm/commit/ed246e29f7940fffa4631aa67cfef66c5722d4a7) (dependabot\[bot])
- chore(deps): bump github/codeql-action/upload-sarif ([#&#8203;32440](https://github.com/helm/helm/issues/32440)) [`5223cea`](https://github.com/helm/helm/commit/5223ceacda672bdd72efe8995d4abd9327c6539c) (dependabot\[bot])
- chore(deps): bump github/codeql-action/autobuild from 4.37.1 to 4.37.2 [`a0f954e`](https://github.com/helm/helm/commit/a0f954e277702f87883d18760207b34ba3efbf80) (dependabot\[bot])
- chore(deps): bump github/codeql-action/init from 4.37.1 to 4.37.2 [`cdccef4`](https://github.com/helm/helm/commit/cdccef4818c06e4d1ee9521cfb9bcadc30c282e9) (dependabot\[bot])
- chore(deps): bump github/codeql-action/analyze from 4.37.1 to 4.37.2 [`065d3a6`](https://github.com/helm/helm/commit/065d3a6a3dcda016a9de88a9b32f0e9eedcf0876) (dependabot\[bot])
- chore: group github-actions dependabot updates [`cd4c5d3`](https://github.com/helm/helm/commit/cd4c5d3bfd7d19be9a3a01ba63a650cf044e1409) (Terry Howe)
- chore(pkg): refactor: convert tests to testify assert/require part 19 [`33c2839`](https://github.com/helm/helm/commit/33c28395695c53b579c1f94d3dfcadbe2ff2b862) (Matthieu MOREL)
- chore(pkg): refactor: convert tests to testify assert/require part 22 [`0b1aa55`](https://github.com/helm/helm/commit/0b1aa55cbb14ce3b7c805a6262e2159c4a70bf73) (Matthieu MOREL)
- chore(pkg): refactor: convert tests to testify assert/require part 21 [`a934b82`](https://github.com/helm/helm/commit/a934b827fa9569c8769c981b1d4847f72a4c1f94) (Matthieu MOREL)
- chore(pkg): refactor: convert tests to testify assert/require part 20 [`1d4665e`](https://github.com/helm/helm/commit/1d4665e54c28a41a5631c19f3bff14ef3d4e058f) (Matthieu MOREL)
- chore(pkg): refactor: convert tests to testify assert/require part 18 [`fb8a62b`](https://github.com/helm/helm/commit/fb8a62bf13cbc0ad78d0856678365b246b224997) (Matthieu MOREL)
- chore(pkg): refactor: convert tests to testify assert/require part 16 [`0fa9f7d`](https://github.com/helm/helm/commit/0fa9f7d427b99437e51dbb8ada21d19f93898652) (Matthieu MOREL)
- chore(pkg): refactor: convert tests to testify assert/require part 17 [`4073566`](https://github.com/helm/helm/commit/4073566e285d5bfaafaf0cec2b927fa037bfcb2a) (Matthieu MOREL)
- chore(pkg): refactor: convert tests to testify assert/require part 15 [`7173365`](https://github.com/helm/helm/commit/71733656a5c64307f85290bc9fe6480ad637a117) (Matthieu MOREL)
- chore(pkg): refactor: convert tests to testify assert/require part 14 [`dc66ee7`](https://github.com/helm/helm/commit/dc66ee7be786b1ac146a21fb2114b9678aaf25a4) (Matthieu MOREL)
- chore(pkg): refactor: convert tests to testify assert/require part 13 [`aae82bf`](https://github.com/helm/helm/commit/aae82bf97a4c02c70982c14118912c459db43ec9) (Matthieu MOREL)
- chore(pkg): refactor: convert tests to testify assert/require part 12 [`a3fa28a`](https://github.com/helm/helm/commit/a3fa28ae22934450389ab31343c0ca20321d302c) (Matthieu MOREL)
- chore(pkg): refactor: convert tests to testify assert/require part 11 [`dc3e3a5`](https://github.com/helm/helm/commit/dc3e3a5e7efadff49fd26eac511cf18801af0ebc) (Matthieu MOREL)
- chore(pkg): refactor: convert tests to testify assert/require part 10 [`2f5a33f`](https://github.com/helm/helm/commit/2f5a33fb77daca9ade910ed7fe557e3e85fd77f6) (Matthieu MOREL)
- chore(pkg): refactor: convert tests to testify assert/require part 9 [`13d1edc`](https://github.com/helm/helm/commit/13d1edc5f346e136b249d4c8232e83689f07c3b4) (Matthieu MOREL)
- chore(pkg): refactor: convert tests to testify assert/require part 8 [`e5f0e07`](https://github.com/helm/helm/commit/e5f0e07b96580305c3902eceb738cef230b44bec) (Matthieu MOREL)
- chore(pkg): refactor: convert tests to testify assert/require part 7 [`ca1767b`](https://github.com/helm/helm/commit/ca1767b81397e5ee3b3a5f7926590ddf1134c9c5) (Matthieu MOREL)
- chore(pkg): refactor: convert tests to testify assert/require part 2 [`0daa77f`](https://github.com/helm/helm/commit/0daa77fa9bffe2c8359bb079d3e978fe74a0b5a4) (Matthieu MOREL)
- chore(pkg): refactor: convert tests to testify assert/require part 1 [`d4ec8e9`](https://github.com/helm/helm/commit/d4ec8e9b87a002d48c2d7a8f3c145c9a324bfaef) (Matthieu MOREL)
- chore(pkg): refactor: convert tests to testify assert/require part 6 [`0844b3b`](https://github.com/helm/helm/commit/0844b3b8b513e1ae6787c44fc5cfd224bf86c573) (Matthieu MOREL)
- chore(pkg): refactor: convert tests to testify assert/require part 5 [`3ff05c8`](https://github.com/helm/helm/commit/3ff05c835ecb1bbf794089d309556dbc75778ef7) (Matthieu MOREL)
- chore(pkg): refactor: convert tests to testify assert/require part 4 [`658a8fa`](https://github.com/helm/helm/commit/658a8fac156a92a7462cc9aab98da796da6dc116) (Matthieu MOREL)
- chore(pkg): refactor: convert tests to testify assert/require part 3 [`df2d013`](https://github.com/helm/helm/commit/df2d013517b0a237ea8858677558db3129a92911) (Matthieu MOREL)
- chore(deps): bump actions/checkout from 7.0.0 to 7.0.1 ([#&#8203;32411](https://github.com/helm/helm/issues/32411)) [`8c7f3a1`](https://github.com/helm/helm/commit/8c7f3a14d2cbde663847641b1f4274d266e6f0f3) (dependabot\[bot])
- chore(internal): refactor: convert tests to testify assert/require part 4 ([#&#8203;32408](https://github.com/helm/helm/issues/32408)) [`6c45810`](https://github.com/helm/helm/commit/6c45810119937e8fcbbc4f0b7f56c32a40c52d87) (Matthieu MOREL)
- chore(internal): refactor: convert tests to testify assert/require part 3 [`668e7e5`](https://github.com/helm/helm/commit/668e7e580a01dbf66da0f620da6b980ee0cb4d80) (Matthieu MOREL)
- chore(internal): refactor: convert tests to testify assert/require part 5 [`f1d5979`](https://github.com/helm/helm/commit/f1d5979e7d8b9d1e36b3cf703d150e8078c2e16e) (Matthieu MOREL)
- chore(internal): refactor: convert tests to testify assert/require part 6 [`f3402c1`](https://github.com/helm/helm/commit/f3402c1cd69b84d278af5a30551e376d727d27c1) (Matthieu MOREL)
- chore(internal): refactor: convert tests to testify assert/require part 1 [`ba31ca0`](https://github.com/helm/helm/commit/ba31ca0c0b455541f05986e8dcb8a0554fa70dd2) (Matthieu MOREL)
- chore(internal): refactor: convert tests to testify assert/require part 2 [`615a299`](https://github.com/helm/helm/commit/615a29987660b11909f984887b47f7f608757d87) (Matthieu MOREL)
- fix: pass registry client to downloader.Manager in upgrade [`0604d8f`](https://github.com/helm/helm/commit/0604d8fb1ee8ea172604cb739c93ea8d5ad068c6) (Gates Wang)
- perf: enable concurrent status computation to prevent multi-minute delays ([#&#8203;32043](https://github.com/helm/helm/issues/32043)) [`3bcf965`](https://github.com/helm/helm/commit/3bcf965f997499c477436515e6ccf5d51ab82e5e) (Zhaofeng Miao)
- remove legacy import comments from remaining packages ([#&#8203;31933](https://github.com/helm/helm/issues/31933)) [`82be04d`](https://github.com/helm/helm/commit/82be04d7f2881f59b3a85483eb248417e1d18fc3) (Abhay Chaurasiya)
- Potential fix for pull request finding [`c2fda5a`](https://github.com/helm/helm/commit/c2fda5ac5835cd1eca44a29047c18edcde66e00f) (Terry Howe)
- fix: enhance error handling and improve test assertions ([#&#8203;32352](https://github.com/helm/helm/issues/32352)) [`a2b1a60`](https://github.com/helm/helm/commit/a2b1a60d51223254bd9c2f08cf3f411eb9d9fc58) (Matthieu MOREL)
- fix(scripts): add cache-busting to get-helm-3 version check [`5a30c7a`](https://github.com/helm/helm/commit/5a30c7ae8504218fd68d87c5a7d929d0a3bb3891) (Solomon Wakhungu)
- chore(deps): bump github/codeql-action init and analyze to 4.37.1 [`0563162`](https://github.com/helm/helm/commit/0563162dd95dcff0f7b1ac09e0c784ae21b72245) (Terry Howe)
- chore(deps): bump github/codeql-action/upload-sarif ([#&#8203;32378](https://github.com/helm/helm/issues/32378)) [`06b9586`](https://github.com/helm/helm/commit/06b95860dc2419062834a5e59921569676b45031) (dependabot\[bot])
- chore(deps): bump actions/setup-go from 6.5.0 to 7.0.0 ([#&#8203;32376](https://github.com/helm/helm/issues/32376)) [`a494169`](https://github.com/helm/helm/commit/a494169853d1e6f752eb838fedbb00d1a8593b66) (dependabot\[bot])
- chore(deps): bump github/codeql-action/autobuild from 4.37.0 to 4.37.1 [`eeb37ed`](https://github.com/helm/helm/commit/eeb37edfeafffdb562b97774f85a394332cf58dd) (dependabot\[bot])
- chore: Add AI Vendor specific paths to `.gitignore` [`8cd3a48`](https://github.com/helm/helm/commit/8cd3a48c34136f14fa6ba60554ef5ab0e12625be) (George Jenkins)
- ci: auto-label PRs targeting main with v4.x [`9f3c89a`](https://github.com/helm/helm/commit/9f3c89a4b50e99a46c23b6942b87b205bdd8c33f) (Benoit Tigeot)
- fix: 'gocritic: filepathJoin path seperator' lint error [`96a25ab`](https://github.com/helm/helm/commit/96a25ab4f86c2c78de2acfe45a69c0a40055aa3c) (George Jenkins)
- chore(internal): refactor: convert tests to testify assert/require part 3 [`caac755`](https://github.com/helm/helm/commit/caac755f199adf5ac4fbbc8c46a741d004ed7276) (Matthieu MOREL)
- feat: honor SOURCE\_DATE\_EPOCH for chart archives ([#&#8203;32162](https://github.com/helm/helm/issues/32162)) [`ad93b7d`](https://github.com/helm/helm/commit/ad93b7df635d032a71201206cc3490e76b83bef4) (Lohit Kolluri)
- Fix missing conflict retry with server-side apply ([#&#8203;32088](https://github.com/helm/helm/issues/32088)) [`aa1ae3a`](https://github.com/helm/helm/commit/aa1ae3a36017156817e89e59eee0e88af9fc6365) (Jakub Jaruszewski)
- chore: fix elseif and ifElseChain issues from gocritic ([#&#8203;32289](https://github.com/helm/helm/issues/32289)) [`a02a571`](https://github.com/helm/helm/commit/a02a5713deef0c0c1bf4359dcb0218a9c640224d) (Matthieu MOREL)
- chore(internal): refactor: convert tests to testify assert/require part 2 [`f280d9c`](https://github.com/helm/helm/commit/f280d9c1b5da4e2f25cac76b2fcce58bad35aae9) (Matthieu MOREL)
- chore(internal): refactor: convert tests to testify assert/require part 1 [`d72b28e`](https://github.com/helm/helm/commit/d72b28ebcbecf1c582e57f17c1272536b90513d1) (Matthieu MOREL)
- fix(ci): pin govulncheck-action to the v1.1.0 release ([#&#8203;32304](https://github.com/helm/helm/issues/32304)) [`68977ec`](https://github.com/helm/helm/commit/68977ec0b5a446286668170dd72bdf59695f8cd5) (秀吉)
- ci: track GitHub Actions updates on dev-v3 via Dependabot [`b963afa`](https://github.com/helm/helm/commit/b963afaddfe127620c70773e46b1d3a1f9c559e8) (Terry Howe)
- chore(deps): bump actions/stale from 10.3.0 to 10.4.0 ([#&#8203;32330](https://github.com/helm/helm/issues/32330)) [`fb53c00`](https://github.com/helm/helm/commit/fb53c00ae72c08cf6d64289efde3aaeeda6c42fc) (dependabot\[bot])
- chore(deps): bump github.com/mattn/go-shellwords from 1.0.13 to 1.0.14 ([#&#8203;32334](https://github.com/helm/helm/issues/32334)) [`dad026a`](https://github.com/helm/helm/commit/dad026acb8caab81411514715c50e50510f558ca) (dependabot\[bot])
- chore(deps): bump oras.land/oras-go/v2 from 2.6.1 to 2.6.2 ([#&#8203;32333](https://github.com/helm/helm/issues/32333)) [`84e63e5`](https://github.com/helm/helm/commit/84e63e5c38913594e476b15609fb6c7ab2d60467) (dependabot\[bot])
- Address review comments [`73c1fb2`](https://github.com/helm/helm/commit/73c1fb245120df3f3adb53c12e69f29134147de7) (Matheus Pimenta)
- Fix vanishing empty lines [`bfebbb7`](https://github.com/helm/helm/commit/bfebbb7c1a3cea951dcc33d3253492f6a6df4eb2) (Matheus Pimenta)
- fix: add missing https\:// to Oracle link in ADOPTERS.md ([#&#8203;32324](https://github.com/helm/helm/issues/32324)) [`7b9a5c8`](https://github.com/helm/helm/commit/7b9a5c8911c7aa53eab1bfde995c63ff626a7ca4) (Akanksha Trehun)
- fix: remove trailing whitespace in .golangci.yml ([#&#8203;32325](https://github.com/helm/helm/issues/32325)) [`cfa3b24`](https://github.com/helm/helm/commit/cfa3b24fe6c2a0e4bf22887cc1051d7674c6b348) (Akanksha Trehun)
- fix(Makefile): update outdated .sha256 comment for Helm v4 ([#&#8203;32323](https://github.com/helm/helm/issues/32323)) [`a91e9f6`](https://github.com/helm/helm/commit/a91e9f6a249533cfd8fdb98cbd909ecb16bbc813) (Akanksha Trehun)
- feat(linters): add new revive rules for better code quality [`16787d6`](https://github.com/helm/helm/commit/16787d65f5091cf5c5e4f2884ef0027ada117465) (Matthieu MOREL)
- refactor: enable several checks from gocritic [`9662fdd`](https://github.com/helm/helm/commit/9662fdd73b848e04889b452335b60250414ef6db) (Matthieu MOREL)
- fix(linters): update golangci-lint to 2.12.2 [`7bfcdb0`](https://github.com/helm/helm/commit/7bfcdb0fc34894ec6f1622f48608161188b2e2a8) (Matthieu MOREL)
- chore(deps): bump github/codeql-action/analyze from 4.36.2 to 4.37.0 [`8118a4d`](https://github.com/helm/helm/commit/8118a4da1ed0ba470571ee3e150e4949b373ba9c) (Terry Howe)
- chore(deps): bump golang.org/x/crypto from 0.53.0 to 0.54.0 [`0fc3b93`](https://github.com/helm/helm/commit/0fc3b9385348b0d346728de3b0969ae2a3b7d47f) (Terry Howe)
- chore(deps): bump github/codeql-action/analyze from 4.36.2 to 4.37.0 [`71901a4`](https://github.com/helm/helm/commit/71901a4c7cc6280317b892341b5dde5a866c952c) (Terry Howe)
- chore(deps): bump github/codeql-action/init from 4.36.2 to 4.37.0 ([#&#8203;32313](https://github.com/helm/helm/issues/32313)) [`a71eb99`](https://github.com/helm/helm/commit/a71eb99db4f0c08fae21d3bfafa3bdfb6465b2a4) (dependabot\[bot])
- chore(deps): bump github/codeql-action/autobuild from 4.36.2 to 4.37.0 ([#&#8203;32305](https://github.com/helm/helm/issues/32305)) [`ea52bdf`](https://github.com/helm/helm/commit/ea52bdf7e2c5155d629c85aa7eb7f625eef92936) (dependabot\[bot])
- chore(deps): bump golang.org/x/text from 0.39.0 to 0.40.0 ([#&#8203;32309](https://github.com/helm/helm/issues/32309)) [`a242855`](https://github.com/helm/helm/commit/a242855a7e2c31efd1f0f69ad1c5ae24be0563de) (dependabot\[bot])
- chore(deps): bump github/codeql-action/upload-sarif ([#&#8203;32311](https://github.com/helm/helm/issues/32311)) [`f25f955`](https://github.com/helm/helm/commit/f25f9555785b15fc7f41aa2e5e43979b1bca5021) (dependabot\[bot])
- Potential fix for pull request finding [`ed651de`](https://github.com/helm/helm/commit/ed651de9b12ff98c0aa13985a88bca9aca0aa4fb) (Benoit Tigeot)
- fix(ci): resolve Node 20 deprecation in govulncheck [`ca24a55`](https://github.com/helm/helm/commit/ca24a55c314d2fd84430d88c55ce09a391798d8e) (Benoit Tigeot)
- chore(deps): bump golang.org/x/text from 0.38.0 to 0.39.0 [`e3fbe2e`](https://github.com/helm/helm/commit/e3fbe2e9d10985fa30aeeb678c376d9556a2b6f7) (dependabot\[bot])
- chore: fix emptyStringTest, nestingReduce and  singleCaseSwitch checks issues from gocritic [`96b315f`](https://github.com/helm/helm/commit/96b315f188932b7602e1ab1497e2d81d1caa8068) (Matthieu MOREL)
- Update pkg/cmd/history\_test.go [`c1569ea`](https://github.com/helm/helm/commit/c1569ea83ff40ab534f3db531316cb0408717d3c) (Matthieu MOREL)
- test: replace assert.Equal with require.EqualError for improved error handling [`65077c1`](https://github.com/helm/helm/commit/65077c10fa3e4f339142f498d84c1c7bfb1d320b) (Matthieu MOREL)
- test: replace assert.Contains with assert.ErrorContains for better error handling [`4ade4a5`](https://github.com/helm/helm/commit/4ade4a5495b81a4cf465906a2414267ed0b1dcc8) (Matthieu MOREL)
- chore: fix several checks issues from testifylint [`f34ad6c`](https://github.com/helm/helm/commit/f34ad6c337a53f0d77d1e24b5d1c6cdd1c57bc63) (Matthieu MOREL)
- test(cli): use t.Cleanup for resetEnv with t.Setenv [`47bde11`](https://github.com/helm/helm/commit/47bde119597961113d769a9d46a565f448565e7a) (LarytheLord)
- test(cli): isolate user-agent rest config test from host kubeconfig [`9b30076`](https://github.com/helm/helm/commit/9b30076180b8f73bbe25d0f4cd752207154ad0c1) (LarytheLord)
- chore: fix several checks issues from gocritic [`07259ec`](https://github.com/helm/helm/commit/07259ecc86521db556c4a18331241bbefc6bb6b2) (Matthieu MOREL)
- fix(engine): prevent Files.Lines panic on empty file [`143631f`](https://github.com/helm/helm/commit/143631f7356d7f2250540c044ae20277f495cc2f) (Mahesh Sadupalli)
- Potential fix for pull request finding [`d539556`](https://github.com/helm/helm/commit/d539556a8d03c48258d08207aaf918c202c90df6) (kimsungmin1)
- chore(deps): bump github/codeql-action/upload-sarif [`e9eda8c`](https://github.com/helm/helm/commit/e9eda8c5988d74172862b3b72cb1f8edf2226191) (dependabot\[bot])
- fix(registry): resolve golangci-lint issues in token-auth tests [`503acff`](https://github.com/helm/helm/commit/503acff97580aa803f5d639fb1fbb06ad1226c31) (kimsm28)
- chore: go mod tidy after rebase on main [`4e9ca06`](https://github.com/helm/helm/commit/4e9ca06856b1aeba65c4d4cd8e4dce4c83445776) (kimsm28)
- fix(registry): use plain-http registry in token-auth scope test [`3cbee7e`](https://github.com/helm/helm/commit/3cbee7e935eb6e783c36b17d6eb79eb6edcda15b) (kimsm28)
- Update pkg/registry/client.go [`26ada49`](https://github.com/helm/helm/commit/26ada49c1ad50af5e11dbb8a65b703251295c689) (Terry Howe)
- test: improve client\_scope\_test.go to avoid data races and brittle assertions [`9b7a70f`](https://github.com/helm/helm/commit/9b7a70f0ca4bf0dcfd242962d9eef211188057dd) (kimsm28)
- fix typos in withScopeHint function comment [`ee181f4`](https://github.com/helm/helm/commit/ee181f4570550d61379bf59f2a69b993b74d49cf) (kimsm28)
- fix registry test failures by adjusting DockerRegistryHost and auth server listener management [`1f0a728`](https://github.com/helm/helm/commit/1f0a72849657c3fe167320f7f5729c377f6dadf8) (kimsm28)
- fix variable naming requestUrl -> requestURL [`8883c9c`](https://github.com/helm/helm/commit/8883c9cc7006eef7e3d07836b2d5dd7ca1066168) (kimsm28)
- fix typo, remove unnecessary code, fix to avoid to use the assertion in http hanlder [`530e728`](https://github.com/helm/helm/commit/530e728ea932109befc4a8165cd9a2bc78170c07) (kimsm28)
- change suite.Nil, suite.NotNill to more proper function(suite.NoError, suite.Error) [`26e5071`](https://github.com/helm/helm/commit/26e5071f6680272d773f0ca22ea946a35c4dce66) (kimsungmin1)
- change client\_scope\_test.go to use httptest [`8c8d6e3`](https://github.com/helm/helm/commit/8c8d6e3262be77783ef42a47c9593b6e42a3066a) (kimsungmin1)
- fix typo [`9d77ccd`](https://github.com/helm/helm/commit/9d77ccd46ddf9b2675137891c159d1de35674072) (kimsungmin1)
- remove freeport dependency [`fc743b2`](https://github.com/helm/helm/commit/fc743b2a1be47c69cc3bf58e0fdc023f8844f866) (kimsungmin1)
- add newline in license header [`319e06c`](https://github.com/helm/helm/commit/319e06cda30e706db541066d5fe07249b0ed656c) (kimsungmin1)
- fix scope when helm push to a registry that use token auth [`301e3a1`](https://github.com/helm/helm/commit/301e3a12d55c279ef3bd0b1976bafd43bc1e0b7b) (kimsungmin1)
- chore(deps): bump github.com/fluxcd/cli-utils from 1.2.1 to 1.2.2 [`5a9b8a7`](https://github.com/helm/helm/commit/5a9b8a788ff260c031f2d2f3e1b6903bd31b3496) (dependabot\[bot])
- chore(deps): bump golangci/golangci-lint-action from 9.2.1 to 9.3.0 [`f76136d`](https://github.com/helm/helm/commit/f76136d39f8c1fd6110a23317786c4c53f6f9cb9) (dependabot\[bot])
- Potential fix for pull request finding [`144246c`](https://github.com/helm/helm/commit/144246cd2893f92ee8e477c691837ea27e8c2733) (George Jenkins)
- chore(deps): bump actions/setup-go from 6.4.0 to 6.5.0 [`07faec5`](https://github.com/helm/helm/commit/07faec5593aabbde72c357d9c10123b6a3da33c5) (dependabot\[bot])
- Apply suggestions [`61bba7c`](https://github.com/helm/helm/commit/61bba7c659e3b45ba4db195d58acc668a9c32441) (Will Noble)
- Properly format the extra field in gzipped packages [`d887779`](https://github.com/helm/helm/commit/d887779b9b0eeb720672a7927479fc627e599c24) (Will Noble)
- refactor(internal): convert tests to testify assert/require [`addbab2`](https://github.com/helm/helm/commit/addbab2e6444954eb1a9bde86730ee7d11810b46) (George Jenkins)
- refactor(internal/release): convert tests to testify assert/require [`7ab295f`](https://github.com/helm/helm/commit/7ab295fcfcf3977599939d76ffbf7a266401bfbc) (George Jenkins)
- refactor(pkg/release): convert tests to testify assert/require [`4cce0e9`](https://github.com/helm/helm/commit/4cce0e9e2a870508864c1d497918e201dc0f339c) (George Jenkins)
- refactor(pkg/registry): convert tests to testify assert/require [`8b0a167`](https://github.com/helm/helm/commit/8b0a167484a7f6de4a2cb12bf81641873a275d7b) (George Jenkins)
- refactor(internal): convert tests to testify assert/require [`3ce02c5`](https://github.com/helm/helm/commit/3ce02c585a18b38c5dba1177a54c3a0322c53d3c) (George Jenkins)
- refactor(repotest): convert tests to testify assert/require [`b42faba`](https://github.com/helm/helm/commit/b42faba9d293d45d2654dac5b540adb5b50e5b4f) (George Jenkins)
- chore: enable contextcheck, fatcontext and noctx linters [`34cfdfd`](https://github.com/helm/helm/commit/34cfdfdbe57ec9690113e141395c499a7c00ca6b) (Matthieu MOREL)
- chore(deps): bump github.com/cyphar/filepath-securejoin [`a0c7d1e`](https://github.com/helm/helm/commit/a0c7d1e1f5ef222fb1be143e9846cebf8b3a2d54) (dependabot\[bot])
- chore(deps): bump actions/checkout from 6.0.3 to 7.0.0 [`5848047`](https://github.com/helm/helm/commit/5848047c6b1e854fe7d451e451dbf748225232b9) (dependabot\[bot])
- test: use assert.Empty for zero-length assertions in validate\_test [`c36e4d5`](https://github.com/helm/helm/commit/c36e4d52bdf92a05a8d2d9f40e5927a1245dce2d) (Terry Howe)
- docs: fix typo in helm version command description [`dd442c0`](https://github.com/helm/helm/commit/dd442c0cc7c3d7f397bbf93ac5a9551a4e2f0139) (s3onghyun)
- chore(deps): bump the k8s-io group across 1 directory with 7 updates [`fa68e6c`](https://github.com/helm/helm/commit/fa68e6cb094e84076bfad53af494d7db7642ceee) (dependabot\[bot])
- chore(deps): bump actions/checkout from 6.0.2 to 6.0.3 [`3d2ff2a`](https://github.com/helm/helm/commit/3d2ff2a1aa3d8696105af5367a254c6824dff4a6) (dependabot\[bot])
- refactor(pkg/strvals): convert tests to testify assert/require [`daa045d`](https://github.com/helm/helm/commit/daa045d4923007c1ab815b39038b81491506dc0a) (George Jenkins)
- refactor(pkg/cli): convert tests to testify assert/require [`16b0760`](https://github.com/helm/helm/commit/16b0760dfd99b5c501cbfc2138a207e1b3512c0f) (George Jenkins)
- Revert "fix(kube): prevent spurious early exit in WaitForDelete during informer sync" [`d3bd091`](https://github.com/helm/helm/commit/d3bd09147bbae09ca85615452bda31b8215e66f5) (George Jenkins)
- Update pkg/ignore/rules\_test.go [`9ad5620`](https://github.com/helm/helm/commit/9ad5620edc1b51507d111f7f998cc0f5b95e5726) (George Jenkins)
- docs: improve CONTRIBUTING.md wording [`fa9cb49`](https://github.com/helm/helm/commit/fa9cb4919423e80d1693275396f9d8fa6b324baf) (devShaik010)
- refactor(pkg): convert tests to testify assert/require [`f4d713a`](https://github.com/helm/helm/commit/f4d713abb210230b3935c4a9685f1f34a8330970) (George Jenkins)
- refactor(cmd/helm): convert tests to testify assert/require [`ed76a36`](https://github.com/helm/helm/commit/ed76a36ab9b4c8f5a56049aa201dd8ce04836ecb) (George Jenkins)
- chore: rename savedErr to clear its specific purpose [`9c1d5a3`](https://github.com/helm/helm/commit/9c1d5a3b249c6684bfe902455a61e728bbf7dcf6) (Jeaeun Kim)
- chore: fix lint [`99baa2e`](https://github.com/helm/helm/commit/99baa2edd493af15ffd98f39808fac5c4a9b12f7) (Jeaeun Kim)
- chore: store err separately for clarity [`ea847fe`](https://github.com/helm/helm/commit/ea847fef95702ca53ec5ab3c627c696ea1488598) (Jeaeun Kim)
- chore: Improve error reporting for `helm template --debug` with `--show-only` [`2014946`](https://github.com/helm/helm/commit/2014946e550ed7a667b9ae8cfe15a377a2fe94ca) (Jeaeun Kim)
- fix panic on repeated IsReachable calls [`1f7869c`](https://github.com/helm/helm/commit/1f7869c31f8d96638d238957b20a27d665001d88) (Mohammad Abdolirad)
- fix: protect FailingKubeClient.RecordedWaitOptions from data race ([#&#8203;31925](https://github.com/helm/helm/issues/31925)) [`a5552ed`](https://github.com/helm/helm/commit/a5552edf9fb0e23b475310d943a2ecd1df5aeafd) (Terry Howe)
- fix: route registry client output to stdout instead of stderr ([#&#8203;32056](https://github.com/helm/helm/issues/32056)) [`c2f1b23`](https://github.com/helm/helm/commit/c2f1b238a114d6d7a85b37f80fc6975bd48e4c09) (Terry Howe)
- fix(engine): add debug logging when lookup returns empty ([#&#8203;32205](https://github.com/helm/helm/issues/32205)) [`7058f84`](https://github.com/helm/helm/commit/7058f841af78112f81098e3f434f90d30c43b4fd) (Ogulcan Aydogan)
- chore(deps): bump oras.land/oras-go/v2 from 2.6.0 to 2.6.1 [`74c1702`](https://github.com/helm/helm/commit/74c1702157722e44f72c4a731c652c9e6ed58f83) (dependabot\[bot])
- chore(deps): bump golang.org/x/crypto from 0.52.0 to 0.53.0 [`33b4071`](https://github.com/helm/helm/commit/33b40718860fcb563ef34d0a4af2a1e565fdd108) (dependabot\[bot])
- chore(deps): bump golang.org/x/term from 0.43.0 to 0.44.0 [`1019146`](https://github.com/helm/helm/commit/1019146bb36fde225ee93fdb173d12c91d96b834) (dependabot\[bot])
- chore(deps): bump golang.org/x/text from 0.37.0 to 0.38.0 [`7f855df`](https://github.com/helm/helm/commit/7f855dfe8a1176d41808451aa0e8ab7b11664f03) (dependabot\[bot])
- chore(deps): bump github/codeql-action from 4.36.1 to 4.36.2 [`c603c50`](https://github.com/helm/helm/commit/c603c50aa654b23c46c7e248cdf5cd016f0a3fa8) (dependabot\[bot])
- chore(deps): bump github/codeql-action from 4.36.0 to 4.36.1 [`f8abbfd`](https://github.com/helm/helm/commit/f8abbfd7d4ab7d9cd883fab5d24c8175eaec56b4) (dependabot\[bot])
- chore(deps): bump github.com/tetratelabs/wazero from 1.11.0 to 1.12.0 [`3aa1b74`](https://github.com/helm/helm/commit/3aa1b742b9228219378ce3d1b978d8d9e30547cd) (dependabot\[bot])
- Fix empty and len testifylint violations across test files [`488c4a8`](https://github.com/helm/helm/commit/488c4a805debe0fc1b2777fa1823e079e79a5869) (Matthieu MOREL)
- lower resync period [`6dc1c1c`](https://github.com/helm/helm/commit/6dc1c1ccf8066b06f5e30c5bf1d2cdd2924c8c43) (Austin Abro)
- chore(deps): bump golang.org/x/crypto from 0.51.0 to 0.52.0 [`7510b83`](https://github.com/helm/helm/commit/7510b832149ee739b3ace110f8238e1ffd922cca) (dependabot\[bot])
- ci: enable bidichk linter to prevent invisible Unicode characters [`e679ec9`](https://github.com/helm/helm/commit/e679ec9f041f9fa484f8539efd4b5e665526b883) (Arnav Nagzirkar)
- fix(deps): bump golang.org/x/net to v0.55.0 to address GO-2026-5026 [`54ae27f`](https://github.com/helm/helm/commit/54ae27fd841f33fd979476b1c378fe58fe7ff52f) (Terry Howe)
- chore(deps): bump golangci/golangci-lint-action from 9.2.0 to 9.2.1 [`dbb3e35`](https://github.com/helm/helm/commit/dbb3e353372f6e4abca9155c44d8b9a5f1e97626) (dependabot\[bot])
- chore(deps): bump github/codeql-action from 4.35.5 to 4.36.0 [`60665e9`](https://github.com/helm/helm/commit/60665e9035ccab375780ef77934bde2ffa674448) (dependabot\[bot])
- docs: update version status for v4 stable release [`442e146`](https://github.com/helm/helm/commit/442e1460b9ec4450a7c12d6b6a59848e7b16d9d1) (Benoit Tigeot)
- chore(deps): bump actions/stale from 10.2.0 to 10.3.0 [`ace245b`](https://github.com/helm/helm/commit/ace245b8273e23c9f12993befa535a19ab1bc172) (dependabot\[bot])
- fix(provenance): check error return in Digest [`e095e69`](https://github.com/helm/helm/commit/e095e690a8b3c31b6dbcb9af02f870cc41fbf18b) (Sebastien Tardif)
- internal/plugin: remove zero-width spaces from plugin name comment [`979e68f`](https://github.com/helm/helm/commit/979e68fbbd5a932c67b756884880d7641f268632) (Aleksei Sviridkin)
- Renamed flag from show-rollback to show-rollback-revision [`d097d88`](https://github.com/helm/helm/commit/d097d882d473b42c7460d0be674138a3b52c08da) (MrJack)
- fix: skip non-Pod test hooks in GetPodLogs [`1a1ec6e`](https://github.com/helm/helm/commit/1a1ec6e3cc052f1358ff668eeb439acd3f8e60c1) (Gregory Man)
- fix(upstream): upgrade to cli-utils 1.2.1, controller-runtime 0.24.1 and k8s 1.36.1 [`378ceac`](https://github.com/helm/helm/commit/378ceacd9ce239e5b3de1e7ce7c55cf18e16f69b) (Matheus Pimenta)
- chore(deps): bump github.com/fluxcd/cli-utils from 1.2.0 to 1.2.1 [`b5a9299`](https://github.com/helm/helm/commit/b5a9299eecefe45da13a01188cabac6af4c336d0) (dependabot\[bot])
- chore(deps): bump github/codeql-action from 4.35.4 to 4.35.5 [`f772ffe`](https://github.com/helm/helm/commit/f772ffedc6154f82bc0ac680f9ffa46054112ac0) (dependabot\[bot])
- fix(repo): use structured slog args in index.go [`ea2343e`](https://github.com/helm/helm/commit/ea2343ebeaf7b4b6b115fd1c7b34a159d6a573ff) (Sebastien Tardif)
- docs: fix 'than'->'that' typo in deprecatedAPIError godoc [`2032ec5`](https://github.com/helm/helm/commit/2032ec5cbaf168de0fadc59959319e4b580ff72e) (Kai Tanaka)
- refactor: use slices.Backward to simplify the code [`432fc8a`](https://github.com/helm/helm/commit/432fc8a21724cc75e0cd8ec8fd754d2bde42c15f) (box4wangjing)
- Potential fix for pull request finding [`53d5f13`](https://github.com/helm/helm/commit/53d5f13f46f7dd555be8bd90616abdc77d470000) (Sumit Solanki)
- fix(downloader): order DiskCache.Get checks for overlayfs empty dirs [`6620fec`](https://github.com/helm/helm/commit/6620fec5d19f6c86425501ee64f8cb8a8fb3fa3e) (Sumit Solanki)
- chore(deps): bump golang.org/x/crypto from 0.50.0 to 0.51.0 [`2cc6925`](https://github.com/helm/helm/commit/2cc69251d81ad94e9e0edbea6c31dedf4e2c25d4) (dependabot\[bot])
- chore(deps): bump github/codeql-action from 4.35.3 to 4.35.4 [`d9b2716`](https://github.com/helm/helm/commit/d9b2716be5fbb3309c3176b0c887d91ffb16c048) (dependabot\[bot])
- Bump to version v4.2 ([#&#8203;32102](https://github.com/helm/helm/issues/32102)) [`19b3656`](https://github.com/helm/helm/commit/19b3656306829cae166f484feb4a1319f47844c0) (George Jenkins)
- Fix lint errors [`03a65a7`](https://github.com/helm/helm/commit/03a65a71f7397620315747ecac4ba60b73f63623) (Evans Mungai)
- fix: address Copilot review on ownership-verified uninstall [`0077130`](https://github.com/helm/helm/commit/007713087bd4f381bb8b74f66f35af9e3dafa376) (Evans Mungai)
- Potential fix for pull request finding [`9728c5a`](https://github.com/helm/helm/commit/9728c5af31c7039e9806037c4e59e46eeb43d79c) (Evans Mungai)
- fix: address review feedback [`922558f`](https://github.com/helm/helm/commit/922558fc1a3b3f2c2b7e8ad0f32bd5bcd46ca70e) (Sebastien Tardif)
- fix: fetch logs from all containers in test pods [`854f7f6`](https://github.com/helm/helm/commit/854f7f6b7217dcfe135df9e4652517d3ec9c3913) (Sebastien Tardif)
- fix(registry): remove pre-Go-1.20 transport cloner fallback [`73f71bc`](https://github.com/helm/helm/commit/73f71bceae2674d41fb2f082ee4fa5a842b613cc) (Ogulcan Aydogan)
- testifylint: enable error-is-as and error-nil rules [`f8ba28b`](https://github.com/helm/helm/commit/f8ba28bb17f9254bc2c1b6409b24c16a59934a9c) (Matthieu MOREL)
- fix(kube): always propagate context.Canceled in WaitForDelete [`5e09ee7`](https://github.com/helm/helm/commit/5e09ee78ee5861b857a3526a2fd1ddf2f73950e2) (Terry Howe)
- fix(kube): prevent spurious early exit in WaitForDelete during informer sync [`4e24ee4`](https://github.com/helm/helm/commit/4e24ee41a436889a2542a008eaa0ecab8332a1eb) (Terry Howe)
- fix(version): avoid false range detection on prerelease x/X [`740174a`](https://github.com/helm/helm/commit/740174a2b12074f7ca506ff330a918a4ff335c39) (Benoit Tigeot)
- fix(version): version range || can has no space [`b79d7f1`](https://github.com/helm/helm/commit/b79d7f18813796f101f66eff6c513ded25edf0ad) (Benoit Tigeot)
- feat: report in debug the version we select with version range arg [`bf78b87`](https://github.com/helm/helm/commit/bf78b876c74ee4359a6cebb54e0b97183cdfe129) (Benoit Tigeot)
- fix: prevent warning when using version range constraints [`1e145ee`](https://github.com/helm/helm/commit/1e145ee2b243ef97bce0622cf55da8aa17ebb65f) (Benoit Tigeot)
- Add duration functions [`722dd3e`](https://github.com/helm/helm/commit/722dd3e3a82b06fbda60ebf24edc653e7b74e3f9) (Jorge Rocamora)
- chore: fix deprecatedComment issues from gocritic [`83a0138`](https://github.com/helm/helm/commit/83a0138172e22f5efb7d9852b3ed0fb5fc8117b2) (Matthieu MOREL)
- chore: enable errorlint linter [`af31a67`](https://github.com/helm/helm/commit/af31a679244b584317fd8053aee498c4d5ec301c) (Matthieu MOREL)
- chore: fix whitespace linter [`1e0f702`](https://github.com/helm/helm/commit/1e0f702f00d5fd36c9de9448e3271787bc588273) (Matthieu MOREL)
- fix: address Copilot review feedback on rollback revision PR [`6927cde`](https://github.com/helm/helm/commit/6927cde3f98d9e5f248418805e40c7408e629746) (MrJack)
- feat(history): add --show-rollback flag for opt-in rollback column [`e889cff`](https://github.com/helm/helm/commit/e889cff0896d842c7e1854729611ac520a925d0b) (MrJack)
- Update pkg/cmd/testdata/output/history-with-rollback.txt [`681ccb1`](https://github.com/helm/helm/commit/681ccb19a68dab98b75e407ba38b37c45ee9c5d1) (MrJack)
- Update pkg/cmd/history\_test.go [`0737e43`](https://github.com/helm/helm/commit/0737e438aae04fca872b66f185b0f2aab8bd0d86) (MrJack)
- Added missing pkg/cmd/testdata/output files [`d52b489`](https://github.com/helm/helm/commit/d52b489459d51d67d9db877f169bd09273b6cd6c) (MrJack)
- feat(history): add rollback revision column to helm history output [`300f71b`](https://github.com/helm/helm/commit/300f71b1ebb1b383241a1806a813c6f30a8ff382) (MrJack)
- Add ownership verification to uninstall action [`f552950`](https://github.com/helm/helm/commit/f552950b05066d4d6a9d6cf9a91c26656f4a90fc) (Evans Mungai)
- Additional logging for ownership verification in dry-run mode [`6d5b5aa`](https://github.com/helm/helm/commit/6d5b5aab32be039f8f56b0c497a7f4af28ce21f0) (Evans Mungai)
- feat: add ownership verification before deleting resources during uninstall [`906f87c`](https://github.com/helm/helm/commit/906f87ce1d6d7a46bc68601c1217623e40b78877) (Evans Mungai)

</details>

---

### Configuration

📅 **Schedule**: (UTC)

- Branch creation
  - At any time (no schedule defined)
- Automerge
  - At any time (no schedule defined)

🚦 **Automerge**: Disabled by config. Please merge this manually once you are satisfied.

♻ **Rebasing**: Whenever PR becomes conflicted, or you tick the rebase/retry checkbox.

🔕 **Ignore**: Close this PR and you won't be reminded about this update again.

---

 - [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check this box

---

This PR has been generated by [Mend Renovate](https://github.com/renovatebot/renovate).
<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiI0My4yODguMCIsInVwZGF0ZWRJblZlciI6IjQzLjI4OC4wIiwidGFyZ2V0QnJhbmNoIjoibWFpbiIsImxhYmVscyI6W119-->

---------

Co-authored-by: Renovate Bot <renovate.bot@kirmanak.stream>
Reviewed-on: https://gitea.kirmanak.stream/personal/jumi/pulls/253
Reviewed-by: jumi <jumi@kirmanak.stream>
Co-authored-by: renovate-bot <2+renovate-bot@noreply.gitea.kirmanak.stream>
silence-coding added a commit to silence-coding/helm that referenced this pull request Oct 21, 2026
The delete phase of Update (pkg/kube/client.go) is annotation-blind: a
resource present in the original release but absent from the target is
deleted without consulting meta.helm.sh/release-name. When a resource has
been adopted by another release (via --take-ownership), the source release
still deletes it on its next upgrade/rollback, corrupting the adopter's
state. This is helm#32218.

The uninstall path already guards against this via verifyOwnershipBeforeDelete
(helm#31584). This extends the same principle to the shared update() delete loop,
which is reached by upgrade, rollback, and install.

Add an opt-in ClientUpdateOptionOwnership(releaseName). When set, the delete
loop reads the live resource's release-name annotation and skips deletion
when it belongs to a different release. Resources owned by the operating
release, or carrying no annotation, are deleted as before. When releaseName
is empty the safeguard is disabled and behavior is unchanged.

Wire the option into all three Update call sites:
  - pkg/action/upgrade.go   (releasingUpgrade)
  - pkg/action/rollback.go  (performRollback)
  - pkg/action/install.go   (performInstall)

Compared to the stalled draft helm#32257 (upgrade-only), this also covers
rollback and install, and checks only release-name (not namespace) to
avoid edge-case false skips across namespaces.

Export ReleaseNameAnnotation / ReleaseNamespaceAnnotation from pkg/kube so
pkg/action can reuse the constants instead of duplicating them.

Verified on a k3s cluster with a cross-release transfer scenario: after
release B adopts a resource from A via --take-ownership, upgrading A no
longer deletes it. The unmodified build deletes it. A bidirectional swap
(A->B and B->A via upgrade) keeps both resources alive with correct
ownership on the fixed build; the unmodified build loses one. Regular
upgrades that remove a release's own resources still delete them.

Signed-off-by: silence-coding <32766901+silence-coding@users.noreply.github.com>
silence-coding added a commit to silence-coding/helm that referenced this pull request Oct 21, 2026
The delete phase of Update (pkg/kube/client.go) is annotation-blind: a
resource present in the original release but absent from the target is
deleted without consulting meta.helm.sh/release-name. When a resource has
been adopted by another release (via --take-ownership), the source release
still deletes it on its next upgrade/rollback, corrupting the adopter's
state. This is helm#32218.

The uninstall path already guards against this via verifyOwnershipBeforeDelete
(helm#31584). This extends the same principle to the shared update() delete loop,
which is reached by upgrade, rollback, and install.

Add an opt-in ClientUpdateOptionOwnership(releaseName). When set, the delete
loop reads the live resource's release-name annotation and skips deletion
when it belongs to a different release. Resources owned by the operating
release, or carrying no annotation, are deleted as before. When releaseName
is empty the safeguard is disabled and behavior is unchanged.

Wire the option into all three Update call sites:
  - pkg/action/upgrade.go   (releasingUpgrade)
  - pkg/action/rollback.go  (performRollback)
  - pkg/action/install.go   (performInstall)

Compared to the stalled draft helm#32257 (upgrade-only), this also covers
rollback and install, and checks only release-name (not namespace) to
avoid edge-case false skips across namespaces.

Verified on a k3s cluster with a cross-release transfer scenario: after
release B adopts a resource from A via --take-ownership, upgrading A no
longer deletes it. The unmodified build deletes it. A bidirectional swap
(A->B and B->A via upgrade) keeps both resources alive with correct
ownership on the fixed build; the unmodified build loses one. Regular
upgrades that remove a release's own resources still delete them.

Signed-off-by: silence-coding <32766901+silence-coding@users.noreply.github.com>
silence-coding added a commit to silence-coding/helm that referenced this pull request Oct 21, 2026
The delete phase of Update (pkg/kube/client.go) is annotation-blind: a
resource present in the original release but absent from the target is
deleted without consulting meta.helm.sh/release-name. When a resource has
been adopted by another release (via --take-ownership), the source release
still deletes it on its next upgrade/rollback, corrupting the adopter's
state. This is helm#32218.

The uninstall path already guards against this via verifyOwnershipBeforeDelete
(helm#31584). This extends the same principle to the shared update() delete loop,
which is reached by upgrade, rollback, and install.

Add an opt-in ClientUpdateOptionOwnership(releaseName). When set, the delete
loop reads the live resource's release-name annotation and skips deletion
when it belongs to a different release. Resources owned by the operating
release, or carrying no annotation, are deleted as before. When releaseName
is empty the safeguard is disabled and behavior is unchanged.

Wire the option into all three Update call sites:
  - pkg/action/upgrade.go   (releasingUpgrade)
  - pkg/action/rollback.go  (performRollback)
  - pkg/action/install.go   (performInstall)

Compared to the stalled draft helm#32257 (upgrade-only), this also covers
rollback and install, and checks only release-name (not namespace) to
avoid edge-case false skips across namespaces.

Verified on a k3s cluster with a cross-release transfer scenario: after
release B adopts a resource from A via --take-ownership, upgrading A no
longer deletes it. The unmodified build deletes it. A bidirectional swap
(A->B and B->A via upgrade) keeps both resources alive with correct
ownership on the fixed build; the unmodified build loses one. Regular
upgrades that remove a release's own resources still delete them.

Signed-off-by: silence-coding <32766901+silence-coding@users.noreply.github.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

size/L Denotes a PR that changes 100-499 lines, ignoring generated files.

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Helm ignores ownership during uninstall

8 participants