Skip to content

Promote the 3.23 Verify, Repair, and Delete Safety Fixes to Main - #1098

Merged
ptr727 merged 45 commits into
mainfrom
promote/develop-to-main-3-23
Oct 30, 2026
Merged

ptr727 merged 45 commits into
mainfrom
promote/develop-to-main-3-23

Conversation

@ptr727

@ptr727 ptr727 commented Oct 30, 2026 •

Copy link
Copy Markdown
Owner

Promotes develop to main for the 3.23 release.

This branch is main with develop merged in, replacing #1097, which conflicted. Each conflict was a hub reusable-workflow pin that Dependabot bumped on main to 2.0.1209 while develop holds 2.0.1251, and develop's side is taken. validate-task.yml is deleted, since develop runs the hub's validate task. The merged tree is identical to develop at 303ef98.

Verify and repair

DeleteInvalidFiles safety

Docker and scripts

Governance and docs

Dependencies

Dependabot group updates (actions-deps and nuget-deps).

Closes #939
Closes #1001
Closes #1061
Closes #1063
Closes #1066
Closes #1068
Closes #1084
Closes #1088
Closes #1090
Closes #1092
Closes #1099
Closes #1101

🤖 Generated with Claude Code

dependabot Bot and others added 30 commits September 28, 2026 05:46
Bumps the actions-deps group with 4 updates: [ptr727/ProjectTemplate/.github/workflows/merge-bot-task.yml](https://github.com/ptr727/projecttemplate), [ptr727/ProjectTemplate/.github/workflows/publish-plan-task.yml](https://github.com/ptr727/projecttemplate), [ptr727/ProjectTemplate/.github/workflows/build-release-task.yml](https://github.com/ptr727/projecttemplate) and [ptr727/ProjectTemplate/.github/workflows/publish-docker-readme-task.yml](https://github.com/ptr727/projecttemplate).


Updates `ptr727/ProjectTemplate/.github/workflows/merge-bot-task.yml` from 2.0.657 to 2.0.685
- [Release notes](https://github.com/ptr727/projecttemplate/releases)
- [Changelog](https://github.com/ptr727/ProjectTemplate/blob/main/HISTORY.md)
- [Commits](ptr727/ProjectTemplate@d28ed04...4566946)

Updates `ptr727/ProjectTemplate/.github/workflows/publish-plan-task.yml` from 2.0.657 to 2.0.685
- [Release notes](https://github.com/ptr727/projecttemplate/releases)
- [Changelog](https://github.com/ptr727/ProjectTemplate/blob/main/HISTORY.md)
- [Commits](ptr727/ProjectTemplate@d28ed04...4566946)

Updates `ptr727/ProjectTemplate/.github/workflows/build-release-task.yml` from 2.0.657 to 2.0.685
- [Release notes](https://github.com/ptr727/projecttemplate/releases)
- [Changelog](https://github.com/ptr727/ProjectTemplate/blob/main/HISTORY.md)
- [Commits](ptr727/ProjectTemplate@d28ed04...4566946)

Updates `ptr727/ProjectTemplate/.github/workflows/publish-docker-readme-task.yml` from 2.0.657 to 2.0.685
- [Release notes](https://github.com/ptr727/projecttemplate/releases)
- [Changelog](https://github.com/ptr727/ProjectTemplate/blob/main/HISTORY.md)
- [Commits](ptr727/ProjectTemplate@d28ed04...4566946)

---
updated-dependencies:
- dependency-name: ptr727/ProjectTemplate/.github/workflows/merge-bot-task.yml
  dependency-version: 2.0.685
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: actions-deps
- dependency-name: ptr727/ProjectTemplate/.github/workflows/publish-plan-task.yml
  dependency-version: 2.0.685
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: actions-deps
- dependency-name: ptr727/ProjectTemplate/.github/workflows/build-release-task.yml
  dependency-version: 2.0.685
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: actions-deps
- dependency-name: ptr727/ProjectTemplate/.github/workflows/publish-docker-readme-task.yml
  dependency-version: 2.0.685
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: actions-deps
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Bumps the actions-deps group with 4 updates: [ptr727/ProjectTemplate/.github/workflows/merge-bot-task.yml](https://github.com/ptr727/projecttemplate), [ptr727/ProjectTemplate/.github/workflows/publish-plan-task.yml](https://github.com/ptr727/projecttemplate), [ptr727/ProjectTemplate/.github/workflows/build-release-task.yml](https://github.com/ptr727/projecttemplate) and [ptr727/ProjectTemplate/.github/workflows/publish-docker-readme-task.yml](https://github.com/ptr727/projecttemplate).


Updates `ptr727/ProjectTemplate/.github/workflows/merge-bot-task.yml` from 2.0.685 to 2.0.707
- [Release notes](https://github.com/ptr727/projecttemplate/releases)
- [Changelog](https://github.com/ptr727/ProjectTemplate/blob/main/HISTORY.md)
- [Commits](ptr727/ProjectTemplate@4566946...1801ee7)

Updates `ptr727/ProjectTemplate/.github/workflows/publish-plan-task.yml` from 2.0.685 to 2.0.707
- [Release notes](https://github.com/ptr727/projecttemplate/releases)
- [Changelog](https://github.com/ptr727/ProjectTemplate/blob/main/HISTORY.md)
- [Commits](ptr727/ProjectTemplate@4566946...1801ee7)

Updates `ptr727/ProjectTemplate/.github/workflows/build-release-task.yml` from 2.0.685 to 2.0.707
- [Release notes](https://github.com/ptr727/projecttemplate/releases)
- [Changelog](https://github.com/ptr727/ProjectTemplate/blob/main/HISTORY.md)
- [Commits](ptr727/ProjectTemplate@4566946...1801ee7)

Updates `ptr727/ProjectTemplate/.github/workflows/publish-docker-readme-task.yml` from 2.0.685 to 2.0.707
- [Release notes](https://github.com/ptr727/projecttemplate/releases)
- [Changelog](https://github.com/ptr727/ProjectTemplate/blob/main/HISTORY.md)
- [Commits](ptr727/ProjectTemplate@4566946...1801ee7)

---
updated-dependencies:
- dependency-name: ptr727/ProjectTemplate/.github/workflows/merge-bot-task.yml
  dependency-version: 2.0.707
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: actions-deps
- dependency-name: ptr727/ProjectTemplate/.github/workflows/publish-plan-task.yml
  dependency-version: 2.0.707
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: actions-deps
- dependency-name: ptr727/ProjectTemplate/.github/workflows/build-release-task.yml
  dependency-version: 2.0.707
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: actions-deps
- dependency-name: ptr727/ProjectTemplate/.github/workflows/publish-docker-readme-task.yml
  dependency-version: 2.0.707
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: actions-deps
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Bumps the actions-deps group with 4 updates: [ptr727/ProjectTemplate/.github/workflows/merge-bot-task.yml](https://github.com/ptr727/projecttemplate), [ptr727/ProjectTemplate/.github/workflows/publish-plan-task.yml](https://github.com/ptr727/projecttemplate), [ptr727/ProjectTemplate/.github/workflows/build-release-task.yml](https://github.com/ptr727/projecttemplate) and [ptr727/ProjectTemplate/.github/workflows/publish-docker-readme-task.yml](https://github.com/ptr727/projecttemplate).


Updates `ptr727/ProjectTemplate/.github/workflows/merge-bot-task.yml` from 2.0.707 to 2.0.718
- [Release notes](https://github.com/ptr727/projecttemplate/releases)
- [Changelog](https://github.com/ptr727/ProjectTemplate/blob/main/HISTORY.md)
- [Commits](ptr727/ProjectTemplate@1801ee7...9040965)

Updates `ptr727/ProjectTemplate/.github/workflows/publish-plan-task.yml` from 2.0.707 to 2.0.718
- [Release notes](https://github.com/ptr727/projecttemplate/releases)
- [Changelog](https://github.com/ptr727/ProjectTemplate/blob/main/HISTORY.md)
- [Commits](ptr727/ProjectTemplate@1801ee7...9040965)

Updates `ptr727/ProjectTemplate/.github/workflows/build-release-task.yml` from 2.0.707 to 2.0.718
- [Release notes](https://github.com/ptr727/projecttemplate/releases)
- [Changelog](https://github.com/ptr727/ProjectTemplate/blob/main/HISTORY.md)
- [Commits](ptr727/ProjectTemplate@1801ee7...9040965)

Updates `ptr727/ProjectTemplate/.github/workflows/publish-docker-readme-task.yml` from 2.0.707 to 2.0.718
- [Release notes](https://github.com/ptr727/projecttemplate/releases)
- [Changelog](https://github.com/ptr727/ProjectTemplate/blob/main/HISTORY.md)
- [Commits](ptr727/ProjectTemplate@1801ee7...9040965)

---
updated-dependencies:
- dependency-name: ptr727/ProjectTemplate/.github/workflows/merge-bot-task.yml
  dependency-version: 2.0.718
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: actions-deps
- dependency-name: ptr727/ProjectTemplate/.github/workflows/publish-plan-task.yml
  dependency-version: 2.0.718
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: actions-deps
- dependency-name: ptr727/ProjectTemplate/.github/workflows/build-release-task.yml
  dependency-version: 2.0.718
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: actions-deps
- dependency-name: ptr727/ProjectTemplate/.github/workflows/publish-docker-readme-task.yml
  dependency-version: 2.0.718
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: actions-deps
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Bumps the actions-deps group with 4 updates: [ptr727/ProjectTemplate/.github/workflows/merge-bot-task.yml](https://github.com/ptr727/projecttemplate), [ptr727/ProjectTemplate/.github/workflows/publish-plan-task.yml](https://github.com/ptr727/projecttemplate), [ptr727/ProjectTemplate/.github/workflows/build-release-task.yml](https://github.com/ptr727/projecttemplate) and [ptr727/ProjectTemplate/.github/workflows/publish-docker-readme-task.yml](https://github.com/ptr727/projecttemplate).


Updates `ptr727/ProjectTemplate/.github/workflows/merge-bot-task.yml` from 2.0.718 to 2.0.740
- [Release notes](https://github.com/ptr727/projecttemplate/releases)
- [Changelog](https://github.com/ptr727/ProjectTemplate/blob/main/HISTORY.md)
- [Commits](ptr727/ProjectTemplate@9040965...2bce28f)

Updates `ptr727/ProjectTemplate/.github/workflows/publish-plan-task.yml` from 2.0.718 to 2.0.740
- [Release notes](https://github.com/ptr727/projecttemplate/releases)
- [Changelog](https://github.com/ptr727/ProjectTemplate/blob/main/HISTORY.md)
- [Commits](ptr727/ProjectTemplate@9040965...2bce28f)

Updates `ptr727/ProjectTemplate/.github/workflows/build-release-task.yml` from 2.0.718 to 2.0.740
- [Release notes](https://github.com/ptr727/projecttemplate/releases)
- [Changelog](https://github.com/ptr727/ProjectTemplate/blob/main/HISTORY.md)
- [Commits](ptr727/ProjectTemplate@9040965...2bce28f)

Updates `ptr727/ProjectTemplate/.github/workflows/publish-docker-readme-task.yml` from 2.0.718 to 2.0.740
- [Release notes](https://github.com/ptr727/projecttemplate/releases)
- [Changelog](https://github.com/ptr727/ProjectTemplate/blob/main/HISTORY.md)
- [Commits](ptr727/ProjectTemplate@9040965...2bce28f)

---
updated-dependencies:
- dependency-name: ptr727/ProjectTemplate/.github/workflows/merge-bot-task.yml
  dependency-version: 2.0.740
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: actions-deps
- dependency-name: ptr727/ProjectTemplate/.github/workflows/publish-plan-task.yml
  dependency-version: 2.0.740
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: actions-deps
- dependency-name: ptr727/ProjectTemplate/.github/workflows/build-release-task.yml
  dependency-version: 2.0.740
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: actions-deps
- dependency-name: ptr727/ProjectTemplate/.github/workflows/publish-docker-readme-task.yml
  dependency-version: 2.0.740
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: actions-deps
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Bumps the actions-deps group with 4 updates: [ptr727/ProjectTemplate/.github/workflows/merge-bot-task.yml](https://github.com/ptr727/projecttemplate), [ptr727/ProjectTemplate/.github/workflows/publish-plan-task.yml](https://github.com/ptr727/projecttemplate), [ptr727/ProjectTemplate/.github/workflows/build-release-task.yml](https://github.com/ptr727/projecttemplate) and [ptr727/ProjectTemplate/.github/workflows/publish-docker-readme-task.yml](https://github.com/ptr727/projecttemplate).


Updates `ptr727/ProjectTemplate/.github/workflows/merge-bot-task.yml` from 2.0.740 to 2.0.756
- [Release notes](https://github.com/ptr727/projecttemplate/releases)
- [Changelog](https://github.com/ptr727/ProjectTemplate/blob/main/HISTORY.md)
- [Commits](ptr727/ProjectTemplate@2bce28f...dbdf883)

Updates `ptr727/ProjectTemplate/.github/workflows/publish-plan-task.yml` from 2.0.740 to 2.0.756
- [Release notes](https://github.com/ptr727/projecttemplate/releases)
- [Changelog](https://github.com/ptr727/ProjectTemplate/blob/main/HISTORY.md)
- [Commits](ptr727/ProjectTemplate@2bce28f...dbdf883)

Updates `ptr727/ProjectTemplate/.github/workflows/build-release-task.yml` from 2.0.740 to 2.0.756
- [Release notes](https://github.com/ptr727/projecttemplate/releases)
- [Changelog](https://github.com/ptr727/ProjectTemplate/blob/main/HISTORY.md)
- [Commits](ptr727/ProjectTemplate@2bce28f...dbdf883)

Updates `ptr727/ProjectTemplate/.github/workflows/publish-docker-readme-task.yml` from 2.0.740 to 2.0.756
- [Release notes](https://github.com/ptr727/projecttemplate/releases)
- [Changelog](https://github.com/ptr727/ProjectTemplate/blob/main/HISTORY.md)
- [Commits](ptr727/ProjectTemplate@2bce28f...dbdf883)

---
updated-dependencies:
- dependency-name: ptr727/ProjectTemplate/.github/workflows/merge-bot-task.yml
  dependency-version: 2.0.756
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: actions-deps
- dependency-name: ptr727/ProjectTemplate/.github/workflows/publish-plan-task.yml
  dependency-version: 2.0.756
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: actions-deps
- dependency-name: ptr727/ProjectTemplate/.github/workflows/build-release-task.yml
  dependency-version: 2.0.756
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: actions-deps
- dependency-name: ptr727/ProjectTemplate/.github/workflows/publish-docker-readme-task.yml
  dependency-version: 2.0.756
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: actions-deps
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Bumps the actions-deps group with 4 updates: [ptr727/ProjectTemplate/.github/workflows/merge-bot-task.yml](https://github.com/ptr727/projecttemplate), [ptr727/ProjectTemplate/.github/workflows/publish-plan-task.yml](https://github.com/ptr727/projecttemplate), [ptr727/ProjectTemplate/.github/workflows/build-release-task.yml](https://github.com/ptr727/projecttemplate) and [ptr727/ProjectTemplate/.github/workflows/publish-docker-readme-task.yml](https://github.com/ptr727/projecttemplate).


Updates `ptr727/ProjectTemplate/.github/workflows/merge-bot-task.yml` from 2.0.756 to 2.0.805
- [Release notes](https://github.com/ptr727/projecttemplate/releases)
- [Changelog](https://github.com/ptr727/ProjectTemplate/blob/main/HISTORY.md)
- [Commits](ptr727/ProjectTemplate@dbdf883...bc9dc65)

Updates `ptr727/ProjectTemplate/.github/workflows/publish-plan-task.yml` from 2.0.756 to 2.0.805
- [Release notes](https://github.com/ptr727/projecttemplate/releases)
- [Changelog](https://github.com/ptr727/ProjectTemplate/blob/main/HISTORY.md)
- [Commits](ptr727/ProjectTemplate@dbdf883...bc9dc65)

Updates `ptr727/ProjectTemplate/.github/workflows/build-release-task.yml` from 2.0.756 to 2.0.805
- [Release notes](https://github.com/ptr727/projecttemplate/releases)
- [Changelog](https://github.com/ptr727/ProjectTemplate/blob/main/HISTORY.md)
- [Commits](ptr727/ProjectTemplate@dbdf883...bc9dc65)

Updates `ptr727/ProjectTemplate/.github/workflows/publish-docker-readme-task.yml` from 2.0.756 to 2.0.805
- [Release notes](https://github.com/ptr727/projecttemplate/releases)
- [Changelog](https://github.com/ptr727/ProjectTemplate/blob/main/HISTORY.md)
- [Commits](ptr727/ProjectTemplate@dbdf883...bc9dc65)

---
updated-dependencies:
- dependency-name: ptr727/ProjectTemplate/.github/workflows/merge-bot-task.yml
  dependency-version: 2.0.805
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: actions-deps
- dependency-name: ptr727/ProjectTemplate/.github/workflows/publish-plan-task.yml
  dependency-version: 2.0.805
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: actions-deps
- dependency-name: ptr727/ProjectTemplate/.github/workflows/build-release-task.yml
  dependency-version: 2.0.805
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: actions-deps
- dependency-name: ptr727/ProjectTemplate/.github/workflows/publish-docker-readme-task.yml
  dependency-version: 2.0.805
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: actions-deps
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Bumps the actions-deps group with 4 updates: [ptr727/ProjectTemplate/.github/workflows/merge-bot-task.yml](https://github.com/ptr727/projecttemplate), [ptr727/ProjectTemplate/.github/workflows/publish-plan-task.yml](https://github.com/ptr727/projecttemplate), [ptr727/ProjectTemplate/.github/workflows/build-release-task.yml](https://github.com/ptr727/projecttemplate) and [ptr727/ProjectTemplate/.github/workflows/publish-docker-readme-task.yml](https://github.com/ptr727/projecttemplate).


Updates `ptr727/ProjectTemplate/.github/workflows/merge-bot-task.yml` from 2.0.805 to 2.0.810
- [Release notes](https://github.com/ptr727/projecttemplate/releases)
- [Changelog](https://github.com/ptr727/ProjectTemplate/blob/main/HISTORY.md)
- [Commits](ptr727/ProjectTemplate@bc9dc65...0b7cba3)

Updates `ptr727/ProjectTemplate/.github/workflows/publish-plan-task.yml` from 2.0.805 to 2.0.810
- [Release notes](https://github.com/ptr727/projecttemplate/releases)
- [Changelog](https://github.com/ptr727/ProjectTemplate/blob/main/HISTORY.md)
- [Commits](ptr727/ProjectTemplate@bc9dc65...0b7cba3)

Updates `ptr727/ProjectTemplate/.github/workflows/build-release-task.yml` from 2.0.805 to 2.0.810
- [Release notes](https://github.com/ptr727/projecttemplate/releases)
- [Changelog](https://github.com/ptr727/ProjectTemplate/blob/main/HISTORY.md)
- [Commits](ptr727/ProjectTemplate@bc9dc65...0b7cba3)

Updates `ptr727/ProjectTemplate/.github/workflows/publish-docker-readme-task.yml` from 2.0.805 to 2.0.810
- [Release notes](https://github.com/ptr727/projecttemplate/releases)
- [Changelog](https://github.com/ptr727/ProjectTemplate/blob/main/HISTORY.md)
- [Commits](ptr727/ProjectTemplate@bc9dc65...0b7cba3)

---
updated-dependencies:
- dependency-name: ptr727/ProjectTemplate/.github/workflows/merge-bot-task.yml
  dependency-version: 2.0.810
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: actions-deps
- dependency-name: ptr727/ProjectTemplate/.github/workflows/publish-plan-task.yml
  dependency-version: 2.0.810
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: actions-deps
- dependency-name: ptr727/ProjectTemplate/.github/workflows/build-release-task.yml
  dependency-version: 2.0.810
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: actions-deps
- dependency-name: ptr727/ProjectTemplate/.github/workflows/publish-docker-readme-task.yml
  dependency-version: 2.0.810
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: actions-deps
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Bumps the actions-deps group with 4 updates: [ptr727/ProjectTemplate/.github/workflows/merge-bot-task.yml](https://github.com/ptr727/projecttemplate), [ptr727/ProjectTemplate/.github/workflows/publish-plan-task.yml](https://github.com/ptr727/projecttemplate), [ptr727/ProjectTemplate/.github/workflows/build-release-task.yml](https://github.com/ptr727/projecttemplate) and [ptr727/ProjectTemplate/.github/workflows/publish-docker-readme-task.yml](https://github.com/ptr727/projecttemplate).


Updates `ptr727/ProjectTemplate/.github/workflows/merge-bot-task.yml` from 2.0.810 to 2.0.826
- [Release notes](https://github.com/ptr727/projecttemplate/releases)
- [Changelog](https://github.com/ptr727/ProjectTemplate/blob/main/HISTORY.md)
- [Commits](ptr727/ProjectTemplate@0b7cba3...f75f9b5)

Updates `ptr727/ProjectTemplate/.github/workflows/publish-plan-task.yml` from 2.0.810 to 2.0.826
- [Release notes](https://github.com/ptr727/projecttemplate/releases)
- [Changelog](https://github.com/ptr727/ProjectTemplate/blob/main/HISTORY.md)
- [Commits](ptr727/ProjectTemplate@0b7cba3...f75f9b5)

Updates `ptr727/ProjectTemplate/.github/workflows/build-release-task.yml` from 2.0.810 to 2.0.826
- [Release notes](https://github.com/ptr727/projecttemplate/releases)
- [Changelog](https://github.com/ptr727/ProjectTemplate/blob/main/HISTORY.md)
- [Commits](ptr727/ProjectTemplate@0b7cba3...f75f9b5)

Updates `ptr727/ProjectTemplate/.github/workflows/publish-docker-readme-task.yml` from 2.0.810 to 2.0.826
- [Release notes](https://github.com/ptr727/projecttemplate/releases)
- [Changelog](https://github.com/ptr727/ProjectTemplate/blob/main/HISTORY.md)
- [Commits](ptr727/ProjectTemplate@0b7cba3...f75f9b5)

---
updated-dependencies:
- dependency-name: ptr727/ProjectTemplate/.github/workflows/merge-bot-task.yml
  dependency-version: 2.0.826
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: actions-deps
- dependency-name: ptr727/ProjectTemplate/.github/workflows/publish-plan-task.yml
  dependency-version: 2.0.826
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: actions-deps
- dependency-name: ptr727/ProjectTemplate/.github/workflows/build-release-task.yml
  dependency-version: 2.0.826
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: actions-deps
- dependency-name: ptr727/ProjectTemplate/.github/workflows/publish-docker-readme-task.yml
  dependency-version: 2.0.826
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: actions-deps
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Bumps Microsoft.Testing.Extensions.CodeCoverage from 18.11.2 to 18.12.0
Bumps ptr727.LanguageTags from 1.5.131 to 1.5.157
Bumps ptr727.Utilities from 4.1.25 to 4.1.56

---
updated-dependencies:
- dependency-name: Microsoft.Testing.Extensions.CodeCoverage
  dependency-version: 18.12.0
  dependency-type: direct:production
  update-type: version-update:semver-minor
  dependency-group: nuget-deps
- dependency-name: ptr727.LanguageTags
  dependency-version: 1.5.157
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: nuget-deps
- dependency-name: ptr727.Utilities
  dependency-version: 4.1.56
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: nuget-deps
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Bumps the actions-deps group with 4 updates: [ptr727/ProjectTemplate/.github/workflows/merge-bot-task.yml](https://github.com/ptr727/projecttemplate), [ptr727/ProjectTemplate/.github/workflows/publish-plan-task.yml](https://github.com/ptr727/projecttemplate), [ptr727/ProjectTemplate/.github/workflows/build-release-task.yml](https://github.com/ptr727/projecttemplate) and [ptr727/ProjectTemplate/.github/workflows/publish-docker-readme-task.yml](https://github.com/ptr727/projecttemplate).


Updates `ptr727/ProjectTemplate/.github/workflows/merge-bot-task.yml` from 2.0.826 to 2.0.850
- [Release notes](https://github.com/ptr727/projecttemplate/releases)
- [Changelog](https://github.com/ptr727/ProjectTemplate/blob/main/HISTORY.md)
- [Commits](ptr727/ProjectTemplate@f75f9b5...95cc8b1)

Updates `ptr727/ProjectTemplate/.github/workflows/publish-plan-task.yml` from 2.0.826 to 2.0.850
- [Release notes](https://github.com/ptr727/projecttemplate/releases)
- [Changelog](https://github.com/ptr727/ProjectTemplate/blob/main/HISTORY.md)
- [Commits](ptr727/ProjectTemplate@f75f9b5...95cc8b1)

Updates `ptr727/ProjectTemplate/.github/workflows/build-release-task.yml` from 2.0.826 to 2.0.850
- [Release notes](https://github.com/ptr727/projecttemplate/releases)
- [Changelog](https://github.com/ptr727/ProjectTemplate/blob/main/HISTORY.md)
- [Commits](ptr727/ProjectTemplate@f75f9b5...95cc8b1)

Updates `ptr727/ProjectTemplate/.github/workflows/publish-docker-readme-task.yml` from 2.0.826 to 2.0.850
- [Release notes](https://github.com/ptr727/projecttemplate/releases)
- [Changelog](https://github.com/ptr727/ProjectTemplate/blob/main/HISTORY.md)
- [Commits](ptr727/ProjectTemplate@f75f9b5...95cc8b1)

---
updated-dependencies:
- dependency-name: ptr727/ProjectTemplate/.github/workflows/merge-bot-task.yml
  dependency-version: 2.0.850
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: actions-deps
- dependency-name: ptr727/ProjectTemplate/.github/workflows/publish-plan-task.yml
  dependency-version: 2.0.850
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: actions-deps
- dependency-name: ptr727/ProjectTemplate/.github/workflows/build-release-task.yml
  dependency-version: 2.0.850
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: actions-deps
- dependency-name: ptr727/ProjectTemplate/.github/workflows/publish-docker-readme-task.yml
  dependency-version: 2.0.850
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: actions-deps
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Bumps the actions-deps group with 4 updates: [ptr727/ProjectTemplate/.github/workflows/merge-bot-task.yml](https://github.com/ptr727/projecttemplate), [ptr727/ProjectTemplate/.github/workflows/publish-plan-task.yml](https://github.com/ptr727/projecttemplate), [ptr727/ProjectTemplate/.github/workflows/build-release-task.yml](https://github.com/ptr727/projecttemplate) and [ptr727/ProjectTemplate/.github/workflows/publish-docker-readme-task.yml](https://github.com/ptr727/projecttemplate).


Updates `ptr727/ProjectTemplate/.github/workflows/merge-bot-task.yml` from 2.0.850 to 2.0.855
- [Release notes](https://github.com/ptr727/projecttemplate/releases)
- [Changelog](https://github.com/ptr727/ProjectTemplate/blob/main/HISTORY.md)
- [Commits](ptr727/ProjectTemplate@95cc8b1...4539946)

Updates `ptr727/ProjectTemplate/.github/workflows/publish-plan-task.yml` from 2.0.850 to 2.0.855
- [Release notes](https://github.com/ptr727/projecttemplate/releases)
- [Changelog](https://github.com/ptr727/ProjectTemplate/blob/main/HISTORY.md)
- [Commits](ptr727/ProjectTemplate@95cc8b1...4539946)

Updates `ptr727/ProjectTemplate/.github/workflows/build-release-task.yml` from 2.0.850 to 2.0.855
- [Release notes](https://github.com/ptr727/projecttemplate/releases)
- [Changelog](https://github.com/ptr727/ProjectTemplate/blob/main/HISTORY.md)
- [Commits](ptr727/ProjectTemplate@95cc8b1...4539946)

Updates `ptr727/ProjectTemplate/.github/workflows/publish-docker-readme-task.yml` from 2.0.850 to 2.0.855
- [Release notes](https://github.com/ptr727/projecttemplate/releases)
- [Changelog](https://github.com/ptr727/ProjectTemplate/blob/main/HISTORY.md)
- [Commits](ptr727/ProjectTemplate@95cc8b1...4539946)

---
updated-dependencies:
- dependency-name: ptr727/ProjectTemplate/.github/workflows/merge-bot-task.yml
  dependency-version: 2.0.855
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: actions-deps
- dependency-name: ptr727/ProjectTemplate/.github/workflows/publish-plan-task.yml
  dependency-version: 2.0.855
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: actions-deps
- dependency-name: ptr727/ProjectTemplate/.github/workflows/build-release-task.yml
  dependency-version: 2.0.855
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: actions-deps
- dependency-name: ptr727/ProjectTemplate/.github/workflows/publish-docker-readme-task.yml
  dependency-version: 2.0.855
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: actions-deps
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Bumps the actions-deps group with 5 updates:

| Package | From | To |
| --- | --- | --- |
| [ptr727/ProjectTemplate/.github/workflows/merge-bot-task.yml](https://github.com/ptr727/projecttemplate) | `2.0.855` | `2.0.919` |
| [ptr727/ProjectTemplate/.github/workflows/publish-plan-task.yml](https://github.com/ptr727/projecttemplate) | `2.0.855` | `2.0.919` |
| [ptr727/ProjectTemplate/.github/workflows/build-release-task.yml](https://github.com/ptr727/projecttemplate) | `2.0.855` | `2.0.919` |
| [ptr727/ProjectTemplate/.github/workflows/publish-docker-readme-task.yml](https://github.com/ptr727/projecttemplate) | `2.0.855` | `2.0.919` |
| [astral-sh/setup-uv](https://github.com/astral-sh/setup-uv) | `10.2.0` | `10.3.0` |


Updates `ptr727/ProjectTemplate/.github/workflows/merge-bot-task.yml` from 2.0.855 to 2.0.919
- [Release notes](https://github.com/ptr727/projecttemplate/releases)
- [Changelog](https://github.com/ptr727/ProjectTemplate/blob/main/HISTORY.md)
- [Commits](ptr727/ProjectTemplate@4539946...16999f6)

Updates `ptr727/ProjectTemplate/.github/workflows/publish-plan-task.yml` from 2.0.855 to 2.0.919
- [Release notes](https://github.com/ptr727/projecttemplate/releases)
- [Changelog](https://github.com/ptr727/ProjectTemplate/blob/main/HISTORY.md)
- [Commits](ptr727/ProjectTemplate@4539946...16999f6)

Updates `ptr727/ProjectTemplate/.github/workflows/build-release-task.yml` from 2.0.855 to 2.0.919
- [Release notes](https://github.com/ptr727/projecttemplate/releases)
- [Changelog](https://github.com/ptr727/ProjectTemplate/blob/main/HISTORY.md)
- [Commits](ptr727/ProjectTemplate@4539946...16999f6)

Updates `ptr727/ProjectTemplate/.github/workflows/publish-docker-readme-task.yml` from 2.0.855 to 2.0.919
- [Release notes](https://github.com/ptr727/projecttemplate/releases)
- [Changelog](https://github.com/ptr727/ProjectTemplate/blob/main/HISTORY.md)
- [Commits](ptr727/ProjectTemplate@4539946...16999f6)

Updates `astral-sh/setup-uv` from 10.2.0 to 10.3.0
- [Release notes](https://github.com/astral-sh/setup-uv/releases)
- [Commits](astral-sh/setup-uv@c18668a...1c37ad0)

---
updated-dependencies:
- dependency-name: ptr727/ProjectTemplate/.github/workflows/merge-bot-task.yml
  dependency-version: 2.0.919
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: actions-deps
- dependency-name: ptr727/ProjectTemplate/.github/workflows/publish-plan-task.yml
  dependency-version: 2.0.919
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: actions-deps
- dependency-name: ptr727/ProjectTemplate/.github/workflows/build-release-task.yml
  dependency-version: 2.0.919
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: actions-deps
- dependency-name: ptr727/ProjectTemplate/.github/workflows/publish-docker-readme-task.yml
  dependency-version: 2.0.919
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: actions-deps
- dependency-name: astral-sh/setup-uv
  dependency-version: 10.3.0
  dependency-type: direct:production
  update-type: version-update:semver-minor
  dependency-group: actions-deps
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Bumps ptr727.LanguageTags from 1.5.157 to 1.5.164
Bumps xunit.analyzers from 2.1.0 to 2.2.0
Bumps xunit.v3 from 4.0.1 to 4.0.2

---
updated-dependencies:
- dependency-name: ptr727.LanguageTags
  dependency-version: 1.5.164
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: nuget-deps
- dependency-name: xunit.analyzers
  dependency-version: 2.2.0
  dependency-type: direct:production
  update-type: version-update:semver-minor
  dependency-group: nuget-deps
- dependency-name: xunit.v3
  dependency-version: 4.0.2
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: nuget-deps
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Bumps the actions-deps group with 4 updates: [ptr727/ProjectTemplate/.github/workflows/merge-bot-task.yml](https://github.com/ptr727/projecttemplate), [ptr727/ProjectTemplate/.github/workflows/publish-plan-task.yml](https://github.com/ptr727/projecttemplate), [ptr727/ProjectTemplate/.github/workflows/build-release-task.yml](https://github.com/ptr727/projecttemplate) and [ptr727/ProjectTemplate/.github/workflows/publish-docker-readme-task.yml](https://github.com/ptr727/projecttemplate).


Updates `ptr727/ProjectTemplate/.github/workflows/merge-bot-task.yml` from 2.0.919 to 2.0.983
- [Release notes](https://github.com/ptr727/projecttemplate/releases)
- [Changelog](https://github.com/ptr727/ProjectTemplate/blob/main/HISTORY.md)
- [Commits](ptr727/ProjectTemplate@16999f6...0c93369)

Updates `ptr727/ProjectTemplate/.github/workflows/publish-plan-task.yml` from 2.0.919 to 2.0.983
- [Release notes](https://github.com/ptr727/projecttemplate/releases)
- [Changelog](https://github.com/ptr727/ProjectTemplate/blob/main/HISTORY.md)
- [Commits](ptr727/ProjectTemplate@16999f6...0c93369)

Updates `ptr727/ProjectTemplate/.github/workflows/build-release-task.yml` from 2.0.919 to 2.0.983
- [Release notes](https://github.com/ptr727/projecttemplate/releases)
- [Changelog](https://github.com/ptr727/ProjectTemplate/blob/main/HISTORY.md)
- [Commits](ptr727/ProjectTemplate@16999f6...0c93369)

Updates `ptr727/ProjectTemplate/.github/workflows/publish-docker-readme-task.yml` from 2.0.919 to 2.0.983
- [Release notes](https://github.com/ptr727/projecttemplate/releases)
- [Changelog](https://github.com/ptr727/ProjectTemplate/blob/main/HISTORY.md)
- [Commits](ptr727/ProjectTemplate@16999f6...0c93369)

---
updated-dependencies:
- dependency-name: ptr727/ProjectTemplate/.github/workflows/merge-bot-task.yml
  dependency-version: 2.0.983
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: actions-deps
- dependency-name: ptr727/ProjectTemplate/.github/workflows/publish-plan-task.yml
  dependency-version: 2.0.983
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: actions-deps
- dependency-name: ptr727/ProjectTemplate/.github/workflows/build-release-task.yml
  dependency-version: 2.0.983
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: actions-deps
- dependency-name: ptr727/ProjectTemplate/.github/workflows/publish-docker-readme-task.yml
  dependency-version: 2.0.983
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: actions-deps
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Bumps Microsoft.NET.Test.Sdk from 18.10.1 to 18.11.0
Bumps Microsoft.SourceLink.GitHub from 10.0.401 to 10.0.402
Bumps ptr727.LanguageTags from 1.5.164 to 1.5.167
Bumps ptr727.Utilities from 4.1.56 to 4.1.64
Bumps System.CommandLine from 2.0.12 to 2.0.13

---
updated-dependencies:
- dependency-name: Microsoft.NET.Test.Sdk
  dependency-version: 18.11.0
  dependency-type: direct:production
  update-type: version-update:semver-minor
  dependency-group: nuget-deps
- dependency-name: Microsoft.SourceLink.GitHub
  dependency-version: 10.0.402
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: nuget-deps
- dependency-name: ptr727.LanguageTags
  dependency-version: 1.5.167
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: nuget-deps
- dependency-name: ptr727.Utilities
  dependency-version: 4.1.64
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: nuget-deps
- dependency-name: System.CommandLine
  dependency-version: 2.0.13
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: nuget-deps
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Bumps the actions-deps group with 4 updates: [ptr727/ProjectTemplate/.github/workflows/merge-bot-task.yml](https://github.com/ptr727/projecttemplate), [ptr727/ProjectTemplate/.github/workflows/publish-plan-task.yml](https://github.com/ptr727/projecttemplate), [ptr727/ProjectTemplate/.github/workflows/build-release-task.yml](https://github.com/ptr727/projecttemplate) and [ptr727/ProjectTemplate/.github/workflows/publish-docker-readme-task.yml](https://github.com/ptr727/projecttemplate).


Updates `ptr727/ProjectTemplate/.github/workflows/merge-bot-task.yml` from 2.0.983 to 2.0.1004
- [Release notes](https://github.com/ptr727/projecttemplate/releases)
- [Changelog](https://github.com/ptr727/ProjectTemplate/blob/main/HISTORY.md)
- [Commits](ptr727/ProjectTemplate@0c93369...098016c)

Updates `ptr727/ProjectTemplate/.github/workflows/publish-plan-task.yml` from 2.0.983 to 2.0.1004
- [Release notes](https://github.com/ptr727/projecttemplate/releases)
- [Changelog](https://github.com/ptr727/ProjectTemplate/blob/main/HISTORY.md)
- [Commits](ptr727/ProjectTemplate@0c93369...098016c)

Updates `ptr727/ProjectTemplate/.github/workflows/build-release-task.yml` from 2.0.983 to 2.0.1004
- [Release notes](https://github.com/ptr727/projecttemplate/releases)
- [Changelog](https://github.com/ptr727/ProjectTemplate/blob/main/HISTORY.md)
- [Commits](ptr727/ProjectTemplate@0c93369...098016c)

Updates `ptr727/ProjectTemplate/.github/workflows/publish-docker-readme-task.yml` from 2.0.983 to 2.0.1004
- [Release notes](https://github.com/ptr727/projecttemplate/releases)
- [Changelog](https://github.com/ptr727/ProjectTemplate/blob/main/HISTORY.md)
- [Commits](ptr727/ProjectTemplate@0c93369...098016c)

---
updated-dependencies:
- dependency-name: ptr727/ProjectTemplate/.github/workflows/merge-bot-task.yml
  dependency-version: 2.0.1004
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: actions-deps
- dependency-name: ptr727/ProjectTemplate/.github/workflows/publish-plan-task.yml
  dependency-version: 2.0.1004
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: actions-deps
- dependency-name: ptr727/ProjectTemplate/.github/workflows/build-release-task.yml
  dependency-version: 2.0.1004
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: actions-deps
- dependency-name: ptr727/ProjectTemplate/.github/workflows/publish-docker-readme-task.yml
  dependency-version: 2.0.1004
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: actions-deps
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Bumps ptr727.LanguageTags from 1.5.167 to 1.5.170
Bumps ptr727.Utilities from 4.1.64 to 4.1.68

---
updated-dependencies:
- dependency-name: ptr727.LanguageTags
  dependency-version: 1.5.170
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: nuget-deps
- dependency-name: ptr727.Utilities
  dependency-version: 4.1.68
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: nuget-deps
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Bumps the actions-deps group with 4 updates: [ptr727/ProjectTemplate/.github/workflows/merge-bot-task.yml](https://github.com/ptr727/projecttemplate), [ptr727/ProjectTemplate/.github/workflows/publish-plan-task.yml](https://github.com/ptr727/projecttemplate), [ptr727/ProjectTemplate/.github/workflows/build-release-task.yml](https://github.com/ptr727/projecttemplate) and [ptr727/ProjectTemplate/.github/workflows/publish-docker-readme-task.yml](https://github.com/ptr727/projecttemplate).


Updates `ptr727/ProjectTemplate/.github/workflows/merge-bot-task.yml` from 2.0.1004 to 2.0.1020
- [Release notes](https://github.com/ptr727/projecttemplate/releases)
- [Changelog](https://github.com/ptr727/ProjectTemplate/blob/main/HISTORY.md)
- [Commits](ptr727/ProjectTemplate@098016c...ae63f7b)

Updates `ptr727/ProjectTemplate/.github/workflows/publish-plan-task.yml` from 2.0.1004 to 2.0.1020
- [Release notes](https://github.com/ptr727/projecttemplate/releases)
- [Changelog](https://github.com/ptr727/ProjectTemplate/blob/main/HISTORY.md)
- [Commits](ptr727/ProjectTemplate@098016c...ae63f7b)

Updates `ptr727/ProjectTemplate/.github/workflows/build-release-task.yml` from 2.0.1004 to 2.0.1020
- [Release notes](https://github.com/ptr727/projecttemplate/releases)
- [Changelog](https://github.com/ptr727/ProjectTemplate/blob/main/HISTORY.md)
- [Commits](ptr727/ProjectTemplate@098016c...ae63f7b)

Updates `ptr727/ProjectTemplate/.github/workflows/publish-docker-readme-task.yml` from 2.0.1004 to 2.0.1020
- [Release notes](https://github.com/ptr727/projecttemplate/releases)
- [Changelog](https://github.com/ptr727/ProjectTemplate/blob/main/HISTORY.md)
- [Commits](ptr727/ProjectTemplate@098016c...ae63f7b)

---
updated-dependencies:
- dependency-name: ptr727/ProjectTemplate/.github/workflows/merge-bot-task.yml
  dependency-version: 2.0.1020
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: actions-deps
- dependency-name: ptr727/ProjectTemplate/.github/workflows/publish-plan-task.yml
  dependency-version: 2.0.1020
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: actions-deps
- dependency-name: ptr727/ProjectTemplate/.github/workflows/build-release-task.yml
  dependency-version: 2.0.1020
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: actions-deps
- dependency-name: ptr727/ProjectTemplate/.github/workflows/publish-docker-readme-task.yml
  dependency-version: 2.0.1020
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: actions-deps
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Bumps the actions-deps group with 5 updates:

| Package | From | To |
| --- | --- | --- |
| [ptr727/ProjectTemplate/.github/workflows/merge-bot-task.yml](https://github.com/ptr727/projecttemplate) | `2.0.1020` | `2.0.1074` |
| [ptr727/ProjectTemplate/.github/workflows/publish-plan-task.yml](https://github.com/ptr727/projecttemplate) | `2.0.1020` | `2.0.1074` |
| [ptr727/ProjectTemplate/.github/workflows/build-release-task.yml](https://github.com/ptr727/projecttemplate) | `2.0.1020` | `2.0.1074` |
| [ptr727/ProjectTemplate/.github/workflows/publish-docker-readme-task.yml](https://github.com/ptr727/projecttemplate) | `2.0.1020` | `2.0.1074` |
| [streetsidesoftware/cspell-action](https://github.com/streetsidesoftware/cspell-action) | `9.1.0` | `9.2.0` |


Updates `ptr727/ProjectTemplate/.github/workflows/merge-bot-task.yml` from 2.0.1020 to 2.0.1074
- [Release notes](https://github.com/ptr727/projecttemplate/releases)
- [Changelog](https://github.com/ptr727/ProjectTemplate/blob/main/HISTORY.md)
- [Commits](ptr727/ProjectTemplate@ae63f7b...0f1ac32)

Updates `ptr727/ProjectTemplate/.github/workflows/publish-plan-task.yml` from 2.0.1020 to 2.0.1074
- [Release notes](https://github.com/ptr727/projecttemplate/releases)
- [Changelog](https://github.com/ptr727/ProjectTemplate/blob/main/HISTORY.md)
- [Commits](ptr727/ProjectTemplate@ae63f7b...0f1ac32)

Updates `ptr727/ProjectTemplate/.github/workflows/build-release-task.yml` from 2.0.1020 to 2.0.1074
- [Release notes](https://github.com/ptr727/projecttemplate/releases)
- [Changelog](https://github.com/ptr727/ProjectTemplate/blob/main/HISTORY.md)
- [Commits](ptr727/ProjectTemplate@ae63f7b...0f1ac32)

Updates `ptr727/ProjectTemplate/.github/workflows/publish-docker-readme-task.yml` from 2.0.1020 to 2.0.1074
- [Release notes](https://github.com/ptr727/projecttemplate/releases)
- [Changelog](https://github.com/ptr727/ProjectTemplate/blob/main/HISTORY.md)
- [Commits](ptr727/ProjectTemplate@ae63f7b...0f1ac32)

Updates `streetsidesoftware/cspell-action` from 9.1.0 to 9.2.0
- [Release notes](https://github.com/streetsidesoftware/cspell-action/releases)
- [Changelog](https://github.com/streetsidesoftware/cspell-action/blob/main/CHANGELOG.md)
- [Commits](streetsidesoftware/cspell-action@6f3c77c...ce1816e)

---
updated-dependencies:
- dependency-name: ptr727/ProjectTemplate/.github/workflows/merge-bot-task.yml
  dependency-version: 2.0.1074
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: actions-deps
- dependency-name: ptr727/ProjectTemplate/.github/workflows/publish-plan-task.yml
  dependency-version: 2.0.1074
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: actions-deps
- dependency-name: ptr727/ProjectTemplate/.github/workflows/build-release-task.yml
  dependency-version: 2.0.1074
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: actions-deps
- dependency-name: ptr727/ProjectTemplate/.github/workflows/publish-docker-readme-task.yml
  dependency-version: 2.0.1074
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: actions-deps
- dependency-name: streetsidesoftware/cspell-action
  dependency-version: 9.2.0
  dependency-type: direct:production
  update-type: version-update:semver-minor
  dependency-group: actions-deps
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Bumps the actions-deps group with 4 updates: [ptr727/ProjectTemplate/.github/workflows/merge-bot-task.yml](https://github.com/ptr727/projecttemplate), [ptr727/ProjectTemplate/.github/workflows/publish-plan-task.yml](https://github.com/ptr727/projecttemplate), [ptr727/ProjectTemplate/.github/workflows/build-release-task.yml](https://github.com/ptr727/projecttemplate) and [ptr727/ProjectTemplate/.github/workflows/publish-docker-readme-task.yml](https://github.com/ptr727/projecttemplate).


Updates `ptr727/ProjectTemplate/.github/workflows/merge-bot-task.yml` from 2.0.1074 to 2.0.1085
- [Release notes](https://github.com/ptr727/projecttemplate/releases)
- [Changelog](https://github.com/ptr727/ProjectTemplate/blob/main/HISTORY.md)
- [Commits](ptr727/ProjectTemplate@0f1ac32...569af22)

Updates `ptr727/ProjectTemplate/.github/workflows/publish-plan-task.yml` from 2.0.1074 to 2.0.1085
- [Release notes](https://github.com/ptr727/projecttemplate/releases)
- [Changelog](https://github.com/ptr727/ProjectTemplate/blob/main/HISTORY.md)
- [Commits](ptr727/ProjectTemplate@0f1ac32...569af22)

Updates `ptr727/ProjectTemplate/.github/workflows/build-release-task.yml` from 2.0.1074 to 2.0.1085
- [Release notes](https://github.com/ptr727/projecttemplate/releases)
- [Changelog](https://github.com/ptr727/ProjectTemplate/blob/main/HISTORY.md)
- [Commits](ptr727/ProjectTemplate@0f1ac32...569af22)

Updates `ptr727/ProjectTemplate/.github/workflows/publish-docker-readme-task.yml` from 2.0.1074 to 2.0.1085
- [Release notes](https://github.com/ptr727/projecttemplate/releases)
- [Changelog](https://github.com/ptr727/ProjectTemplate/blob/main/HISTORY.md)
- [Commits](ptr727/ProjectTemplate@0f1ac32...569af22)

---
updated-dependencies:
- dependency-name: ptr727/ProjectTemplate/.github/workflows/merge-bot-task.yml
  dependency-version: 2.0.1085
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: actions-deps
- dependency-name: ptr727/ProjectTemplate/.github/workflows/publish-plan-task.yml
  dependency-version: 2.0.1085
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: actions-deps
- dependency-name: ptr727/ProjectTemplate/.github/workflows/build-release-task.yml
  dependency-version: 2.0.1085
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: actions-deps
- dependency-name: ptr727/ProjectTemplate/.github/workflows/publish-docker-readme-task.yml
  dependency-version: 2.0.1085
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: actions-deps
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Bumps the actions-deps group with 4 updates: [ptr727/ProjectTemplate/.github/workflows/merge-bot-task.yml](https://github.com/ptr727/projecttemplate), [ptr727/ProjectTemplate/.github/workflows/publish-plan-task.yml](https://github.com/ptr727/projecttemplate), [ptr727/ProjectTemplate/.github/workflows/build-release-task.yml](https://github.com/ptr727/projecttemplate) and [ptr727/ProjectTemplate/.github/workflows/publish-docker-readme-task.yml](https://github.com/ptr727/projecttemplate).


Updates `ptr727/ProjectTemplate/.github/workflows/merge-bot-task.yml` from 2.0.1085 to 2.0.1090
- [Release notes](https://github.com/ptr727/projecttemplate/releases)
- [Changelog](https://github.com/ptr727/ProjectTemplate/blob/main/HISTORY.md)
- [Commits](ptr727/ProjectTemplate@569af22...07b0a52)

Updates `ptr727/ProjectTemplate/.github/workflows/publish-plan-task.yml` from 2.0.1085 to 2.0.1090
- [Release notes](https://github.com/ptr727/projecttemplate/releases)
- [Changelog](https://github.com/ptr727/ProjectTemplate/blob/main/HISTORY.md)
- [Commits](ptr727/ProjectTemplate@569af22...07b0a52)

Updates `ptr727/ProjectTemplate/.github/workflows/build-release-task.yml` from 2.0.1085 to 2.0.1090
- [Release notes](https://github.com/ptr727/projecttemplate/releases)
- [Changelog](https://github.com/ptr727/ProjectTemplate/blob/main/HISTORY.md)
- [Commits](ptr727/ProjectTemplate@569af22...07b0a52)

Updates `ptr727/ProjectTemplate/.github/workflows/publish-docker-readme-task.yml` from 2.0.1085 to 2.0.1090
- [Release notes](https://github.com/ptr727/projecttemplate/releases)
- [Changelog](https://github.com/ptr727/ProjectTemplate/blob/main/HISTORY.md)
- [Commits](ptr727/ProjectTemplate@569af22...07b0a52)

---
updated-dependencies:
- dependency-name: ptr727/ProjectTemplate/.github/workflows/merge-bot-task.yml
  dependency-version: 2.0.1090
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: actions-deps
- dependency-name: ptr727/ProjectTemplate/.github/workflows/publish-plan-task.yml
  dependency-version: 2.0.1090
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: actions-deps
- dependency-name: ptr727/ProjectTemplate/.github/workflows/build-release-task.yml
  dependency-version: 2.0.1090
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: actions-deps
- dependency-name: ptr727/ProjectTemplate/.github/workflows/publish-docker-readme-task.yml
  dependency-version: 2.0.1090
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: actions-deps
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Bumps the actions-deps group with 4 updates: [ptr727/ProjectTemplate/.github/workflows/merge-bot-task.yml](https://github.com/ptr727/projecttemplate), [ptr727/ProjectTemplate/.github/workflows/publish-plan-task.yml](https://github.com/ptr727/projecttemplate), [ptr727/ProjectTemplate/.github/workflows/build-release-task.yml](https://github.com/ptr727/projecttemplate) and [ptr727/ProjectTemplate/.github/workflows/publish-docker-readme-task.yml](https://github.com/ptr727/projecttemplate).


Updates `ptr727/ProjectTemplate/.github/workflows/merge-bot-task.yml` from 2.0.1090 to 2.0.1100
- [Release notes](https://github.com/ptr727/projecttemplate/releases)
- [Changelog](https://github.com/ptr727/ProjectTemplate/blob/main/HISTORY.md)
- [Commits](ptr727/ProjectTemplate@07b0a52...46bf16f)

Updates `ptr727/ProjectTemplate/.github/workflows/publish-plan-task.yml` from 2.0.1090 to 2.0.1100
- [Release notes](https://github.com/ptr727/projecttemplate/releases)
- [Changelog](https://github.com/ptr727/ProjectTemplate/blob/main/HISTORY.md)
- [Commits](ptr727/ProjectTemplate@07b0a52...46bf16f)

Updates `ptr727/ProjectTemplate/.github/workflows/build-release-task.yml` from 2.0.1090 to 2.0.1100
- [Release notes](https://github.com/ptr727/projecttemplate/releases)
- [Changelog](https://github.com/ptr727/ProjectTemplate/blob/main/HISTORY.md)
- [Commits](ptr727/ProjectTemplate@07b0a52...46bf16f)

Updates `ptr727/ProjectTemplate/.github/workflows/publish-docker-readme-task.yml` from 2.0.1090 to 2.0.1100
- [Release notes](https://github.com/ptr727/projecttemplate/releases)
- [Changelog](https://github.com/ptr727/ProjectTemplate/blob/main/HISTORY.md)
- [Commits](ptr727/ProjectTemplate@07b0a52...46bf16f)

---
updated-dependencies:
- dependency-name: ptr727/ProjectTemplate/.github/workflows/merge-bot-task.yml
  dependency-version: 2.0.1100
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: actions-deps
- dependency-name: ptr727/ProjectTemplate/.github/workflows/publish-plan-task.yml
  dependency-version: 2.0.1100
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: actions-deps
- dependency-name: ptr727/ProjectTemplate/.github/workflows/build-release-task.yml
  dependency-version: 2.0.1100
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: actions-deps
- dependency-name: ptr727/ProjectTemplate/.github/workflows/publish-docker-readme-task.yml
  dependency-version: 2.0.1100
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: actions-deps
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Bumps the actions-deps group with 4 updates: [ptr727/ProjectTemplate/.github/workflows/merge-bot-task.yml](https://github.com/ptr727/projecttemplate), [ptr727/ProjectTemplate/.github/workflows/publish-plan-task.yml](https://github.com/ptr727/projecttemplate), [ptr727/ProjectTemplate/.github/workflows/build-release-task.yml](https://github.com/ptr727/projecttemplate) and [ptr727/ProjectTemplate/.github/workflows/publish-docker-readme-task.yml](https://github.com/ptr727/projecttemplate).


Updates `ptr727/ProjectTemplate/.github/workflows/merge-bot-task.yml` from 2.0.1100 to 2.0.1120
- [Release notes](https://github.com/ptr727/projecttemplate/releases)
- [Changelog](https://github.com/ptr727/ProjectTemplate/blob/main/HISTORY.md)
- [Commits](ptr727/ProjectTemplate@46bf16f...4b10111)

Updates `ptr727/ProjectTemplate/.github/workflows/publish-plan-task.yml` from 2.0.1100 to 2.0.1120
- [Release notes](https://github.com/ptr727/projecttemplate/releases)
- [Changelog](https://github.com/ptr727/ProjectTemplate/blob/main/HISTORY.md)
- [Commits](ptr727/ProjectTemplate@46bf16f...4b10111)

Updates `ptr727/ProjectTemplate/.github/workflows/build-release-task.yml` from 2.0.1100 to 2.0.1120
- [Release notes](https://github.com/ptr727/projecttemplate/releases)
- [Changelog](https://github.com/ptr727/ProjectTemplate/blob/main/HISTORY.md)
- [Commits](ptr727/ProjectTemplate@46bf16f...4b10111)

Updates `ptr727/ProjectTemplate/.github/workflows/publish-docker-readme-task.yml` from 2.0.1100 to 2.0.1120
- [Release notes](https://github.com/ptr727/projecttemplate/releases)
- [Changelog](https://github.com/ptr727/ProjectTemplate/blob/main/HISTORY.md)
- [Commits](ptr727/ProjectTemplate@46bf16f...4b10111)

---
updated-dependencies:
- dependency-name: ptr727/ProjectTemplate/.github/workflows/merge-bot-task.yml
  dependency-version: 2.0.1120
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: actions-deps
- dependency-name: ptr727/ProjectTemplate/.github/workflows/publish-plan-task.yml
  dependency-version: 2.0.1120
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: actions-deps
- dependency-name: ptr727/ProjectTemplate/.github/workflows/build-release-task.yml
  dependency-version: 2.0.1120
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: actions-deps
- dependency-name: ptr727/ProjectTemplate/.github/workflows/publish-docker-readme-task.yml
  dependency-version: 2.0.1120
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: actions-deps
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Bumps Microsoft.SourceLink.GitHub from 10.0.402 to 10.0.403
Bumps ptr727.LanguageTags from 1.5.170 to 1.5.185
Bumps System.CommandLine from 2.0.13 to 2.0.14

---
updated-dependencies:
- dependency-name: Microsoft.SourceLink.GitHub
  dependency-version: 10.0.403
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: nuget-deps
- dependency-name: ptr727.LanguageTags
  dependency-version: 1.5.185
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: nuget-deps
- dependency-name: System.CommandLine
  dependency-version: 2.0.14
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: nuget-deps
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Bumps the actions-deps group with 5 updates:

| Package | From | To |
| --- | --- | --- |
| [ptr727/ProjectTemplate/.github/workflows/merge-bot-task.yml](https://github.com/ptr727/projecttemplate) | `2.0.1120` | `2.0.1148` |
| [ptr727/ProjectTemplate/.github/workflows/publish-plan-task.yml](https://github.com/ptr727/projecttemplate) | `2.0.1120` | `2.0.1148` |
| [ptr727/ProjectTemplate/.github/workflows/build-release-task.yml](https://github.com/ptr727/projecttemplate) | `2.0.1120` | `2.0.1148` |
| [ptr727/ProjectTemplate/.github/workflows/publish-docker-readme-task.yml](https://github.com/ptr727/projecttemplate) | `2.0.1120` | `2.0.1148` |
| [astral-sh/setup-uv](https://github.com/astral-sh/setup-uv) | `10.3.0` | `10.3.2` |


Updates `ptr727/ProjectTemplate/.github/workflows/merge-bot-task.yml` from 2.0.1120 to 2.0.1148
- [Release notes](https://github.com/ptr727/projecttemplate/releases)
- [Changelog](https://github.com/ptr727/ProjectTemplate/blob/main/HISTORY.md)
- [Commits](ptr727/ProjectTemplate@4b10111...f610e42)

Updates `ptr727/ProjectTemplate/.github/workflows/publish-plan-task.yml` from 2.0.1120 to 2.0.1148
- [Release notes](https://github.com/ptr727/projecttemplate/releases)
- [Changelog](https://github.com/ptr727/ProjectTemplate/blob/main/HISTORY.md)
- [Commits](ptr727/ProjectTemplate@4b10111...f610e42)

Updates `ptr727/ProjectTemplate/.github/workflows/build-release-task.yml` from 2.0.1120 to 2.0.1148
- [Release notes](https://github.com/ptr727/projecttemplate/releases)
- [Changelog](https://github.com/ptr727/ProjectTemplate/blob/main/HISTORY.md)
- [Commits](ptr727/ProjectTemplate@4b10111...f610e42)

Updates `ptr727/ProjectTemplate/.github/workflows/publish-docker-readme-task.yml` from 2.0.1120 to 2.0.1148
- [Release notes](https://github.com/ptr727/projecttemplate/releases)
- [Changelog](https://github.com/ptr727/ProjectTemplate/blob/main/HISTORY.md)
- [Commits](ptr727/ProjectTemplate@4b10111...f610e42)

Updates `astral-sh/setup-uv` from 10.3.0 to 10.3.2
- [Release notes](https://github.com/astral-sh/setup-uv/releases)
- [Commits](astral-sh/setup-uv@1c37ad0...07a047e)

---
updated-dependencies:
- dependency-name: ptr727/ProjectTemplate/.github/workflows/merge-bot-task.yml
  dependency-version: 2.0.1148
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: actions-deps
- dependency-name: ptr727/ProjectTemplate/.github/workflows/publish-plan-task.yml
  dependency-version: 2.0.1148
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: actions-deps
- dependency-name: ptr727/ProjectTemplate/.github/workflows/build-release-task.yml
  dependency-version: 2.0.1148
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: actions-deps
- dependency-name: ptr727/ProjectTemplate/.github/workflows/publish-docker-readme-task.yml
  dependency-version: 2.0.1148
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: actions-deps
- dependency-name: astral-sh/setup-uv
  dependency-version: 10.3.2
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: actions-deps
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Bumps the actions-deps group with 4 updates: [ptr727/ProjectTemplate/.github/workflows/merge-bot-task.yml](https://github.com/ptr727/projecttemplate), [ptr727/ProjectTemplate/.github/workflows/publish-plan-task.yml](https://github.com/ptr727/projecttemplate), [ptr727/ProjectTemplate/.github/workflows/build-release-task.yml](https://github.com/ptr727/projecttemplate) and [ptr727/ProjectTemplate/.github/workflows/publish-docker-readme-task.yml](https://github.com/ptr727/projecttemplate).


Updates `ptr727/ProjectTemplate/.github/workflows/merge-bot-task.yml` from 2.0.1148 to 2.0.1166
- [Release notes](https://github.com/ptr727/projecttemplate/releases)
- [Changelog](https://github.com/ptr727/ProjectTemplate/blob/main/HISTORY.md)
- [Commits](ptr727/ProjectTemplate@f610e42...63cf1c9)

Updates `ptr727/ProjectTemplate/.github/workflows/publish-plan-task.yml` from 2.0.1148 to 2.0.1166
- [Release notes](https://github.com/ptr727/projecttemplate/releases)
- [Changelog](https://github.com/ptr727/ProjectTemplate/blob/main/HISTORY.md)
- [Commits](ptr727/ProjectTemplate@f610e42...63cf1c9)

Updates `ptr727/ProjectTemplate/.github/workflows/build-release-task.yml` from 2.0.1148 to 2.0.1166
- [Release notes](https://github.com/ptr727/projecttemplate/releases)
- [Changelog](https://github.com/ptr727/ProjectTemplate/blob/main/HISTORY.md)
- [Commits](ptr727/ProjectTemplate@f610e42...63cf1c9)

Updates `ptr727/ProjectTemplate/.github/workflows/publish-docker-readme-task.yml` from 2.0.1148 to 2.0.1166
- [Release notes](https://github.com/ptr727/projecttemplate/releases)
- [Changelog](https://github.com/ptr727/ProjectTemplate/blob/main/HISTORY.md)
- [Commits](ptr727/ProjectTemplate@f610e42...63cf1c9)

---
updated-dependencies:
- dependency-name: ptr727/ProjectTemplate/.github/workflows/merge-bot-task.yml
  dependency-version: 2.0.1166
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: actions-deps
- dependency-name: ptr727/ProjectTemplate/.github/workflows/publish-plan-task.yml
  dependency-version: 2.0.1166
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: actions-deps
- dependency-name: ptr727/ProjectTemplate/.github/workflows/build-release-task.yml
  dependency-version: 2.0.1166
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: actions-deps
- dependency-name: ptr727/ProjectTemplate/.github/workflows/publish-docker-readme-task.yml
  dependency-version: 2.0.1166
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: actions-deps
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Bumps ptr727.LanguageTags from 1.5.185 to 1.5.188
Bumps ptr727.Utilities from 4.1.68 to 4.1.86

---
updated-dependencies:
- dependency-name: ptr727.LanguageTags
  dependency-version: 1.5.188
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: nuget-deps
- dependency-name: ptr727.Utilities
  dependency-version: 4.1.86
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: nuget-deps
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Bumps the actions-deps group with 5 updates:

| Package | From | To |
| --- | --- | --- |
| [ptr727/ProjectTemplate/.github/workflows/merge-bot-task.yml](https://github.com/ptr727/projecttemplate) | `2.0.1166` | `2.0.1192` |
| [ptr727/ProjectTemplate/.github/workflows/publish-plan-task.yml](https://github.com/ptr727/projecttemplate) | `2.0.1166` | `2.0.1192` |
| [ptr727/ProjectTemplate/.github/workflows/build-release-task.yml](https://github.com/ptr727/projecttemplate) | `2.0.1166` | `2.0.1192` |
| [ptr727/ProjectTemplate/.github/workflows/publish-docker-readme-task.yml](https://github.com/ptr727/projecttemplate) | `2.0.1166` | `2.0.1192` |
| [DavidAnson/markdownlint-cli2-action](https://github.com/davidanson/markdownlint-cli2-action) | `24.2.0` | `25.0.0` |


Updates `ptr727/ProjectTemplate/.github/workflows/merge-bot-task.yml` from 2.0.1166 to 2.0.1192
- [Release notes](https://github.com/ptr727/projecttemplate/releases)
- [Changelog](https://github.com/ptr727/ProjectTemplate/blob/main/HISTORY.md)
- [Commits](ptr727/ProjectTemplate@63cf1c9...d7041d8)

Updates `ptr727/ProjectTemplate/.github/workflows/publish-plan-task.yml` from 2.0.1166 to 2.0.1192
- [Release notes](https://github.com/ptr727/projecttemplate/releases)
- [Changelog](https://github.com/ptr727/ProjectTemplate/blob/main/HISTORY.md)
- [Commits](ptr727/ProjectTemplate@63cf1c9...d7041d8)

Updates `ptr727/ProjectTemplate/.github/workflows/build-release-task.yml` from 2.0.1166 to 2.0.1192
- [Release notes](https://github.com/ptr727/projecttemplate/releases)
- [Changelog](https://github.com/ptr727/ProjectTemplate/blob/main/HISTORY.md)
- [Commits](ptr727/ProjectTemplate@63cf1c9...d7041d8)

Updates `ptr727/ProjectTemplate/.github/workflows/publish-docker-readme-task.yml` from 2.0.1166 to 2.0.1192
- [Release notes](https://github.com/ptr727/projecttemplate/releases)
- [Changelog](https://github.com/ptr727/ProjectTemplate/blob/main/HISTORY.md)
- [Commits](ptr727/ProjectTemplate@63cf1c9...d7041d8)

Updates `DavidAnson/markdownlint-cli2-action` from 24.2.0 to 25.0.0
- [Release notes](https://github.com/davidanson/markdownlint-cli2-action/releases)
- [Commits](DavidAnson/markdownlint-cli2-action@21c1be1...696eb3f)

---
updated-dependencies:
- dependency-name: ptr727/ProjectTemplate/.github/workflows/merge-bot-task.yml
  dependency-version: 2.0.1192
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: actions-deps
- dependency-name: ptr727/ProjectTemplate/.github/workflows/publish-plan-task.yml
  dependency-version: 2.0.1192
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: actions-deps
- dependency-name: ptr727/ProjectTemplate/.github/workflows/build-release-task.yml
  dependency-version: 2.0.1192
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: actions-deps
- dependency-name: ptr727/ProjectTemplate/.github/workflows/publish-docker-readme-task.yml
  dependency-version: 2.0.1192
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: actions-deps
- dependency-name: DavidAnson/markdownlint-cli2-action
  dependency-version: 25.0.0
  dependency-type: direct:production
  update-type: version-update:semver-major
  dependency-group: actions-deps
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Bumps the actions-deps group with 4 updates: [ptr727/ProjectTemplate/.github/workflows/merge-bot-task.yml](https://github.com/ptr727/projecttemplate), [ptr727/ProjectTemplate/.github/workflows/publish-plan-task.yml](https://github.com/ptr727/projecttemplate), [ptr727/ProjectTemplate/.github/workflows/build-release-task.yml](https://github.com/ptr727/projecttemplate) and [ptr727/ProjectTemplate/.github/workflows/publish-docker-readme-task.yml](https://github.com/ptr727/projecttemplate).


Updates `ptr727/ProjectTemplate/.github/workflows/merge-bot-task.yml` from 2.0.1192 to 2.0.1198
- [Release notes](https://github.com/ptr727/projecttemplate/releases)
- [Changelog](https://github.com/ptr727/ProjectTemplate/blob/main/HISTORY.md)
- [Commits](ptr727/ProjectTemplate@d7041d8...ab9d050)

Updates `ptr727/ProjectTemplate/.github/workflows/publish-plan-task.yml` from 2.0.1192 to 2.0.1198
- [Release notes](https://github.com/ptr727/projecttemplate/releases)
- [Changelog](https://github.com/ptr727/ProjectTemplate/blob/main/HISTORY.md)
- [Commits](ptr727/ProjectTemplate@d7041d8...ab9d050)

Updates `ptr727/ProjectTemplate/.github/workflows/build-release-task.yml` from 2.0.1192 to 2.0.1198
- [Release notes](https://github.com/ptr727/projecttemplate/releases)
- [Changelog](https://github.com/ptr727/ProjectTemplate/blob/main/HISTORY.md)
- [Commits](ptr727/ProjectTemplate@d7041d8...ab9d050)

Updates `ptr727/ProjectTemplate/.github/workflows/publish-docker-readme-task.yml` from 2.0.1192 to 2.0.1198
- [Release notes](https://github.com/ptr727/projecttemplate/releases)
- [Changelog](https://github.com/ptr727/ProjectTemplate/blob/main/HISTORY.md)
- [Commits](ptr727/ProjectTemplate@d7041d8...ab9d050)

---
updated-dependencies:
- dependency-name: ptr727/ProjectTemplate/.github/workflows/merge-bot-task.yml
  dependency-version: 2.0.1198
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: actions-deps
- dependency-name: ptr727/ProjectTemplate/.github/workflows/publish-plan-task.yml
  dependency-version: 2.0.1198
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: actions-deps
- dependency-name: ptr727/ProjectTemplate/.github/workflows/build-release-task.yml
  dependency-version: 2.0.1198
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: actions-deps
- dependency-name: ptr727/ProjectTemplate/.github/workflows/publish-docker-readme-task.yml
  dependency-version: 2.0.1198
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: actions-deps
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
* Fix Verify False Positive for Video Non-Monotonic DTS

Verify decodes into the ffmpeg null muxer, which passes frames through
with no timestamp fixup. Its encoder used the default 1/framerate time
base, so healthy video with a cadence denser than its nominal rate
rounded two frames onto one tick and reported a non-monotonic DTS.
Encoding in the demuxer time base keeps decoded timestamps at native
precision, so only a real repeat is reported.

A DTS failure the demux analysis cannot see now stops after the remux
tier, since a re-encode passed verify only by dropping frames.

Fixes #939

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>

* Scope the Verify Time Base to Video and Gate It on FFmpeg 6.1

The audio encoder default is already 1/sample_rate, so forcing the
demuxer time base on audio only made it coarser. The demux keyword
needs FFmpeg 6.1, so older system builds get the equivalent -1.

Only audio and video DTS decide post-decode, since verify never decodes
subtitles. The remux-only path folds into the existing repair ladder.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>

* Reuse the SDR Video Generator for the Retimed DTS Fixtures

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>

* Cover the Video DTS Arm and Fix Two Wording Findings

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>

* State Why an Unparsed FFmpeg Version Gets the Demux Keyword

Three reviewers read the empty-version fallback as a regression for old
builds. The version line regex keeps only the dotted number, so distro
suffixes parse, and only a git build fails to parse. Pin both with a
test that runs real version line shapes through the gate.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>

* State the Unparsed Version Fallback as a Choice

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>

* Match the Locator Verify Arguments to the Demux Time Base

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>

---------

Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com>
ptr727 and others added 3 commits October 30, 2026 07:13
* Keep a File When a Signal Kills Its FfMpeg Verify

A verify run killed by a signal stays DecodeError so the repair ladder
still runs, but DeleteFailedFile() never deletes on it, since an external
kill and a crash on corrupt media exit alike. ToolErrorScope counts such
runs separately from tool errors, so a failed repair still records
VerifyFailed and RepairFailed.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>

* Note the Signal-Killed Verify Keep in the 3.23 History

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>

* Read Only Signal Exit Codes as a Signal-Killed Verify

FFmpeg exits a decode failure as its negative error code cut to a byte,
183 for invalid data, so any exit above 128 kept corrupt files. Only
signals 1 to 15 and FFmpeg's own 255 now count.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>

* State Why a 255 Verify Exit Counts as a Signal

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>

* Read Signals 1 to 31 as a Signal-Killed Verify

SIGXCPU, SIGXFSZ and the Linux SIGSYS exit 152 to 159, above the earlier
range. FFmpeg's own error codes cut to a byte start at 166, so a corrupt
file still deletes.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>

* Leave the State Unchanged After a Signal-Killed Verify

A failed or skipped repair after a signal-ended verify saved VerifyFailed,
so the next run skipped verify and DeleteFailedFile() deleted the file.
The state now stays unchanged, so the next run verifies again, and a
genuine decode error on that run still deletes.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>

* Pin the Timestamp Ladder Signal Guard and Scope the Docs to Non-Windows

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>

* Assert the Repair Ladder Ran in the Signal Verify Theory

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>

---------

Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com>
GetClosedCaptions() passes -analyze_frames, which FFprobe added in 8.0. On an older FFprobe every file reaching closed caption detection failed, and with DeleteInvalidFiles on it was deleted. FFmpeg and FFprobe ship in one package at one version, so MediaTool.MinimumVersion holds one minimum per tool family rather than one per tool, and the startup gate checks both against it. The README, HISTORY, and ARCHITECTURE notes state the family minimum.

Closes #1092

Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com>
Each conflict was a hub reusable-workflow pin that Dependabot bumped on main to 2.0.1209 while develop holds 2.0.1251. The develop side is taken. validate-task.yml is deleted, since develop runs the hub's validate task. The merged tree is identical to develop.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Copilot AI lite review requested due to automatic review settings October 30, 2026 14:48
@coderabbitai

coderabbitai Bot commented Oct 30, 2026 •

Copy link
Copy Markdown

Important

Review skipped

Too many files!

This PR contains 104 files, which is 4 over the limit of 100.

To get a review, reduce the PR to 100 files or fewer by splitting it into smaller PRs or changing its base branch.

Upgrade to a paid plan to raise the limit.

This review couldn't start because sufficient usage credits or metered capacity aren't available. Add credits or update usage-based reviews in the billing tab, then retry.

Run configuration
  • Source mode: Auto
  • Repository: Unavailable
  • Branch: Unavailable
  • File: No configuration file from this repository applied
  • Commit: Unavailable
  • Layers: Organization UI
  • Review profile: ASSERTIVE
  • Plan: Advanced
  • Run ID: c3c1bf51-a4fc-4474-af21-2e4fc79790f9
Commits

Reviewing files that changed from the base of the PR and between dfb3678 and 3f47a33.

Files selected for processing: 104
  • .editorconfig
  • .gitattributes
  • .github/copilot-instructions.md
  • .github/skills/agent-conduct/SKILL.md
  • .github/skills/audit-a-repo/SKILL.md
  • .github/skills/backlog-burndown/SKILL.md
  • .github/skills/branching-and-release-model/SKILL.md
  • .github/skills/branching-and-release-model/references/branch-protection-and-promotion.md
  • .github/skills/branching-and-release-model/references/release-publish-mechanics.md
  • .github/skills/carried-instruction-file-guard/SKILL.md
  • .github/skills/check-this-repo/SKILL.md
  • .github/skills/comment-and-doc-style/SKILL.md
  • .github/skills/comment-and-doc-style/references/carried-doc-references.md
  • .github/skills/comment-and-doc-style/references/line-endings.md
  • .github/skills/comment-and-doc-style/references/markdown-links.md
  • .github/skills/copilot-instructions-keeper/SKILL.md
  • .github/skills/dotnet-codestyle/SKILL.md
  • .github/skills/dotnet-codestyle/references/conventions.md
  • .github/skills/dotnet-codestyle/references/project-config.md
  • .github/skills/dotnet-codestyle/references/testing.md
  • .github/skills/drive-pr/SKILL.md
  • .github/skills/fleet-code-review/SKILL.md
  • .github/skills/git-commit-conventions/SKILL.md
  • .github/skills/git-commit-conventions/references/history-rewrite.md
  • .github/skills/local-strict-review/SKILL.md
  • .github/skills/merge-and-release/SKILL.md
  • .github/skills/pr-review-conduct/SKILL.md
  • .github/skills/python-codestyle/SKILL.md
  • .github/skills/python-codestyle/references/code-style.md
  • .github/skills/python-codestyle/references/profiles.md
  • .github/skills/python-codestyle/references/testing.md
  • .github/skills/repo-worktree/SKILL.md
  • .github/skills/resync-a-repo/SKILL.md
  • .github/skills/session-handoff/SKILL.md
  • .github/skills/shell-codestyle/SKILL.md
  • .github/skills/skill-lifecycle/SKILL.md
  • .github/skills/standup-a-repo/SKILL.md
  • .github/skills/unattended-handoff/SKILL.md
  • .github/skills/upstream-contribution-workflow/SKILL.md
  • .github/skills/workflow-ci-contract/SKILL.md
  • .github/skills/workflow-ci-contract/references/architecture.md
  • .github/skills/workflow-ci-contract/references/d-guarantees.md
  • .github/skills/workflow-ci-contract/references/test-methodology.md
  • .github/workflows/merge-bot-pull-request.yml
  • .github/workflows/publish-release.yml
  • .github/workflows/test-pull-request.yml
  • .github/workflows/validate-task.yml
  • .gitignore
  • .husky/pre-commit
  • .markdownlint-cli2.jsonc
  • .vscode/tasks.json
  • AGENTS.md
  • ARCHITECTURE.md
  • AUDIT.md
  • CODESTYLE.md
  • Docker/Build.sh
  • Docker/Dockerfile
  • Docker/Test.sh
  • Docker/Version.sh
  • Docker/build.sh
  • Docker/counters.sh
  • Docker/install-debug-tools.sh
  • Docker/test.sh
  • Docker/version.sh
  • GOVERNANCE.md
  • HISTORY.md
  • OPERATIONS.md
  • PlexCleaner.slnx
  • PlexCleaner/DtsInfo.cs
  • PlexCleaner/FfMpegBuilder.cs
  • PlexCleaner/FfMpegTool.cs
  • PlexCleaner/FfProbeTool.cs
  • PlexCleaner/MediaTool.cs
  • PlexCleaner/Process.cs
  • PlexCleaner/ProcessDriver.cs
  • PlexCleaner/ProcessFile.cs
  • PlexCleaner/SidecarFile.cs
  • PlexCleaner/ToolErrorScope.cs
  • PlexCleaner/Tools.cs
  • PlexCleaner/VerifyResult.cs
  • PlexCleanerTests/ArchitectureDiagramTests.cs
  • PlexCleanerTests/DeleteFailedFileTests.cs
  • PlexCleanerTests/DtsInfoTests.cs
  • PlexCleanerTests/FfMpegVerifyCommandTests.cs
  • PlexCleanerTests/PlexCleanerFixture.cs
  • PlexCleanerTests/ToolErrorScopeTests.cs
  • PlexCleanerTests/VerifyToolErrorTests.cs
  • README.md
  • RegressionTests/README.md
  • RegressionTests/RegressionTest.sh
  • RegressionTests/catalog_corpus.py
  • RegressionTests/corpus_common.py
  • RegressionTests/locate_issue.py
  • RegressionTests/pyproject.toml
  • RegressionTests/reduce_corpus.py
  • RegressionTests/regression-test.sh
  • RegressionTests/synthetic/synthesize.py
  • RegressionTests/tests/test_audit_physical.py
  • RegressionTests/tests/test_corpus_common.py
  • RegressionTests/tests/test_locate_issue.py
  • RegressionTests/tests/test_reduce_corpus.py
  • WORKFLOW.md
  • cspell.json
  • version.json

You can disable this status message by setting the reviews.review_status to false in the CodeRabbit configuration file.

  • Autofix · Keep fixing CodeRabbit findings and required CI, and resolving merge conflicts

Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ Share

Comment @coderabbitai help to get the list of available commands.

@qodo-free-for-open-source-projects

Copy link
Copy Markdown

PR Summary by Qodo

Promote PlexCleaner 3.23 verification and deletion safety fixes

🐞 Bug fix ✨ Enhancement 🧪 Tests 📝 Documentation ⚙️ Configuration changes 🕐 40+ Minutes

Grey Divider

AI Description

• Promote fixes for false verification failures, frame-dropping repairs, and unsafe file deletion.
• Require FFmpeg 8.0 and expand media, tool-failure, and regression coverage.
• Update Docker scripts, adopt hub-hosted validation, and refresh release and governance
 documentation.
Diagram

graph TD
  R["Per-file processing"] --> V["FFmpeg verify"] --> C{"Verify result"} --> A["Packet analysis"] --> L["Repair ladder"] --> G{"Safe to delete?"} --> F["Media and sidecar"]
  C -->|clean| F
  C -->|tool error| G
  G -->|no| K["Keep unchanged"]
Loading
High-Level Assessment

The following are alternative approaches to this PR:

1. Split the promotion into smaller releases
  • ➕ Narrower reviews and simpler regression attribution.
  • ➖ Would not promote the tested develop tree intact and could separate interdependent safety fixes.
2. Keep repository-local validation
  • ➕ Retains direct control over the validation workflow.
  • ➖ Duplicates the hub task and its maintenance.

Recommendation: Promoting the intact develop tree preserves the release's tested combination of fixes, and hub-hosted validation removes an unnecessary local copy. Give particular attention to the deletion guards and changed CI triggers; they carry the greatest behavioral risk.

Files changed (96) +6130 / -2473

Enhancement (7) +614 / -32
build.shHarden Docker build script +34/-21

Harden Docker build script

• Uses fail-fast Bash, rejects unknown arguments, provides help, and quotes build arguments.

Docker/build.sh

install-debug-tools.shHarden debug-tool installation +24/-11

Harden debug-tool installation

• Adds fail-fast Bash and argument handling while retaining runtime-ID-based installation.

Docker/install-debug-tools.sh

test.shAdd non-root-capable image test script +108/-0

Add non-root-capable image test script

• Introduces the lowercase image test path, writes generated output under /tmp, and documents non-root execution.

Docker/test.sh

version.shAdd lowercase image version script +31/-0

Add lowercase image version script

• Prints OS, .NET, application, and media-tool versions with fail-fast argument handling.

Docker/version.sh

locate_issue.pyUpdate issue locator interface +2/-0

Update issue locator interface

• Makes a small command-interface adjustment to the issue locator.

RegressionTests/locate_issue.py

reduce_corpus.pyUpdate corpus reducer interface +5/-0

Update corpus reducer interface

• Makes a small command-interface adjustment to the corpus reducer.

RegressionTests/reduce_corpus.py

regression-test.shAdd lowercase regression harness +410/-0

Add lowercase regression harness

• Provides the renamed ZFS-clone and Docker-image regression harness with help and argument checks.

RegressionTests/regression-test.sh

Bug fix (11) +223 / -40
DtsInfo.csIdentify post-decode-only DTS failures +14/-0

Identify post-decode-only DTS failures

• Adds an audio/video packet-DTS check to distinguish demux-visible failures from those appearing after decode.

PlexCleaner/DtsInfo.cs

FfMpegBuilder.csExpose video encoder time-base option +5/-0

Expose video encoder time-base option

• Adds an FFmpeg builder option for the video encoder time base.

PlexCleaner/FfMpegBuilder.cs

FfMpegTool.csCorrect FFmpeg verification classification +23/-6

Correct FFmpeg verification classification

• Verifies video using the demuxer time base, returns ToolError when FFmpeg does not run, and records signal-like exits.

PlexCleaner/FfMpegTool.cs

FfProbeTool.csRecord FFprobe execution failures +2/-0

Record FFprobe execution failures

• Records cancelled or failed packet extraction in the file's tool-error scope.

PlexCleaner/FfProbeTool.cs

MediaTool.csGate tool versions and record failures +16/-0

Gate tool versions and record failures

• Defines an FFmpeg-family minimum of 8.0 and records failed, cancelled, or throwing tool executions.

PlexCleaner/MediaTool.cs

Process.csKeep skipped files out of deletion +5/-2

Keep skipped files out of deletion

• Tracks read-only media and sidecar skips so failed processing does not delete files that were never processed.

PlexCleaner/Process.cs

ProcessDriver.csScope tool errors to each file +1/-0

Scope tool errors to each file

• Starts a separate tool-error scope around each file-processing task.

PlexCleaner/ProcessDriver.cs

ProcessFile.csMake verification, repair, and deletion fail safely +91/-31

Make verification, repair, and deletion fail safely

• Preserves files and retryable state after tool errors, signals, or cancellation. Stops post-decode-only timestamp repair after remux and deletes sidecars only with their MKV files.

PlexCleaner/ProcessFile.cs

ToolErrorScope.csAdd per-file tool-failure accounting +46/-0

Add per-file tool-failure accounting

• Uses AsyncLocal to count tool executions that did not run and signal-ended FFmpeg verifications separately.

PlexCleaner/ToolErrorScope.cs

Tools.csReject unsupported installed tools at startup +17/-1

Reject unsupported installed tools at startup

• Checks discovered tool versions against their family minimum before processing media.

PlexCleaner/Tools.cs

VerifyResult.csDistinguish unchecked files from decode corruption +3/-0

Distinguish unchecked files from decode corruption

• Adds ToolError for verification that could not execute.

PlexCleaner/VerifyResult.cs

Refactor (2) +17 / -9
catalog_corpus.pyAdjust corpus catalog utility +1/-1

Adjust corpus catalog utility

• Makes a small consistency adjustment to the catalog script.

RegressionTests/catalog_corpus.py

corpus_common.pyNarrow corpus helper error handling +16/-8

Narrow corpus helper error handling

• Makes subprocess return-code handling explicit and replaces broad exception catches around metadata and run discovery.

RegressionTests/corpus_common.py

Tests (12) +1187 / -10
ArchitectureDiagramTests.csCheck process diagrams against code +152/-0

Check process diagrams against code

• Verifies documented pipeline order and method names against the implementation.

PlexCleanerTests/ArchitectureDiagramTests.cs

DeleteFailedFileTests.csTest deletion safeguards +95/-0

Test deletion safeguards

• Covers read-only skips and ensures deleting non-MKV media retains a sibling MKV sidecar.

PlexCleanerTests/DeleteFailedFileTests.cs

DtsInfoTests.csTest post-decode DTS classification +48/-0

Test post-decode DTS classification

• Covers missing analysis, absent video DTS, subtitle-only breaks, and demux-visible audio or video breaks.

PlexCleanerTests/DtsInfoTests.cs

FfMpegVerifyCommandTests.csTest verify arguments and version floor +82/-0

Test verify arguments and version floor

• Checks the demuxer video time-base argument, error flags, and FFmpeg/FFprobe 8.0 minimum.

PlexCleanerTests/FfMpegVerifyCommandTests.cs

PlexCleanerFixture.csExpose repository path to tests +6/-4

Expose repository path to tests

• Adds a repository-root path helper for architecture documentation tests.

PlexCleanerTests/PlexCleanerFixture.cs

ToolErrorScopeTests.csTest isolated tool-error scopes +102/-0

Test isolated tool-error scopes

• Covers per-file resets, concurrent scopes, thread-pool propagation, and separate signal accounting.

PlexCleanerTests/ToolErrorScopeTests.cs

VerifyToolErrorTests.csExercise tool and signal failure safety +352/-0

Exercise tool and signal failure safety

• Uses fake tools to test launch failures, signal exits, verification state, repair outcomes, and deletion protection.

PlexCleanerTests/VerifyToolErrorTests.cs

synthesize.pyGenerate targeted DTS regression media +98/-6

Generate targeted DTS regression media

• Adds healthy VFR, repeated-timestamp, and mixed audio/post-decode video fixtures.

RegressionTests/synthetic/synthesize.py

test_audit_physical.pyTest physical corpus audit helpers +22/-0

Test physical corpus audit helpers

• Adds unit coverage for physical corpus audit behavior.

RegressionTests/tests/test_audit_physical.py

test_corpus_common.pyTest shared corpus parsing helpers +151/-0

Test shared corpus parsing helpers

• Covers error normalization, log parsing, classification, run selection, and clip construction.

RegressionTests/tests/test_corpus_common.py

test_locate_issue.pyTest issue locator +35/-0

Test issue locator

• Adds unit coverage for issue-location behavior.

RegressionTests/tests/test_locate_issue.py

test_reduce_corpus.pyTest corpus reduction helpers +44/-0

Test corpus reduction helpers

• Adds unit coverage for corpus reduction behavior.

RegressionTests/tests/test_reduce_corpus.py

Documentation (54) +3963 / -2284
.editorconfigClarify line-ending policy +3/-3

Clarify line-ending policy

• Clarifies LF defaults and CRLF exceptions for checked-out files.

.editorconfig

.gitattributesClarify Git text normalization +4/-2

Clarify Git text normalization

• Explains normalization, checkout endings, and explicit pins for text-shaped binary data.

.gitattributes

copilot-instructions.mdRefresh Copilot review guidance +9/-9

Refresh Copilot review guidance

• Resynchronizes carried Copilot instructions with current fleet guidance.

.github/copilot-instructions.md

SKILL.mdRefresh agent conduct rules +54/-48

Refresh agent conduct rules

• Updates carried agent-conduct and governance guidance.

.github/skills/agent-conduct/SKILL.md

SKILL.mdRefresh repository audit procedure +16/-14

Refresh repository audit procedure

• Resynchronizes the carried repository-audit skill.

.github/skills/audit-a-repo/SKILL.md

SKILL.mdRevise backlog orchestration guidance +319/-257

Revise backlog orchestration guidance

• Updates worker grouping, handoff, review, and orchestration instructions.

.github/skills/backlog-burndown/SKILL.md

SKILL.mdRefresh branching and release rules +43/-39

Refresh branching and release rules

• Aligns the carried skill with current promotion and release practices.

.github/skills/branching-and-release-model/SKILL.md

branch-protection-and-promotion.mdRefresh promotion reference +32/-32

Refresh promotion reference

• Updates carried branch-protection and promotion guidance.

.github/skills/branching-and-release-model/references/branch-protection-and-promotion.md

release-publish-mechanics.mdRefresh publishing reference +67/-62

Refresh publishing reference

• Updates the release mechanics reference for current publishing rules.

.github/skills/branching-and-release-model/references/release-publish-mechanics.md

SKILL.mdRefresh carried-file guard guidance +8/-8

Refresh carried-file guard guidance

• Resynchronizes instructions for preventing drift in hub-carried files.

.github/skills/carried-instruction-file-guard/SKILL.md

SKILL.mdRefresh repository-check procedure +36/-21

Refresh repository-check procedure

• Updates the carried procedure for checking fleet requirements.

.github/skills/check-this-repo/SKILL.md

SKILL.mdExpand documentation style guidance +144/-113

Expand documentation style guidance

• Refreshes carried rules for comments, prose, links, and line endings.

.github/skills/comment-and-doc-style/SKILL.md

carried-doc-references.mdRefresh carried-document references +29/-29

Refresh carried-document references

• Updates guidance for references to hub-carried documentation.

.github/skills/comment-and-doc-style/references/carried-doc-references.md

line-endings.mdRefresh line-ending reference +63/-54

Refresh line-ending reference

• Clarifies normalization, checkout behavior, and line-ending exceptions.

.github/skills/comment-and-doc-style/references/line-endings.md

markdown-links.mdRefresh Markdown link guidance +14/-12

Refresh Markdown link guidance

• Resynchronizes carried Markdown link conventions.

.github/skills/comment-and-doc-style/references/markdown-links.md

SKILL.mdRefresh Copilot instruction maintenance +19/-18

Refresh Copilot instruction maintenance

• Updates the skill governing provider-specific Copilot instructions.

.github/skills/copilot-instructions-keeper/SKILL.md

SKILL.mdRefresh .NET coding guidance +24/-23

Refresh .NET coding guidance

• Resynchronizes carried .NET style and verification instructions.

.github/skills/dotnet-codestyle/SKILL.md

conventions.mdRefresh .NET conventions reference +7/-7

Refresh .NET conventions reference

• Updates supporting .NET conventions.

.github/skills/dotnet-codestyle/references/conventions.md

project-config.mdRefresh .NET project configuration reference +9/-2

Refresh .NET project configuration reference

• Updates carried project and analyzer configuration guidance.

.github/skills/dotnet-codestyle/references/project-config.md

testing.mdRefresh .NET testing reference +5/-5

Refresh .NET testing reference

• Resynchronizes test-project and test-runner guidance.

.github/skills/dotnet-codestyle/references/testing.md

SKILL.mdRefresh PR-driving procedure +148/-106

Refresh PR-driving procedure

• Clarifies how feature and promotion PRs proceed through review and authorized merges.

.github/skills/drive-pr/SKILL.md

SKILL.mdExpand fleet code-review guidance +52/-7

Expand fleet code-review guidance

• Adds design and trust-boundary criteria while limiting review execution to requested commands.

.github/skills/fleet-code-review/SKILL.md

SKILL.mdRefresh Git commit conventions +22/-46

Refresh Git commit conventions

• Resynchronizes carried staging, signing, and commit guidance.

.github/skills/git-commit-conventions/SKILL.md

history-rewrite.mdRefresh history-rewrite reference +5/-9

Refresh history-rewrite reference

• Updates guidance for controlled history rewrites.

.github/skills/git-commit-conventions/references/history-rewrite.md

SKILL.mdRefresh local review procedure +88/-48

Refresh local review procedure

• Updates strict-review instructions and evidence expectations.

.github/skills/local-strict-review/SKILL.md

SKILL.mdTighten promotion merge procedure +119/-137

Tighten promotion merge procedure

• Requires checking the live promotion head and merging with a matching-head guard.

.github/skills/merge-and-release/SKILL.md

SKILL.mdRevise PR review coverage rules +307/-160

Revise PR review coverage rules

• Expands head-SHA and file-coverage criteria, including local coverage for non-default branches.

.github/skills/pr-review-conduct/SKILL.md

SKILL.mdExpand Python profile rules +167/-61

Expand Python profile rules

• Defines per-directory profiles, test obligations, and script argument guidance.

.github/skills/python-codestyle/SKILL.md

code-style.mdRefresh Python code-style reference +33/-19

Refresh Python code-style reference

• Updates supporting Python code-style guidance.

.github/skills/python-codestyle/references/code-style.md

profiles.mdExpand Python profile reference +82/-47

Expand Python profile reference

• Clarifies directory-level profiles, dependencies, verification, and layout.

.github/skills/python-codestyle/references/profiles.md

testing.mdRefresh Python testing reference +3/-2

Refresh Python testing reference

• Updates tests and coverage guidance for Python directories.

.github/skills/python-codestyle/references/testing.md

SKILL.mdRefresh worktree isolation procedure +100/-66

Refresh worktree isolation procedure

• Updates carried guidance for task-specific worktrees and checkout safety.

.github/skills/repo-worktree/SKILL.md

SKILL.mdRefresh fleet resynchronization procedure +32/-24

Refresh fleet resynchronization procedure

• Aligns the resync skill with current hub audit steps.

.github/skills/resync-a-repo/SKILL.md

SKILL.mdMove handoffs to standing track issues +257/-196

Move handoffs to standing track issues

• Replaces successor issues with one open issue per track, archiving earlier rounds as comments.

.github/skills/session-handoff/SKILL.md

SKILL.mdExpand shell script safety guidance +60/-26

Expand shell script safety guidance

• Adds script argument and command-shim rules to shell verification guidance.

.github/skills/shell-codestyle/SKILL.md

SKILL.mdRefresh skill lifecycle guidance +41/-23

Refresh skill lifecycle guidance

• Updates instructions for maintaining and synchronizing fleet skills.

.github/skills/skill-lifecycle/SKILL.md

SKILL.mdRefresh repository standup procedure +22/-18

Refresh repository standup procedure

• Resynchronizes guidance for establishing the fleet instruction baseline.

.github/skills/standup-a-repo/SKILL.md

SKILL.mdRevise unattended handoff orchestration +255/-103

Revise unattended handoff orchestration

• Updates picker and worker procedures, promotion grants, and failed-dispatch handling.

.github/skills/unattended-handoff/SKILL.md

SKILL.mdRefresh upstream contribution procedure +66/-31

Refresh upstream contribution procedure

• Updates instructions for proposing fixes to the authoritative hub.

.github/skills/upstream-contribution-workflow/SKILL.md

SKILL.mdRefresh CI contract skill +6/-6

Refresh CI contract skill

• Aligns carried workflow guidance with the shared validation contract.

.github/skills/workflow-ci-contract/SKILL.md

architecture.mdRefresh workflow architecture reference +15/-15

Refresh workflow architecture reference

• Updates the reference for reusable workflow structure.

.github/skills/workflow-ci-contract/references/architecture.md

d-guarantees.mdRefresh CI guarantees reference +28/-27

Refresh CI guarantees reference

• Updates carried workflow guarantees.

.github/skills/workflow-ci-contract/references/d-guarantees.md

test-methodology.mdRefresh workflow test methodology +15/-14

Refresh workflow test methodology

• Updates how the CI contract is checked.

.github/skills/workflow-ci-contract/references/test-methodology.md

.markdownlint-cli2.jsoncClarify Markdown lint exclusions +9/-3

Clarify Markdown lint exclusions

• Explains why the root glob and local subtree ignore files are required.

.markdownlint-cli2.jsonc

AGENTS.mdRefresh agent bootstrap and handoff rules +42/-21

Refresh agent bootstrap and handoff rules

• Resynchronizes fleet instructions and changes session handoffs to a standing issue per track.

AGENTS.md

ARCHITECTURE.mdDocument process-command control flow +557/-20

Document process-command control flow

• Adds Mermaid diagrams for command dispatch, per-file processing, state refresh, repair, and suspect branches. Also documents tool-version gating.

ARCHITECTURE.md

AUDIT.mdRefresh audit guidance +1/-1

Refresh audit guidance

• Resynchronizes repository audit instructions with the hub.

AUDIT.md

CODESTYLE.mdExpand fleet coding and script rules +69/-14

Expand fleet coding and script rules

• Adds operational failure, structured-format parsing, command-line argument, and file-naming rules. Updates Python and shell verification guidance.

CODESTYLE.md

GOVERNANCE.mdResynchronize fleet governance +153/-118

Resynchronize fleet governance

• Refreshes repository safety, handoff, review, design, and release rules; much of the change clarifies existing prose.

GOVERNANCE.md

HISTORY.mdRecord 3.23 release behavior +47/-0

Record 3.23 release behavior

• Documents timestamp verification and repair fixes, the FFmpeg minimum, deletion safeguards, and renamed Docker scripts.

HISTORY.md

OPERATIONS.mdUpdate build and verification runbooks +22/-4

Update build and verification runbooks

• Documents hub validation, Python and shell checks, non-root image testing, and testing unreleased builds inside the image.

OPERATIONS.md

README.mdPublish 3.23 and non-root usage guidance +55/-18

Publish 3.23 and non-root usage guidance

• Summarizes the release, states the FFmpeg minimum, and updates Docker examples with configurable non-root IDs and permissions.

README.md

README.mdDocument renamed harness and DTS fixtures +20/-9

Document renamed harness and DTS fixtures

• Updates harness commands, Python test instructions, and synthetic timestamp examples.

RegressionTests/README.md

WORKFLOW.mdDocument PR CI and hub validation +160/-127

Document PR CI and hub validation

• Replaces push-CI and local-validation descriptions with PR-triggered validation, changed-path smoke builds, and pinned hub tasks.

WORKFLOW.md

Other (10) +126 / -98
merge-bot-pull-request.ymlUpdate merge-bot trigger and hub pin +5/-6

Update merge-bot trigger and hub pin

• Adds closed PR events and updates the SHA-pinned hub merge-bot task to 2.0.1251.

.github/workflows/merge-bot-pull-request.yml

publish-release.ymlAdopt hub validation for publishing +15/-18

Adopt hub validation for publishing

• Replaces local validation with the pinned hub task, declares the Python directory, and updates release-task pins and concurrency.

.github/workflows/publish-release.yml

test-pull-request.ymlSwitch CI to PR-triggered hub validation +56/-32

Switch CI to PR-triggered hub validation

• Validates PRs into main or develop through the hub task. Changed paths gate smoke builds; the required aggregate status still checks validation and path detection.

.github/workflows/test-pull-request.yml

pre-commitAnnotate Husky bootstrap sourcing +1/-0

Annotate Husky bootstrap sourcing

• Adds a ShellCheck source annotation for the generated Husky helper.

.husky/pre-commit

tasks.jsonUpdate local testing tasks +27/-13

Update local testing tasks

• Runs the Docker test as a non-root user, updates tool invocations, and adds a Python unittest coverage task.

.vscode/tasks.json

DockerfileUse renamed Docker scripts +10/-9

Use renamed Docker scripts

• References lowercase script paths in builder and runtime stages and includes architecture documentation for builder tests.

Docker/Dockerfile

PlexCleaner.slnxAlign solution entries with workflow and script moves +5/-5

Align solution entries with workflow and script moves

• Removes the local validator entry and updates Docker script paths.

PlexCleaner.slnx

pyproject.tomlAlign Python lint-only configuration +3/-10

Align Python lint-only configuration

• Sets the mypy file target and updates comments for the hub validator and current local commands.

RegressionTests/pyproject.toml

cspell.jsonRefresh spelling configuration +3/-4

Refresh spelling configuration

• Adjusts repository spelling configuration for updated documentation.

cspell.json

version.jsonAdvance release line to 3.23 +1/-1

Advance release line to 3.23

• Raises the Nerdbank.GitVersioning major.minor release line from 3.22 to 3.23.

version.json

@qodo-free-for-open-source-projects

qodo-free-for-open-source-projects Bot commented Oct 30, 2026 •

Copy link
Copy Markdown

Code Review by Qodo

🐞 Bugs (0) 📘 Rule violations (0) 📎 Requirement gaps (1) 🎨 UX issues (0) 🔗 Cross-repo conflicts (0) 📜 Skill insights (0)

Grey Divider


Action required

1. Windows exit-255 failures skip cleanup 📎 Requirement gap ≡ Correctness
Description
The signal-exit predicate treats exit code 255 as a signal even on Windows because or 255 is
outside the platform guard. A Windows FFmpeg failure with that code increments SignalCount, so
DeleteFailedFile() refuses to delete the media and sidecar instead of applying normal failure
cleanup.
Code

PlexCleaner/FfMpegTool.cs[R170-171]

+        internal static bool IsSignalExit(int exitCode) =>
+            !OperatingSystem.IsWindows() && exitCode is (>= 129 and <= 159) or 255;
Evidence
The changed predicate applies the platform check only to the 129–159 range while or 255 remains
unconditional. The changed verification code records SignalCount when the predicate matches, and
the changed deletion guard refuses deletion whenever SignalCount is positive.

Define and apply signal-terminated FfMpeg verify behavior
PlexCleaner/FfMpegTool.cs[167-171]
PlexCleaner/FfMpegTool.cs[196-199]
PlexCleaner/ProcessFile.cs[1794-1799]

Agent prompt
The issue below was found during a code review. Follow the provided context and guidance below and implement a solution

## Issue description
`IsSignalExit` classifies exit code 255 as a signal on Windows because the `or 255` pattern is outside the `!OperatingSystem.IsWindows()` guard. This records a signal for ordinary Windows FFmpeg failures and prevents `DeleteFailedFile()` from deleting files that are eligible for cleanup.
## Fix Focus Areas
- PlexCleaner/FfMpegTool.cs[170-171]
- PlexCleaner/FfMpegTool.cs[196-199]
- PlexCleaner/ProcessFile.cs[1794-1799]
## Recommended Fix
Group the complete exit-code pattern under the non-Windows condition so exit codes 129–159 and 255 are recognized as signal terminations only on non-Windows platforms. Add a Windows-specific test confirming exit code 255 is not classified as a signal and does not suppress normal failure cleanup.

ⓘ Copy this prompt and use it to remediate the issue with your preferred AI generation tools



Remediation recommended

2. Playable files with a post-decode timestamp break get deleted ✓ Resolved
Description
RepairTimestampsAndSetState now calls `RepairAndReVerify(residualPostDecode ||
DtsInfo.IsPostDecodeOnly(dtsInfo))`, which returns false after the remux tier instead of trying the
re-encode. The failure then sets VerifyFailed/RepairFailed, VerifyAndRepair returns false, and
with DeleteInvalidFiles on, Process.ProcessFile passes the file to DeleteFailedFile. No tool
error, signal or cancel guard applies to this case, so a file that main re-encoded and kept is now
deleted, along with its sidecar.
Code

PlexCleaner/ProcessFile.cs[R2273-2276]

+        if (
+            TryLosslessTimestampRepair(dtsInfo, out bool residualPostDecode)
+            || RepairAndReVerify(residualPostDecode || DtsInfo.IsPostDecodeOnly(dtsInfo))
+        )
Evidence
The new remuxOnly branch in RepairAndReVerify (ProcessFile.cs 2114-2122) returns false for a
post-decode-only DTS. In RepairTimestampsAndSetState, the only early exits on failure are cancel,
a tool-count change, or a signal (2286-2294). Otherwise it marks VerifyFailed|RepairFailed and
returns false. Process.cs line 313 turns that into result = false, and lines 384-386 then call
DeleteFailedFile(). That method's guards (1794-1799) cover only tool errors, signals and cancel.
HISTORY.md says these files are now marked RepairFailed, but it does not say that
DeleteInvalidFiles then deletes them. Before this PR they were re-encoded and kept.

PlexCleaner/ProcessFile.cs[2266-2304]
PlexCleaner/ProcessFile.cs[2114-2122]
PlexCleaner/ProcessFile.cs[1791-1823]
PlexCleaner/Process.cs[310-320]
PlexCleaner/Process.cs[380-388]

Agent prompt
The issue below was found during a code review. Follow the provided context and guidance below and implement a solution

## Issue description
When the timestamp repair ladder stops after remux because the DTS failure is post-decode only, the file is marked VerifyFailed/RepairFailed and returns false. With `DeleteInvalidFiles` on, `Process.ProcessFile` then deletes the file and its sidecar. Before this change the file was re-encoded and kept, so a file with a benign post-decode timestamp repeat is now deleted.
## Fix Focus Areas
- PlexCleaner/ProcessFile.cs[2266-2304]
- PlexCleaner/ProcessFile.cs[1791-1823]
- PlexCleaner/ToolErrorScope.cs[1-46]
## Recommended Fix
Record that the ladder stopped on a deliberate post-decode-only skip. For example, add a per-file flag (or a counter in ToolErrorScope's session) and set it in `RepairAndReVerify` when `remuxOnly` causes the early return. Check that flag in `DeleteFailedFile()` so the file is kept and reported, the same way the signal and tool-error cases are. Add a DeleteFailedFile test for this case and mention the behaviour in HISTORY.md.

ⓘ Copy this prompt and use it to remediate the issue with your preferred AI generation tools


Grey Divider

Tip of the day
💡 Did you know, you can route each severity your way: inline, summary, both, or drop

More tips ↗ | Customize Qodo ↗ | Qodo docs ↗

Grey Divider

Qodo Logo

Comment thread PlexCleaner/FfMpegTool.cs Resolved
Comment thread PlexCleaner/ProcessFile.cs Resolved

Copilot AI left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

🟡 Changes recommended

A critical workflow bug can block fork pull requests, and four new shell scripts are missing required why-comments before enabling strict error handling.

3 open issues
What changed in this PR

This pull request promotes the 3.23 release from develop to main, combining verification and repair-safety fixes, safer invalid-file handling, Docker and regression-tooling updates, and fleet CI governance changes.

Changes:

  • Uses demuxer time bases, adds FFmpeg 8.0 family gating, and classifies tool and signal failures safely.
  • Prevents deletion when processing, verification, or required tools did not complete successfully.
  • Adds DTS regression fixtures and .NET/Python test coverage.
  • Renames and hardens Docker scripts, adopts hub-hosted validation, and resynchronizes documentation and skills.

This pull request requires changes. Outstanding findings include one critical fork-pull-request workflow issue, moderate subprocess encoding issues, and contract/style nits in shell scripts and Markdown links.

File Description
version.json Bumps the release version to 3.23.
RegressionTests/​tests/​test_reduce_corpus.py Tests corpus-reduction helpers.
RegressionTests/​tests/​test_locate_issue.py Tests issue-location helpers and verify arguments.
RegressionTests/​tests/​test_corpus_common.py Tests parsing, classification, and clip helpers.
RegressionTests/​tests/​test_audit_physical.py Tests physical error-shape extraction.
RegressionTests/​synthetic/​synthesize.py Adds synthetic DTS and mixed-timestamp fixtures.
RegressionTests/​reduce_corpus.py Makes subprocess status handling explicit.
RegressionTests/​README.md Documents regression tests, synthetic fixtures, and current script paths.
RegressionTests/​pyproject.toml Configures mypy coverage of the directory.
RegressionTests/​locate_issue.py Aligns issue reproduction with demuxer-time-base verification.
RegressionTests/​corpus_common.py Tightens subprocess handling and exception classification.
RegressionTests/​catalog_corpus.py Uses set comprehension for catalog buckets.
PlexCleanerTests/​ToolErrorScopeTests.cs Tests scoped tool-error tracking and isolation.
PlexCleanerTests/​PlexCleanerFixture.cs Adds repository-root resolution for architecture tests.
PlexCleanerTests/​FfMpegVerifyCommandTests.cs Tests FFmpeg minimum versions and verify command construction.
PlexCleanerTests/​DtsInfoTests.cs Tests post-decode DTS classification.
PlexCleanerTests/​DeleteFailedFileTests.cs Tests deletion safety and sidecar behavior.
PlexCleanerTests/​ArchitectureDiagramTests.cs Keeps architecture diagrams aligned with processing code.
PlexCleaner/​VerifyResult.cs Adds the ToolError verification result.
PlexCleaner/​Tools.cs Enforces minimum tool versions at startup.
PlexCleaner/​ToolErrorScope.cs Tracks per-file tool failures and signal exits.
PlexCleaner/​ProcessDriver.cs Begins a tool-error scope for each processed file.
PlexCleaner/​Process.cs Prevents deletion of skipped files.
PlexCleaner/​MediaTool.cs Adds family minimum versions and records tool failures.
PlexCleaner/​FfProbeTool.cs Records asynchronous FFprobe execution failures.
PlexCleaner/​FfMpegTool.cs Updates verification time bases and signal classification.
PlexCleaner/​FfMpegBuilder.cs Adds the video encoder-time-base option.
PlexCleaner/​DtsInfo.cs Classifies failures visible only after decoding.
PlexCleaner.slnx Removes the retired workflow and updates renamed scripts.
OPERATIONS.md Documents current CI, Docker, and unreleased-build procedures.
HISTORY.md Records the 3.23 fixes and operational changes.
Docker/​Version.sh Removes the superseded script name.
Docker/​version.sh Adds the lowercase version script with argument validation.
Docker/​Test.sh Removes the superseded test script name.
Docker/​test.sh Adds the lowercase test script and non-root output handling.
Docker/​install-debug-tools.sh Adds argument validation and stricter shell execution.
Docker/​Dockerfile Uses renamed scripts and copies architecture documentation for tests.
Docker/​build.sh Adds argument validation and safer build argument quoting.
cspell.json Updates the project dictionary for new terminology.
AUDIT.md Uses the current hub audit invocation.
.vscode/​tasks.json Updates Docker, Python, and editorconfig tasks.
.markdownlint-cli2.jsonc Clarifies Markdown lint configuration comments.
.husky/​pre-commit Adds shellcheck source metadata.
.gitignore Ignores Python coverage outputs.
.github/​workflows/​validate-task.yml Retires the repository-local validation workflow.
.github/​workflows/​test-pull-request.yml Adopts hub validation and filtered smoke builds.
.github/​workflows/​publish-release.yml Pins the current hub release workflow tasks.
.github/​workflows/​merge-bot-pull-request.yml Updates merge-bot triggers and hub pinning.
.github/​skills/​workflow-ci-contract/​SKILL.md Refreshes workflow-contract guidance.
.github/​skills/​standup-a-repo/​SKILL.md Refreshes repository standup guidance.
.github/​skills/​shell-codestyle/​SKILL.md Adds shell argument and structured-format guidance.
.github/​skills/​python-codestyle/​references/​testing.md Updates Python testing and coverage guidance.
.github/​skills/​python-codestyle/​references/​code-style.md Updates Python comments, typing, and subprocess guidance.
.github/​skills/​git-commit-conventions/​references/​history-rewrite.md Clarifies history-rewrite identity rules.
.github/​skills/​fleet-code-review/​SKILL.md Updates review and design guidance.
.github/​skills/​dotnet-codestyle/​SKILL.md Refreshes .NET build and configuration guidance.
.github/​skills/​dotnet-codestyle/​references/​testing.md Updates MTP and coverage guidance.
.github/​skills/​dotnet-codestyle/​references/​project-config.md Clarifies conditional AOT configuration.
.github/​skills/​dotnet-codestyle/​references/​conventions.md Refreshes C# convention wording.
.github/​skills/​copilot-instructions-keeper/​SKILL.md Clarifies carried instruction-file handling.
.github/​skills/​comment-and-doc-style/​references/​markdown-links.md Clarifies Markdown link conventions.
.github/​skills/​comment-and-doc-style/​references/​carried-doc-references.md Clarifies carried-document reference rules.
.github/​skills/​check-this-repo/​SKILL.md Updates repository and Skills-install checks.
.github/​skills/​carried-instruction-file-guard/​SKILL.md Clarifies protection of local instruction content.
.github/​skills/​branching-and-release-model/​references/​branch-protection-and-promotion.md Refreshes promotion and branch-protection guidance.
.gitattributes Clarifies text normalization behavior.
.editorconfig Clarifies line-ending comments.

Review effort: Lite

Comment thread .github/workflows/test-pull-request.yml Resolved
Comment thread Docker/test.sh Resolved
Comment thread Docker/version.sh Resolved
ptr727 and others added 3 commits October 30, 2026 08:56
…1102)

* Bring the Renamed Shell Scripts to the Shell and Prose Style Rules

Each Docker script gets a header comment above `set -Eeuo pipefail`, and the comments in
`regression-test.sh`, `build.sh`, and `counters.sh` are rewritten one sentence per line, so the
promotion diff against main passes the prose gate.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>

* Correct Rewritten Shell Comments Against the Code They Describe

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>

* Drop the Shell File Summaries and Name the Reduced Results Directory

The shell codestyle places set -Eeuo pipefail after any header comment and requires none, while the comment rules forbid a file summary.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>

---------

Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com>
* Keep a File Whose Timestamp Repair Stops on a Post-Decode DTS

A repair ladder that stops after the remux tier on a post-decode only DTS marks the file
RepairFailed. DeleteInvalidFiles then deleted it, although 3.22 re-encoded and kept such a file.
The new PostDecodeTimestamps state flag records that stop in the sidecar, so DeleteFailedFile()
keeps the file on this run and on every later run that reads the sidecar.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>

* Test the PostDecodeTimestamps Clear and List the Keep with DeleteInvalidFiles

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>

* Assert the Fake Packets Carry a Demux-Visible Video DTS

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>

* Keep PostDecodeTimestamps When the Packet Analysis Fails

A failed FfProbe packet analysis proves nothing about the DTS, so a failed ladder clears the flag only after an analysis that ran.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>

* Clear PostDecodeTimestamps Only on a Repair or a Clean Verify

A failure path can lack the evidence that the stop was not post-decode, so no failure clears the flag.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>

* Clear PostDecodeTimestamps When a Verify Runs Clean

With the Verify option off the pass skips verification, so only a pass with it on clears the flag.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>

* Assert the Failed-Probe Ladder Reaches the Re-Encode Tier

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>

---------

Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com>
@ptr727

ptr727 commented Oct 30, 2026

Copy link
Copy Markdown
Owner Author

Answering Qodo's two comment-only findings.

  1. "Windows exit-255 failures skip cleanup": declined with evidence, as in its thread. exitCode is (>= 129 and <= 159) or 255 is a single pattern, so the !IsWindows() && guard covers 255 as well, and Windows never counts an exit as a signal.
  2. "Playable files with a post-decode timestamp break get deleted": fixed in Keep a File Whose Timestamp Repair Stops on a Post-Decode DTS #1103, now merged into this promotion. The remux-only stop marks the file PostDecodeTimestamps, and DeleteFailedFile() keeps such a file on every run.

Copilot AI left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

🟢 Approval recommended

No active review issues remain unresolved, so the change can proceed based on the completed review disposition.

No open issues 🎉

3 resolved since last review

Review effort: Lite

@ptr727

ptr727 commented Oct 30, 2026

Copy link
Copy Markdown
Owner Author

Coverage for head 3f47a33 rests on the promotion case. The head's tree equals develop's tree (5d3c399b6d3c003a3588e4bebe1db4bc41d87a57), so the merge adds no content of its own. Every change it carries had a recorded local strict pass and its own review on its feature pull request into develop, including #1102 and #1103 this round. Copilot's round on this head recommends approval with no findings.

@ptr727
ptr727 merged commit 1876563 into main Oct 30, 2026
24 checks passed
ptr727 added a commit to ptr727/ProjectTemplate that referenced this pull request Nov 2, 2026
…ates Item (#3836)

## Summary

- **Stub pins become placeholders.** Every hub `uses:` pin in
`docs/reusable-workflows.md`'s stubs now reads `@<hub-main-commit-sha> #
<release-tag>`, the shape the maintainer chose on #1472. No Dependabot
scan reads a pin quoted in a document, so a literal there only went
stale.
- **Snippets keep a literal floor pin.** Each
`catalog/snippets/workflows/` snippet is unchanged and keeps its literal
minimum known-good pin, which moves when a task's interface changes.
`spec/workflow_reuse.py` and the pin gate read them as canonical text.
- **Adoption resolves the pin.** "Pinning" now states the rule and the
two read-only `gh` commands that name the latest release and its `main`
commit. The snippets README and `STANDUP.md` section 3 point there.
"Byte for byte" no longer covers the pin lines.
- **Tests.** The tests comparing a doc stub to its snippet substitute
the placeholder through one `documented()` helper, and the merge-bot
stub is now compared too. A new test holds both pin shapes, placeholders
in the doc and literals in the snippets, judging every hub reference
including one with no tag comment.
- **PlexCleaner Stage 2 item ticked (#3813).** Checked live against
PlexCleaner `main`. ptr727/PlexCleaner#1064 merged into `develop` at
`84fd00e` and was promoted in ptr727/PlexCleaner#1098 at `1876563`. Both
validator callers pass `python-directories: RegressionTests`. The Stage
3, 4, and 5 PlexCleaner items it also bears on are filed as #3834 rather
than widened into this change.

## Verification

- Full unittest suite, `spec/validate.py`, `test_audit_helpers.py`, and
`spec/workflow_reuse.py --selftest` all exit 0.
- The prose gate, ruff, mypy, and the eol check pass in the pre-commit
hook.

Closes on promotion: #1472, #3813

🤖 Generated with [Claude Code](https://claude.com/claude-code)

---------

Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com>
@ptr727
ptr727 deleted the promote/develop-to-main-3-23 branch November 7, 2026 15:32
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

comments Permits the comment lines the pull request adds or edits, which the prose gate otherwise refuses

Projects

None yet

2 participants