Script 'mail_helper' called by obssrc
Hello community,

here is the log from the commit of package chezmoi for openSUSE:Factory checked 
in at 2025-11-28 16:53:47
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/chezmoi (Old)
 and      /work/SRC/openSUSE:Factory/.chezmoi.new.14147 (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Package is "chezmoi"

Fri Nov 28 16:53:47 2025 rev:87 rq:1320438 version:2.67.1

Changes:
--------
--- /work/SRC/openSUSE:Factory/chezmoi/chezmoi.changes  2025-11-04 
18:41:58.972481947 +0100
+++ /work/SRC/openSUSE:Factory/.chezmoi.new.14147/chezmoi.changes       
2025-11-28 16:55:29.676759087 +0100
@@ -1,0 +2,11 @@
+Fri Nov 28 10:23:53 UTC 2025 - Filippo Bonazzi <[email protected]>
+
+- Update to version 2.67.1:
+  - Features
+    * feat: Switch to znkr.io/diff for builtin diff
+    * feat: Warn if adding non-UTF-8 template
+  - Documentation
+    * docs: Make Mermaid diagrams more consistent with text
+    * docs: Improve developer guide
+
+-------------------------------------------------------------------

Old:
----
  chezmoi-2.67.0.obscpio

New:
----
  chezmoi-2.67.1.obscpio

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

Other differences:
------------------
++++++ chezmoi.spec ++++++
--- /var/tmp/diff_new_pack.BdaNlL/_old  2025-11-28 16:55:30.768805067 +0100
+++ /var/tmp/diff_new_pack.BdaNlL/_new  2025-11-28 16:55:30.772805236 +0100
@@ -17,7 +17,7 @@
 
 
 Name:           chezmoi
-Version:        2.67.0
+Version:        2.67.1
 Release:        0
 Summary:        A multi-host manager for dotfiles
 License:        MIT

++++++ _service ++++++
--- /var/tmp/diff_new_pack.BdaNlL/_old  2025-11-28 16:55:30.812806920 +0100
+++ /var/tmp/diff_new_pack.BdaNlL/_new  2025-11-28 16:55:30.816807088 +0100
@@ -2,7 +2,7 @@
   <service name="obs_scm" mode="manual">
     <param name="scm">git</param>
     <param name="url">https://github.com/twpayne/chezmoi.git</param>
-    <param name="revision">v2.67.0</param>
+    <param name="revision">v2.67.1</param>
     <param name="versionformat">@PARENT_TAG@</param>
     <param name="versionrewrite-pattern">v(.*)</param>
   </service>

++++++ chezmoi-2.67.0.obscpio -> chezmoi-2.67.1.obscpio ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/chezmoi-2.67.0/.github/actions/setup-go/action.yml 
new/chezmoi-2.67.1/.github/actions/setup-go/action.yml
--- old/chezmoi-2.67.0/.github/actions/setup-go/action.yml      2025-11-02 
19:55:46.000000000 +0100
+++ new/chezmoi-2.67.1/.github/actions/setup-go/action.yml      2025-11-26 
23:25:27.000000000 +0100
@@ -30,7 +30,7 @@
         echo "GOCACHE=/home/runner/go/pkg/mod" >> $GITHUB_ENV
         echo "GOMODCACHE=/home/runner/.cache/go-build" >> $GITHUB_ENV
       fi
-  - uses: actions/cache@0057852bfaa89a56745cba8c7296529d2fc39830
+  - uses: actions/cache@0057852bfaa89a56745cba8c7296529d2fc39830 # v4.3.0
     if: ${{ inputs.upload-cache == 'true' }}
     with:
       path: |
@@ -39,7 +39,7 @@
       key: ${{ inputs.cache-prefix }}-${{ runner.os }}-${{ runner.arch 
}}-go-${{ inputs.go-version }}-${{ hashFiles('**/go.sum') }}
       restore-keys: |
         ${{ inputs.cache-prefix }}-${{ runner.os }}-${{ runner.arch }}-go-${{ 
inputs.go-version }}-
-  - uses: actions/cache/restore@0057852bfaa89a56745cba8c7296529d2fc39830
+  - uses: actions/cache/restore@0057852bfaa89a56745cba8c7296529d2fc39830 # 
v4.3.0
     if: ${{ inputs.upload-cache != 'true' }}
     with:
       path: |
@@ -48,7 +48,7 @@
       key: ${{ inputs.cache-prefix }}-${{ runner.os }}-${{ runner.arch 
}}-go-${{ inputs.go-version }}-${{ hashFiles('**/go.sum') }}
       restore-keys: |
         ${{ inputs.cache-prefix }}-${{ runner.os }}-${{ runner.arch }}-go-${{ 
inputs.go-version }}-
-  - uses: actions/setup-go@44694675825211faa026b3c33043df3e48a5fa00
+  - uses: actions/setup-go@4dc6199c7b1a012772edbd06daecab0f50c9053c # v6.1.0
     with:
       cache: false
       go-version: ${{ inputs.go-version }}
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/chezmoi-2.67.0/.github/workflows/govulncheck.yml 
new/chezmoi-2.67.1/.github/workflows/govulncheck.yml
--- old/chezmoi-2.67.0/.github/workflows/govulncheck.yml        2025-11-02 
19:55:46.000000000 +0100
+++ new/chezmoi-2.67.1/.github/workflows/govulncheck.yml        2025-11-26 
23:25:27.000000000 +0100
@@ -19,7 +19,9 @@
     permissions:
       contents: read
     steps:
-    - uses: actions/checkout@08c6903cd8c0fde910a37f88322edcfb5dd907a8
+    - uses: actions/checkout@1af3b93b6815bc44a9784bd300feb67ff0d1eeb3 # v6.0.0
+      with:
+        persist-credentials: false
     - name: go-version
       id: go-version
       run: |
@@ -28,7 +30,7 @@
       with:
         go-version: ${{ steps.go-version.outputs.go-version }}
         upload-cache: false
-    - uses: golang/govulncheck-action@b625fbe08f3bccbe446d94fbf87fcc875a4f50ee
+    - uses: golang/govulncheck-action@b625fbe08f3bccbe446d94fbf87fcc875a4f50ee 
# v1.0.4
       with:
         cache: false
         go-version-input: ${{ steps.go-version.outputs.go-version }}
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/chezmoi-2.67.0/.github/workflows/installer.yml 
new/chezmoi-2.67.1/.github/workflows/installer.yml
--- old/chezmoi-2.67.0/.github/workflows/installer.yml  2025-11-02 
19:55:46.000000000 +0100
+++ new/chezmoi-2.67.1/.github/workflows/installer.yml  2025-11-26 
23:25:27.000000000 +0100
@@ -20,9 +20,9 @@
     permissions:
       contents: read
     steps:
-    - uses: actions/checkout@08c6903cd8c0fde910a37f88322edcfb5dd907a8
+    - uses: actions/checkout@1af3b93b6815bc44a9784bd300feb67ff0d1eeb3 # v6.0.0
     - id: filter
-      uses: dorny/paths-filter@de90cc6fb38fc0963ad72b210f1f284cd68cea36
+      uses: dorny/paths-filter@de90cc6fb38fc0963ad72b210f1f284cd68cea36 # 
v3.0.2
       with:
         filters: |
           shared: &shared
@@ -39,8 +39,8 @@
     permissions:
       contents: read
     steps:
-    - uses: actions/checkout@08c6903cd8c0fde910a37f88322edcfb5dd907a8
-    - uses: reviewdog/action-misspell@d6429416b12b09b4e2768307d53bef58d172e962
+    - uses: actions/checkout@1af3b93b6815bc44a9784bd300feb67ff0d1eeb3 # v6.0.0
+    - uses: reviewdog/action-misspell@d6429416b12b09b4e2768307d53bef58d172e962 
# v1.27.0
       with:
         locale: US
   test-install-sh:
@@ -56,7 +56,7 @@
     env:
       BINARY: ${{ matrix.os == 'windows-2022' && 'bin/chezmoi.exe' || 
'bin/chezmoi' }}
     steps:
-    - uses: actions/checkout@08c6903cd8c0fde910a37f88322edcfb5dd907a8
+    - uses: actions/checkout@1af3b93b6815bc44a9784bd300feb67ff0d1eeb3 # v6.0.0
     - name: test-${{ matrix.os }}-local
       shell: bash
       run: |
@@ -82,7 +82,7 @@
     env:
       BINARY: ${{ matrix.os == 'windows-2022' && 'bin/chezmoi.exe' || 
'bin/chezmoi' }}
     steps:
-    - uses: actions/checkout@08c6903cd8c0fde910a37f88322edcfb5dd907a8
+    - uses: actions/checkout@1af3b93b6815bc44a9784bd300feb67ff0d1eeb3 # v6.0.0
     - name: test-${{ matrix.os }}-local-pwsh
       shell: pwsh
       run: |
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/chezmoi-2.67.0/.github/workflows/lock-threads.yml 
new/chezmoi-2.67.1/.github/workflows/lock-threads.yml
--- old/chezmoi-2.67.0/.github/workflows/lock-threads.yml       2025-11-02 
19:55:46.000000000 +0100
+++ new/chezmoi-2.67.1/.github/workflows/lock-threads.yml       2025-11-26 
23:25:27.000000000 +0100
@@ -17,7 +17,7 @@
   action:
     runs-on: ubuntu-22.04
     steps:
-    - uses: dessant/lock-threads@1bf7ec25051fe7c00bdd17e6a7cf3d7bfb7dc771
+    - uses: dessant/lock-threads@1bf7ec25051fe7c00bdd17e6a7cf3d7bfb7dc771 # 
v5.0.1
       with:
         process-only: issues, prs
         issue-lock-reason: resolved
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/chezmoi-2.67.0/.github/workflows/main.yml 
new/chezmoi-2.67.1/.github/workflows/main.yml
--- old/chezmoi-2.67.0/.github/workflows/main.yml       2025-11-02 
19:55:46.000000000 +0100
+++ new/chezmoi-2.67.1/.github/workflows/main.yml       2025-11-26 
23:25:27.000000000 +0100
@@ -17,13 +17,13 @@
   AGE_VERSION: 1.2.1 # https://github.com/FiloSottile/age/releases
   CHOCOLATEY_VERSION: 2.5.1 # https://github.com/chocolatey/choco/releases
   COSIGN_VERSION: 2.6.1 # https://github.com/sigstore/cosign/releases 
https://github.com/goreleaser/goreleaser/issues/6195
-  GO_VERSION: 1.25.3 # https://go.dev/doc/devel/release
-  GOLANGCI_LINT_VERSION: 2.6.0 # 
https://github.com/golangci/golangci-lint/releases
+  GO_VERSION: 1.25.4 # https://go.dev/doc/devel/release
+  GOLANGCI_LINT_VERSION: 2.6.2 # 
https://github.com/golangci/golangci-lint/releases
   GORELEASER_VERSION: 2.12.7 # 
https://github.com/goreleaser/goreleaser/releases
   PYTHON_VERSION: '3.10' # https://www.python.org/downloads/
   RAGE_VERSION: 0.11.1 # https://github.com/str4d/rage/releases
-  SYFT_VERSION: 1.36.0 # https://github.com/anchore/syft/releases
-  UV_VERSION: 0.9.7 # https://github.com/astral-sh/uv/releases
+  SYFT_VERSION: 1.38.0 # https://github.com/anchore/syft/releases
+  UV_VERSION: 0.9.13 # https://github.com/astral-sh/uv/releases
 jobs:
   changes:
     runs-on: ubuntu-22.04
@@ -32,9 +32,9 @@
     permissions:
       contents: read
     steps:
-    - uses: actions/checkout@08c6903cd8c0fde910a37f88322edcfb5dd907a8
+    - uses: actions/checkout@1af3b93b6815bc44a9784bd300feb67ff0d1eeb3 # v6.0.0
     - id: filter
-      uses: dorny/paths-filter@de90cc6fb38fc0963ad72b210f1f284cd68cea36
+      uses: dorny/paths-filter@de90cc6fb38fc0963ad72b210f1f284cd68cea36 # 
v3.0.2
       with:
         filters: |
           code:
@@ -59,24 +59,24 @@
     permissions:
       security-events: write
     steps:
-    - uses: actions/checkout@08c6903cd8c0fde910a37f88322edcfb5dd907a8
+    - uses: actions/checkout@1af3b93b6815bc44a9784bd300feb67ff0d1eeb3 # v6.0.0
       with:
         fetch-depth: 1
     - uses: ./.github/actions/setup-go
       with:
         go-version: ${{ env.GO_VERSION }}
         upload-cache: false
-    - uses: github/codeql-action/init@17783bfb99b07f70fae080b654aed0c514057477
+    - uses: github/codeql-action/init@ce729e4d353d580e6cacd6a8cf2921b72e5e310a 
# codeql-bundle-v2.23.6
       with:
         languages: go
-    - uses: 
github/codeql-action/analyze@17783bfb99b07f70fae080b654aed0c514057477
+    - uses: 
github/codeql-action/analyze@ce729e4d353d580e6cacd6a8cf2921b72e5e310a # 
codeql-bundle-v2.23.6
   misspell:
     runs-on: ubuntu-22.04
     permissions:
       contents: read
     steps:
-    - uses: actions/checkout@08c6903cd8c0fde910a37f88322edcfb5dd907a8
-    - uses: reviewdog/action-misspell@d6429416b12b09b4e2768307d53bef58d172e962
+    - uses: actions/checkout@1af3b93b6815bc44a9784bd300feb67ff0d1eeb3 # v6.0.0
+    - uses: reviewdog/action-misspell@d6429416b12b09b4e2768307d53bef58d172e962 
# v1.27.0
       with:
         locale: US
   test-alpine:
@@ -86,8 +86,8 @@
     permissions:
       contents: read
     steps:
-    - uses: actions/checkout@08c6903cd8c0fde910a37f88322edcfb5dd907a8
-    - uses: actions/cache@0057852bfaa89a56745cba8c7296529d2fc39830
+    - uses: actions/checkout@1af3b93b6815bc44a9784bd300feb67ff0d1eeb3 # v6.0.0
+    - uses: actions/cache@0057852bfaa89a56745cba8c7296529d2fc39830 # v4.3.0
       with:
         path: |
           ~/.go-alpine
@@ -107,8 +107,8 @@
     permissions:
       contents: read
     steps:
-    - uses: actions/checkout@08c6903cd8c0fde910a37f88322edcfb5dd907a8
-    - uses: actions/cache@0057852bfaa89a56745cba8c7296529d2fc39830
+    - uses: actions/checkout@1af3b93b6815bc44a9784bd300feb67ff0d1eeb3 # v6.0.0
+    - uses: actions/cache@0057852bfaa89a56745cba8c7296529d2fc39830 # v4.3.0
       with:
         path: |
           ~/.go-archlinux
@@ -129,7 +129,7 @@
     permissions:
       contents: read
     steps:
-    - uses: actions/checkout@08c6903cd8c0fde910a37f88322edcfb5dd907a8
+    - uses: actions/checkout@1af3b93b6815bc44a9784bd300feb67ff0d1eeb3 # v6.0.0
     - uses: ./.github/actions/setup-go
       with:
         go-version: ${{ env.GO_VERSION }}
@@ -163,7 +163,7 @@
     permissions:
       contents: read
     steps:
-    - uses: actions/checkout@08c6903cd8c0fde910a37f88322edcfb5dd907a8
+    - uses: actions/checkout@1af3b93b6815bc44a9784bd300feb67ff0d1eeb3 # v6.0.0
       with:
         fetch-depth: 0
     - uses: ./.github/actions/free-disk-space
@@ -186,37 +186,37 @@
         make create-syso
     - name: build-release
       if: github.event_name == 'push' || needs.changes.outputs.code == 'true'
-      uses: 
goreleaser/goreleaser-action@e435ccd777264be153ace6237001ef4d979d3a7a
+      uses: 
goreleaser/goreleaser-action@e435ccd777264be153ace6237001ef4d979d3a7a # v6.4.0
       with:
         version: ${{ env.GORELEASER_VERSION }}
         args: release --skip=sign --snapshot --timeout=1h
     - name: upload-artifact-chezmoi-darwin-amd64
       if: github.event_name == 'push' || needs.changes.outputs.code == 'true'
-      uses: actions/upload-artifact@330a01c490aca151604b8cf639adc76d48f6c5d4
+      uses: actions/upload-artifact@330a01c490aca151604b8cf639adc76d48f6c5d4 # 
v5.0.0
       with:
         name: chezmoi-darwin-amd64
         path: dist/chezmoi-nocgo_darwin_amd64_v1/chezmoi
     - name: upload-artifact-chezmoi-darwin-arm64
       if: github.event_name == 'push' || needs.changes.outputs.code == 'true'
-      uses: actions/upload-artifact@330a01c490aca151604b8cf639adc76d48f6c5d4
+      uses: actions/upload-artifact@330a01c490aca151604b8cf639adc76d48f6c5d4 # 
v5.0.0
       with:
         name: chezmoi-darwin-arm64
         path: dist/chezmoi-nocgo_darwin_arm64_v8.0/chezmoi
     - name: upload-artifact-chezmoi-linux-amd64
       if: github.event_name == 'push' || needs.changes.outputs.code == 'true'
-      uses: actions/upload-artifact@330a01c490aca151604b8cf639adc76d48f6c5d4
+      uses: actions/upload-artifact@330a01c490aca151604b8cf639adc76d48f6c5d4 # 
v5.0.0
       with:
         name: chezmoi-linux-amd64
         path: dist/chezmoi-cgo-glibc_linux_amd64_v1/chezmoi
     - name: upload-artifact-chezmoi-linux-musl-amd64
       if: github.event_name == 'push' || needs.changes.outputs.code == 'true'
-      uses: actions/upload-artifact@330a01c490aca151604b8cf639adc76d48f6c5d4
+      uses: actions/upload-artifact@330a01c490aca151604b8cf639adc76d48f6c5d4 # 
v5.0.0
       with:
         name: chezmoi-linux-amd64-musl
         path: dist/chezmoi-cgo-musl_linux_amd64_v1/chezmoi
     - name: upload-artifact-chezmoi-windows-amd64.exe
       if: github.event_name == 'push' || needs.changes.outputs.code == 'true'
-      uses: actions/upload-artifact@330a01c490aca151604b8cf639adc76d48f6c5d4
+      uses: actions/upload-artifact@330a01c490aca151604b8cf639adc76d48f6c5d4 # 
v5.0.0
       with:
         name: chezmoi-windows-amd64
         path: dist/chezmoi-nocgo_windows_amd64_v1/chezmoi.exe
@@ -233,7 +233,7 @@
     permissions:
       contents: read
     steps:
-    - uses: actions/checkout@08c6903cd8c0fde910a37f88322edcfb5dd907a8
+    - uses: actions/checkout@1af3b93b6815bc44a9784bd300feb67ff0d1eeb3 # v6.0.0
       if: github.event_name == 'push' || needs.changes.outputs.code == 'true' 
|| matrix.umask == '022'
       with:
         fetch-depth: 0
@@ -275,12 +275,12 @@
     permissions:
       contents: read
     steps:
-    - uses: actions/checkout@08c6903cd8c0fde910a37f88322edcfb5dd907a8
+    - uses: actions/checkout@1af3b93b6815bc44a9784bd300feb67ff0d1eeb3 # v6.0.0
     - uses: ./.github/actions/setup-go
       with:
         cache-prefix: website-go
         go-version: ${{ env.GO_VERSION }}
-    - uses: astral-sh/setup-uv@85856786d1ce8acfbcc2f13a5f3fbd6b938f9f41
+    - uses: astral-sh/setup-uv@1e862dfacbd1d6d858c55d9b792c756523627244 # 
v7.1.4
       with:
         enable-cache: true
         version: ${{ env.UV_VERSION }}
@@ -304,7 +304,7 @@
     permissions:
       contents: read
     steps:
-    - uses: actions/checkout@08c6903cd8c0fde910a37f88322edcfb5dd907a8
+    - uses: actions/checkout@1af3b93b6815bc44a9784bd300feb67ff0d1eeb3 # v6.0.0
     - uses: ./.github/actions/setup-go
       with:
         go-version: ${{ env.GO_VERSION }}
@@ -333,7 +333,7 @@
     permissions:
       contents: read
     steps:
-    - uses: actions/checkout@08c6903cd8c0fde910a37f88322edcfb5dd907a8
+    - uses: actions/checkout@1af3b93b6815bc44a9784bd300feb67ff0d1eeb3 # v6.0.0
       with:
         fetch-depth: 0
     - uses: ./.github/actions/setup-go
@@ -351,7 +351,7 @@
     - name: actionlint
       run: |
         go tool actionlint
-    - uses: ludeeus/action-shellcheck@00cae500b08a931fb5698e11e79bfbd38e612a38
+    - uses: ludeeus/action-shellcheck@00cae500b08a931fb5698e11e79bfbd38e612a38 
# 2.0.0
       with:
         ignore_paths: completions
     - name: editorconfig-checker
@@ -376,7 +376,7 @@
         go tool lint-commit-messages ${{ github.event.pull_request.head.sha 
}}~${{ github.event.pull_request.commits }}..${{ 
github.event.pull_request.head.sha }}
     - name: lint-markdown
       if: false # FIXME
-      uses: 
DavidAnson/markdownlint-cli2-action@992badcdf24e3b8eb7e87ff9287fe931bcb00c6e
+      uses: 
DavidAnson/markdownlint-cli2-action@30a0e04f1870d58f8d717450cc6134995f993c63 # 
v21.0.0
   lint:
     name: lint-${{ matrix.runs-on }}
     strategy:
@@ -392,12 +392,12 @@
     permissions:
       contents: read
     steps:
-    - uses: actions/checkout@08c6903cd8c0fde910a37f88322edcfb5dd907a8
+    - uses: actions/checkout@1af3b93b6815bc44a9784bd300feb67ff0d1eeb3 # v6.0.0
     - uses: ./.github/actions/setup-go
       with:
         go-version: ${{ env.GO_VERSION }}
         upload-cache: false
-    - uses: 
golangci/golangci-lint-action@4afd733a84b1f43292c63897423277bb7f4313a9
+    - uses: 
golangci/golangci-lint-action@e7fa5ac41e1cf5b7d48e45e42232ce7ada589601 # v9.1.0
       with:
         version: v${{ env.GOLANGCI_LINT_VERSION }}
         args: --timeout=5m
@@ -434,7 +434,7 @@
       run: snapcraft whoami
       env:
         SNAPCRAFT_STORE_CREDENTIALS: ${{ secrets.SNAPCRAFT_STORE_CREDENTIALS }}
-    - uses: actions/checkout@08c6903cd8c0fde910a37f88322edcfb5dd907a8
+    - uses: actions/checkout@1af3b93b6815bc44a9784bd300feb67ff0d1eeb3 # v6.0.0
       with:
         fetch-depth: 0
     - uses: ./.github/actions/free-disk-space
@@ -442,13 +442,13 @@
       with:
         cache-prefix: release-go
         go-version: ${{ env.GO_VERSION }}
-    - uses: sigstore/cosign-installer@faadad0cce49287aee09b3a48701e75088a2c6ad
+    - uses: sigstore/cosign-installer@faadad0cce49287aee09b3a48701e75088a2c6ad 
# v4.0.0
       with:
         cosign-release: v${{ env.COSIGN_VERSION }}
     - name: create-syso
       run: |
         make create-syso
-    - uses: 
goreleaser/goreleaser-action@e435ccd777264be153ace6237001ef4d979d3a7a
+    - uses: 
goreleaser/goreleaser-action@e435ccd777264be153ace6237001ef4d979d3a7a # v6.4.0
       with:
         version: ${{ env.GORELEASER_VERSION }}
         args: release --timeout=1h
@@ -466,14 +466,14 @@
     permissions:
       contents: write
     steps:
-    - uses: actions/checkout@08c6903cd8c0fde910a37f88322edcfb5dd907a8
+    - uses: actions/checkout@1af3b93b6815bc44a9784bd300feb67ff0d1eeb3 # v6.0.0
       with:
         fetch-depth: 0
     - uses: ./.github/actions/setup-go
       with:
         cache-prefix: website-go
         go-version: ${{ env.GO_VERSION }}
-    - uses: astral-sh/setup-uv@85856786d1ce8acfbcc2f13a5f3fbd6b938f9f41
+    - uses: astral-sh/setup-uv@1e862dfacbd1d6d858c55d9b792c756523627244 # 
v7.1.4
       with:
         enable-cache: true
         version: ${{ env.UV_VERSION }}
@@ -494,7 +494,7 @@
         cp assets/scripts/install.ps1 assets/get.chezmoi.io/ps1
         cp LICENSE assets/get.chezmoi.io/LICENSE
     - name: push-get.chezmoi.io
-      uses: 
cpina/github-action-push-to-another-repository@55306faa4ed53b815ae49e564af8cfb359d32ae2
+      uses: 
cpina/github-action-push-to-another-repository@55306faa4ed53b815ae49e564af8cfb359d32ae2
 # v1.7.3
       env:
         SSH_DEPLOY_KEY: ${{ secrets.GET_CHEZMOI_IO_SSH_DEPLOY_KEY }}
       with:
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/chezmoi-2.67.0/assets/chezmoi.io/docs/developer-guide/contributing-changes.md
 
new/chezmoi-2.67.1/assets/chezmoi.io/docs/developer-guide/contributing-changes.md
--- 
old/chezmoi-2.67.0/assets/chezmoi.io/docs/developer-guide/contributing-changes.md
   2025-11-02 19:55:46.000000000 +0100
+++ 
new/chezmoi-2.67.1/assets/chezmoi.io/docs/developer-guide/contributing-changes.md
   2025-11-26 23:25:27.000000000 +0100
@@ -18,14 +18,13 @@
 
 * The documentation is updated, if necessary. For new features you should add 
an
   entry in `assets/chezmoi.io/docs/user-guide/` and a complete description in
-  `assets/chezmoi.io/docs/reference/`. See the [website][website] for
-  instructions on how to build and view a local version of the documentation. 
By
-  default, chezmoi will panic if a flag is undocumented or a long help is
-  missing for a command. You can disable this panic during development by
-  setting the environment variable `CHEZMOIDEV` to 
`ignoreflags=1,ignorehelp=1`.
-  Once you have documented the command and its flags, run
-  `make generate` to generate the embedded
-  documentation.
+  `assets/chezmoi.io/docs/reference/`. See the [website developer
+  guide][website] for instructions on how to build and view a local version of
+  the documentation. By default, chezmoi will panic if a flag is undocumented 
or
+  a long help is missing for a command. You can disable this panic during
+  development by setting the environment variable `CHEZMOIDEV` to
+  `ignoreflags=1,ignorehelp=1`. Once you have documented the command and its
+  flags, run `make generate` to generate the embedded documentation.
 
 * All generated files are up to date. You can ensure this by running `make
   generate` and including any modified files in your commit.
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/chezmoi-2.67.0/assets/chezmoi.io/docs/developer-guide/install-script.md 
new/chezmoi-2.67.1/assets/chezmoi.io/docs/developer-guide/install-script.md
--- old/chezmoi-2.67.0/assets/chezmoi.io/docs/developer-guide/install-script.md 
2025-11-02 19:55:46.000000000 +0100
+++ new/chezmoi-2.67.1/assets/chezmoi.io/docs/developer-guide/install-script.md 
2025-11-26 23:25:27.000000000 +0100
@@ -4,7 +4,7 @@
 You must run
 
 ```sh
-go generate
+make generate
 ```
 
 if your change includes any of the following:
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/chezmoi-2.67.0/assets/chezmoi.io/docs/developer-guide/releases.md 
new/chezmoi-2.67.1/assets/chezmoi.io/docs/developer-guide/releases.md
--- old/chezmoi-2.67.0/assets/chezmoi.io/docs/developer-guide/releases.md       
2025-11-02 19:55:46.000000000 +0100
+++ new/chezmoi-2.67.1/assets/chezmoi.io/docs/developer-guide/releases.md       
2025-11-26 23:25:27.000000000 +0100
@@ -30,34 +30,34 @@
 packages, and snaps, creates a new [GitHub Release][release], and deploys the
 [website][website].
 
-!!! note
+### Snaps
 
-    Publishing [Snaps][snaps] requires a `SNAPCRAFT_STORE_CREDENTIALS`
-    [repository secret][secret].
+Publishing [Snaps][snaps] requires a `SNAPCRAFT_STORE_CREDENTIALS` [repository
+secret][secret].
 
-    Snapcraft store credentials periodically expire. Create new snapcraft store
-    credentials by running:
+Snapcraft store credentials periodically expire. Create new snapcraft store
+credentials by running:
 
-    ```sh
-    snapcraft export-login --snaps=chezmoi 
--channels=stable,candidate,beta,edge --acls=package_upload -
-    ```
+```sh
+snapcraft export-login --snaps=chezmoi --channels=stable,candidate,beta,edge 
--acls=package_upload -
+```
 
-!!! note
+### Homebrew
 
-    [brew][brew] automation will automatically detect new releases of chezmoi
-    within a few hours and open a pull request in
-    [github.com/Homebrew/homebrew-core][homebrew-core] to bump the version.
+[Homebrew][homebrew] automation will automatically detect new releases of 
chezmoi within
+a few hours and open a pull request in
+[github.com/Homebrew/homebrew-core][homebrew-core] to bump the version.
 
-    If needed, the pull request can be created with:
+If needed, the pull request can be created with:
 
-    ```sh
-    brew bump-formula-pr --tag=v1.2.3 chezmoi
-    ```
+```sh
+brew bump-formula-pr --tag=v1.2.3 chezmoi
+```
 
-!!! note
+### Scoop
 
-    chezmoi is in [Scoop][scoop]'s Main bucket. Scoop's automation will
-    automatically detect new releases within a few hours.
+chezmoi is in [Scoop][scoop]'s Main bucket. Scoop's automation will
+automatically detect new releases within a few hours.
 
 ## Signing
 
@@ -92,7 +92,7 @@
 [website]: https://chezmoi.io
 [snaps]: https://snapcraft.io/
 [secret]: https://github.com/twpayne/chezmoi/settings/secrets/actions
-[brew]: https://brew.sh/
+[homebrew]: https://brew.sh/
 [homebrew-core]: https://github.com/Homebrew/homebrew-core
 [scoop]: https://scoop.sh/
 [signing]: https://goreleaser.com/customization/sign/
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/chezmoi-2.67.0/assets/chezmoi.io/docs/links/articles.md.yaml 
new/chezmoi-2.67.1/assets/chezmoi.io/docs/links/articles.md.yaml
--- old/chezmoi-2.67.0/assets/chezmoi.io/docs/links/articles.md.yaml    
2025-11-02 19:55:46.000000000 +0100
+++ new/chezmoi-2.67.1/assets/chezmoi.io/docs/links/articles.md.yaml    
2025-11-26 23:25:27.000000000 +0100
@@ -605,6 +605,10 @@
   version: 2.65.2
   title: Testable Dotfiles Management With Chezmoi
   url: https://shunk031.me/post/testable-dotfiles-management-with-chezmoi/
+- date: '2025-10-07'
+  version: 2.65.2
+  title: Dotfiles with Chezmoi
+  url: https://aohorodnyk.com/post/2025-10-07-dotfiles-with-chezmoi/
 - date: '2025-11-02'
   version: 2.66.1
   title: Maintaining KDE dotfiles with Chezmoi Modify Manager
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/chezmoi-2.67.0/assets/chezmoi.io/docs/links/podcasts.md.yaml 
new/chezmoi-2.67.1/assets/chezmoi.io/docs/links/podcasts.md.yaml
--- old/chezmoi-2.67.0/assets/chezmoi.io/docs/links/podcasts.md.yaml    
2025-11-02 19:55:46.000000000 +0100
+++ new/chezmoi-2.67.1/assets/chezmoi.io/docs/links/podcasts.md.yaml    
2025-11-26 23:25:27.000000000 +0100
@@ -45,3 +45,8 @@
   version: 2.52.4
   title: Releasing more BSDs
   url: https://www.bsdnow.tv/581?t=2064
+- date: '2025-11-24'
+  version: 2.67.0
+  lang: JP
+  title: EP326 10年モノのdotfilesを整理
+  url: https://yuru28.com/326#t=1081
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/chezmoi-2.67.0/assets/chezmoi.io/docs/quick-start.md 
new/chezmoi-2.67.1/assets/chezmoi.io/docs/quick-start.md
--- old/chezmoi-2.67.0/assets/chezmoi.io/docs/quick-start.md    2025-11-02 
19:55:46.000000000 +0100
+++ new/chezmoi-2.67.1/assets/chezmoi.io/docs/quick-start.md    2025-11-26 
23:25:27.000000000 +0100
@@ -101,8 +101,8 @@
     participant L as local repo
     participant R as remote repo
     H->>L: chezmoi init
-    H->>W: chezmoi add &lt;file&gt;
-    W->>W: chezmoi edit &lt;file&gt;
+    H->>W: chezmoi add $FILE
+    W->>W: chezmoi edit $FILE
     W-->>H: chezmoi diff
     W->>H: chezmoi apply
     H-->>W: chezmoi cd
@@ -171,11 +171,11 @@
     participant W as working copy
     participant L as local repo
     participant R as remote repo
-    R->>W: chezmoi init &lt;repo&gt;
+    R->>W: chezmoi init $REPO
     W-->>H: chezmoi diff
     W->>H: chezmoi apply
-    W->>W: chezmoi edit &lt;file&gt;
-    W->>W: chezmoi merge &lt;file&gt;
+    W->>W: chezmoi edit $FILE
+    W->>W: chezmoi merge $FILE
     R->>H: chezmoi update
 ```
 
@@ -210,7 +210,7 @@
     participant W as working copy
     participant L as local repo
     participant R as remote repo
-    R->>H: chezmoi init --apply &lt;repo&gt;
+    R->>H: chezmoi init --apply $REPO
 ```
 
 ## Next steps
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/chezmoi-2.67.0/assets/chezmoi.io/docs/user-guide/command-overview.md 
new/chezmoi-2.67.1/assets/chezmoi.io/docs/user-guide/command-overview.md
--- old/chezmoi-2.67.0/assets/chezmoi.io/docs/user-guide/command-overview.md    
2025-11-02 19:55:46.000000000 +0100
+++ new/chezmoi-2.67.1/assets/chezmoi.io/docs/user-guide/command-overview.md    
2025-11-26 23:25:27.000000000 +0100
@@ -38,12 +38,12 @@
     participant W as working copy
     participant L as local repo
     participant R as remote repo
-    H->>W: chezmoi add &lt;file&gt;
-    W->>W: chezmoi edit &lt;file&gt;
+    H->>W: chezmoi add $FILE
+    W->>W: chezmoi edit $FILE
     W-->>H: chezmoi status
     W-->>H: chezmoi diff
     W->>H: chezmoi apply
-    W->>H: chezmoi edit --apply &lt;file&gt;
+    W->>H: chezmoi edit --apply $FILE
     H-->>W: chezmoi cd
 ```
 
@@ -68,9 +68,9 @@
     participant W as working copy
     participant L as local repo
     participant R as remote repo
-    R->>W: chezmoi init &lt;github-username&gt;
-    R->>H: chezmoi init --apply &lt;github-username&gt;
-    R->>H: chezmoi update &lt;github-username&gt;
+    R->>W: chezmoi init $GITHUB_USERNAME
+    R->>H: chezmoi init --apply $GITHUB_USERNAME
+    R->>H: chezmoi update $GITHUB_USERNAME
     W->>L: git commit
     L->>R: git push
 ```
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/chezmoi-2.67.0/assets/chezmoi.io/docs/user-guide/encryption/age.md 
new/chezmoi-2.67.1/assets/chezmoi.io/docs/user-guide/encryption/age.md
--- old/chezmoi-2.67.0/assets/chezmoi.io/docs/user-guide/encryption/age.md      
2025-11-02 19:55:46.000000000 +0100
+++ new/chezmoi-2.67.1/assets/chezmoi.io/docs/user-guide/encryption/age.md      
2025-11-26 23:25:27.000000000 +0100
@@ -2,7 +2,7 @@
 
 chezmoi supports encrypting files with [age][age].
 
-Generate a key using the `age-keygen`:
+Generate a key using `chezmoi age-keygen`:
 
 ```console
 $ chezmoi age-keygen --output=$HOME/key.txt
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/chezmoi-2.67.0/assets/chezmoi.io/docs/user-guide/frequently-asked-questions/encryption.md
 
new/chezmoi-2.67.1/assets/chezmoi.io/docs/user-guide/frequently-asked-questions/encryption.md
--- 
old/chezmoi-2.67.0/assets/chezmoi.io/docs/user-guide/frequently-asked-questions/encryption.md
       2025-11-02 19:55:46.000000000 +0100
+++ 
new/chezmoi-2.67.1/assets/chezmoi.io/docs/user-guide/frequently-asked-questions/encryption.md
       2025-11-26 23:25:27.000000000 +0100
@@ -15,7 +15,7 @@
 First, change to chezmoi's root directory:
 
 ```sh
-chezmoi cd ~
+chezmoi cd
 ```
 
 Generate an age private key encrypted with a passphrase in the file
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/chezmoi-2.67.0/assets/chezmoi.io/docs/user-guide/machines/windows.md 
new/chezmoi-2.67.1/assets/chezmoi.io/docs/user-guide/machines/windows.md
--- old/chezmoi-2.67.0/assets/chezmoi.io/docs/user-guide/machines/windows.md    
2025-11-02 19:55:46.000000000 +0100
+++ new/chezmoi-2.67.1/assets/chezmoi.io/docs/user-guide/machines/windows.md    
2025-11-26 23:25:27.000000000 +0100
@@ -31,18 +31,33 @@
 
 If you use [gsudo][gsudo], it has tips on writing [self-elevating 
scripts][ses].
 
-## Notes on running elevated scripts
+## Run elevated scripts
 
-However you decide to run a script in an elevated prompt, as soon as the 
non-elevated script returns, chezmoi will move to the next step in its
-processing (running more scripts, creating files, etc.).
-Ensure that the elevated script completes *before the non-elevated script 
exits*, or subsequent steps may not run as expected.
-In the example above, this is accomplished by passing `-Wait` to PowerShell's 
`Start-Process` cmdlet.
-
-Note that by including `-NoExit` in `$CommandLine`, the new (elevated) 
PowerShell process/window will not exit automatically on completion.
-This means you'll need to close the new window by hand for chezmoi to continue 
its steps. If this manual intervention is desired, it would
-be convenient to print a message as the script's last command to indicate 
completion for you to safely close the elevated window.
-If you want no manual intervention, you can remove `-NoExit` from 
`$CommandLine`, but then you likely won’t see the output of the elevated
-script, which will make it more difficult to determine if something went wrong 
during its execution.
+However you decide to run a script in an elevated prompt, as soon as the
+non-elevated script returns, chezmoi will move to the next step in its
+processing (running more scripts, creating files, etc.). Ensure that the
+elevated script completes *before the non-elevated script exits*, or subsequent
+steps may not run as expected. In the example above, this is accomplished by
+passing `-Wait` to PowerShell's `Start-Process` cmdlet.
+
+Note that by including `-NoExit` in `$CommandLine`, the new (elevated)
+PowerShell process/window will not exit automatically on completion. This means
+you'll need to close the new window by hand for chezmoi to continue its steps.
+If this manual intervention is desired, it would be convenient to print a
+message as the script's last command to indicate completion for you to safely
+close the elevated window. If you want no manual intervention, you can remove
+`-NoExit` from `$CommandLine`, but then you likely won’t see the output of the
+elevated script, which will make it more difficult to determine if something
+went wrong during its execution.
+
+## Create symlinks
+
+For chezmoi to be able to create symlinks, the current user must have the
+appropriate permissions. This can be achieved by turning on [developer
+mode][devmode] or setting the permission `SeCreateSymbolicLinkPrivilege`
+[directly][symperm].
 
 [gsudo]: https://gerardog.github.io/gsudo/docs/intro
 [ses]: 
https://gerardog.github.io/gsudo/docs/tips/script-self-elevation#self-elevate-script
+[devmode]: 
https://learn.microsoft.com/en-us/windows/advanced-settings/developer-mode
+[symperm]: 
https://learn.microsoft.com/en-us/previous-versions/windows/it-pro/windows-10/security/threat-protection/security-policy-settings/create-symbolic-links
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/chezmoi-2.67.0/assets/chezmoi.io/docs/user-guide/setup.md 
new/chezmoi-2.67.1/assets/chezmoi.io/docs/user-guide/setup.md
--- old/chezmoi-2.67.0/assets/chezmoi.io/docs/user-guide/setup.md       
2025-11-02 19:55:46.000000000 +0100
+++ new/chezmoi-2.67.1/assets/chezmoi.io/docs/user-guide/setup.md       
2025-11-26 23:25:27.000000000 +0100
@@ -65,10 +65,10 @@
     participant W as working copy
     participant L as local repo
     participant R as remote repo
-    R->>W: chezmoi init &lt;repo&gt;
+    R->>W: chezmoi init $REPO
     W-->>H: chezmoi diff
     W->>H: chezmoi apply
-    R->>H: chezmoi init --apply &lt;repo&gt;
+    R->>H: chezmoi init --apply $REPO
 ```
 
 ## Use a private repo to store your dotfiles
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/chezmoi-2.67.0/assets/chezmoi.io/docs/user-guide/tools/merge.md 
new/chezmoi-2.67.1/assets/chezmoi.io/docs/user-guide/tools/merge.md
--- old/chezmoi-2.67.0/assets/chezmoi.io/docs/user-guide/tools/merge.md 
2025-11-02 19:55:46.000000000 +0100
+++ new/chezmoi-2.67.1/assets/chezmoi.io/docs/user-guide/tools/merge.md 
2025-11-26 23:25:27.000000000 +0100
@@ -67,7 +67,7 @@
     command = "bash"
     args = [
         "-c",
-        "cp {{ .Target | quote }} {{ printf "%s.base" .Target | quote }} && 
code --new-window --wait --merge {{ .Destination | quote }} {{ .Target | quote 
}} {{ printf "%s.base" .Target | quote }} {{ .Source | quote }}",
+        "cp {{ .Target | quote }} {{ printf \"%s.base\" .Target | quote }} && 
code --new-window --wait --merge {{ .Destination | quote }} {{ .Target | quote 
}} {{ printf \"%s.base\" .Target | quote }} {{ .Source | quote }}",
     ]
     ```
 
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/chezmoi-2.67.0/go.mod new/chezmoi-2.67.1/go.mod
--- old/chezmoi-2.67.0/go.mod   2025-11-02 19:55:46.000000000 +0100
+++ new/chezmoi-2.67.1/go.mod   2025-11-26 23:25:27.000000000 +0100
@@ -1,6 +1,6 @@
 module chezmoi.io/chezmoi
 
-go 1.25.1
+go 1.25.4
 
 tool (
        chezmoi.io/chezmoi
@@ -24,14 +24,14 @@
 
 require (
        filippo.io/age v1.2.1
-       github.com/Azure/azure-sdk-for-go/sdk/azidentity v1.13.0
+       github.com/Azure/azure-sdk-for-go/sdk/azidentity v1.13.1
        github.com/Azure/azure-sdk-for-go/sdk/security/keyvault/azsecrets v1.4.0
        github.com/Masterminds/sprig/v3 v3.3.0
        github.com/Shopify/ejson v1.5.4
        github.com/alecthomas/assert/v2 v2.11.0
-       github.com/aws/aws-sdk-go-v2 v1.39.5
-       github.com/aws/aws-sdk-go-v2/config v1.31.16
-       github.com/aws/aws-sdk-go-v2/service/secretsmanager v1.39.10
+       github.com/aws/aws-sdk-go-v2 v1.40.0
+       github.com/aws/aws-sdk-go-v2/config v1.32.2
+       github.com/aws/aws-sdk-go-v2/service/secretsmanager v1.40.2
        github.com/bmatcuk/doublestar/v4 v4.9.1
        github.com/bradenhilton/mozillainstallhash v1.0.1
        github.com/charmbracelet/bubbles v0.20.0
@@ -40,12 +40,12 @@
        github.com/charmbracelet/lipgloss v1.1.1-0.20250404203927-76690c660834
        github.com/coreos/go-semver v0.3.1
        github.com/fsnotify/fsnotify v1.9.0
-       github.com/go-git/go-git/v5 v5.16.3
+       github.com/go-git/go-git/v5 v5.16.4
        github.com/go-viper/mapstructure/v2 v2.4.0
        github.com/goccy/go-yaml v1.18.0
        github.com/google/go-github/v61 v61.0.0
-       github.com/google/renameio/v2 v2.0.0
-       github.com/gopasspw/gopass v1.15.18
+       github.com/google/renameio/v2 v2.0.1
+       github.com/gopasspw/gopass v1.16.0
        github.com/gregjones/httpcache v0.0.0-20190611155906-901d90724c79
        github.com/itchyny/gojq v0.12.17
        github.com/klauspost/compress v1.18.1
@@ -56,7 +56,6 @@
        github.com/nwaples/rardecode/v2 v2.2.1
        github.com/pelletier/go-toml/v2 v2.2.4
        github.com/rogpeppe/go-internal v1.14.1
-       github.com/sergi/go-diff v1.4.0
        github.com/spf13/cobra v1.10.1
        github.com/spf13/pflag v1.0.10
        github.com/tailscale/hujson v0.0.0-20250605163823-992244df8c5a
@@ -68,27 +67,28 @@
        github.com/twpayne/go-xdg/v6 v6.1.3
        github.com/ulikunitz/xz v0.5.15
        github.com/zalando/go-keyring v0.2.6
-       github.com/zricethezav/gitleaks/v8 v8.28.0
+       github.com/zricethezav/gitleaks/v8 v8.30.0
        go.etcd.io/bbolt v1.4.3
-       golang.org/x/crypto v0.43.0
-       golang.org/x/oauth2 v0.32.0
-       golang.org/x/sync v0.17.0
-       golang.org/x/sys v0.37.0
-       golang.org/x/term v0.36.0
-       golang.org/x/text v0.30.0
+       golang.org/x/crypto v0.45.0
+       golang.org/x/oauth2 v0.33.0
+       golang.org/x/sync v0.18.0
+       golang.org/x/sys v0.38.0
+       golang.org/x/term v0.37.0
+       golang.org/x/text v0.31.0
        gopkg.in/ini.v1 v1.67.0
        howett.net/plist v1.0.1
        mvdan.cc/sh/v3 v3.12.0
+       znkr.io/diff v1.0.0-beta.4
 )
 
 require (
        al.essio.dev/pkg/shellescape v1.6.0 // indirect
        dario.cat/mergo v1.0.2 // indirect
        filippo.io/edwards25519 v1.1.0 // indirect
-       github.com/Azure/azure-sdk-for-go/sdk/azcore v1.19.1 // indirect
+       github.com/Azure/azure-sdk-for-go/sdk/azcore v1.20.0 // indirect
        github.com/Azure/azure-sdk-for-go/sdk/internal v1.11.2 // indirect
        github.com/Azure/azure-sdk-for-go/sdk/security/keyvault/internal v1.2.0 
// indirect
-       github.com/AzureAD/microsoft-authentication-library-for-go v1.5.0 // 
indirect
+       github.com/AzureAD/microsoft-authentication-library-for-go v1.6.0 // 
indirect
        github.com/BobuSumisu/aho-corasick v1.0.3 // indirect
        github.com/Masterminds/goutils v1.1.1 // indirect
        github.com/Masterminds/semver/v3 v3.4.0 // indirect
@@ -100,17 +100,18 @@
        github.com/alecthomas/repr v0.5.2 // indirect
        github.com/andybalholm/brotli v1.2.0 // indirect
        github.com/atotto/clipboard v0.1.4 // indirect
-       github.com/aws/aws-sdk-go-v2/credentials v1.18.20 // indirect
-       github.com/aws/aws-sdk-go-v2/feature/ec2/imds v1.18.12 // indirect
-       github.com/aws/aws-sdk-go-v2/internal/configsources v1.4.12 // indirect
-       github.com/aws/aws-sdk-go-v2/internal/endpoints/v2 v2.7.12 // indirect
+       github.com/aws/aws-sdk-go-v2/credentials v1.19.2 // indirect
+       github.com/aws/aws-sdk-go-v2/feature/ec2/imds v1.18.14 // indirect
+       github.com/aws/aws-sdk-go-v2/internal/configsources v1.4.14 // indirect
+       github.com/aws/aws-sdk-go-v2/internal/endpoints/v2 v2.7.14 // indirect
        github.com/aws/aws-sdk-go-v2/internal/ini v1.8.4 // indirect
-       github.com/aws/aws-sdk-go-v2/service/internal/accept-encoding v1.13.2 
// indirect
-       github.com/aws/aws-sdk-go-v2/service/internal/presigned-url v1.13.12 // 
indirect
-       github.com/aws/aws-sdk-go-v2/service/sso v1.30.0 // indirect
-       github.com/aws/aws-sdk-go-v2/service/ssooidc v1.35.4 // indirect
-       github.com/aws/aws-sdk-go-v2/service/sts v1.39.0 // indirect
-       github.com/aws/smithy-go v1.23.1 // indirect
+       github.com/aws/aws-sdk-go-v2/service/internal/accept-encoding v1.13.3 
// indirect
+       github.com/aws/aws-sdk-go-v2/service/internal/presigned-url v1.13.14 // 
indirect
+       github.com/aws/aws-sdk-go-v2/service/signin v1.0.2 // indirect
+       github.com/aws/aws-sdk-go-v2/service/sso v1.30.5 // indirect
+       github.com/aws/aws-sdk-go-v2/service/ssooidc v1.35.10 // indirect
+       github.com/aws/aws-sdk-go-v2/service/sts v1.41.2 // indirect
+       github.com/aws/smithy-go v1.23.2 // indirect
        github.com/aymanbagabas/go-osc52/v2 v2.0.1 // indirect
        github.com/aymerick/douceur v0.2.0 // indirect
        github.com/baulk/chardet v0.1.0 // indirect
@@ -121,18 +122,19 @@
        github.com/bradenhilton/cityhash v1.0.0 // indirect
        github.com/caspr-io/yamlpath v0.0.0-20200722075116-502e8d113a9b // 
indirect
        github.com/cenkalti/backoff/v4 v4.3.0 // indirect
-       github.com/charmbracelet/colorprofile v0.3.2 // indirect
+       github.com/charmbracelet/colorprofile v0.3.3 // indirect
        github.com/charmbracelet/harmonica v0.2.0 // indirect
-       github.com/charmbracelet/x/ansi v0.10.2 // indirect
-       github.com/charmbracelet/x/cellbuf v0.0.13 // indirect
-       github.com/charmbracelet/x/exp/slice v0.0.0-20251031172406-4542a189d0fb 
// indirect
+       github.com/charmbracelet/x/ansi v0.11.2 // indirect
+       github.com/charmbracelet/x/cellbuf v0.0.14 // indirect
+       github.com/charmbracelet/x/exp/slice v0.0.0-20251126160633-0b68cdcd21da 
// indirect
        github.com/charmbracelet/x/term v0.2.2 // indirect
+       github.com/clipperhouse/displaywidth v0.6.0 // indirect
        github.com/clipperhouse/stringish v0.1.1 // indirect
        github.com/clipperhouse/uax29/v2 v2.3.0 // indirect
        github.com/cloudflare/circl v1.6.1 // indirect
        github.com/cpuguy83/go-md2man/v2 v2.0.7 // indirect
        github.com/creack/pty/v2 v2.0.0-20231209135443-03db72c7b76c // indirect
-       github.com/cyphar/filepath-securejoin v0.5.0 // indirect
+       github.com/cyphar/filepath-securejoin v0.6.1 // indirect
        github.com/danieljoos/wincred v1.2.3 // indirect
        github.com/dlclark/regexp2 v1.11.5 // indirect
        github.com/dsnet/compress v0.0.2-0.20230904184137-39efe44ab707 // 
indirect
@@ -151,7 +153,7 @@
        github.com/go-git/gcfg v1.5.1-0.20230307220236-3a3c6141e376 // indirect
        github.com/go-git/go-billy/v5 v5.6.2 // indirect
        github.com/gobwas/glob v0.2.3 // indirect
-       github.com/godbus/dbus/v5 v5.1.0 // indirect
+       github.com/godbus/dbus/v5 v5.2.0 // indirect
        github.com/golang-jwt/jwt/v5 v5.3.0 // indirect
        github.com/golang/groupcache v0.0.0-20241129210726-2c02b8208cf8 // 
indirect
        github.com/google/btree v1.1.3 // indirect
@@ -162,6 +164,7 @@
        github.com/gopasspw/gitconfig v0.0.3 // indirect
        github.com/gorilla/css v1.0.1 // indirect
        github.com/h2non/filetype v1.1.3 // indirect
+       github.com/hashicorp/go-version v1.7.0 // indirect
        github.com/hashicorp/golang-lru/v2 v2.0.7 // indirect
        github.com/hexops/gotextdiff v1.0.3 // indirect
        github.com/huandu/xstrings v1.5.0 // indirect
@@ -196,6 +199,7 @@
        github.com/rs/zerolog v1.34.0 // indirect
        github.com/russross/blackfriday/v2 v2.1.0 // indirect
        github.com/sagikazarmark/locafero v0.12.0 // indirect
+       github.com/sergi/go-diff v1.4.0 // indirect
        github.com/shopspring/decimal v1.4.0 // indirect
        github.com/skeema/knownhosts v1.3.2 // indirect
        github.com/sorairolake/lzip-go v0.3.8 // indirect
@@ -203,7 +207,7 @@
        github.com/spf13/cast v1.10.0 // indirect
        github.com/spf13/viper v1.21.0 // indirect
        github.com/subosito/gotenv v1.6.0 // indirect
-       github.com/tetratelabs/wazero v1.9.0 // indirect
+       github.com/tetratelabs/wazero v1.10.1 // indirect
        github.com/tobischo/argon2 v0.1.0 // indirect
        github.com/twpayne/find-typos v0.0.3 // indirect
        github.com/twpayne/go-jsonstruct/v3 v3.3.0 // indirect
@@ -217,10 +221,10 @@
        github.com/yuin/goldmark-emoji v1.0.6 // indirect
        go.yaml.in/yaml/v3 v3.0.4 // indirect
        go4.org v0.0.0-20230225012048-214862532bf5 // indirect
-       golang.org/x/exp v0.0.0-20251023183803-a4bb9ffd2546 // indirect
-       golang.org/x/mod v0.29.0 // indirect
-       golang.org/x/net v0.46.0 // indirect
-       golang.org/x/tools v0.38.0 // indirect
+       golang.org/x/exp v0.0.0-20251125195548-87e1e737ad39 // indirect
+       golang.org/x/mod v0.30.0 // indirect
+       golang.org/x/net v0.47.0 // indirect
+       golang.org/x/tools v0.39.0 // indirect
        google.golang.org/protobuf v1.36.7 // indirect
        gopkg.in/warnings.v0 v0.1.2 // indirect
        gopkg.in/yaml.v3 v3.0.1 // indirect
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/chezmoi-2.67.0/go.sum new/chezmoi-2.67.1/go.sum
--- old/chezmoi-2.67.0/go.sum   2025-11-02 19:55:46.000000000 +0100
+++ new/chezmoi-2.67.1/go.sum   2025-11-26 23:25:27.000000000 +0100
@@ -27,6 +27,8 @@
 cloud.google.com/go/storage v1.5.0/go.mod 
h1:tpKbwo567HUNpVclU5sGELwQWBDZ8gh0ZeosJ0Rtdos=
 codeberg.org/tslocum/cbind v0.1.6 
h1:RhnKC7tmrCf0ZJBTQ6b1voAFcGqIEjDsKzqlqFWwkV8=
 codeberg.org/tslocum/cbind v0.1.6/go.mod 
h1:gfR4e1lfYqC4xlR0N//omQc1JbHx+e1Mk5F8UfotYYc=
+cyphar.com/go-pathrs v0.2.1 h1:9nx1vOgwVvX1mNBWDu93+vaceedpbsDqo+XuBGL40b8=
+cyphar.com/go-pathrs v0.2.1/go.mod 
h1:y8f1EMG7r+hCuFf/rXsKqMJrJAUoADZGNh5/vZPKcGc=
 dario.cat/mergo v1.0.2 h1:85+piFYR1tMbRrLcDwR18y4UKJ3aH1Tbzi24VRW1TK8=
 dario.cat/mergo v1.0.2/go.mod h1:E/hbnu0NxMFBjpMIE34DRGLWqDy0g5FuKDhCb31ngxA=
 dmitri.shuralyov.com/gpu/mtl v0.0.0-20190408044501-666a987793e9 
h1:VpgP7xuJadIUuKccphEpTJnWhS2jkQyMt6Y7pJCD7fY=
@@ -35,10 +37,10 @@
 filippo.io/age v1.2.1/go.mod h1:JL9ew2lTN+Pyft4RiNGguFfOpewKwSHm5ayKD/A4004=
 filippo.io/edwards25519 v1.1.0 h1:FNf4tywRC1HmFuKW5xopWpigGjJKiJSV0Cqo0cJWDaA=
 filippo.io/edwards25519 v1.1.0/go.mod 
h1:BxyFTGdWcka3PhytdK4V28tE5sGfRvvvRV7EaN4VDT4=
-github.com/Azure/azure-sdk-for-go/sdk/azcore v1.19.1 
h1:5YTBM8QDVIBN3sxBil89WfdAAqDZbyJTgh688DSxX5w=
-github.com/Azure/azure-sdk-for-go/sdk/azcore v1.19.1/go.mod 
h1:YD5h/ldMsG0XiIw7PdyNhLxaM317eFh5yNLccNfGdyw=
-github.com/Azure/azure-sdk-for-go/sdk/azidentity v1.13.0 
h1:KpMC6LFL7mqpExyMC9jVOYRiVhLmamjeZfRsUpB7l4s=
-github.com/Azure/azure-sdk-for-go/sdk/azidentity v1.13.0/go.mod 
h1:J7MUC/wtRpfGVbQ5sIItY5/FuVWmvzlY21WAOfQnq/I=
+github.com/Azure/azure-sdk-for-go/sdk/azcore v1.20.0 
h1:JXg2dwJUmPB9JmtVmdEB16APJ7jurfbY5jnfXpJoRMc=
+github.com/Azure/azure-sdk-for-go/sdk/azcore v1.20.0/go.mod 
h1:YD5h/ldMsG0XiIw7PdyNhLxaM317eFh5yNLccNfGdyw=
+github.com/Azure/azure-sdk-for-go/sdk/azidentity v1.13.1 
h1:Hk5QBxZQC1jb2Fwj6mpzme37xbCDdNTxU7O9eb5+LB4=
+github.com/Azure/azure-sdk-for-go/sdk/azidentity v1.13.1/go.mod 
h1:IYus9qsFobWIc2YVwe/WPjcnyCkPKtnHAqUYeebc8z0=
 github.com/Azure/azure-sdk-for-go/sdk/azidentity/cache v0.3.2 
h1:yz1bePFlP5Vws5+8ez6T3HWXPmwOK7Yvq8QxDBD3SKY=
 github.com/Azure/azure-sdk-for-go/sdk/azidentity/cache v0.3.2/go.mod 
h1:Pa9ZNPuoNu/GztvBSKk9J1cDJW6vk/n0zLtV4mgd8N8=
 github.com/Azure/azure-sdk-for-go/sdk/internal v1.11.2 
h1:9iefClla7iYpfYWdzPCRDozdmndjTm8DXdpCzPajMgA=
@@ -49,8 +51,8 @@
 github.com/Azure/azure-sdk-for-go/sdk/security/keyvault/internal v1.2.0/go.mod 
h1:ucUjca2JtSZboY8IoUqyQyuuXvwbMBVwFOm0vdQPNhA=
 github.com/AzureAD/microsoft-authentication-extensions-for-go/cache v0.1.1 
h1:WJTmL004Abzc5wDB5VtZG2PJk5ndYDgVacGqfirKxjM=
 github.com/AzureAD/microsoft-authentication-extensions-for-go/cache 
v0.1.1/go.mod h1:tCcJZ0uHAmvjsVYzEFivsRTN00oz5BEsRgQHu5JZ9WE=
-github.com/AzureAD/microsoft-authentication-library-for-go v1.5.0 
h1:XkkQbfMyuH2jTSjQjSoihryI8GINRcs4xp8lNawg0FI=
-github.com/AzureAD/microsoft-authentication-library-for-go v1.5.0/go.mod 
h1:HKpQxkWaGLJ+D/5H8QRpyQXA1eKjxkFlOMwck5+33Jk=
+github.com/AzureAD/microsoft-authentication-library-for-go v1.6.0 
h1:XRzhVemXdgvJqCH0sFfrBUTnUJSBrBf7++ypk+twtRs=
+github.com/AzureAD/microsoft-authentication-library-for-go v1.6.0/go.mod 
h1:HKpQxkWaGLJ+D/5H8QRpyQXA1eKjxkFlOMwck5+33Jk=
 github.com/BobuSumisu/aho-corasick v1.0.3 
h1:uuf+JHwU9CHP2Vx+wAy6jcksJThhJS9ehR8a+4nPE9g=
 github.com/BobuSumisu/aho-corasick v1.0.3/go.mod 
h1:hm4jLcvZKI2vRF2WDU1N4p/jpWtpOzp3nLmi9AzX/XE=
 github.com/BurntSushi/toml v0.3.1/go.mod 
h1:xHWCNGjB5oqiDr8zfno3MHue2Ht5sIBksp03qcyfWMU=
@@ -91,34 +93,36 @@
 github.com/armon/go-socks5 v0.0.0-20160902184237-e75332964ef5/go.mod 
h1:wHh0iHkYZB8zMSxRWpUBQtwG5a7fFgvEO+odwuTv2gs=
 github.com/atotto/clipboard v0.1.4 
h1:EH0zSVneZPSuFR11BlR9YppQTVDbh5+16AmcJi4g1z4=
 github.com/atotto/clipboard v0.1.4/go.mod 
h1:ZY9tmq7sm5xIbd9bOK4onWV4S6X0u6GY7Vn0Yu86PYI=
-github.com/aws/aws-sdk-go-v2 v1.39.5 
h1:e/SXuia3rkFtapghJROrydtQpfQaaUgd1cUvyO1mp2w=
-github.com/aws/aws-sdk-go-v2 v1.39.5/go.mod 
h1:yWSxrnioGUZ4WVv9TgMrNUeLV3PFESn/v+6T/Su8gnM=
-github.com/aws/aws-sdk-go-v2/config v1.31.16 
h1:E4Tz+tJiPc7kGnXwIfCyUj6xHJNpENlY11oKpRTgsjc=
-github.com/aws/aws-sdk-go-v2/config v1.31.16/go.mod 
h1:2S9hBElpCyGMifv14WxQ7EfPumgoeCPZUpuPX8VtW34=
-github.com/aws/aws-sdk-go-v2/credentials v1.18.20 
h1:KFndAnHd9NUuzikHjQ8D5CfFVO+bgELkmcGY8yAw98Q=
-github.com/aws/aws-sdk-go-v2/credentials v1.18.20/go.mod 
h1:9mCi28a+fmBHSQ0UM79omkz6JtN+PEsvLrnG36uoUv0=
-github.com/aws/aws-sdk-go-v2/feature/ec2/imds v1.18.12 
h1:VO3FIM2TDbm0kqp6sFNR0PbioXJb/HzCDW6NtIZpIWE=
-github.com/aws/aws-sdk-go-v2/feature/ec2/imds v1.18.12/go.mod 
h1:6C39gB8kg82tx3r72muZSrNhHia9rjGkX7ORaS2GKNE=
-github.com/aws/aws-sdk-go-v2/internal/configsources v1.4.12 
h1:p/9flfXdoAnwJnuW9xHEAFY22R3A6skYkW19JFF9F+8=
-github.com/aws/aws-sdk-go-v2/internal/configsources v1.4.12/go.mod 
h1:ZTLHakoVCTtW8AaLGSwJ3LXqHD9uQKnOcv1TrpO6u2k=
-github.com/aws/aws-sdk-go-v2/internal/endpoints/v2 v2.7.12 
h1:2lTWFvRcnWFFLzHWmtddu5MTchc5Oj2OOey++99tPZ0=
-github.com/aws/aws-sdk-go-v2/internal/endpoints/v2 v2.7.12/go.mod 
h1:hI92pK+ho8HVcWMHKHrK3Uml4pfG7wvL86FzO0LVtQQ=
+github.com/aws/aws-sdk-go-v2 v1.40.0 
h1:/WMUA0kjhZExjOQN2z3oLALDREea1A7TobfuiBrKlwc=
+github.com/aws/aws-sdk-go-v2 v1.40.0/go.mod 
h1:c9pm7VwuW0UPxAEYGyTmyurVcNrbF6Rt/wixFqDhcjE=
+github.com/aws/aws-sdk-go-v2/config v1.32.2 
h1:4liUsdEpUUPZs5WVapsJLx5NPmQhQdez7nYFcovrytk=
+github.com/aws/aws-sdk-go-v2/config v1.32.2/go.mod 
h1:l0hs06IFz1eCT+jTacU/qZtC33nvcnLADAPL/XyrkZI=
+github.com/aws/aws-sdk-go-v2/credentials v1.19.2 
h1:qZry8VUyTK4VIo5aEdUcBjPZHL2v4FyQ3QEOaWcFLu4=
+github.com/aws/aws-sdk-go-v2/credentials v1.19.2/go.mod 
h1:YUqm5a1/kBnoK+/NY5WEiMocZihKSo15/tJdmdXnM5g=
+github.com/aws/aws-sdk-go-v2/feature/ec2/imds v1.18.14 
h1:WZVR5DbDgxzA0BJeudId89Kmgy6DIU4ORpxwsVHz0qA=
+github.com/aws/aws-sdk-go-v2/feature/ec2/imds v1.18.14/go.mod 
h1:Dadl9QO0kHgbrH1GRqGiZdYtW5w+IXXaBNCHTIaheM4=
+github.com/aws/aws-sdk-go-v2/internal/configsources v1.4.14 
h1:PZHqQACxYb8mYgms4RZbhZG0a7dPW06xOjmaH0EJC/I=
+github.com/aws/aws-sdk-go-v2/internal/configsources v1.4.14/go.mod 
h1:VymhrMJUWs69D8u0/lZ7jSB6WgaG/NqHi3gX0aYf6U0=
+github.com/aws/aws-sdk-go-v2/internal/endpoints/v2 v2.7.14 
h1:bOS19y6zlJwagBfHxs0ESzr1XCOU2KXJCWcq3E2vfjY=
+github.com/aws/aws-sdk-go-v2/internal/endpoints/v2 v2.7.14/go.mod 
h1:1ipeGBMAxZ0xcTm6y6paC2C/J6f6OO7LBODV9afuAyM=
 github.com/aws/aws-sdk-go-v2/internal/ini v1.8.4 
h1:WKuaxf++XKWlHWu9ECbMlha8WOEGm0OUEZqm4K/Gcfk=
 github.com/aws/aws-sdk-go-v2/internal/ini v1.8.4/go.mod 
h1:ZWy7j6v1vWGmPReu0iSGvRiise4YI5SkR3OHKTZ6Wuc=
-github.com/aws/aws-sdk-go-v2/service/internal/accept-encoding v1.13.2 
h1:xtuxji5CS0JknaXoACOunXOYOQzgfTvGAc9s2QdCJA4=
-github.com/aws/aws-sdk-go-v2/service/internal/accept-encoding v1.13.2/go.mod 
h1:zxwi0DIR0rcRcgdbl7E2MSOvxDyyXGBlScvBkARFaLQ=
-github.com/aws/aws-sdk-go-v2/service/internal/presigned-url v1.13.12 
h1:MM8imH7NZ0ovIVX7D2RxfMDv7Jt9OiUXkcQ+GqywA7M=
-github.com/aws/aws-sdk-go-v2/service/internal/presigned-url v1.13.12/go.mod 
h1:gf4OGwdNkbEsb7elw2Sy76odfhwNktWII3WgvQgQQ6w=
-github.com/aws/aws-sdk-go-v2/service/secretsmanager v1.39.10 
h1:S5Mw93I9uFjXnHvkZ19O3Zj0UM5k4v3pYrDZxXCbqUg=
-github.com/aws/aws-sdk-go-v2/service/secretsmanager v1.39.10/go.mod 
h1:wW/JqWY6yVr88XZJq5wX22l8XNkDdhw+8eDgkN51Rlc=
-github.com/aws/aws-sdk-go-v2/service/sso v1.30.0 
h1:xHXvxst78wBpJFgDW07xllOx0IAzbryrSdM4nMVQ4Dw=
-github.com/aws/aws-sdk-go-v2/service/sso v1.30.0/go.mod 
h1:/e8m+AO6HNPPqMyfKRtzZ9+mBF5/x1Wk8QiDva4m07I=
-github.com/aws/aws-sdk-go-v2/service/ssooidc v1.35.4 
h1:tBw2Qhf0kj4ZwtsVpDiVRU3zKLvjvjgIjHMKirxXg8M=
-github.com/aws/aws-sdk-go-v2/service/ssooidc v1.35.4/go.mod 
h1:Deq4B7sRM6Awq/xyOBlxBdgW8/Z926KYNNaGMW2lrkA=
-github.com/aws/aws-sdk-go-v2/service/sts v1.39.0 
h1:C+BRMnasSYFcgDw8o9H5hzehKzXyAb9GY5v/8bP9DUY=
-github.com/aws/aws-sdk-go-v2/service/sts v1.39.0/go.mod 
h1:4EjU+4mIx6+JqKQkruye+CaigV7alL3thVPfDd9VlMs=
-github.com/aws/smithy-go v1.23.1 
h1:sLvcH6dfAFwGkHLZ7dGiYF7aK6mg4CgKA/iDKjLDt9M=
-github.com/aws/smithy-go v1.23.1/go.mod 
h1:LEj2LM3rBRQJxPZTB4KuzZkaZYnZPnvgIhb4pu07mx0=
+github.com/aws/aws-sdk-go-v2/service/internal/accept-encoding v1.13.3 
h1:x2Ibm/Af8Fi+BH+Hsn9TXGdT+hKbDd5XOTZxTMxDk7o=
+github.com/aws/aws-sdk-go-v2/service/internal/accept-encoding v1.13.3/go.mod 
h1:IW1jwyrQgMdhisceG8fQLmQIydcT/jWY21rFhzgaKwo=
+github.com/aws/aws-sdk-go-v2/service/internal/presigned-url v1.13.14 
h1:FIouAnCE46kyYqyhs0XEBDFFSREtdnr8HQuLPQPLCrY=
+github.com/aws/aws-sdk-go-v2/service/internal/presigned-url v1.13.14/go.mod 
h1:UTwDc5COa5+guonQU8qBikJo1ZJ4ln2r1MkF7Dqag1E=
+github.com/aws/aws-sdk-go-v2/service/secretsmanager v1.40.2 
h1:p0tPbc1uXSAYs9ACiVB9WxlV6AY5TBVNadXdvGrtOHA=
+github.com/aws/aws-sdk-go-v2/service/secretsmanager v1.40.2/go.mod 
h1:c6Vg0BRiU7v0MVhHupw90RyL120QBwAMLbDCzptGeMk=
+github.com/aws/aws-sdk-go-v2/service/signin v1.0.2 
h1:MxMBdKTYBjPQChlJhi4qlEueqB1p1KcbTEa7tD5aqPs=
+github.com/aws/aws-sdk-go-v2/service/signin v1.0.2/go.mod 
h1:iS6EPmNeqCsGo+xQmXv0jIMjyYtQfnwg36zl2FwEouk=
+github.com/aws/aws-sdk-go-v2/service/sso v1.30.5 
h1:ksUT5KtgpZd3SAiFJNJ0AFEJVva3gjBmN7eXUZjzUwQ=
+github.com/aws/aws-sdk-go-v2/service/sso v1.30.5/go.mod 
h1:av+ArJpoYf3pgyrj6tcehSFW+y9/QvAY8kMooR9bZCw=
+github.com/aws/aws-sdk-go-v2/service/ssooidc v1.35.10 
h1:GtsxyiF3Nd3JahRBJbxLCCdYW9ltGQYrFWg8XdkGDd8=
+github.com/aws/aws-sdk-go-v2/service/ssooidc v1.35.10/go.mod 
h1:/j67Z5XBVDx8nZVp9EuFM9/BS5dvBznbqILGuu73hug=
+github.com/aws/aws-sdk-go-v2/service/sts v1.41.2 
h1:a5UTtD4mHBU3t0o6aHQZFJTNKVfxFWfPX7J0Lr7G+uY=
+github.com/aws/aws-sdk-go-v2/service/sts v1.41.2/go.mod 
h1:6TxbXoDSgBQ225Qd8Q+MbxUxUh6TtNKwbRt/EPS9xso=
+github.com/aws/smithy-go v1.23.2 
h1:Crv0eatJUQhaManss33hS5r40CG3ZFH+21XSkqMrIUM=
+github.com/aws/smithy-go v1.23.2/go.mod 
h1:LEj2LM3rBRQJxPZTB4KuzZkaZYnZPnvgIhb4pu07mx0=
 github.com/aymanbagabas/go-osc52/v2 v2.0.1 
h1:HwpRHbFMcZLEVr42D4p7XBqjyuxQH5SMiErDT4WkJ2k=
 github.com/aymanbagabas/go-osc52/v2 v2.0.1/go.mod 
h1:uYgXzlJ7ZpABp8OJ+exZzJJhRNQ2ASbcXHWsFqH8hp8=
 github.com/aymanbagabas/go-udiff v0.2.0 
h1:TK0fH4MteXUDspT88n8CKzvK0X9O2xu9yQjWpi6yML8=
@@ -127,8 +131,8 @@
 github.com/aymerick/douceur v0.2.0/go.mod 
h1:wlT5vV2O3h55X9m7iVYN0TBM0NH/MmbLnd30/FjWUq4=
 github.com/baulk/chardet v0.1.0 h1:6/r5nPMikB9OG1Njs10VfVHZTDMFH6BdybHPISpfUVA=
 github.com/baulk/chardet v0.1.0/go.mod 
h1:0ibN6068qswel5Hv54U7GNJUU57njfzPJrLIq7Y8xas=
-github.com/bits-and-blooms/bitset v1.24.0 
h1:H4x4TuulnokZKvHLfzVRTHJfFfnHEeSYJizujEZvmAM=
-github.com/bits-and-blooms/bitset v1.24.0/go.mod 
h1:7hO7Gc7Pp1vODcmWvKMRA9BNmbv6a/7QIWpPxHddWR8=
+github.com/bits-and-blooms/bitset v1.24.4 
h1:95H15Og1clikBrKr/DuzMXkQzECs1M6hhoGXLwLQOZE=
+github.com/bits-and-blooms/bitset v1.24.4/go.mod 
h1:7hO7Gc7Pp1vODcmWvKMRA9BNmbv6a/7QIWpPxHddWR8=
 github.com/blang/semver/v4 v4.0.0 
h1:1PFHFE6yCCTv8C1TeyNNarDzntLi7wMI5i/pzqYIsAM=
 github.com/blang/semver/v4 v4.0.0/go.mod 
h1:IbckMUScFkM3pff0VJDNKRiT6TG/YpiHIM2yvyW5YoQ=
 github.com/bmatcuk/doublestar/v4 v4.9.1 
h1:X8jg9rRZmJd4yRy7ZeNDRnM+T3ZfHv15JiBJ/avrEXE=
@@ -157,22 +161,22 @@
 github.com/charmbracelet/bubbles v0.20.0/go.mod 
h1:39slydyswPy+uVOHZ5x/GjwVAFkCsV8IIVy+4MhzwwU=
 github.com/charmbracelet/bubbletea v1.3.10 
h1:otUDHWMMzQSB0Pkc87rm691KZ3SWa4KUlvF9nRvCICw=
 github.com/charmbracelet/bubbletea v1.3.10/go.mod 
h1:ORQfo0fk8U+po9VaNvnV95UPWA1BitP1E0N6xJPlHr4=
-github.com/charmbracelet/colorprofile v0.3.2 
h1:9J27WdztfJQVAQKX2WOlSSRB+5gaKqqITmrvb1uTIiI=
-github.com/charmbracelet/colorprofile v0.3.2/go.mod 
h1:mTD5XzNeWHj8oqHb+S1bssQb7vIHbepiebQ2kPKVKbI=
+github.com/charmbracelet/colorprofile v0.3.3 
h1:DjJzJtLP6/NZ8p7Cgjno0CKGr7wwRJGxWUwh2IyhfAI=
+github.com/charmbracelet/colorprofile v0.3.3/go.mod 
h1:nB1FugsAbzq284eJcjfah2nhdSLppN2NqvfotkfRYP4=
 github.com/charmbracelet/glamour v0.10.0 
h1:MtZvfwsYCx8jEPFJm3rIBFIMZUfUJ765oX8V6kXldcY=
 github.com/charmbracelet/glamour v0.10.0/go.mod 
h1:f+uf+I/ChNmqo087elLnVdCiVgjSKWuXa/l6NU2ndYk=
 github.com/charmbracelet/harmonica v0.2.0 
h1:8NxJWRWg/bzKqqEaaeFNipOu77YR5t8aSwG4pgaUBiQ=
 github.com/charmbracelet/harmonica v0.2.0/go.mod 
h1:KSri/1RMQOZLbw7AHqgcBycp8pgJnQMYYT8QZRqZ1Ao=
 github.com/charmbracelet/lipgloss v1.1.1-0.20250404203927-76690c660834 
h1:ZR7e0ro+SZZiIZD7msJyA+NjkCNNavuiPBLgerbOziE=
 github.com/charmbracelet/lipgloss v1.1.1-0.20250404203927-76690c660834/go.mod 
h1:aKC/t2arECF6rNOnaKaVU6y4t4ZeHQzqfxedE/VkVhA=
-github.com/charmbracelet/x/ansi v0.10.2 
h1:ith2ArZS0CJG30cIUfID1LXN7ZFXRCww6RUvAPA+Pzw=
-github.com/charmbracelet/x/ansi v0.10.2/go.mod 
h1:HbLdJjQH4UH4AqA2HpRWuWNluRE6zxJH/yteYEYCFa8=
-github.com/charmbracelet/x/cellbuf v0.0.13 
h1:/KBBKHuVRbq1lYx5BzEHBAFBP8VcQzJejZ/IA3iR28k=
-github.com/charmbracelet/x/cellbuf v0.0.13/go.mod 
h1:xe0nKWGd3eJgtqZRaN9RjMtK7xUYchjzPr7q6kcvCCs=
+github.com/charmbracelet/x/ansi v0.11.2 
h1:XAG3FSjiVtFvgEgGrNBkCNNYrsucAt8c6bfxHyROLLs=
+github.com/charmbracelet/x/ansi v0.11.2/go.mod 
h1:9tY2bzX5SiJCU0iWyskjBeI2BRQfvPqI+J760Mjf+Rg=
+github.com/charmbracelet/x/cellbuf v0.0.14 
h1:iUEMryGyFTelKW3THW4+FfPgi4fkmKnnaLOXuc+/Kj4=
+github.com/charmbracelet/x/cellbuf v0.0.14/go.mod 
h1:P447lJl49ywBbil/KjCk2HexGh4tEY9LH0/1QrZZ9rA=
 github.com/charmbracelet/x/exp/golden v0.0.0-20240815200342-61de596daa2b 
h1:MnAMdlwSltxJyULnrYbkZpp4k58Co7Tah3ciKhSNo0Q=
 github.com/charmbracelet/x/exp/golden 
v0.0.0-20240815200342-61de596daa2b/go.mod 
h1:wDlXFlCrmJ8J+swcL/MnGUuYnqgQdW9rhSD61oNMb6U=
-github.com/charmbracelet/x/exp/slice v0.0.0-20251031172406-4542a189d0fb 
h1:r8GKL5AcwENTjZfNhSFv2E5qF4t8KshHPdN2qkPe9F4=
-github.com/charmbracelet/x/exp/slice v0.0.0-20251031172406-4542a189d0fb/go.mod 
h1:vqEfX6xzqW1pKKZUUiFOKg0OQ7bCh54Q2vR/tserrRA=
+github.com/charmbracelet/x/exp/slice v0.0.0-20251126160633-0b68cdcd21da 
h1:6HDQl5MSww6jOImEZ6qu4OPUOcOauUgexOrAOkWGFs8=
+github.com/charmbracelet/x/exp/slice v0.0.0-20251126160633-0b68cdcd21da/go.mod 
h1:vqEfX6xzqW1pKKZUUiFOKg0OQ7bCh54Q2vR/tserrRA=
 github.com/charmbracelet/x/term v0.2.2 
h1:xVRT/S2ZcKdhhOuSP4t5cLi5o+JxklsoEObBSgfgZRk=
 github.com/charmbracelet/x/term v0.2.2/go.mod 
h1:kF8CY5RddLWrsgVwpw4kAa6TESp6EB5y3uxGLeCqzAI=
 github.com/chzyer/logex v1.1.10 h1:Swpa1K6QvQznwJRcfTfQJmTE72DqScAa40E+fbHEXEE=
@@ -183,6 +187,8 @@
 github.com/chzyer/test v0.0.0-20180213035817-a1ea475d72b1/go.mod 
h1:Q3SI9o4m/ZMnBNeIyt5eFwwo7qiLfzFZmjNmxjkiQlU=
 github.com/client9/misspell v0.3.4 
h1:ta993UF76GwbvJcIo3Y68y/M3WxlpEHPWIGDkJYwzJI=
 github.com/client9/misspell v0.3.4/go.mod 
h1:qj6jICC3Q7zFZvVWo7KLAzC3yx5G7kyvSDkc90ppPyw=
+github.com/clipperhouse/displaywidth v0.6.0 
h1:k32vueaksef9WIKCNcoqRNyKbyvkvkysNYnAWz2fN4s=
+github.com/clipperhouse/displaywidth v0.6.0/go.mod 
h1:R+kHuzaYWFkTm7xoMmK1lFydbci4X2CicfbGstSGg0o=
 github.com/clipperhouse/stringish v0.1.1 
h1:+NSqMOr3GR6k1FdRhhnXrLfztGzuG+VuFDfatpWHKCs=
 github.com/clipperhouse/stringish v0.1.1/go.mod 
h1:v/WhFtE1q0ovMta2+m+UbpZ+2/HEXNWYXQgCt4hdOzA=
 github.com/clipperhouse/uax29/v2 v2.3.0 
h1:SNdx9DVUqMoBuBoW3iLOj4FQv3dN5mDtuqwuhIGpJy4=
@@ -200,8 +206,8 @@
 github.com/creack/pty v1.1.24/go.mod 
h1:08sCNb52WyoAwi2QDyzUCTgcvVFhUzewun7wtTfvcwE=
 github.com/creack/pty/v2 v2.0.0-20231209135443-03db72c7b76c 
h1:5l8y/PgjeX1aUyZxXabtAf2ahCYQaqWzlFzQgU16o0U=
 github.com/creack/pty/v2 v2.0.0-20231209135443-03db72c7b76c/go.mod 
h1:1gZ4PfMDNcYx8FxDdnF/6HYP327cTeB/ru6UdoWVQvw=
-github.com/cyphar/filepath-securejoin v0.5.0 
h1:hIAhkRBMQ8nIeuVwcAoymp7MY4oherZdAxD+m0u9zaw=
-github.com/cyphar/filepath-securejoin v0.5.0/go.mod 
h1:Sdj7gXlvMcPZsbhwhQ33GguGLDGQL7h7bg04C/+u9jI=
+github.com/cyphar/filepath-securejoin v0.6.1 
h1:5CeZ1jPXEiYt3+Z6zqprSAgSWiggmpVyciv8syjIpVE=
+github.com/cyphar/filepath-securejoin v0.6.1/go.mod 
h1:A8hd4EnAeyujCJRrICiOWqjS1AX0a9kM5XL+NwKoYSc=
 github.com/danieljoos/wincred v1.2.3 
h1:v7dZC2x32Ut3nEfRH+vhoZGvN72+dQ/snVXo/vMFLdQ=
 github.com/danieljoos/wincred v1.2.3/go.mod 
h1:6qqX0WNrS4RzPZ1tnroDzq9kY3fu1KwE7MRLQK4X0bs=
 github.com/davecgh/go-spew v1.1.0/go.mod 
h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38=
@@ -270,8 +276,8 @@
 github.com/go-git/go-billy/v5 v5.6.2/go.mod 
h1:rcFC2rAsp/erv7CMz9GczHcuD0D32fWzH+MJAU+jaUU=
 github.com/go-git/go-git-fixtures/v4 v4.3.2-0.20231010084843-55a94097c399 
h1:eMje31YglSBqCdIqdhKBW8lokaMrL3uTkpGYlE2OOT4=
 github.com/go-git/go-git-fixtures/v4 
v4.3.2-0.20231010084843-55a94097c399/go.mod 
h1:1OCfN199q1Jm3HZlxleg+Dw/mwps2Wbk9frAWm+4FII=
-github.com/go-git/go-git/v5 v5.16.3 
h1:Z8BtvxZ09bYm/yYNgPKCzgWtaRqDTgIKRgIRHBfU6Z8=
-github.com/go-git/go-git/v5 v5.16.3/go.mod 
h1:4Ge4alE/5gPs30F2H1esi2gPd69R0C39lolkucHBOp8=
+github.com/go-git/go-git/v5 v5.16.4 
h1:7ajIEZHZJULcyJebDLo99bGgS0jRrOxzZG4uCk2Yb2Y=
+github.com/go-git/go-git/v5 v5.16.4/go.mod 
h1:4Ge4alE/5gPs30F2H1esi2gPd69R0C39lolkucHBOp8=
 github.com/go-gl/glfw v0.0.0-20190409004039-e6da0acd62b1 
h1:QbL/5oDUmRBzO9/Z7Seo6zf912W/a6Sr4Eu0G/3Jho0=
 github.com/go-gl/glfw v0.0.0-20190409004039-e6da0acd62b1/go.mod 
h1:vR7hzQXu2zJy9AVAgeJqvqgH9Q5CA+iKCZ2gyEVpxRU=
 github.com/go-gl/glfw/v3.3/glfw v0.0.0-20191125211704-12ad95a8df72 
h1:b+9H1GAsx5RsjvDFLoS5zkNBzIQMuVKUYQDmxU3N5XE=
@@ -285,8 +291,8 @@
 github.com/goccy/go-yaml v1.18.0 
h1:8W7wMFS12Pcas7KU+VVkaiCng+kG8QiFeFwzFb+rwuw=
 github.com/goccy/go-yaml v1.18.0/go.mod 
h1:XBurs7gK8ATbW4ZPGKgcbrY1Br56PdM69F7LkFRi1kA=
 github.com/godbus/dbus/v5 v5.0.4/go.mod 
h1:xhWf0FNVPg57R7Z0UbKHbJfkEywrmjJnf7w5xrFpKfA=
-github.com/godbus/dbus/v5 v5.1.0 
h1:4KLkAxT3aOY8Li4FRJe/KvhoNFFxo0m6fNuFUO8QJUk=
-github.com/godbus/dbus/v5 v5.1.0/go.mod 
h1:xhWf0FNVPg57R7Z0UbKHbJfkEywrmjJnf7w5xrFpKfA=
+github.com/godbus/dbus/v5 v5.2.0 
h1:3WexO+U+yg9T70v9FdHr9kCxYlazaAXUhx2VMkbfax8=
+github.com/godbus/dbus/v5 v5.2.0/go.mod 
h1:3AAv2+hPq5rdnr5txxxRwiGjPXamgoIHgz9FPBfOp3c=
 github.com/gokyle/twofactor v1.0.1 
h1:uRhvx0S4Hb82RPIDALnf7QxbmPL49LyyaCkJDpWx+Ek=
 github.com/gokyle/twofactor v1.0.1/go.mod 
h1:4gxzH1eaE/F3Pct/sCDNOylP0ClofUO5j4XZN9tKtLE=
 github.com/golang-jwt/jwt/v5 v5.3.0 
h1:pv4AsKCKKZuqlgs5sUmn4x8UlGa0kEVt/puTpKx9vvo=
@@ -338,8 +344,8 @@
 github.com/google/pprof v0.0.0-20200212024743-f11f1df84d12/go.mod 
h1:ZgVRPoUq/hfqzAqh7sHMqb3I9Rq5C59dIz2SbBwJ4eM=
 github.com/google/renameio v0.1.0 
h1:GOZbcHa3HfsPKPlmyPyN2KEohoMXOhdMbHrvbpl2QaA=
 github.com/google/renameio v0.1.0/go.mod 
h1:KWCgfxg9yswjAJkECMjeO8J8rahYeXnNhOm40UhjYkI=
-github.com/google/renameio/v2 v2.0.0 
h1:UifI23ZTGY8Tt29JbYFiuyIU3eX+RNFtUwefq9qAhxg=
-github.com/google/renameio/v2 v2.0.0/go.mod 
h1:BtmJXm5YlszgC+TD4HOEEUFgkJP3nLxehU6hfe7jRt4=
+github.com/google/renameio/v2 v2.0.1 
h1:HyOM6qd9gF9sf15AvhbptGHUnaLTpEI9akAFFU3VyW0=
+github.com/google/renameio/v2 v2.0.1/go.mod 
h1:BtmJXm5YlszgC+TD4HOEEUFgkJP3nLxehU6hfe7jRt4=
 github.com/google/shlex v0.0.0-20191202100458-e7afc7fbc510 
h1:El6M4kTTCOh6aBiKaUGG7oYTSPP8MxqL4YI3kZKwcP4=
 github.com/google/shlex v0.0.0-20191202100458-e7afc7fbc510/go.mod 
h1:pupxD2MaaD3pAXIBCelhxNneeOaAeabZDe5s4K6zSpQ=
 github.com/google/uuid v1.6.0 h1:NIvaJDMOsjHA8n1jAhLSgzrAzy1Hgr+hNrb57e+94F0=
@@ -347,14 +353,14 @@
 github.com/googleapis/gax-go/v2 v2.0.4/go.mod 
h1:0Wqv26UfaUD9n4G6kQubkQ+KchISgw+vpHVxEJEs9eg=
 github.com/googleapis/gax-go/v2 v2.0.5 
h1:sjZBwGj9Jlw33ImPtvFviGYvseOtDM7hkSKB7+Tv3SM=
 github.com/googleapis/gax-go/v2 v2.0.5/go.mod 
h1:DWXyrwAJ9X0FpwwEdw+IPEYBICEFu5mhpdKc/us6bOk=
-github.com/gopasspw/clipboard v0.0.3 
h1:RYSU2bBcHClFkoie6lCsrxDtP/yzRpDr2zmePWxjkVs=
-github.com/gopasspw/clipboard v0.0.3/go.mod 
h1:i0cShr7JEbOXZ/iKM5RyfBLbu1FPzouO8BTCJy0uHy8=
+github.com/gopasspw/clipboard v0.0.4 
h1:v3HUlVHfBXPx9woIQnsBIbs9ZM3i77OCtVKRMLhmR+c=
+github.com/gopasspw/clipboard v0.0.4/go.mod 
h1:i0cShr7JEbOXZ/iKM5RyfBLbu1FPzouO8BTCJy0uHy8=
 github.com/gopasspw/gitconfig v0.0.3 
h1:uJn9y5jUabHtX09p5C3UeNcAQm27MkHDHEDn4XaNacY=
 github.com/gopasspw/gitconfig v0.0.3/go.mod 
h1:qWxSOCbeGpetrXC5kGftIxSm0Au/5NHnK6HUtCWeyDQ=
-github.com/gopasspw/gopass v1.15.18 
h1:4yXe414+IdLwDw6F80WO2599G/+A149sl4cwK12gLjE=
-github.com/gopasspw/gopass v1.15.18/go.mod 
h1:V3aHGSqBJPglrnXBmxCKa/gCgpR5vfOXEWaZ2t5dINc=
-github.com/gopasspw/gopass-hibp v1.15.18-0.20250916200615-6570fde56e1d 
h1:hfsGhsaEwDLf8bVPvnBsNi1T7B6urAf35oRpqekOyQs=
-github.com/gopasspw/gopass-hibp v1.15.18-0.20250916200615-6570fde56e1d/go.mod 
h1:ZprMcMW/HbmYEwL3eDOZ3B/3ChTAI89Z0r4WTVnUuE8=
+github.com/gopasspw/gopass v1.16.0 
h1:aDc28a51gbNHH+Ox6kntqsereTvF5SqT9NXYgID6pUE=
+github.com/gopasspw/gopass v1.16.0/go.mod 
h1:Dsxqt+adcFszXvA+yMvPMfx8dteUtZKrSQ2qgaKFZgI=
+github.com/gopasspw/gopass-hibp v1.15.18 
h1:OoMr1ugY0aso5Qjn3MRPaVJoYGuwdhaebUxKP611Cj0=
+github.com/gopasspw/gopass-hibp v1.15.18/go.mod 
h1:5JOaWMoQbOFTRUdiCOw3JTNPtjbUPWKpw7OEFjQwAdo=
 github.com/gopherjs/gopherjs v1.17.2 
h1:fQnZVsXk8uxXIStYb0N4bGk7jeyTalG/wsZjQ25dO0g=
 github.com/gopherjs/gopherjs v1.17.2/go.mod 
h1:pRRIvn/QzFLrKfvEz3qUuEhtE/zLCWfreZ6J5gM2i+k=
 github.com/gorilla/css v1.0.1 h1:ntNaBIghp6JmvWnxbZKANoLyuXTPZ4cAMlo6RyhlbO8=
@@ -367,6 +373,8 @@
 github.com/hashicorp/errwrap v1.1.0/go.mod 
h1:YH+1FKiLXxHSkmPseP+kNlulaMuP3n2brvKWEqk/Jc4=
 github.com/hashicorp/go-multierror v1.1.1 
h1:H5DkEtf6CXdFp0N0Em5UCwQpXMWke8IA0+lD48awMYo=
 github.com/hashicorp/go-multierror v1.1.1/go.mod 
h1:iw975J/qwKPdAO1clOe2L8331t/9/fmwbPZ6JB6eMoM=
+github.com/hashicorp/go-version v1.7.0 
h1:5tqGy27NaOTB8yJKUZELlFAS/LTKJkrmONwQKeRZfjY=
+github.com/hashicorp/go-version v1.7.0/go.mod 
h1:fltr4n8CU8Ke44wwGCBoEymUuxUHl09ZGVZPK5anwXA=
 github.com/hashicorp/golang-lru v0.5.0/go.mod 
h1:/m3WP610KZHVQ1SGc6re/UDhFvYD7pJ4Ao+sR/qLZy8=
 github.com/hashicorp/golang-lru v0.5.1 
h1:0hERBMJE1eitiLkihrMvRVBYAkpHzc/J3QdDN+dAcgU=
 github.com/hashicorp/golang-lru v0.5.1/go.mod 
h1:/m3WP610KZHVQ1SGc6re/UDhFvYD7pJ4Ao+sR/qLZy8=
@@ -498,8 +506,8 @@
 github.com/muesli/termenv v0.16.0/go.mod 
h1:ZRfOIKPFDYQoDFF4Olj7/QJbW60Ol/kL1pU3VfY/Cnk=
 github.com/noborus/guesswidth v0.4.0 
h1:+PPh+Z+GM4mKmVrhYR4lpjeyBuLMSVo2arM+VErdHIc=
 github.com/noborus/guesswidth v0.4.0/go.mod 
h1:ghA6uh9RcK+uSmaDDmBMj/tRZ3BSpspDP6DMF5Xk3bc=
-github.com/noborus/ov v0.43.0 h1:NdACCMDMVr7/nCXEhkqsD0Qkcc1nOw+HsHNWJo+yVnE=
-github.com/noborus/ov v0.43.0/go.mod 
h1:RCrEFHOAVEm8AQXd7UlfPMqWSvKxRH7QzH0/y2ZY9dw=
+github.com/noborus/ov v0.45.1 h1:wlyehWHzsn/9QcS1Y2E52q+PbcufI98Vn+pJgcF5BQs=
+github.com/noborus/ov v0.45.1/go.mod 
h1:3XW/dJo/FtcMJz6amDMaYR0LmUj/W+uSSjm5NRtsWd4=
 github.com/noborus/tcellansi v0.2.0 
h1:GoSLIya57T7IiojDyNLps+9SjjCaCuLmvnGqHr3ldYU=
 github.com/noborus/tcellansi v0.2.0/go.mod 
h1:hZhcjTUr0iNe3XmyErkIMW3kBQmKZTngSARCWF+DxT0=
 github.com/nwaples/rardecode/v2 v2.2.1 
h1:DgHK/O/fkTQEKBJxBMC5d9IU8IgauifbpG78+rZJMnI=
@@ -601,8 +609,8 @@
 github.com/subosito/gotenv v1.6.0/go.mod 
h1:Dk4QP5c2W3ibzajGcXpNraDfq2IrhjMIvMSWPKKo0FU=
 github.com/tailscale/hujson v0.0.0-20250605163823-992244df8c5a 
h1:a6TNDN9CgG+cYjaeN8l2mc4kSz2iMiCDQxPEyltUV/I=
 github.com/tailscale/hujson v0.0.0-20250605163823-992244df8c5a/go.mod 
h1:EbW0wDK/qEUYI0A5bqq0C2kF8JTQwWONmGDBbzsxxHo=
-github.com/tetratelabs/wazero v1.9.0 
h1:IcZ56OuxrtaEz8UYNRHBrUa9bYeX9oVY93KspZZBf/I=
-github.com/tetratelabs/wazero v1.9.0/go.mod 
h1:TSbcXCfFP0L2FGkRPxHphadXPjo1T6W+CseNNY7EkjM=
+github.com/tetratelabs/wazero v1.10.1 
h1:2DugeJf6VVk58KTPszlNfeeN8AhhpwcZqkJj2wwFuH8=
+github.com/tetratelabs/wazero v1.10.1/go.mod 
h1:DRm5twOQ5Gr1AoEdSi0CLjDQF1J9ZAuyqFIjl1KKfQU=
 github.com/therootcompany/xz v1.0.1 
h1:CmOtsn1CbtmyYiusbfmhmkpAAETj0wBIH6kCYaX+xzw=
 github.com/therootcompany/xz v1.0.1/go.mod 
h1:3K3UH1yCKgBneZYhuQUvJ9HPD19UEXEI0BWbMn8qNMY=
 github.com/tidwall/gjson v1.18.0 
h1:FIDeeyB800efLX89e5a8Y0BNH+LOngJyGrIWxG2FKQY=
@@ -661,8 +669,8 @@
 github.com/zalando/go-keyring v0.2.6/go.mod 
h1:2TCrxYrbUNYfNS/Kgy/LSrkSQzZ5UPVH85RwfczwvcI=
 github.com/zeebo/blake3 v0.2.4 h1:KYQPkhpRtcqh0ssGYcKLG1JYvddkEA8QwCM/yBqhaZI=
 github.com/zeebo/blake3 v0.2.4/go.mod 
h1:7eeQ6d2iXWRGF6npfaxl2CU+xy2Fjo2gxeyZGCRUjcE=
-github.com/zricethezav/gitleaks/v8 v8.28.0 
h1:XXeibrt4XbdrYm3FnzXR3uUPs9HbgGduroICjBl6PMw=
-github.com/zricethezav/gitleaks/v8 v8.28.0/go.mod 
h1:hcFf0KivlxYt85WxJ0wtUB75OR9qVneuD1OwauHOHx0=
+github.com/zricethezav/gitleaks/v8 v8.30.0 
h1:5heLlxRQkHfXgTJgdQsJhi/evX1oj6i+xBanDu2XUM8=
+github.com/zricethezav/gitleaks/v8 v8.30.0/go.mod 
h1:M5JQW5L+vZmkAqs9EX29hFQnn7uFz9sOQCPNewaZD9E=
 go.etcd.io/bbolt v1.4.3 h1:dEadXpI6G79deX5prL3QRNP6JB8UxVkqo4UPnHaNXJo=
 go.etcd.io/bbolt v1.4.3/go.mod h1:tKQlpPaYCVFctUIgFKFnAlvbmB3tpy1vkTnDWohtc0E=
 go.etcd.io/gofail v0.2.0 h1:p19drv16FKK345a09a1iubchlw/vmRuksmRzgBIGjcA=
@@ -684,8 +692,8 @@
 golang.org/x/crypto v0.0.0-20191011191535-87dc89f01550/go.mod 
h1:yigFU9vqHzYiE8UmvKecakEJjdnWj3jj499lnFckfCI=
 golang.org/x/crypto v0.0.0-20210921155107-089bfa567519/go.mod 
h1:GvvjBRRGRdwPK5ydBHafDWAxML/pGHZbMvKqRZ5+Abc=
 golang.org/x/crypto v0.0.0-20220622213112-05595931fe9d/go.mod 
h1:IxCIyHEi3zRg3s0A5j5BB6A9Jmi73HwBIUl50j+osU4=
-golang.org/x/crypto v0.43.0 h1:dduJYIi3A3KOfdGOHX8AVZ/jGiyPa3IbBozJ5kNuE04=
-golang.org/x/crypto v0.43.0/go.mod 
h1:BFbav4mRNlXJL4wNeejLpWxB7wMbc79PdRGhWKncxR0=
+golang.org/x/crypto v0.45.0 h1:jMBrvKuj23MTlT0bQEOBcAE0mjg8mK9RXFhRH6nyF3Q=
+golang.org/x/crypto v0.45.0/go.mod 
h1:XTGrrkGJve7CYK7J8PEww4aY7gM3qMCElcJQ8n8JdX4=
 golang.org/x/exp v0.0.0-20190121172915-509febef88a4/go.mod 
h1:CJ0aWSM057203Lf6IL+f9T1iT9GByDxfZKAQTCR3kQA=
 golang.org/x/exp v0.0.0-20190306152737-a1d7652674e8/go.mod 
h1:CJ0aWSM057203Lf6IL+f9T1iT9GByDxfZKAQTCR3kQA=
 golang.org/x/exp v0.0.0-20190510132918-efd6b22b2522/go.mod 
h1:ZjyILWgesfNpC6sMxTJOJm9Kp84zZh5NQWvqDGG3Qr8=
@@ -694,8 +702,8 @@
 golang.org/x/exp v0.0.0-20191129062945-2f5052295587/go.mod 
h1:2RIsYlXP63K8oxa1u096TMicItID8zy7Y6sNkU49FU4=
 golang.org/x/exp v0.0.0-20191227195350-da58074b4299/go.mod 
h1:2RIsYlXP63K8oxa1u096TMicItID8zy7Y6sNkU49FU4=
 golang.org/x/exp v0.0.0-20200207192155-f17229e696bd/go.mod 
h1:J/WKrq2StrnmMY6+EHIKF9dgMWnmCNThgcyBT1FY9mM=
-golang.org/x/exp v0.0.0-20251023183803-a4bb9ffd2546 
h1:mgKeJMpvi0yx/sU5GsxQ7p6s2wtOnGAHZWCHUM4KGzY=
-golang.org/x/exp v0.0.0-20251023183803-a4bb9ffd2546/go.mod 
h1:j/pmGrbnkbPtQfxEe5D0VQhZC6qKbfKifgD0oM7sR70=
+golang.org/x/exp v0.0.0-20251125195548-87e1e737ad39 
h1:DHNhtq3sNNzrvduZZIiFyXWOL9IWaDPHqTnLJp+rCBY=
+golang.org/x/exp v0.0.0-20251125195548-87e1e737ad39/go.mod 
h1:46edojNIoXTNOhySWIWdix628clX9ODXwPsQuG6hsK0=
 golang.org/x/image v0.0.0-20190227222117-0694c2d4d067/go.mod 
h1:kZ7UVZpmo3dzQBMxlp+ypCbDeSB+sBbTgSJuh5dn5js=
 golang.org/x/image v0.0.0-20190802002840-cff245a6509b 
h1:+qEpEAPhDZ1o0x3tHzZTQDArnOixOzGD9HUJfcg0mb4=
 golang.org/x/image v0.0.0-20190802002840-cff245a6509b/go.mod 
h1:FeLwcggjj3mMvU+oOTbSwawSJRM1uh48EjtB4UJZlP0=
@@ -718,8 +726,8 @@
 golang.org/x/mod v0.2.0/go.mod h1:s0Qsj1ACt9ePp/hMypM3fl4fZqREWJwdYDEqhRiZZUA=
 golang.org/x/mod v0.6.0-dev.0.20220419223038-86c51ed26bb4/go.mod 
h1:jJ57K6gSWd91VN4djpZkiMVwK6gcyfeH4XE8wZrZaV4=
 golang.org/x/mod v0.8.0/go.mod h1:iBbtSCu2XBx23ZKBPSOrRkjjQPZFPuis4dIYUhu/chs=
-golang.org/x/mod v0.29.0 h1:HV8lRxZC4l2cr3Zq1LvtOsi/ThTgWnUk/y64QSs8GwA=
-golang.org/x/mod v0.29.0/go.mod h1:NyhrlYXJ2H4eJiRy/WDBO6HMqZQ6q9nk4JzS3NuCK+w=
+golang.org/x/mod v0.30.0 h1:fDEXFVZ/fmCKProc/yAXXUijritrDzahmwwefnjoPFk=
+golang.org/x/mod v0.30.0/go.mod h1:lAsf5O2EvJeSFMiBxXDki7sCgAxEUcZHXoXMKT4GJKc=
 golang.org/x/net v0.0.0-20180724234803-3673e40ba225/go.mod 
h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4=
 golang.org/x/net v0.0.0-20180826012351-8a410e7b638d/go.mod 
h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4=
 golang.org/x/net v0.0.0-20190108225652-1e06a53dbb7e/go.mod 
h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4=
@@ -738,15 +746,15 @@
 golang.org/x/net v0.0.0-20220722155237-a158d28d115b/go.mod 
h1:XRhObCWvk6IyKnWLug+ECip1KBveYUHfp+8e9klMJ9c=
 golang.org/x/net v0.6.0/go.mod h1:2Tu9+aMcznHK/AK1HMvgo6xiTLG5rD5rZLDS+rp2Bjs=
 golang.org/x/net v0.7.0/go.mod h1:2Tu9+aMcznHK/AK1HMvgo6xiTLG5rD5rZLDS+rp2Bjs=
-golang.org/x/net v0.46.0 h1:giFlY12I07fugqwPuWJi68oOnpfqFnJIJzaIIm2JVV4=
-golang.org/x/net v0.46.0/go.mod h1:Q9BGdFy1y4nkUwiLvT5qtyhAnEHgnQ/zd8PfU6nc210=
+golang.org/x/net v0.47.0 h1:Mx+4dIFzqraBXUugkia1OOvlD6LemFo1ALMHjrXDOhY=
+golang.org/x/net v0.47.0/go.mod h1:/jNxtkgq5yWUGYkaZGqo27cfGZ1c5Nen03aYrrKpVRU=
 golang.org/x/oauth2 v0.0.0-20180821212333-d2e6202438be/go.mod 
h1:N/0e6XlmueqKjAGxoOufVs8QHGRruUQn6yWY3a++T0U=
 golang.org/x/oauth2 v0.0.0-20190226205417-e64efc72b421/go.mod 
h1:gOpvHmFTYa4IltrdGE7lF6nIHvwfUNPOp7c8zoXwtLw=
 golang.org/x/oauth2 v0.0.0-20190604053449-0f29369cfe45/go.mod 
h1:gOpvHmFTYa4IltrdGE7lF6nIHvwfUNPOp7c8zoXwtLw=
 golang.org/x/oauth2 v0.0.0-20191202225959-858c2ad4c8b6/go.mod 
h1:gOpvHmFTYa4IltrdGE7lF6nIHvwfUNPOp7c8zoXwtLw=
 golang.org/x/oauth2 v0.0.0-20200107190931-bf48bf16ab8d/go.mod 
h1:gOpvHmFTYa4IltrdGE7lF6nIHvwfUNPOp7c8zoXwtLw=
-golang.org/x/oauth2 v0.32.0 h1:jsCblLleRMDrxMN29H3z/k1KliIvpLgCkE6R8FXXNgY=
-golang.org/x/oauth2 v0.32.0/go.mod 
h1:lzm5WQJQwKZ3nwavOZ3IS5Aulzxi68dUSgRHujetwEA=
+golang.org/x/oauth2 v0.33.0 h1:4Q+qn+E5z8gPRJfmRy7C2gGG3T4jIprK6aSYgTXGRpo=
+golang.org/x/oauth2 v0.33.0/go.mod 
h1:lzm5WQJQwKZ3nwavOZ3IS5Aulzxi68dUSgRHujetwEA=
 golang.org/x/sync v0.0.0-20180314180146-1d60e4601c6f/go.mod 
h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM=
 golang.org/x/sync v0.0.0-20181108010431-42b317875d0f/go.mod 
h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM=
 golang.org/x/sync v0.0.0-20181221193216-37e7f081c4d4/go.mod 
h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM=
@@ -755,8 +763,8 @@
 golang.org/x/sync v0.0.0-20190911185100-cd5d95a43a6e/go.mod 
h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM=
 golang.org/x/sync v0.0.0-20220722155255-886fb9371eb4/go.mod 
h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM=
 golang.org/x/sync v0.1.0/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM=
-golang.org/x/sync v0.17.0 h1:l60nONMj9l5drqw6jlhIELNv9I0A4OFgRsG9k2oT9Ug=
-golang.org/x/sync v0.17.0/go.mod 
h1:9KTHXmSnoGruLpwFjVSX0lNNA75CykiMECbovNTZqGI=
+golang.org/x/sync v0.18.0 h1:kr88TuHDroi+UVf+0hZnirlk8o8T+4MrK6mr60WkH/I=
+golang.org/x/sync v0.18.0/go.mod 
h1:9KTHXmSnoGruLpwFjVSX0lNNA75CykiMECbovNTZqGI=
 golang.org/x/sys v0.0.0-20180830151530-49385e6e1522/go.mod 
h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY=
 golang.org/x/sys v0.0.0-20190215142949-d0b11bdaac8a/go.mod 
h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY=
 golang.org/x/sys v0.0.0-20190312061237-fead79001313/go.mod 
h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
@@ -785,15 +793,15 @@
 golang.org/x/sys v0.6.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
 golang.org/x/sys v0.12.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
 golang.org/x/sys v0.15.0/go.mod h1:/VUhepiaJMQUp4+oa/7Zr1D23ma6VTLIYjOOTFZPUcA=
-golang.org/x/sys v0.37.0 h1:fdNQudmxPjkdUTPnLn5mdQv7Zwvbvpaxqs831goi9kQ=
-golang.org/x/sys v0.37.0/go.mod h1:OgkHotnGiDImocRcuBABYBEXf8A9a87e/uXjp9XT3ks=
-golang.org/x/telemetry v0.0.0-20251008203120-078029d740a8 
h1:LvzTn0GQhWuvKH/kVRS3R3bVAsdQWI7hvfLHGgh9+lU=
-golang.org/x/telemetry v0.0.0-20251008203120-078029d740a8/go.mod 
h1:Pi4ztBfryZoJEkyFTI5/Ocsu2jXyDr6iSdgJiYE/uwE=
+golang.org/x/sys v0.38.0 h1:3yZWxaJjBmCWXqhN1qh02AkOnCQ1poK6oF+a7xWL6Gc=
+golang.org/x/sys v0.38.0/go.mod h1:OgkHotnGiDImocRcuBABYBEXf8A9a87e/uXjp9XT3ks=
+golang.org/x/telemetry v0.0.0-20251111182119-bc8e575c7b54 
h1:E2/AqCUMZGgd73TQkxUMcMla25GB9i/5HOdLr+uH7Vo=
+golang.org/x/telemetry v0.0.0-20251111182119-bc8e575c7b54/go.mod 
h1:hKdjCMrbv9skySur+Nek8Hd0uJ0GuxJIoIX2payrIdQ=
 golang.org/x/term v0.0.0-20201126162022-7de9c90e9dd1/go.mod 
h1:bj7SfCRtBDWHUb9snDiAeCFNEtKQo2Wmx5Cou7ajbmo=
 golang.org/x/term v0.0.0-20210927222741-03fcf44c2211/go.mod 
h1:jbD1KX2456YbFQfuXm/mYQcufACuNUgVhRMnK/tPxf8=
 golang.org/x/term v0.5.0/go.mod h1:jMB1sMXY+tzblOD4FWmEbocvup2/aLOaQEp7JmGp78k=
-golang.org/x/term v0.36.0 h1:zMPR+aF8gfksFprF/Nc/rd1wRS1EI6nDBGyWAvDzx2Q=
-golang.org/x/term v0.36.0/go.mod 
h1:Qu394IJq6V6dCBRgwqshf3mPF85AqzYEzofzRdZkWss=
+golang.org/x/term v0.37.0 h1:8EGAD0qCmHYZg6J17DvsMy9/wJ7/D/4pV/wfnld5lTU=
+golang.org/x/term v0.37.0/go.mod 
h1:5pB4lxRNYYVZuTLmy8oR2BH8dflOR+IbTYFD8fi3254=
 golang.org/x/text v0.0.0-20170915032832-14c0d48ead0c/go.mod 
h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ=
 golang.org/x/text v0.3.0/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ=
 golang.org/x/text v0.3.1-0.20180807135948-17ff2d5776d2/go.mod 
h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ=
@@ -803,8 +811,8 @@
 golang.org/x/text v0.3.7/go.mod h1:u+2+/6zg+i71rQMx5EYifcz6MCKuco9NR6JIITiCfzQ=
 golang.org/x/text v0.7.0/go.mod h1:mrYo+phRRbMaCq/xk9113O4dZlRixOauAjOtrjsXDZ8=
 golang.org/x/text v0.8.0/go.mod h1:e1OnstbJyHTd6l/uOt8jFFHp6TRDWZR/bV3emEE/zU8=
-golang.org/x/text v0.30.0 h1:yznKA/E9zq54KzlzBEAWn1NXSQ8DIp/NYMy88xJjl4k=
-golang.org/x/text v0.30.0/go.mod 
h1:yDdHFIX9t+tORqspjENWgzaCVXgk0yYnYuSZ8UzzBVM=
+golang.org/x/text v0.31.0 h1:aC8ghyu4JhP8VojJ2lEHBnochRno1sgL6nEi9WGFGMM=
+golang.org/x/text v0.31.0/go.mod 
h1:tKRAlv61yKIjGGHX/4tP1LTbc13YSec1pxVEWXzfoeM=
 golang.org/x/time v0.0.0-20181108054448-85acf8d2951c/go.mod 
h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ=
 golang.org/x/time v0.0.0-20190308202827-9d24e82272b4 
h1:SvFZT6jyqRaOeXpc5h/JSfZenJ2O330aBsf7JfSUXmQ=
 golang.org/x/time v0.0.0-20190308202827-9d24e82272b4/go.mod 
h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ=
@@ -835,8 +843,8 @@
 golang.org/x/tools v0.0.0-20200212150539-ea181f53ac56/go.mod 
h1:TB2adYChydJhpapKDTa4BR/hXlZSLoq2Wpct/0txZ28=
 golang.org/x/tools v0.1.12/go.mod 
h1:hNGJHUnrk76NpqgfD5Aqm5Crs+Hm0VOH/i9J2+nxYbc=
 golang.org/x/tools v0.6.0/go.mod 
h1:Xwgl3UAJ/d3gWutnCtw505GrjyAbvKui8lOU390QaIU=
-golang.org/x/tools v0.38.0 h1:Hx2Xv8hISq8Lm16jvBZ2VQf+RLmbd7wVUsALibYI/IQ=
-golang.org/x/tools v0.38.0/go.mod 
h1:yEsQ/d/YK8cjh0L6rZlY8tgtlKiBNTL14pGDJPJpYQs=
+golang.org/x/tools v0.39.0 h1:ik4ho21kwuQln40uelmciQPp9SipgNDdrafrYA4TmQQ=
+golang.org/x/tools v0.39.0/go.mod 
h1:JnefbkDPyD8UU2kI5fuf8ZX4/yUeh9W877ZeBONxUqQ=
 golang.org/x/tools/go/expect v0.1.1-deprecated 
h1:jpBZDwmgPhXsKZC6WhL20P4b/wmnpsEAGHaNy0n/rJM=
 golang.org/x/tools/go/expect v0.1.1-deprecated/go.mod 
h1:eihoPOH+FgIqa3FpoTwguz/bVUSGBlGQU67vpBeOrBY=
 golang.org/x/tools/go/packages/packagestest v0.1.1-deprecated 
h1:1h2MnaIAIXISqTFKdENegdpAgUXz6NrPEsbIeWaBRvM=
@@ -927,3 +935,5 @@
 rsc.io/quote/v3 v3.1.0/go.mod h1:yEA65RcK8LyAZtP9Kv3t0HmxON59tX3rD+tICJqUlj0=
 rsc.io/sampler v1.3.0 h1:7uVkIFmeBqHfdjD+gZwtXXI+RODJ2Wc4O7MPEh/QiW4=
 rsc.io/sampler v1.3.0/go.mod h1:T1hPZKmBbMNahiBKFy5HrXp6adAjACjK9JXDnKaTXpA=
+znkr.io/diff v1.0.0-beta.4 h1:KjiBi1xYkI5cPIu6cRbD14vO082guKyD+45uzNRQDXE=
+znkr.io/diff v1.0.0-beta.4/go.mod 
h1:q5GjOY1oOrUy1kHHw1DIJSvNMdmxpL5rL9cTz14MF/0=
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/chezmoi-2.67.0/internal/chezmoi/byteordermarks.go 
new/chezmoi-2.67.1/internal/chezmoi/byteordermarks.go
--- old/chezmoi-2.67.0/internal/chezmoi/byteordermarks.go       1970-01-01 
01:00:00.000000000 +0100
+++ new/chezmoi-2.67.1/internal/chezmoi/byteordermarks.go       2025-11-26 
23:25:27.000000000 +0100
@@ -0,0 +1,54 @@
+package chezmoi
+
+type byteOrderMark struct {
+       prefix []byte
+       name   string
+}
+
+// Byte order marks. See https://en.wikipedia.org/wiki/Byte_order_mark.
+var byteOrderMarks = []byteOrderMark{
+       {
+               prefix: []byte{0xef, 0xbb, 0xbf},
+               name:   "UTF-8",
+       },
+       {
+               prefix: []byte{0xfe, 0xff},
+               name:   "UTF-16 (BE)",
+       },
+       {
+               prefix: []byte{0xff, 0xfe},
+               name:   "UTF-16 (LE)",
+       },
+       {
+               prefix: []byte{0x00, 0x00, 0xfe, 0xff},
+               name:   "UTF-32 (BE)",
+       },
+       {
+               prefix: []byte{0xff, 0xfe, 0x00, 0x00},
+               name:   "UTF-32 (LE)",
+       },
+       {
+               prefix: []byte{0x2b, 0x2f, 0x76},
+               name:   "UTF-7",
+       },
+       {
+               prefix: []byte{0xf7, 0x64, 0x4c},
+               name:   "UTF-1",
+       },
+       {
+               prefix: []byte{0xdd, 0x73, 0x66, 0x73},
+               name:   "UTF-EBCDIC",
+       },
+       {
+               prefix: []byte{0x0e, 0xfe, 0xff},
+               name:   "SCSU",
+       },
+       {
+               prefix: []byte{0xfb, 0xee, 0x28},
+               name:   "BOCU-1",
+       },
+       {
+               prefix: []byte{0x84, 0x31, 0x95, 0x33},
+               name:   "GB18030",
+       },
+}
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/chezmoi-2.67.0/internal/chezmoi/diff.go 
new/chezmoi-2.67.1/internal/chezmoi/diff.go
--- old/chezmoi-2.67.0/internal/chezmoi/diff.go 2025-11-02 19:55:46.000000000 
+0100
+++ new/chezmoi-2.67.1/internal/chezmoi/diff.go 2025-11-26 23:25:27.000000000 
+0100
@@ -4,18 +4,18 @@
        "io/fs"
        "net/http"
        "strings"
-       "time"
 
        "github.com/go-git/go-git/v5/plumbing"
        "github.com/go-git/go-git/v5/plumbing/filemode"
        "github.com/go-git/go-git/v5/plumbing/format/diff"
-       "github.com/sergi/go-diff/diffmatchpatch"
+       znkrdiff "znkr.io/diff"
+       znkrtextdiff "znkr.io/diff/textdiff"
 )
 
-var gitDiffOperation = map[diffmatchpatch.Operation]diff.Operation{
-       diffmatchpatch.DiffDelete: diff.Delete,
-       diffmatchpatch.DiffEqual:  diff.Equal,
-       diffmatchpatch.DiffInsert: diff.Add,
+var gitDiffOperation = [...]diff.Operation{
+       znkrdiff.Delete: diff.Delete,
+       znkrdiff.Match:  diff.Equal,
+       znkrdiff.Insert: diff.Add,
 }
 
 // A GitDiffChunk implements the
@@ -113,18 +113,36 @@
 // diffChunks returns the
 // github.com/go-git/go-git/v5/plumbing/format/diff.Chunks required to 
transform
 // from into to.
+//
+// Nothing documents this, but go-git seems to depend on never encountering
+// consecutive edits of the same operation. This forces us to join the
+// individual edits into chunks.
 func diffChunks(from, to string) []diff.Chunk {
-       dmp := diffmatchpatch.New()
-       dmp.DiffTimeout = time.Second
-       fromRunes, toRunes, runesToLines := dmp.DiffLinesToRunes(from, to)
-       diffs := dmp.DiffCharsToLines(dmp.DiffMainRunes(fromRunes, toRunes, 
false), runesToLines)
-       chunks := make([]diff.Chunk, len(diffs))
-       for i, d := range diffs {
-               chunk := &GitDiffChunk{
-                       content:   d.Text,
-                       operation: gitDiffOperation[d.Type],
+       edits := znkrtextdiff.Edits(from, to, znkrdiff.Minimal())
+       if len(edits) == 0 {
+               return nil
+       }
+       var chunks []diff.Chunk
+       lastOp := edits[0].Op
+       var sb strings.Builder
+       for _, edit := range edits {
+               if edit.Op != lastOp {
+                       if content := sb.String(); content != "" {
+                               chunks = append(chunks, &GitDiffChunk{
+                                       content:   content,
+                                       operation: gitDiffOperation[lastOp],
+                               })
+                       }
+                       lastOp = edit.Op
+                       sb.Reset()
                }
-               chunks[i] = chunk
+               sb.WriteString(edit.Line)
+       }
+       if content := sb.String(); content != "" {
+               chunks = append(chunks, &GitDiffChunk{
+                       content:   content,
+                       operation: gitDiffOperation[lastOp],
+               })
        }
        return chunks
 }
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/chezmoi-2.67.0/internal/chezmoi/sourcestate.go 
new/chezmoi-2.67.1/internal/chezmoi/sourcestate.go
--- old/chezmoi-2.67.0/internal/chezmoi/sourcestate.go  2025-11-02 
19:55:46.000000000 +0100
+++ new/chezmoi-2.67.1/internal/chezmoi/sourcestate.go  2025-11-26 
23:25:27.000000000 +0100
@@ -28,6 +28,7 @@
        "syscall"
        "text/template"
        "time"
+       "unicode/utf8"
 
        "github.com/coreos/go-semver/semver"
        "github.com/mitchellh/copystructure"
@@ -2231,6 +2232,20 @@
        if err != nil {
                return nil, err
        }
+       if options.Template {
+               if !utf8.Valid(contents) {
+                       s.warnFunc("%s: invalid UTF-8\n", fileInfo.Name())
+               }
+               for _, byteOrderMark := range byteOrderMarks {
+                       if bytes.HasPrefix(contents, byteOrderMark.prefix) && 
byteOrderMark.name != "UTF-8" {
+                               s.warnFunc(
+                                       "%s: detected %s byte order mark, 
ensure that template is in UTF-8\n",
+                                       fileInfo.Name(),
+                                       byteOrderMark.name,
+                               )
+                       }
+               }
+       }
        if options.AutoTemplate {
                var replacements bool
                contents, replacements = autoTemplate(contents, 
s.TemplateData())
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/chezmoi-2.67.0/internal/cmd/doctorcmd.go 
new/chezmoi-2.67.1/internal/cmd/doctorcmd.go
--- old/chezmoi-2.67.0/internal/cmd/doctorcmd.go        2025-11-02 
19:55:46.000000000 +0100
+++ new/chezmoi-2.67.1/internal/cmd/doctorcmd.go        2025-11-26 
23:25:27.000000000 +0100
@@ -135,6 +135,9 @@
        encryptedSuffixes []string
 }
 
+// A symlinkCheck checks that symlinks can be created.
+type symlinkCheck struct{}
+
 // A upgradeMethodCheck checks the upgrade method.
 type upgradeMethodCheck struct{}
 
@@ -221,6 +224,7 @@
                        dirname: c.DestDirAbsPath,
                },
                hardlinkCheck{},
+               symlinkCheck{},
                umaskCheck{},
                &binaryCheck{
                        name:       "cd-command",
@@ -730,6 +734,31 @@
        return checkResultOK, "no suspicious entries"
 }
 
+func (symlinkCheck) Name() string {
+       return "symlink"
+}
+
+func (symlinkCheck) Run(config *Config) (checkResult, string) {
+       tempDirAbsPath, err := config.tempDir("chezmoi-doctor")
+       if err != nil {
+               return checkResultFailed, err.Error()
+       }
+
+       oldName := ".old-name"
+       newName := ".new-name"
+       newNameAbsPath := tempDirAbsPath.JoinString(newName)
+
+       if err := config.baseSystem.WriteSymlink(oldName, newNameAbsPath); err 
!= nil {
+               return checkResultFailed, err.Error()
+       }
+
+       if err := config.baseSystem.Remove(newNameAbsPath); err != nil {
+               return checkResultFailed, err.Error()
+       }
+
+       return checkResultOK, fmt.Sprintf("created symlink from %s to %s", 
newName, oldName)
+}
+
 func (upgradeMethodCheck) Name() string {
        return "upgrade-method"
 }
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/chezmoi-2.67.0/internal/cmd/main_test.go 
new/chezmoi-2.67.1/internal/cmd/main_test.go
--- old/chezmoi-2.67.0/internal/cmd/main_test.go        2025-11-02 
19:55:46.000000000 +0100
+++ new/chezmoi-2.67.1/internal/cmd/main_test.go        2025-11-26 
23:25:27.000000000 +0100
@@ -282,6 +282,7 @@
                if err := os.WriteFile(strings.TrimSuffix(filename, ".hex"), 
data, 0o666); err != nil {
                        ts.Fatalf("%s: %v", arg, err)
                }
+               ts.Check(os.Remove(filename))
        }
 }
 
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/chezmoi-2.67.0/internal/cmd/testdata/scripts/issue4743.txtar 
new/chezmoi-2.67.1/internal/cmd/testdata/scripts/issue4743.txtar
--- old/chezmoi-2.67.0/internal/cmd/testdata/scripts/issue4743.txtar    
1970-01-01 01:00:00.000000000 +0100
+++ new/chezmoi-2.67.1/internal/cmd/testdata/scripts/issue4743.txtar    
2025-11-26 23:25:27.000000000 +0100
@@ -0,0 +1,15 @@
+ hexdecode home/user/invalid-utf-8.hex
+ hexdecode home/user/boms/utf-16-be.hex
+
+ # test that chezmoi add --template detects invalid UTF-8
+ exec chezmoi add --template $HOME${/}invalid-utf-8
+ stderr 'invalid UTF-8'
+
+ # test that chezmoi add --template detects byte order marks
+ exec chezmoi add --recursive --template ${HOME}${/}boms
+ stderr 'utf-16-be: detected UTF-16 \(BE\) byte order mark'
+
+-- home/user/boms/utf-16-be.hex --
+FE FF
+-- home/user/invalid-utf-8.hex --
+C3 28
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/chezmoi-2.67.0/internal/cmds/lint-whitespace/main.go 
new/chezmoi-2.67.1/internal/cmds/lint-whitespace/main.go
--- old/chezmoi-2.67.0/internal/cmds/lint-whitespace/main.go    2025-11-02 
19:55:46.000000000 +0100
+++ new/chezmoi-2.67.1/internal/cmds/lint-whitespace/main.go    2025-11-26 
23:25:27.000000000 +0100
@@ -18,6 +18,7 @@
                regexp.MustCompile(`\.svg\z`),
                regexp.MustCompile(`\A\.git\z`),
                regexp.MustCompile(`\A\.idea\z`),
+               regexp.MustCompile(`\A\.jj\z`),
                regexp.MustCompile(`\A\.ruff_cache\z`),
                regexp.MustCompile(`\A\.vagrant\z`),
                regexp.MustCompile(`\A\.venv\z`),

++++++ chezmoi.obsinfo ++++++
--- /var/tmp/diff_new_pack.BdaNlL/_old  2025-11-28 16:55:32.108861489 +0100
+++ /var/tmp/diff_new_pack.BdaNlL/_new  2025-11-28 16:55:32.128862332 +0100
@@ -1,5 +1,5 @@
 name: chezmoi
-version: 2.67.0
-mtime: 1762109746
-commit: 8591960c5b55b27d3806c6754232e1a6980957e1
+version: 2.67.1
+mtime: 1764195927
+commit: 5cda5a8a118f2eff0c786c3d45c82669735a346b
 

++++++ vendor.tar.gz ++++++
/work/SRC/openSUSE:Factory/chezmoi/vendor.tar.gz 
/work/SRC/openSUSE:Factory/.chezmoi.new.14147/vendor.tar.gz differ: char 29, 
line 1

Reply via email to