patchrail 0.2.0__tar.gz → 0.3.0__tar.gz

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (511) hide show
  1. {patchrail-0.2.0 → patchrail-0.3.0}/.gitignore +2 -0
  2. patchrail-0.3.0/CHANGELOG.md +217 -0
  3. {patchrail-0.2.0 → patchrail-0.3.0}/CONTRIBUTING.md +6 -1
  4. {patchrail-0.2.0 → patchrail-0.3.0}/PKG-INFO +17 -10
  5. {patchrail-0.2.0 → patchrail-0.3.0}/README.md +16 -9
  6. patchrail-0.3.0/examples/ci-triage/appveyor-dotnet-test-xunit.log +10 -0
  7. patchrail-0.3.0/examples/ci-triage/azure-pipelines-dotnet-test.log +18 -0
  8. patchrail-0.3.0/examples/ci-triage/bitbucket-pipelines-composer-platform.log +10 -0
  9. patchrail-0.3.0/examples/ci-triage/bitbucket-pipelines-npm-eresolve.log +18 -0
  10. patchrail-0.3.0/examples/ci-triage/bitbucket-pipelines-vue-tsc-typecheck.log +14 -0
  11. patchrail-0.3.0/examples/ci-triage/buildkite-docker-build.log +8 -0
  12. patchrail-0.3.0/examples/ci-triage/buildkite-pnpm-frozen-lockfile.log +11 -0
  13. patchrail-0.3.0/examples/ci-triage/cargo-test-panic-failure.log +11 -0
  14. patchrail-0.3.0/examples/ci-triage/circleci-bundler-native-extension.log +15 -0
  15. patchrail-0.3.0/examples/ci-triage/circleci-checkout-lfs-failure.expected.json +4 -0
  16. patchrail-0.3.0/examples/ci-triage/circleci-checkout-lfs-failure.log +9 -0
  17. patchrail-0.3.0/examples/ci-triage/circleci-oom-exit-137.expected.json +4 -0
  18. patchrail-0.3.0/examples/ci-triage/circleci-oom-exit-137.log +12 -0
  19. patchrail-0.3.0/examples/ci-triage/cirrus-ci-cargo-test-panic.log +18 -0
  20. patchrail-0.3.0/examples/ci-triage/cloudbuild-golangci-lint-failure.expected.json +4 -0
  21. patchrail-0.3.0/examples/ci-triage/cloudbuild-golangci-lint-failure.log +6 -0
  22. patchrail-0.3.0/examples/ci-triage/codebuild-jest-test-failure.expected.json +4 -0
  23. patchrail-0.3.0/examples/ci-triage/codebuild-jest-test-failure.log +19 -0
  24. patchrail-0.3.0/examples/ci-triage/codefresh-trivy-critical.expected.json +4 -0
  25. patchrail-0.3.0/examples/ci-triage/codefresh-trivy-critical.log +15 -0
  26. patchrail-0.3.0/examples/ci-triage/concourse-ci-pip-resolution.log +11 -0
  27. patchrail-0.3.0/examples/ci-triage/db-migration-alembic-revision.expected.json +4 -0
  28. patchrail-0.3.0/examples/ci-triage/db-migration-alembic-revision.log +8 -0
  29. patchrail-0.3.0/examples/ci-triage/db-migration-prisma-drift.expected.json +4 -0
  30. patchrail-0.3.0/examples/ci-triage/db-migration-prisma-drift.log +8 -0
  31. {patchrail-0.2.0 → patchrail-0.3.0}/examples/ci-triage/demo-output.md +1 -2
  32. patchrail-0.3.0/examples/ci-triage/docker-compose-missing-env-file.expected.json +4 -0
  33. patchrail-0.3.0/examples/ci-triage/docs-build-docusaurus-broken-links.expected.json +4 -0
  34. patchrail-0.3.0/examples/ci-triage/docs-build-docusaurus-broken-links.log +21 -0
  35. patchrail-0.3.0/examples/ci-triage/docs-build-mkdocs-strict.expected.json +4 -0
  36. patchrail-0.3.0/examples/ci-triage/docs-build-mkdocs-strict.log +7 -0
  37. patchrail-0.3.0/examples/ci-triage/docs-build-sphinx-toctree.expected.json +4 -0
  38. patchrail-0.3.0/examples/ci-triage/docs-build-sphinx-toctree.log +18 -0
  39. patchrail-0.3.0/examples/ci-triage/dotnet-nuget-package-downgrade.expected.json +4 -0
  40. patchrail-0.3.0/examples/ci-triage/dotnet-sdk-target-framework-mismatch.expected.json +4 -0
  41. patchrail-0.3.0/examples/ci-triage/drone-ci-go-test-panic.log +12 -0
  42. patchrail-0.3.0/examples/ci-triage/elixir-mix-compile-error.expected.json +4 -0
  43. patchrail-0.3.0/examples/ci-triage/elixir-mix-compile-error.log +12 -0
  44. patchrail-0.3.0/examples/ci-triage/elixir-mix-exunit-failure.expected.json +4 -0
  45. patchrail-0.3.0/examples/ci-triage/elixir-mix-exunit-failure.log +15 -0
  46. patchrail-0.3.0/examples/ci-triage/github-actions-go-test-failure.log +8 -0
  47. patchrail-0.3.0/examples/ci-triage/github-actions-sbt-scala-compile.log +14 -0
  48. patchrail-0.3.0/examples/ci-triage/gitlab-ci-bundler-incompatible.log +16 -0
  49. patchrail-0.3.0/examples/ci-triage/gitlab-ci-gradle-kotlin-compile.log +15 -0
  50. patchrail-0.3.0/examples/ci-triage/gitlab-ci-job-timeout.expected.json +4 -0
  51. patchrail-0.3.0/examples/ci-triage/gitlab-ci-job-timeout.log +11 -0
  52. patchrail-0.3.0/examples/ci-triage/gitlab-ci-network-dns-failure.expected.json +4 -0
  53. patchrail-0.3.0/examples/ci-triage/gitlab-ci-network-dns-failure.log +12 -0
  54. patchrail-0.3.0/examples/ci-triage/go-integration-test-network-noise.log +14 -0
  55. patchrail-0.3.0/examples/ci-triage/go-timeout-race.expected.json +4 -0
  56. patchrail-0.3.0/examples/ci-triage/go-timeout.expected.json +4 -0
  57. patchrail-0.3.0/examples/ci-triage/go-undefined-function.expected.json +4 -0
  58. patchrail-0.3.0/examples/ci-triage/govulncheck-vulnerability.expected.json +4 -0
  59. patchrail-0.3.0/examples/ci-triage/govulncheck-vulnerability.log +14 -0
  60. patchrail-0.3.0/examples/ci-triage/harness-ci-tsc-noemit-ts2322.log +14 -0
  61. patchrail-0.3.0/examples/ci-triage/helm-lint-schema-and-kubeversion.expected.json +4 -0
  62. patchrail-0.3.0/examples/ci-triage/helm-lint-schema-and-kubeversion.log +6 -0
  63. patchrail-0.3.0/examples/ci-triage/helm-upgrade-template-nil-pointer.expected.json +4 -0
  64. patchrail-0.3.0/examples/ci-triage/helm-upgrade-template-nil-pointer.log +2 -0
  65. patchrail-0.3.0/examples/ci-triage/java-gradle-unsupported-major-version.expected.json +4 -0
  66. patchrail-0.3.0/examples/ci-triage/java-maven-compilation.expected.json +4 -0
  67. patchrail-0.3.0/examples/ci-triage/jenkins-maven-compilation.expected.json +4 -0
  68. patchrail-0.3.0/examples/ci-triage/jenkins-maven-compilation.log +13 -0
  69. patchrail-0.3.0/examples/ci-triage/jenkins-pytest-collection-error.log +14 -0
  70. patchrail-0.3.0/examples/ci-triage/k8s-deploy-admission-webhook.expected.json +4 -0
  71. patchrail-0.3.0/examples/ci-triage/k8s-deploy-admission-webhook.log +2 -0
  72. patchrail-0.3.0/examples/ci-triage/k8s-deploy-immutable-field.expected.json +4 -0
  73. patchrail-0.3.0/examples/ci-triage/k8s-deploy-immutable-field.log +4 -0
  74. patchrail-0.3.0/examples/ci-triage/nightwatch-element-not-found.log +10 -0
  75. patchrail-0.3.0/examples/ci-triage/node-yarn-immutable-install.expected.json +4 -0
  76. patchrail-0.3.0/examples/ci-triage/node-yarn-peer-version.expected.json +4 -0
  77. patchrail-0.3.0/examples/ci-triage/npm-ci-lockfile-mismatch-failure.expected.json +4 -0
  78. patchrail-0.3.0/examples/ci-triage/npm-ci-lockfile-mismatch-failure.log +12 -0
  79. patchrail-0.3.0/examples/ci-triage/php-phpunit-autoload-class-not-found.expected.json +4 -0
  80. patchrail-0.3.0/examples/ci-triage/playwright-e2e-timeout-failure.log +14 -0
  81. patchrail-0.3.0/examples/ci-triage/playwright-missing-browsers.expected.json +4 -0
  82. patchrail-0.3.0/examples/ci-triage/playwright-selector-timeout.expected.json +4 -0
  83. {patchrail-0.2.0 → patchrail-0.3.0}/examples/ci-triage/python-hatch-build-dependency.log +1 -1
  84. {patchrail-0.2.0 → patchrail-0.3.0}/examples/ci-triage/python-pip-no-matching-distribution.log +1 -1
  85. {patchrail-0.2.0 → patchrail-0.3.0}/examples/ci-triage/python-pip-prerelease-range.log +1 -1
  86. patchrail-0.3.0/examples/ci-triage/python-test-snapshot-diff.expected.json +4 -0
  87. patchrail-0.3.0/examples/ci-triage/python-uv-resolution-no-solution.expected.json +4 -0
  88. patchrail-0.3.0/examples/ci-triage/ruby-rspec-parallel-failure.expected.json +4 -0
  89. patchrail-0.3.0/examples/ci-triage/ruby-rspec-parallel-failure.log +10 -0
  90. patchrail-0.3.0/examples/ci-triage/ruby-ruby-version-lock.expected.json +4 -0
  91. patchrail-0.3.0/examples/ci-triage/ruby-yanked-gem.expected.json +4 -0
  92. patchrail-0.3.0/examples/ci-triage/rust-snapshot-failure.expected.json +4 -0
  93. patchrail-0.3.0/examples/ci-triage/rust-test-failure.expected.json +4 -0
  94. patchrail-0.3.0/examples/ci-triage/semaphore-ci-pytest-assertion.expected.json +4 -0
  95. patchrail-0.3.0/examples/ci-triage/semaphore-ci-pytest-assertion.log +17 -0
  96. patchrail-0.3.0/examples/ci-triage/shell-lint-shellcheck.expected.json +4 -0
  97. patchrail-0.3.0/examples/ci-triage/shell-lint-shellcheck.log +10 -0
  98. patchrail-0.3.0/examples/ci-triage/shell-lint-shfmt.expected.json +4 -0
  99. patchrail-0.3.0/examples/ci-triage/shell-lint-shfmt.log +12 -0
  100. patchrail-0.3.0/examples/ci-triage/teamcity-maven-compilation.expected.json +4 -0
  101. patchrail-0.3.0/examples/ci-triage/teamcity-maven-compilation.log +12 -0
  102. patchrail-0.3.0/examples/ci-triage/terraform-plan-undeclared-resource-failure.expected.json +4 -0
  103. patchrail-0.3.0/examples/ci-triage/terraform-plan-undeclared-resource-failure.log +15 -0
  104. patchrail-0.3.0/examples/ci-triage/travis-bundler-native-extension.expected.json +4 -0
  105. patchrail-0.3.0/examples/ci-triage/travis-bundler-native-extension.log +12 -0
  106. patchrail-0.3.0/examples/ci-triage/trivy-scan-critical-failure.expected.json +4 -0
  107. patchrail-0.3.0/examples/ci-triage/trivy-scan-critical-failure.log +16 -0
  108. patchrail-0.3.0/examples/ci-triage/tsc-noemit-typecheck-failure.log +14 -0
  109. patchrail-0.3.0/examples/ci-triage/typescript-typecheck.expected.json +4 -0
  110. patchrail-0.3.0/examples/ci-triage/typescript-vite-env-drift.expected.json +4 -0
  111. patchrail-0.3.0/examples/ci-triage/typescript-zod-schema-drift.expected.json +4 -0
  112. patchrail-0.3.0/examples/ci-triage/webdriverio-session-timeout.expected.json +4 -0
  113. patchrail-0.3.0/examples/ci-triage/webdriverio-session-timeout.log +9 -0
  114. patchrail-0.3.0/examples/ci-triage/woodpecker-ci-docker-build-copy.expected.json +4 -0
  115. patchrail-0.3.0/examples/ci-triage/woodpecker-ci-docker-build-copy.log +9 -0
  116. patchrail-0.3.0/examples/ci-triage/xcode-swift-compile-error.expected.json +4 -0
  117. patchrail-0.3.0/examples/ci-triage/xcode-swift-compile-error.log +14 -0
  118. patchrail-0.3.0/examples/ci-triage/xcode-swiftpm-resolution-failure.expected.json +4 -0
  119. patchrail-0.3.0/examples/ci-triage/xcode-swiftpm-resolution-failure.log +10 -0
  120. patchrail-0.3.0/examples/ci-triage/xcode-xctest-failure.expected.json +4 -0
  121. patchrail-0.3.0/examples/ci-triage/xcode-xctest-failure.log +13 -0
  122. patchrail-0.3.0/examples/ci-triage-action/README.md +121 -0
  123. {patchrail-0.2.0 → patchrail-0.3.0}/examples/ci-triage-action/sample/ci-report.md +1 -2
  124. {patchrail-0.2.0 → patchrail-0.3.0}/examples/ci-triage-action/sample/ci-result.json +2 -3
  125. {patchrail-0.2.0 → patchrail-0.3.0}/examples/ci-triage-action/sample/github-output.txt +3 -3
  126. {patchrail-0.2.0 → patchrail-0.3.0}/examples/ci-triage-action/sample/step-summary.md +1 -1
  127. {patchrail-0.2.0 → patchrail-0.3.0}/pyproject.toml +1 -1
  128. {patchrail-0.2.0 → patchrail-0.3.0}/src/patchrail/__init__.py +1 -1
  129. patchrail-0.3.0/src/patchrail/ci/__init__.py +7 -0
  130. {patchrail-0.2.0 → patchrail-0.3.0}/src/patchrail/ci/classify.py +361 -36
  131. {patchrail-0.2.0 → patchrail-0.3.0}/src/patchrail/cli.py +113 -36
  132. {patchrail-0.2.0 → patchrail-0.3.0}/src/patchrail/schemas/ci-result.v1.schema.json +9 -1
  133. {patchrail-0.2.0 → patchrail-0.3.0}/uv.lock +1 -1
  134. patchrail-0.2.0/CHANGELOG.md +0 -83
  135. patchrail-0.2.0/examples/ci-triage-action/README.md +0 -71
  136. patchrail-0.2.0/src/patchrail/ci/__init__.py +0 -7
  137. {patchrail-0.2.0 → patchrail-0.3.0}/.agents/skills/patchrail-ci-triage/SKILL.md +0 -0
  138. {patchrail-0.2.0 → patchrail-0.3.0}/.agents/skills/patchrail-release-captain/SKILL.md +0 -0
  139. {patchrail-0.2.0 → patchrail-0.3.0}/.agents/skills/patchrail-review-guardrails/SKILL.md +0 -0
  140. {patchrail-0.2.0 → patchrail-0.3.0}/ADOPTERS.md +0 -0
  141. {patchrail-0.2.0 → patchrail-0.3.0}/AGENTS.md +0 -0
  142. {patchrail-0.2.0 → patchrail-0.3.0}/CODE_OF_CONDUCT.md +0 -0
  143. {patchrail-0.2.0 → patchrail-0.3.0}/ETHICS.md +0 -0
  144. {patchrail-0.2.0 → patchrail-0.3.0}/GOVERNANCE.md +0 -0
  145. {patchrail-0.2.0 → patchrail-0.3.0}/LICENSE +0 -0
  146. {patchrail-0.2.0 → patchrail-0.3.0}/SECURITY.md +0 -0
  147. {patchrail-0.2.0 → patchrail-0.3.0}/actions/ci-triage/action.yml +0 -0
  148. {patchrail-0.2.0 → patchrail-0.3.0}/actions/ci-triage/scripts/ci_triage_action_outputs.py +0 -0
  149. /patchrail-0.2.0/examples/ci-triage/dotnet-nuget-package-downgrade.expected.json → /patchrail-0.3.0/examples/ci-triage/appveyor-dotnet-test-xunit.expected.json +0 -0
  150. /patchrail-0.2.0/examples/ci-triage/dotnet-sdk-target-framework-mismatch.expected.json → /patchrail-0.3.0/examples/ci-triage/azure-pipelines-dotnet-test.expected.json +0 -0
  151. /patchrail-0.2.0/examples/ci-triage/php-composer-missing-package.expected.json → /patchrail-0.3.0/examples/ci-triage/bitbucket-pipelines-composer-platform.expected.json +0 -0
  152. /patchrail-0.2.0/examples/ci-triage/node-npm-ci-lock-outdated.expected.json → /patchrail-0.3.0/examples/ci-triage/bitbucket-pipelines-npm-eresolve.expected.json +0 -0
  153. /patchrail-0.2.0/examples/ci-triage/typescript-generated-client-schema-drift.expected.json → /patchrail-0.3.0/examples/ci-triage/bitbucket-pipelines-vue-tsc-typecheck.expected.json +0 -0
  154. {patchrail-0.2.0 → patchrail-0.3.0}/examples/ci-triage/browser-playwright-navigation-timeout.expected.json +0 -0
  155. {patchrail-0.2.0 → patchrail-0.3.0}/examples/ci-triage/browser-playwright-navigation-timeout.log +0 -0
  156. {patchrail-0.2.0 → patchrail-0.3.0}/examples/ci-triage/browser-playwright-webserver-timeout.expected.json +0 -0
  157. {patchrail-0.2.0 → patchrail-0.3.0}/examples/ci-triage/browser-playwright-webserver-timeout.log +0 -0
  158. /patchrail-0.2.0/examples/ci-triage/docker-base-image-manifest-not-found.expected.json → /patchrail-0.3.0/examples/ci-triage/buildkite-docker-build.expected.json +0 -0
  159. /patchrail-0.2.0/examples/ci-triage/node-npm-engine-mismatch.expected.json → /patchrail-0.3.0/examples/ci-triage/buildkite-pnpm-frozen-lockfile.expected.json +0 -0
  160. /patchrail-0.2.0/examples/ci-triage/rust-compile-error.expected.json → /patchrail-0.3.0/examples/ci-triage/cargo-test-panic-failure.expected.json +0 -0
  161. /patchrail-0.2.0/examples/ci-triage/ruby-bundler-conflict.expected.json → /patchrail-0.3.0/examples/ci-triage/circleci-bundler-native-extension.expected.json +0 -0
  162. /patchrail-0.2.0/examples/ci-triage/rust-e0277-trait-bound.expected.json → /patchrail-0.3.0/examples/ci-triage/cirrus-ci-cargo-test-panic.expected.json +0 -0
  163. /patchrail-0.2.0/examples/ci-triage/python-pip-constraint-pin-drift.expected.json → /patchrail-0.3.0/examples/ci-triage/concourse-ci-pip-resolution.expected.json +0 -0
  164. {patchrail-0.2.0 → patchrail-0.3.0}/examples/ci-triage/cypress-browser-launch.expected.json +0 -0
  165. {patchrail-0.2.0 → patchrail-0.3.0}/examples/ci-triage/cypress-browser-launch.log +0 -0
  166. {patchrail-0.2.0 → patchrail-0.3.0}/examples/ci-triage/dependency-failure.expected.json +0 -0
  167. {patchrail-0.2.0 → patchrail-0.3.0}/examples/ci-triage/dependency-failure.log +0 -0
  168. /patchrail-0.2.0/examples/ci-triage/docker-buildkit-missing-context.expected.json → /patchrail-0.3.0/examples/ci-triage/docker-base-image-manifest-not-found.expected.json +0 -0
  169. {patchrail-0.2.0 → patchrail-0.3.0}/examples/ci-triage/docker-base-image-manifest-not-found.log +0 -0
  170. /patchrail-0.2.0/examples/ci-triage/docker-buildkit-missing-stage.expected.json → /patchrail-0.3.0/examples/ci-triage/docker-buildkit-missing-context.expected.json +0 -0
  171. {patchrail-0.2.0 → patchrail-0.3.0}/examples/ci-triage/docker-buildkit-missing-context.log +0 -0
  172. /patchrail-0.2.0/examples/ci-triage/docker-compose-healthcheck.expected.json → /patchrail-0.3.0/examples/ci-triage/docker-buildkit-missing-stage.expected.json +0 -0
  173. {patchrail-0.2.0 → patchrail-0.3.0}/examples/ci-triage/docker-buildkit-missing-stage.log +0 -0
  174. /patchrail-0.2.0/examples/ci-triage/docker-compose-missing-env-file.expected.json → /patchrail-0.3.0/examples/ci-triage/docker-compose-healthcheck.expected.json +0 -0
  175. {patchrail-0.2.0 → patchrail-0.3.0}/examples/ci-triage/docker-compose-healthcheck.log +0 -0
  176. {patchrail-0.2.0 → patchrail-0.3.0}/examples/ci-triage/docker-compose-missing-env-file.log +0 -0
  177. {patchrail-0.2.0 → patchrail-0.3.0}/examples/ci-triage/dotnet-csharp-compile-error.expected.json +0 -0
  178. {patchrail-0.2.0 → patchrail-0.3.0}/examples/ci-triage/dotnet-csharp-compile-error.log +0 -0
  179. {patchrail-0.2.0 → patchrail-0.3.0}/examples/ci-triage/dotnet-nuget-package-downgrade.log +0 -0
  180. {patchrail-0.2.0 → patchrail-0.3.0}/examples/ci-triage/dotnet-nuget-version-conflict.expected.json +0 -0
  181. {patchrail-0.2.0 → patchrail-0.3.0}/examples/ci-triage/dotnet-nuget-version-conflict.log +0 -0
  182. {patchrail-0.2.0 → patchrail-0.3.0}/examples/ci-triage/dotnet-sdk-target-framework-mismatch.log +0 -0
  183. {patchrail-0.2.0 → patchrail-0.3.0}/examples/ci-triage/dotnet-xunit-assertion.expected.json +0 -0
  184. {patchrail-0.2.0 → patchrail-0.3.0}/examples/ci-triage/dotnet-xunit-assertion.log +0 -0
  185. /patchrail-0.2.0/examples/ci-triage/go-assertion-fail.expected.json → /patchrail-0.3.0/examples/ci-triage/drone-ci-go-test-panic.expected.json +0 -0
  186. {patchrail-0.2.0 → patchrail-0.3.0}/examples/ci-triage/github-actions-bad-shell.expected.json +0 -0
  187. {patchrail-0.2.0 → patchrail-0.3.0}/examples/ci-triage/github-actions-bad-shell.log +0 -0
  188. /patchrail-0.2.0/examples/ci-triage/go-compile-interface.expected.json → /patchrail-0.3.0/examples/ci-triage/github-actions-go-test-failure.expected.json +0 -0
  189. {patchrail-0.2.0 → patchrail-0.3.0}/examples/ci-triage/github-actions-invalid-workflow.expected.json +0 -0
  190. {patchrail-0.2.0 → patchrail-0.3.0}/examples/ci-triage/github-actions-invalid-workflow.log +0 -0
  191. {patchrail-0.2.0 → patchrail-0.3.0}/examples/ci-triage/github-actions-matrix-expression.expected.json +0 -0
  192. {patchrail-0.2.0 → patchrail-0.3.0}/examples/ci-triage/github-actions-matrix-expression.log +0 -0
  193. {patchrail-0.2.0 → patchrail-0.3.0}/examples/ci-triage/github-actions-missing-workflow-ref.expected.json +0 -0
  194. {patchrail-0.2.0 → patchrail-0.3.0}/examples/ci-triage/github-actions-missing-workflow-ref.log +0 -0
  195. {patchrail-0.2.0 → patchrail-0.3.0}/examples/ci-triage/github-actions-permission-id-token.expected.json +0 -0
  196. {patchrail-0.2.0 → patchrail-0.3.0}/examples/ci-triage/github-actions-permission-id-token.log +0 -0
  197. {patchrail-0.2.0 → patchrail-0.3.0}/examples/ci-triage/github-actions-permission.expected.json +0 -0
  198. {patchrail-0.2.0 → patchrail-0.3.0}/examples/ci-triage/github-actions-permission.log +0 -0
  199. /patchrail-0.2.0/examples/ci-triage/java-gradle-dependency-resolution.expected.json → /patchrail-0.3.0/examples/ci-triage/github-actions-sbt-scala-compile.expected.json +0 -0
  200. {patchrail-0.2.0 → patchrail-0.3.0}/examples/ci-triage/github-actions-token-permission.expected.json +0 -0
  201. {patchrail-0.2.0 → patchrail-0.3.0}/examples/ci-triage/github-actions-token-permission.log +0 -0
  202. {patchrail-0.2.0 → patchrail-0.3.0}/examples/ci-triage/github-actions-unresolved-action.expected.json +0 -0
  203. {patchrail-0.2.0 → patchrail-0.3.0}/examples/ci-triage/github-actions-unresolved-action.log +0 -0
  204. {patchrail-0.2.0 → patchrail-0.3.0}/examples/ci-triage/github-actions-unresolved-checkout.expected.json +0 -0
  205. {patchrail-0.2.0 → patchrail-0.3.0}/examples/ci-triage/github-actions-unresolved-checkout.log +0 -0
  206. {patchrail-0.2.0 → patchrail-0.3.0}/examples/ci-triage/github-actions-yaml-syntax.expected.json +0 -0
  207. {patchrail-0.2.0 → patchrail-0.3.0}/examples/ci-triage/github-actions-yaml-syntax.log +0 -0
  208. /patchrail-0.2.0/examples/ci-triage/ruby-bundler-missing-gem.expected.json → /patchrail-0.3.0/examples/ci-triage/gitlab-ci-bundler-incompatible.expected.json +0 -0
  209. /patchrail-0.2.0/examples/ci-triage/java-gradle-no-tests-found.expected.json → /patchrail-0.3.0/examples/ci-triage/gitlab-ci-gradle-kotlin-compile.expected.json +0 -0
  210. /patchrail-0.2.0/examples/ci-triage/go-data-race-test.expected.json → /patchrail-0.3.0/examples/ci-triage/go-assertion-fail.expected.json +0 -0
  211. {patchrail-0.2.0 → patchrail-0.3.0}/examples/ci-triage/go-assertion-fail.log +0 -0
  212. {patchrail-0.2.0 → patchrail-0.3.0}/examples/ci-triage/go-compile-failure.expected.json +0 -0
  213. {patchrail-0.2.0 → patchrail-0.3.0}/examples/ci-triage/go-compile-failure.log +0 -0
  214. /patchrail-0.2.0/examples/ci-triage/go-module-missing-symbol.expected.json → /patchrail-0.3.0/examples/ci-triage/go-compile-interface.expected.json +0 -0
  215. {patchrail-0.2.0 → patchrail-0.3.0}/examples/ci-triage/go-compile-interface.log +0 -0
  216. /patchrail-0.2.0/examples/ci-triage/go-panic-in-test.expected.json → /patchrail-0.3.0/examples/ci-triage/go-data-race-test.expected.json +0 -0
  217. {patchrail-0.2.0 → patchrail-0.3.0}/examples/ci-triage/go-data-race-test.log +0 -0
  218. /patchrail-0.2.0/examples/ci-triage/go-timeout-race.expected.json → /patchrail-0.3.0/examples/ci-triage/go-integration-test-network-noise.expected.json +0 -0
  219. /patchrail-0.2.0/examples/ci-triage/go-timeout.expected.json → /patchrail-0.3.0/examples/ci-triage/go-module-missing-symbol.expected.json +0 -0
  220. {patchrail-0.2.0 → patchrail-0.3.0}/examples/ci-triage/go-module-missing-symbol.log +0 -0
  221. /patchrail-0.2.0/examples/ci-triage/go-undefined-function.expected.json → /patchrail-0.3.0/examples/ci-triage/go-panic-in-test.expected.json +0 -0
  222. {patchrail-0.2.0 → patchrail-0.3.0}/examples/ci-triage/go-panic-in-test.log +0 -0
  223. {patchrail-0.2.0 → patchrail-0.3.0}/examples/ci-triage/go-timeout-race.log +0 -0
  224. {patchrail-0.2.0 → patchrail-0.3.0}/examples/ci-triage/go-timeout.log +0 -0
  225. {patchrail-0.2.0 → patchrail-0.3.0}/examples/ci-triage/go-undefined-function.log +0 -0
  226. {patchrail-0.2.0 → patchrail-0.3.0}/examples/ci-triage/go-undefined-symbol.expected.json +0 -0
  227. {patchrail-0.2.0 → patchrail-0.3.0}/examples/ci-triage/go-undefined-symbol.log +0 -0
  228. /patchrail-0.2.0/examples/ci-triage/typescript-import-type-drift.expected.json → /patchrail-0.3.0/examples/ci-triage/harness-ci-tsc-noemit-ts2322.expected.json +0 -0
  229. /patchrail-0.2.0/examples/ci-triage/java-gradle-toolchain-version.expected.json → /patchrail-0.3.0/examples/ci-triage/java-gradle-dependency-resolution.expected.json +0 -0
  230. {patchrail-0.2.0 → patchrail-0.3.0}/examples/ci-triage/java-gradle-dependency-resolution.log +0 -0
  231. /patchrail-0.2.0/examples/ci-triage/java-gradle-unsupported-major-version.expected.json → /patchrail-0.3.0/examples/ci-triage/java-gradle-no-tests-found.expected.json +0 -0
  232. {patchrail-0.2.0 → patchrail-0.3.0}/examples/ci-triage/java-gradle-no-tests-found.log +0 -0
  233. /patchrail-0.2.0/examples/ci-triage/java-maven-compilation.expected.json → /patchrail-0.3.0/examples/ci-triage/java-gradle-toolchain-version.expected.json +0 -0
  234. {patchrail-0.2.0 → patchrail-0.3.0}/examples/ci-triage/java-gradle-toolchain-version.log +0 -0
  235. {patchrail-0.2.0 → patchrail-0.3.0}/examples/ci-triage/java-gradle-unsupported-major-version.log +0 -0
  236. {patchrail-0.2.0 → patchrail-0.3.0}/examples/ci-triage/java-maven-compilation.log +0 -0
  237. {patchrail-0.2.0 → patchrail-0.3.0}/examples/ci-triage/javascript-biome-format.expected.json +0 -0
  238. {patchrail-0.2.0 → patchrail-0.3.0}/examples/ci-triage/javascript-biome-format.log +0 -0
  239. {patchrail-0.2.0 → patchrail-0.3.0}/examples/ci-triage/javascript-eslint-a11y.expected.json +0 -0
  240. {patchrail-0.2.0 → patchrail-0.3.0}/examples/ci-triage/javascript-eslint-a11y.log +0 -0
  241. {patchrail-0.2.0 → patchrail-0.3.0}/examples/ci-triage/javascript-eslint-config-parser-drift.expected.json +0 -0
  242. {patchrail-0.2.0 → patchrail-0.3.0}/examples/ci-triage/javascript-eslint-config-parser-drift.log +0 -0
  243. {patchrail-0.2.0 → patchrail-0.3.0}/examples/ci-triage/javascript-eslint-import-order.expected.json +0 -0
  244. {patchrail-0.2.0 → patchrail-0.3.0}/examples/ci-triage/javascript-eslint-import-order.log +0 -0
  245. {patchrail-0.2.0 → patchrail-0.3.0}/examples/ci-triage/javascript-eslint-no-undef.expected.json +0 -0
  246. {patchrail-0.2.0 → patchrail-0.3.0}/examples/ci-triage/javascript-eslint-no-undef.log +0 -0
  247. {patchrail-0.2.0 → patchrail-0.3.0}/examples/ci-triage/javascript-eslint-react-hooks.expected.json +0 -0
  248. {patchrail-0.2.0 → patchrail-0.3.0}/examples/ci-triage/javascript-eslint-react-hooks.log +0 -0
  249. {patchrail-0.2.0 → patchrail-0.3.0}/examples/ci-triage/javascript-eslint-unused-vars.expected.json +0 -0
  250. {patchrail-0.2.0 → patchrail-0.3.0}/examples/ci-triage/javascript-eslint-unused-vars.log +0 -0
  251. {patchrail-0.2.0 → patchrail-0.3.0}/examples/ci-triage/javascript-eslint.expected.json +0 -0
  252. {patchrail-0.2.0 → patchrail-0.3.0}/examples/ci-triage/javascript-eslint.log +0 -0
  253. {patchrail-0.2.0 → patchrail-0.3.0}/examples/ci-triage/javascript-prettier-format.expected.json +0 -0
  254. {patchrail-0.2.0 → patchrail-0.3.0}/examples/ci-triage/javascript-prettier-format.log +0 -0
  255. {patchrail-0.2.0 → patchrail-0.3.0}/examples/ci-triage/javascript-prettier-generated-client-drift.expected.json +0 -0
  256. {patchrail-0.2.0 → patchrail-0.3.0}/examples/ci-triage/javascript-prettier-generated-client-drift.log +0 -0
  257. {patchrail-0.2.0 → patchrail-0.3.0}/examples/ci-triage/javascript-prettier.expected.json +0 -0
  258. {patchrail-0.2.0 → patchrail-0.3.0}/examples/ci-triage/javascript-prettier.log +0 -0
  259. /patchrail-0.2.0/examples/ci-triage/python-module-import.expected.json → /patchrail-0.3.0/examples/ci-triage/jenkins-pytest-collection-error.expected.json +0 -0
  260. /patchrail-0.2.0/examples/ci-triage/playwright-missing-browsers.expected.json → /patchrail-0.3.0/examples/ci-triage/nightwatch-element-not-found.expected.json +0 -0
  261. {patchrail-0.2.0 → patchrail-0.3.0}/examples/ci-triage/node-lockfile-drift.expected.json +0 -0
  262. {patchrail-0.2.0 → patchrail-0.3.0}/examples/ci-triage/node-lockfile-drift.log +0 -0
  263. /patchrail-0.2.0/examples/ci-triage/node-npm-eresolve-react.expected.json → /patchrail-0.3.0/examples/ci-triage/node-npm-ci-lock-outdated.expected.json +0 -0
  264. {patchrail-0.2.0 → patchrail-0.3.0}/examples/ci-triage/node-npm-ci-lock-outdated.log +0 -0
  265. /patchrail-0.2.0/examples/ci-triage/node-npm-missing-package-lock.expected.json → /patchrail-0.3.0/examples/ci-triage/node-npm-engine-mismatch.expected.json +0 -0
  266. {patchrail-0.2.0 → patchrail-0.3.0}/examples/ci-triage/node-npm-engine-mismatch.log +0 -0
  267. /patchrail-0.2.0/examples/ci-triage/node-npm-workspace-lock-drift.expected.json → /patchrail-0.3.0/examples/ci-triage/node-npm-eresolve-react.expected.json +0 -0
  268. {patchrail-0.2.0 → patchrail-0.3.0}/examples/ci-triage/node-npm-eresolve-react.log +0 -0
  269. {patchrail-0.2.0 → patchrail-0.3.0}/examples/ci-triage/node-npm-missing-lockfile.expected.json +0 -0
  270. {patchrail-0.2.0 → patchrail-0.3.0}/examples/ci-triage/node-npm-missing-lockfile.log +0 -0
  271. /patchrail-0.2.0/examples/ci-triage/node-peer-dependency.expected.json → /patchrail-0.3.0/examples/ci-triage/node-npm-missing-package-lock.expected.json +0 -0
  272. {patchrail-0.2.0 → patchrail-0.3.0}/examples/ci-triage/node-npm-missing-package-lock.log +0 -0
  273. /patchrail-0.2.0/examples/ci-triage/node-pnpm-catalog-drift.expected.json → /patchrail-0.3.0/examples/ci-triage/node-npm-workspace-lock-drift.expected.json +0 -0
  274. {patchrail-0.2.0 → patchrail-0.3.0}/examples/ci-triage/node-npm-workspace-lock-drift.log +0 -0
  275. /patchrail-0.2.0/examples/ci-triage/node-pnpm-frozen-lockfile.expected.json → /patchrail-0.3.0/examples/ci-triage/node-peer-dependency.expected.json +0 -0
  276. {patchrail-0.2.0 → patchrail-0.3.0}/examples/ci-triage/node-peer-dependency.log +0 -0
  277. /patchrail-0.2.0/examples/ci-triage/node-pnpm-lockfile-config-drift.expected.json → /patchrail-0.3.0/examples/ci-triage/node-pnpm-catalog-drift.expected.json +0 -0
  278. {patchrail-0.2.0 → patchrail-0.3.0}/examples/ci-triage/node-pnpm-catalog-drift.log +0 -0
  279. /patchrail-0.2.0/examples/ci-triage/node-pnpm-peer-conflict-react.expected.json → /patchrail-0.3.0/examples/ci-triage/node-pnpm-frozen-lockfile.expected.json +0 -0
  280. {patchrail-0.2.0 → patchrail-0.3.0}/examples/ci-triage/node-pnpm-frozen-lockfile.log +0 -0
  281. /patchrail-0.2.0/examples/ci-triage/node-pnpm-peer-optional.expected.json → /patchrail-0.3.0/examples/ci-triage/node-pnpm-lockfile-config-drift.expected.json +0 -0
  282. {patchrail-0.2.0 → patchrail-0.3.0}/examples/ci-triage/node-pnpm-lockfile-config-drift.log +0 -0
  283. /patchrail-0.2.0/examples/ci-triage/node-pnpm-workspace-protocol.expected.json → /patchrail-0.3.0/examples/ci-triage/node-pnpm-peer-conflict-react.expected.json +0 -0
  284. {patchrail-0.2.0 → patchrail-0.3.0}/examples/ci-triage/node-pnpm-peer-conflict-react.log +0 -0
  285. /patchrail-0.2.0/examples/ci-triage/node-yarn-constraints-peer-drift.expected.json → /patchrail-0.3.0/examples/ci-triage/node-pnpm-peer-optional.expected.json +0 -0
  286. {patchrail-0.2.0 → patchrail-0.3.0}/examples/ci-triage/node-pnpm-peer-optional.log +0 -0
  287. /patchrail-0.2.0/examples/ci-triage/node-yarn-immutable-cache-drift.expected.json → /patchrail-0.3.0/examples/ci-triage/node-pnpm-workspace-protocol.expected.json +0 -0
  288. {patchrail-0.2.0 → patchrail-0.3.0}/examples/ci-triage/node-pnpm-workspace-protocol.log +0 -0
  289. /patchrail-0.2.0/examples/ci-triage/node-yarn-immutable-install.expected.json → /patchrail-0.3.0/examples/ci-triage/node-yarn-constraints-peer-drift.expected.json +0 -0
  290. {patchrail-0.2.0 → patchrail-0.3.0}/examples/ci-triage/node-yarn-constraints-peer-drift.log +0 -0
  291. /patchrail-0.2.0/examples/ci-triage/node-yarn-peer-version.expected.json → /patchrail-0.3.0/examples/ci-triage/node-yarn-immutable-cache-drift.expected.json +0 -0
  292. {patchrail-0.2.0 → patchrail-0.3.0}/examples/ci-triage/node-yarn-immutable-cache-drift.log +0 -0
  293. {patchrail-0.2.0 → patchrail-0.3.0}/examples/ci-triage/node-yarn-immutable-install.log +0 -0
  294. {patchrail-0.2.0 → patchrail-0.3.0}/examples/ci-triage/node-yarn-peer-dependency.expected.json +0 -0
  295. {patchrail-0.2.0 → patchrail-0.3.0}/examples/ci-triage/node-yarn-peer-dependency.log +0 -0
  296. {patchrail-0.2.0 → patchrail-0.3.0}/examples/ci-triage/node-yarn-peer-version.log +0 -0
  297. {patchrail-0.2.0 → patchrail-0.3.0}/examples/ci-triage/php-composer-lock-drift.expected.json +0 -0
  298. {patchrail-0.2.0 → patchrail-0.3.0}/examples/ci-triage/php-composer-lock-drift.log +0 -0
  299. /patchrail-0.2.0/examples/ci-triage/php-phpunit-autoload-class-not-found.expected.json → /patchrail-0.3.0/examples/ci-triage/php-composer-missing-package.expected.json +0 -0
  300. {patchrail-0.2.0 → patchrail-0.3.0}/examples/ci-triage/php-composer-missing-package.log +0 -0
  301. {patchrail-0.2.0 → patchrail-0.3.0}/examples/ci-triage/php-composer-platform-version.expected.json +0 -0
  302. {patchrail-0.2.0 → patchrail-0.3.0}/examples/ci-triage/php-composer-platform-version.log +0 -0
  303. {patchrail-0.2.0 → patchrail-0.3.0}/examples/ci-triage/php-phpunit-autoload-class-not-found.log +0 -0
  304. {patchrail-0.2.0 → patchrail-0.3.0}/examples/ci-triage/php-phpunit-failure.expected.json +0 -0
  305. {patchrail-0.2.0 → patchrail-0.3.0}/examples/ci-triage/php-phpunit-failure.log +0 -0
  306. /patchrail-0.2.0/examples/ci-triage/playwright-selector-timeout.expected.json → /patchrail-0.3.0/examples/ci-triage/playwright-e2e-timeout-failure.expected.json +0 -0
  307. {patchrail-0.2.0 → patchrail-0.3.0}/examples/ci-triage/playwright-missing-browsers.log +0 -0
  308. {patchrail-0.2.0 → patchrail-0.3.0}/examples/ci-triage/playwright-selector-timeout.log +0 -0
  309. {patchrail-0.2.0 → patchrail-0.3.0}/examples/ci-triage/python-hatch-build-dependency.expected.json +0 -0
  310. /patchrail-0.2.0/examples/ci-triage/python-pytest-env-token-redacted.expected.json → /patchrail-0.3.0/examples/ci-triage/python-module-import.expected.json +0 -0
  311. {patchrail-0.2.0 → patchrail-0.3.0}/examples/ci-triage/python-module-import.log +0 -0
  312. {patchrail-0.2.0 → patchrail-0.3.0}/examples/ci-triage/python-pip-conflicting-constraints.expected.json +0 -0
  313. {patchrail-0.2.0 → patchrail-0.3.0}/examples/ci-triage/python-pip-conflicting-constraints.log +0 -0
  314. {patchrail-0.2.0 → patchrail-0.3.0}/examples/ci-triage/python-pip-constraint-marker-drift.expected.json +0 -0
  315. {patchrail-0.2.0 → patchrail-0.3.0}/examples/ci-triage/python-pip-constraint-marker-drift.log +0 -0
  316. /patchrail-0.2.0/examples/ci-triage/python-pip-index-timeout-backtrack.expected.json → /patchrail-0.3.0/examples/ci-triage/python-pip-constraint-pin-drift.expected.json +0 -0
  317. {patchrail-0.2.0 → patchrail-0.3.0}/examples/ci-triage/python-pip-constraint-pin-drift.log +0 -0
  318. {patchrail-0.2.0 → patchrail-0.3.0}/examples/ci-triage/python-pip-extra-conflict.expected.json +0 -0
  319. {patchrail-0.2.0 → patchrail-0.3.0}/examples/ci-triage/python-pip-extra-conflict.log +0 -0
  320. /patchrail-0.2.0/examples/ci-triage/python-pip-marker-py310.expected.json → /patchrail-0.3.0/examples/ci-triage/python-pip-index-timeout-backtrack.expected.json +0 -0
  321. {patchrail-0.2.0 → patchrail-0.3.0}/examples/ci-triage/python-pip-index-timeout-backtrack.log +0 -0
  322. /patchrail-0.2.0/examples/ci-triage/python-pip-platform-arm64-wheel.expected.json → /patchrail-0.3.0/examples/ci-triage/python-pip-marker-py310.expected.json +0 -0
  323. {patchrail-0.2.0 → patchrail-0.3.0}/examples/ci-triage/python-pip-marker-py310.log +0 -0
  324. {patchrail-0.2.0 → patchrail-0.3.0}/examples/ci-triage/python-pip-missing-musllinux-wheel.expected.json +0 -0
  325. {patchrail-0.2.0 → patchrail-0.3.0}/examples/ci-triage/python-pip-missing-musllinux-wheel.log +0 -0
  326. {patchrail-0.2.0 → patchrail-0.3.0}/examples/ci-triage/python-pip-no-matching-distribution.expected.json +0 -0
  327. /patchrail-0.2.0/examples/ci-triage/python-pip-tools-backtracking.expected.json → /patchrail-0.3.0/examples/ci-triage/python-pip-platform-arm64-wheel.expected.json +0 -0
  328. {patchrail-0.2.0 → patchrail-0.3.0}/examples/ci-triage/python-pip-platform-arm64-wheel.log +0 -0
  329. {patchrail-0.2.0 → patchrail-0.3.0}/examples/ci-triage/python-pip-platform-wheel.expected.json +0 -0
  330. {patchrail-0.2.0 → patchrail-0.3.0}/examples/ci-triage/python-pip-platform-wheel.log +0 -0
  331. {patchrail-0.2.0 → patchrail-0.3.0}/examples/ci-triage/python-pip-prerelease-range.expected.json +0 -0
  332. {patchrail-0.2.0 → patchrail-0.3.0}/examples/ci-triage/python-pip-python-version-marker.expected.json +0 -0
  333. {patchrail-0.2.0 → patchrail-0.3.0}/examples/ci-triage/python-pip-python-version-marker.log +0 -0
  334. /patchrail-0.2.0/examples/ci-triage/python-pip-tools-conflict.expected.json → /patchrail-0.3.0/examples/ci-triage/python-pip-tools-backtracking.expected.json +0 -0
  335. {patchrail-0.2.0 → patchrail-0.3.0}/examples/ci-triage/python-pip-tools-backtracking.log +0 -0
  336. /patchrail-0.2.0/examples/ci-triage/python-pip-tools-extra-marker-conflict.expected.json → /patchrail-0.3.0/examples/ci-triage/python-pip-tools-conflict.expected.json +0 -0
  337. {patchrail-0.2.0 → patchrail-0.3.0}/examples/ci-triage/python-pip-tools-conflict.log +0 -0
  338. /patchrail-0.2.0/examples/ci-triage/python-pip-yanked-only-candidate.expected.json → /patchrail-0.3.0/examples/ci-triage/python-pip-tools-extra-marker-conflict.expected.json +0 -0
  339. {patchrail-0.2.0 → patchrail-0.3.0}/examples/ci-triage/python-pip-tools-extra-marker-conflict.log +0 -0
  340. /patchrail-0.2.0/examples/ci-triage/python-poetry-solver-conflict.expected.json → /patchrail-0.3.0/examples/ci-triage/python-pip-yanked-only-candidate.expected.json +0 -0
  341. {patchrail-0.2.0 → patchrail-0.3.0}/examples/ci-triage/python-pip-yanked-only-candidate.log +0 -0
  342. {patchrail-0.2.0 → patchrail-0.3.0}/examples/ci-triage/python-pip-yanked-release.expected.json +0 -0
  343. {patchrail-0.2.0 → patchrail-0.3.0}/examples/ci-triage/python-pip-yanked-release.log +0 -0
  344. {patchrail-0.2.0 → patchrail-0.3.0}/examples/ci-triage/python-poetry-python-range-drift.expected.json +0 -0
  345. {patchrail-0.2.0 → patchrail-0.3.0}/examples/ci-triage/python-poetry-python-range-drift.log +0 -0
  346. /patchrail-0.2.0/examples/ci-triage/python-poetry-transitive-conflict.expected.json → /patchrail-0.3.0/examples/ci-triage/python-poetry-solver-conflict.expected.json +0 -0
  347. {patchrail-0.2.0 → patchrail-0.3.0}/examples/ci-triage/python-poetry-solver-conflict.log +0 -0
  348. /patchrail-0.2.0/examples/ci-triage/python-uv-extra-marker-conflict.expected.json → /patchrail-0.3.0/examples/ci-triage/python-poetry-transitive-conflict.expected.json +0 -0
  349. {patchrail-0.2.0 → patchrail-0.3.0}/examples/ci-triage/python-poetry-transitive-conflict.log +0 -0
  350. /patchrail-0.2.0/examples/ci-triage/python-test-assert-json.expected.json → /patchrail-0.3.0/examples/ci-triage/python-pytest-env-token-redacted.expected.json +0 -0
  351. {patchrail-0.2.0 → patchrail-0.3.0}/examples/ci-triage/python-pytest-env-token-redacted.log +0 -0
  352. /patchrail-0.2.0/examples/ci-triage/python-test-failure.expected.json → /patchrail-0.3.0/examples/ci-triage/python-test-assert-json.expected.json +0 -0
  353. {patchrail-0.2.0 → patchrail-0.3.0}/examples/ci-triage/python-test-assert-json.log +0 -0
  354. /patchrail-0.2.0/examples/ci-triage/python-test-fixture-timeout.expected.json → /patchrail-0.3.0/examples/ci-triage/python-test-failure.expected.json +0 -0
  355. {patchrail-0.2.0 → patchrail-0.3.0}/examples/ci-triage/python-test-failure.log +0 -0
  356. /patchrail-0.2.0/examples/ci-triage/python-test-import-mode.expected.json → /patchrail-0.3.0/examples/ci-triage/python-test-fixture-timeout.expected.json +0 -0
  357. {patchrail-0.2.0 → patchrail-0.3.0}/examples/ci-triage/python-test-fixture-timeout.log +0 -0
  358. /patchrail-0.2.0/examples/ci-triage/python-test-module-not-found.expected.json → /patchrail-0.3.0/examples/ci-triage/python-test-import-mode.expected.json +0 -0
  359. {patchrail-0.2.0 → patchrail-0.3.0}/examples/ci-triage/python-test-import-mode.log +0 -0
  360. /patchrail-0.2.0/examples/ci-triage/python-test-parametrize-regression.expected.json → /patchrail-0.3.0/examples/ci-triage/python-test-module-not-found.expected.json +0 -0
  361. {patchrail-0.2.0 → patchrail-0.3.0}/examples/ci-triage/python-test-module-not-found.log +0 -0
  362. /patchrail-0.2.0/examples/ci-triage/python-test-snapshot-diff.expected.json → /patchrail-0.3.0/examples/ci-triage/python-test-parametrize-regression.expected.json +0 -0
  363. {patchrail-0.2.0 → patchrail-0.3.0}/examples/ci-triage/python-test-parametrize-regression.log +0 -0
  364. {patchrail-0.2.0 → patchrail-0.3.0}/examples/ci-triage/python-test-snapshot-diff.log +0 -0
  365. {patchrail-0.2.0 → patchrail-0.3.0}/examples/ci-triage/python-tox-constraint-conflict.expected.json +0 -0
  366. {patchrail-0.2.0 → patchrail-0.3.0}/examples/ci-triage/python-tox-constraint-conflict.log +0 -0
  367. {patchrail-0.2.0 → patchrail-0.3.0}/examples/ci-triage/python-uv-constraint-backtrack-fail.expected.json +0 -0
  368. {patchrail-0.2.0 → patchrail-0.3.0}/examples/ci-triage/python-uv-constraint-backtrack-fail.log +0 -0
  369. /patchrail-0.2.0/examples/ci-triage/python-uv-resolution-no-solution.expected.json → /patchrail-0.3.0/examples/ci-triage/python-uv-extra-marker-conflict.expected.json +0 -0
  370. {patchrail-0.2.0 → patchrail-0.3.0}/examples/ci-triage/python-uv-extra-marker-conflict.log +0 -0
  371. {patchrail-0.2.0 → patchrail-0.3.0}/examples/ci-triage/python-uv-extra-python-marker-drift.expected.json +0 -0
  372. {patchrail-0.2.0 → patchrail-0.3.0}/examples/ci-triage/python-uv-extra-python-marker-drift.log +0 -0
  373. {patchrail-0.2.0 → patchrail-0.3.0}/examples/ci-triage/python-uv-resolution-no-solution.log +0 -0
  374. /patchrail-0.2.0/examples/ci-triage/ruby-bundler-platform-lock.expected.json → /patchrail-0.3.0/examples/ci-triage/ruby-bundler-conflict.expected.json +0 -0
  375. {patchrail-0.2.0 → patchrail-0.3.0}/examples/ci-triage/ruby-bundler-conflict.log +0 -0
  376. /patchrail-0.2.0/examples/ci-triage/ruby-gem-native-extension.expected.json → /patchrail-0.3.0/examples/ci-triage/ruby-bundler-missing-gem.expected.json +0 -0
  377. {patchrail-0.2.0 → patchrail-0.3.0}/examples/ci-triage/ruby-bundler-missing-gem.log +0 -0
  378. /patchrail-0.2.0/examples/ci-triage/ruby-rake-aborted.expected.json → /patchrail-0.3.0/examples/ci-triage/ruby-bundler-platform-lock.expected.json +0 -0
  379. {patchrail-0.2.0 → patchrail-0.3.0}/examples/ci-triage/ruby-bundler-platform-lock.log +0 -0
  380. /patchrail-0.2.0/examples/ci-triage/ruby-rspec-failure.expected.json → /patchrail-0.3.0/examples/ci-triage/ruby-gem-native-extension.expected.json +0 -0
  381. {patchrail-0.2.0 → patchrail-0.3.0}/examples/ci-triage/ruby-gem-native-extension.log +0 -0
  382. /patchrail-0.2.0/examples/ci-triage/ruby-ruby-version-lock.expected.json → /patchrail-0.3.0/examples/ci-triage/ruby-rake-aborted.expected.json +0 -0
  383. {patchrail-0.2.0 → patchrail-0.3.0}/examples/ci-triage/ruby-rake-aborted.log +0 -0
  384. /patchrail-0.2.0/examples/ci-triage/ruby-yanked-gem.expected.json → /patchrail-0.3.0/examples/ci-triage/ruby-rspec-failure.expected.json +0 -0
  385. {patchrail-0.2.0 → patchrail-0.3.0}/examples/ci-triage/ruby-rspec-failure.log +0 -0
  386. {patchrail-0.2.0 → patchrail-0.3.0}/examples/ci-triage/ruby-ruby-version-lock.log +0 -0
  387. {patchrail-0.2.0 → patchrail-0.3.0}/examples/ci-triage/ruby-yanked-gem.log +0 -0
  388. /patchrail-0.2.0/examples/ci-triage/rust-e0308-mismatched-types.expected.json → /patchrail-0.3.0/examples/ci-triage/rust-compile-error.expected.json +0 -0
  389. {patchrail-0.2.0 → patchrail-0.3.0}/examples/ci-triage/rust-compile-error.log +0 -0
  390. /patchrail-0.2.0/examples/ci-triage/rust-e0382-moved-value.expected.json → /patchrail-0.3.0/examples/ci-triage/rust-e0277-trait-bound.expected.json +0 -0
  391. {patchrail-0.2.0 → patchrail-0.3.0}/examples/ci-triage/rust-e0277-trait-bound.log +0 -0
  392. /patchrail-0.2.0/examples/ci-triage/rust-e0502-borrow-checker.expected.json → /patchrail-0.3.0/examples/ci-triage/rust-e0308-mismatched-types.expected.json +0 -0
  393. {patchrail-0.2.0 → patchrail-0.3.0}/examples/ci-triage/rust-e0308-mismatched-types.log +0 -0
  394. /patchrail-0.2.0/examples/ci-triage/rust-e0599-method-not-found.expected.json → /patchrail-0.3.0/examples/ci-triage/rust-e0382-moved-value.expected.json +0 -0
  395. {patchrail-0.2.0 → patchrail-0.3.0}/examples/ci-triage/rust-e0382-moved-value.log +0 -0
  396. /patchrail-0.2.0/examples/ci-triage/rust-panic-thread.expected.json → /patchrail-0.3.0/examples/ci-triage/rust-e0502-borrow-checker.expected.json +0 -0
  397. {patchrail-0.2.0 → patchrail-0.3.0}/examples/ci-triage/rust-e0502-borrow-checker.log +0 -0
  398. /patchrail-0.2.0/examples/ci-triage/rust-snapshot-failure.expected.json → /patchrail-0.3.0/examples/ci-triage/rust-e0599-method-not-found.expected.json +0 -0
  399. {patchrail-0.2.0 → patchrail-0.3.0}/examples/ci-triage/rust-e0599-method-not-found.log +0 -0
  400. /patchrail-0.2.0/examples/ci-triage/rust-test-failure.expected.json → /patchrail-0.3.0/examples/ci-triage/rust-panic-thread.expected.json +0 -0
  401. {patchrail-0.2.0 → patchrail-0.3.0}/examples/ci-triage/rust-panic-thread.log +0 -0
  402. {patchrail-0.2.0 → patchrail-0.3.0}/examples/ci-triage/rust-snapshot-failure.log +0 -0
  403. {patchrail-0.2.0 → patchrail-0.3.0}/examples/ci-triage/rust-test-failure.log +0 -0
  404. {patchrail-0.2.0 → patchrail-0.3.0}/examples/ci-triage/rust-trait-bound-error.expected.json +0 -0
  405. {patchrail-0.2.0 → patchrail-0.3.0}/examples/ci-triage/rust-trait-bound-error.log +0 -0
  406. {patchrail-0.2.0 → patchrail-0.3.0}/examples/ci-triage/security-cargo-audit-rustsec.expected.json +0 -0
  407. {patchrail-0.2.0 → patchrail-0.3.0}/examples/ci-triage/security-cargo-audit-rustsec.log +0 -0
  408. {patchrail-0.2.0 → patchrail-0.3.0}/examples/ci-triage/security-gosec-findings.expected.json +0 -0
  409. {patchrail-0.2.0 → patchrail-0.3.0}/examples/ci-triage/security-gosec-findings.log +0 -0
  410. {patchrail-0.2.0 → patchrail-0.3.0}/examples/ci-triage/security-npm-audit-critical.expected.json +0 -0
  411. {patchrail-0.2.0 → patchrail-0.3.0}/examples/ci-triage/security-npm-audit-critical.log +0 -0
  412. {patchrail-0.2.0 → patchrail-0.3.0}/examples/ci-triage/security-pip-audit-vulnerability.expected.json +0 -0
  413. {patchrail-0.2.0 → patchrail-0.3.0}/examples/ci-triage/security-pip-audit-vulnerability.log +0 -0
  414. {patchrail-0.2.0 → patchrail-0.3.0}/examples/ci-triage/security-trivy-container-critical.expected.json +0 -0
  415. {patchrail-0.2.0 → patchrail-0.3.0}/examples/ci-triage/security-trivy-container-critical.log +0 -0
  416. /patchrail-0.2.0/examples/ci-triage/typescript-jsx-prop-mismatch.expected.json → /patchrail-0.3.0/examples/ci-triage/tsc-noemit-typecheck-failure.expected.json +0 -0
  417. /patchrail-0.2.0/examples/ci-triage/typescript-path-alias-drift.expected.json → /patchrail-0.3.0/examples/ci-triage/typescript-generated-client-schema-drift.expected.json +0 -0
  418. {patchrail-0.2.0 → patchrail-0.3.0}/examples/ci-triage/typescript-generated-client-schema-drift.log +0 -0
  419. /patchrail-0.2.0/examples/ci-triage/typescript-route-param-mismatch.expected.json → /patchrail-0.3.0/examples/ci-triage/typescript-import-type-drift.expected.json +0 -0
  420. {patchrail-0.2.0 → patchrail-0.3.0}/examples/ci-triage/typescript-import-type-drift.log +0 -0
  421. /patchrail-0.2.0/examples/ci-triage/typescript-ts2304-missing-global.expected.json → /patchrail-0.3.0/examples/ci-triage/typescript-jsx-prop-mismatch.expected.json +0 -0
  422. {patchrail-0.2.0 → patchrail-0.3.0}/examples/ci-triage/typescript-jsx-prop-mismatch.log +0 -0
  423. {patchrail-0.2.0 → patchrail-0.3.0}/examples/ci-triage/typescript-missing-name.expected.json +0 -0
  424. {patchrail-0.2.0 → patchrail-0.3.0}/examples/ci-triage/typescript-missing-name.log +0 -0
  425. /patchrail-0.2.0/examples/ci-triage/typescript-ts2322-prop.expected.json → /patchrail-0.3.0/examples/ci-triage/typescript-path-alias-drift.expected.json +0 -0
  426. {patchrail-0.2.0 → patchrail-0.3.0}/examples/ci-triage/typescript-path-alias-drift.log +0 -0
  427. /patchrail-0.2.0/examples/ci-triage/typescript-ts2345-route-param.expected.json → /patchrail-0.3.0/examples/ci-triage/typescript-route-param-mismatch.expected.json +0 -0
  428. {patchrail-0.2.0 → patchrail-0.3.0}/examples/ci-triage/typescript-route-param-mismatch.log +0 -0
  429. {patchrail-0.2.0 → patchrail-0.3.0}/examples/ci-triage/typescript-schema-drift.expected.json +0 -0
  430. {patchrail-0.2.0 → patchrail-0.3.0}/examples/ci-triage/typescript-schema-drift.log +0 -0
  431. /patchrail-0.2.0/examples/ci-triage/typescript-ts2416-class-override.expected.json → /patchrail-0.3.0/examples/ci-triage/typescript-ts2304-missing-global.expected.json +0 -0
  432. {patchrail-0.2.0 → patchrail-0.3.0}/examples/ci-triage/typescript-ts2304-missing-global.log +0 -0
  433. /patchrail-0.2.0/examples/ci-triage/typescript-ts2551-import-name.expected.json → /patchrail-0.3.0/examples/ci-triage/typescript-ts2322-prop.expected.json +0 -0
  434. {patchrail-0.2.0 → patchrail-0.3.0}/examples/ci-triage/typescript-ts2322-prop.log +0 -0
  435. /patchrail-0.2.0/examples/ci-triage/typescript-ts2741-required-prop.expected.json → /patchrail-0.3.0/examples/ci-triage/typescript-ts2345-route-param.expected.json +0 -0
  436. {patchrail-0.2.0 → patchrail-0.3.0}/examples/ci-triage/typescript-ts2345-route-param.log +0 -0
  437. /patchrail-0.2.0/examples/ci-triage/typescript-ts2769-overload.expected.json → /patchrail-0.3.0/examples/ci-triage/typescript-ts2416-class-override.expected.json +0 -0
  438. {patchrail-0.2.0 → patchrail-0.3.0}/examples/ci-triage/typescript-ts2416-class-override.log +0 -0
  439. /patchrail-0.2.0/examples/ci-triage/typescript-ts7006-implicit-any.expected.json → /patchrail-0.3.0/examples/ci-triage/typescript-ts2551-import-name.expected.json +0 -0
  440. {patchrail-0.2.0 → patchrail-0.3.0}/examples/ci-triage/typescript-ts2551-import-name.log +0 -0
  441. /patchrail-0.2.0/examples/ci-triage/typescript-tsconfig-lib-drift.expected.json → /patchrail-0.3.0/examples/ci-triage/typescript-ts2741-required-prop.expected.json +0 -0
  442. {patchrail-0.2.0 → patchrail-0.3.0}/examples/ci-triage/typescript-ts2741-required-prop.log +0 -0
  443. /patchrail-0.2.0/examples/ci-triage/typescript-typecheck.expected.json → /patchrail-0.3.0/examples/ci-triage/typescript-ts2769-overload.expected.json +0 -0
  444. {patchrail-0.2.0 → patchrail-0.3.0}/examples/ci-triage/typescript-ts2769-overload.log +0 -0
  445. /patchrail-0.2.0/examples/ci-triage/typescript-vite-env-drift.expected.json → /patchrail-0.3.0/examples/ci-triage/typescript-ts7006-implicit-any.expected.json +0 -0
  446. {patchrail-0.2.0 → patchrail-0.3.0}/examples/ci-triage/typescript-ts7006-implicit-any.log +0 -0
  447. /patchrail-0.2.0/examples/ci-triage/typescript-zod-schema-drift.expected.json → /patchrail-0.3.0/examples/ci-triage/typescript-tsconfig-lib-drift.expected.json +0 -0
  448. {patchrail-0.2.0 → patchrail-0.3.0}/examples/ci-triage/typescript-tsconfig-lib-drift.log +0 -0
  449. {patchrail-0.2.0 → patchrail-0.3.0}/examples/ci-triage/typescript-typecheck.log +0 -0
  450. {patchrail-0.2.0 → patchrail-0.3.0}/examples/ci-triage/typescript-vite-env-drift.log +0 -0
  451. {patchrail-0.2.0 → patchrail-0.3.0}/examples/ci-triage/typescript-zod-schema-drift.log +0 -0
  452. {patchrail-0.2.0 → patchrail-0.3.0}/examples/control-plane-demo/README.md +0 -0
  453. {patchrail-0.2.0 → patchrail-0.3.0}/examples/control-plane-demo/demo-output.md +0 -0
  454. {patchrail-0.2.0 → patchrail-0.3.0}/examples/funded-issues-readonly/README.md +0 -0
  455. {patchrail-0.2.0 → patchrail-0.3.0}/examples/funded-issues-readonly/client-profile-python.json +0 -0
  456. {patchrail-0.2.0 → patchrail-0.3.0}/examples/funded-issues-readonly/competition-observations.json +0 -0
  457. {patchrail-0.2.0 → patchrail-0.3.0}/examples/funded-issues-readonly/demo-summary.expected.json +0 -0
  458. {patchrail-0.2.0 → patchrail-0.3.0}/examples/funded-issues-readonly/issues.json +0 -0
  459. {patchrail-0.2.0 → patchrail-0.3.0}/examples/funded-issues-readonly/payout-effort-observations.json +0 -0
  460. {patchrail-0.2.0 → patchrail-0.3.0}/examples/funded-issues-readonly/provider-github-export.json +0 -0
  461. {patchrail-0.2.0 → patchrail-0.3.0}/examples/funded-issues-readonly/run_demo.py +0 -0
  462. {patchrail-0.2.0 → patchrail-0.3.0}/examples/funded-issues-readonly/staleness-observations.json +0 -0
  463. {patchrail-0.2.0 → patchrail-0.3.0}/examples/funded-issues-readonly/testability-observations.json +0 -0
  464. {patchrail-0.2.0 → patchrail-0.3.0}/examples/github-action/README.md +0 -0
  465. {patchrail-0.2.0 → patchrail-0.3.0}/examples/github-action/patchrail-ci-triage-artifact/ci-report.md +0 -0
  466. {patchrail-0.2.0 → patchrail-0.3.0}/examples/github-action/patchrail-ci-triage-artifact/ci-result.json +0 -0
  467. {patchrail-0.2.0 → patchrail-0.3.0}/examples/github-action/patchrail-ci-triage-artifact/doctor.json +0 -0
  468. {patchrail-0.2.0 → patchrail-0.3.0}/examples/github-action/patchrail-ci-triage-artifact/fixture-benchmark-summary.md +0 -0
  469. {patchrail-0.2.0 → patchrail-0.3.0}/examples/github-action/patchrail-ci-triage-artifact/fixture-benchmark.json +0 -0
  470. {patchrail-0.2.0 → patchrail-0.3.0}/examples/local-agent-queue/README.md +0 -0
  471. {patchrail-0.2.0 → patchrail-0.3.0}/examples/local-agent-queue/demo-summary.expected.json +0 -0
  472. {patchrail-0.2.0 → patchrail-0.3.0}/examples/local-agent-queue/run_demo.py +0 -0
  473. {patchrail-0.2.0 → patchrail-0.3.0}/examples/pilot-outcome/README.md +0 -0
  474. {patchrail-0.2.0 → patchrail-0.3.0}/examples/pilot-outcome/patchrail-own-repo-20260603.md +0 -0
  475. {patchrail-0.2.0 → patchrail-0.3.0}/examples/pilot-outcome/patchrail-own-repo-20260603.summary.json +0 -0
  476. {patchrail-0.2.0 → patchrail-0.3.0}/src/patchrail/__main__.py +0 -0
  477. {patchrail-0.2.0 → patchrail-0.3.0}/src/patchrail/funded_issues/__init__.py +0 -0
  478. {patchrail-0.2.0 → patchrail-0.3.0}/src/patchrail/funded_issues/algora_board.py +0 -0
  479. {patchrail-0.2.0 → patchrail-0.3.0}/src/patchrail/funded_issues/blocklist.py +0 -0
  480. {patchrail-0.2.0 → patchrail-0.3.0}/src/patchrail/funded_issues/discovery.py +0 -0
  481. {patchrail-0.2.0 → patchrail-0.3.0}/src/patchrail/funded_issues/importers.py +0 -0
  482. {patchrail-0.2.0 → patchrail-0.3.0}/src/patchrail/funded_issues/source_noise.py +0 -0
  483. {patchrail-0.2.0 → patchrail-0.3.0}/src/patchrail/funded_issues/store.py +0 -0
  484. {patchrail-0.2.0 → patchrail-0.3.0}/src/patchrail/queue/__init__.py +0 -0
  485. {patchrail-0.2.0 → patchrail-0.3.0}/src/patchrail/queue/server.py +0 -0
  486. {patchrail-0.2.0 → patchrail-0.3.0}/src/patchrail/queue/status.py +0 -0
  487. {patchrail-0.2.0 → patchrail-0.3.0}/src/patchrail/queue/store.py +0 -0
  488. {patchrail-0.2.0 → patchrail-0.3.0}/src/patchrail/reviewer_quick_check.py +0 -0
  489. {patchrail-0.2.0 → patchrail-0.3.0}/src/patchrail/schemas/__init__.py +0 -0
  490. {patchrail-0.2.0 → patchrail-0.3.0}/src/patchrail/schemas/application-dossier.v1.schema.json +0 -0
  491. {patchrail-0.2.0 → patchrail-0.3.0}/src/patchrail/schemas/ci-benchmark.v1.schema.json +0 -0
  492. {patchrail-0.2.0 → patchrail-0.3.0}/src/patchrail/schemas/ci-fixture-check.v1.schema.json +0 -0
  493. {patchrail-0.2.0 → patchrail-0.3.0}/src/patchrail/schemas/ci-pilot-metrics.v1.schema.json +0 -0
  494. {patchrail-0.2.0 → patchrail-0.3.0}/src/patchrail/schemas/ci-pilot-summary.v1.schema.json +0 -0
  495. {patchrail-0.2.0 → patchrail-0.3.0}/src/patchrail/schemas/funded-issues-client-report.v1.schema.json +0 -0
  496. {patchrail-0.2.0 → patchrail-0.3.0}/src/patchrail/schemas/funded-issues-recheck-queue.v1.schema.json +0 -0
  497. {patchrail-0.2.0 → patchrail-0.3.0}/src/patchrail/schemas/funded-issues-recheck-summary.v1.schema.json +0 -0
  498. {patchrail-0.2.0 → patchrail-0.3.0}/src/patchrail/schemas/funded-issues-report.v1.schema.json +0 -0
  499. {patchrail-0.2.0 → patchrail-0.3.0}/src/patchrail/schemas/funded-issues-shortlist.v1.schema.json +0 -0
  500. {patchrail-0.2.0 → patchrail-0.3.0}/src/patchrail/schemas/funded-issues-store-status.v1.schema.json +0 -0
  501. {patchrail-0.2.0 → patchrail-0.3.0}/src/patchrail/schemas/funded-issues-store.v1.schema.json +0 -0
  502. {patchrail-0.2.0 → patchrail-0.3.0}/src/patchrail/schemas/queue-audit-event.v1.schema.json +0 -0
  503. {patchrail-0.2.0 → patchrail-0.3.0}/src/patchrail/schemas/queue-audit-summary.v1.schema.json +0 -0
  504. {patchrail-0.2.0 → patchrail-0.3.0}/src/patchrail/schemas/queue-gate-report.v1.schema.json +0 -0
  505. {patchrail-0.2.0 → patchrail-0.3.0}/src/patchrail/schemas/queue-policy-resolution.v1.schema.json +0 -0
  506. {patchrail-0.2.0 → patchrail-0.3.0}/src/patchrail/schemas/queue-policy-scan.v1.schema.json +0 -0
  507. {patchrail-0.2.0 → patchrail-0.3.0}/src/patchrail/schemas/queue-proposal.v1.schema.json +0 -0
  508. {patchrail-0.2.0 → patchrail-0.3.0}/src/patchrail/schemas/queue-review.v1.schema.json +0 -0
  509. {patchrail-0.2.0 → patchrail-0.3.0}/src/patchrail/schemas/queue-status.v1.schema.json +0 -0
  510. {patchrail-0.2.0 → patchrail-0.3.0}/src/patchrail/schemas/queue-work-item.v1.schema.json +0 -0
  511. {patchrail-0.2.0 → patchrail-0.3.0}/src/patchrail/schemas/reviewer-quick-check-artifacts.v1.schema.json +0 -0
@@ -1,4 +1,6 @@
1
1
  .venv/
2
+ .venv*/
3
+ venv/
2
4
  .DS_Store
3
5
  .pkg-smoke/
4
6
  .patchrail-release-smoke/
@@ -0,0 +1,217 @@
1
+ # Changelog
2
+
3
+ ## 0.3.0 - 2026-07-09
4
+
5
+ ### Fixed
6
+
7
+ - Deterministic Go test failures are no longer misread as
8
+ `network_transient_failure` when their logs contain incidental
9
+ network-shaped noise (`dial tcp`, `connection refused`, `context deadline
10
+ exceeded`, `i/o timeout`). The classifier now defers a broad transient-network
11
+ match built *entirely* from these ambiguous signals to the concrete failure
12
+ when one also matched, so a real bug isn't mislabeled "just retry". Genuine
13
+ outages still classify as transient because they trip a terminal signal (DNS
14
+ resolution, rate limit, gateway error, TLS handshake, or a git remote hang-up)
15
+ outside the ambiguous set. `go_test_failure` also now recognises the canonical
16
+ `--- FAIL:` marker. New `go-integration-test-network-noise` fixture guards this,
17
+ bringing the benchmark zoo to 208 cases.
18
+
19
+ ### Added
20
+
21
+ - `patchrail --version` now prints the installed version (e.g. `patchrail 0.3.0`)
22
+ and exits, so a maintainer can confirm which release they are running without
23
+ invoking a subcommand.
24
+ - `java_build_failure` now also recognises **sbt** (Scala on the JVM). sbt prints
25
+ none of the Maven/Gradle banners the rule keyed on, so a genuine
26
+ `(project / Test / compileIncremental) Compilation failed` — or an
27
+ `sbt.TestsFailedException` — previously fell through to `unknown`. New signals
28
+ cover the sbt session banner, incremental-compile failure, Scala
29
+ `not found: value`/`not found: type` errors, and the sbt test-failure
30
+ exception; the reproduction command now suggests `sbt test`. New sanitized
31
+ `github-actions-sbt-scala-compile` fixture (modelled on a real
32
+ `scalatest/scalatest` GitHub Actions run) guards this, bringing the benchmark
33
+ zoo to 209 cases.
34
+ - New sanitized `ruby-rspec-parallel-failure` fixture captures a real
35
+ `rubocop/rubocop` RSpec failure tail (parallel/turbo_tests summary with
36
+ `pending` before `failures`), bringing the benchmark zoo to 207 cases.
37
+ - New `xcode_build_failure` class classifies Apple-platform build and test
38
+ failures from `xcodebuild`, `swift build`/`swift test`, and Swift Package
39
+ Manager — Swift compile errors, missing modules (`error: no such module`),
40
+ unresolved package dependencies, and XCTest failures (`** BUILD FAILED **`,
41
+ `** TEST FAILED **`, `The following build commands failed:`). Backed by three
42
+ sanitized fixtures in `examples/ci-triage/`, bringing the benchmark zoo to 169
43
+ cases and the classifier to 40 failure classes.
44
+ - New `docs_build_failure` class classifies documentation-site build failures
45
+ from Sphinx (`sphinx-build -W` warnings-as-errors, missing toctree entries),
46
+ MkDocs (`mkdocs build --strict` broken links), and Docusaurus (`docusaurus
47
+ build` broken links). Backed by three sanitized fixtures in
48
+ `examples/ci-triage/`, bringing the benchmark zoo to 166 cases.
49
+ - `patchrail ci classes` lists every supported failure class with its likely
50
+ subsystem and reproduction command (plus the `unknown` fallback), in stable
51
+ order. Supports `--format text|json|markdown` and `--out`, so the set of
52
+ classes the classifier can diagnose is discoverable from the CLI instead of
53
+ only in the source. Closes #150.
54
+
55
+ ### Fixed
56
+
57
+ - Real RSpec failures now classify as `ruby_bundle_failure` instead of
58
+ `unknown`. RSpec prints its rerun list as `rspec ./path/to/thing_spec.rb[…]`
59
+ and its summary as `N examples, [K pending, ]M failures` (rspec, parallel and
60
+ turbo_tests) — neither of which the old `rspec .*failures?` pattern matched,
61
+ so a pasted spec-failure tail without bundler setup lines fell through to
62
+ `unknown`. Two shape-matching patterns were added to the rule. Surfaced by
63
+ dogfooding a real `rubocop/rubocop` CI run.
64
+ - Python CI logs no longer misclassify as `python_dependency_resolution` just
65
+ because they run `python -m pip install`. That bare command line was a
66
+ detection pattern, but it appears in almost every Python CI job regardless of
67
+ what actually failed, so any failing Python job with no stronger signal was
68
+ reported as a dependency-resolution conflict with the misleading "pin or relax
69
+ the conflicting dependency range" advice. Dogfooded against a real
70
+ `pandas-dev/pandas` 32-bit CI run whose `pip install` failed at
71
+ `metadata-generation-failed` (a package build error, `Rust not found`) — it was
72
+ reported as `python_dependency_resolution` (0.53). The boilerplate pattern is
73
+ dropped, so a build/metadata failure with no genuine resolution signal now
74
+ stays honest (`unknown`) instead. To keep recall on real conflicts, two
75
+ genuine pip signals were added: pip's actual Requires-Python wording
76
+ (`requires a different Python:`) and its no-distribution `(from versions: …)`
77
+ line; the three synthetic no-matching-distribution fixtures were updated to
78
+ include the real `(from versions: …)` output pip prints. Benchmark stays at
79
+ 206/206 top-1 with all confidence floors met; the bundled dependency-failure
80
+ demo now reports 0.89 (three genuine resolution signals) instead of 0.95.
81
+ Regression covered in `tests/`.
82
+ - `patchrail ci explain`/`classify` no longer hangs on large CI logs. The
83
+ `github_actions_workflow` rule paired two unanchored lookaheads
84
+ (`(?=[\s\S]*.github/workflows/…)(?=[\s\S]*Invalid workflow file…)`); under
85
+ `re.search` that compound is retried at every start position, so a log that
86
+ mentions `.github/workflows/*.yml` (every `actions/checkout` step does) but not
87
+ a workflow-error phrase drove the matcher into O(n²) backtracking and pegged a
88
+ core at 100% for minutes. Dogfooded against a real `cli/cli` Go CI run
89
+ (~200 KB) that never returned. The lookahead is now anchored with `\A` so it is
90
+ evaluated once, in linear time; the "workflow path AND error phrase present"
91
+ signal is unchanged. Regression covered in `tests/`.
92
+ - Rust CI failures no longer misclassify as `node_dependency_install`,
93
+ `dotnet_build_failure`, or `java_build_failure` because of generic boilerplate.
94
+ The `Swatinem/rust-cache` action prints `Lockfiles considered:` (which matched
95
+ the old bare `lockfile` node signal) and cargo prints `build failed, waiting
96
+ for other jobs to finish` (which matched the case-insensitive `Build FAILED` /
97
+ `BUILD FAILED` banners). The node lockfile signal now requires a whole-word
98
+ `lockfile`, and the .NET/Gradle banners are matched case-sensitively so they
99
+ fire only on the tool's actual `Build FAILED` / `BUILD FAILED` output. A real
100
+ `tokio-rs/tokio` rustdoc failure (`error[E0433]`) now classifies as
101
+ `rust_test_failure`. Regression covered in `tests/`.
102
+ - Sharper reproduce commands for three failure classes surfaced by `patchrail ci
103
+ classes` / `ci explain`. `node_script_missing` no longer suggests `npm run
104
+ build` (which just re-triggers the "missing script" error) and instead runs
105
+ `npm run` to list the scripts `package.json` actually defines, so you can
106
+ compare against the one your workflow calls. `security_scan_failure` names the
107
+ concrete scanners to rerun locally (`npm audit`, `pip-audit`, `cargo audit`,
108
+ `trivy fs .`, `bandit -r .`, `semgrep --config auto`) instead of the generic
109
+ "rerun the failing security scan locally". `github_actions_workflow` points at
110
+ `actionlint .github/workflows/`, which validates workflow syntax and action
111
+ refs locally, rather than only printing the YAML back with `gh workflow view`.
112
+ - Real GitHub Actions logs no longer misclassify as `git_checkout_failure` when
113
+ checkout actually succeeded. The rule dropped three boilerplate signals that
114
+ appear in almost every Actions log regardless of outcome — the `actions/checkout`
115
+ setup step, the `git submodule foreach` post-job cleanup line, and a bare
116
+ `git-lfs` mention — keeping only genuine checkout/clone/submodule/LFS *failure*
117
+ markers (`fatal: ...`, `Failed to fetch submodule`, `smudge filter lfs failed`,
118
+ `error downloading object`, …). Dogfooded against a real `pallets/flask` CI run
119
+ whose pytest jobs failed on a conftest `SyntaxError` but were reported as a git
120
+ checkout problem.
121
+ - `python_test_failure` now also recognizes pytest collection failures
122
+ (`ImportError while loading conftest ...`, `N errors during collection`), so a
123
+ broken `conftest.py` or import-time error surfaces as a test failure with the
124
+ `python -m pytest -q` reproduce line instead of falling through to a weaker or
125
+ wrong class.
126
+ - `patchrail ci explain` and `ci classify` now fail clearly on empty or
127
+ whitespace-only input (from `--log` or stdin) instead of silently reporting
128
+ `failure_class: unknown` with confidence `0.15` and exit code `0`. They print
129
+ `log input is empty` to stderr, exit with code `2`, and write nothing to
130
+ `--out`, so a bad shell redirect is no longer mistaken for an unclassifiable
131
+ log. Closes #151.
132
+ - Added `node_script_missing` to the published `ci-result` schema enum; the
133
+ classifier could already emit it, so a valid classification previously failed
134
+ schema validation for downstream consumers. A new test guards that every rule
135
+ class is declared in the schema enum.
136
+
137
+ ## 0.2.0 - 2026-07-07
138
+
139
+ ### Removed
140
+
141
+ - Removed the commercial `Guide:` link that `ci explain` appended to text and
142
+ Markdown reports, and the matching guide URL outputs from the GitHub Action.
143
+ Reports now end after the classification; per-class remediation write-ups
144
+ live in-repo under `docs/fix/`.
145
+ - Removed commercial product links and campaign-tagged URLs from the README,
146
+ docs, and the PyPI project URL list.
147
+ - Removed the distribution and web-metrics tooling (`ci share-links` and the
148
+ web metrics commands and store). PatchRail no longer ships link-tracking or
149
+ distribution helpers.
150
+
151
+ ### Changed
152
+
153
+ - `funded-issues` is now explicitly labeled experimental. Discovery commands
154
+ default to safe-only filtering, and risky entries require an explicit
155
+ `--include-risky` flag.
156
+ - Rewrote the README around the open-source CI triage workflow: quickstart
157
+ with real classifier output, honest feature table, local-first safety
158
+ section, and the fixture contribution path.
159
+
160
+ ### Added
161
+
162
+ - Added `node_script_missing` CI classification so npm/pnpm/yarn jobs that
163
+ call a missing package script are separated from dependency-install failures
164
+ and routed to a workflow/script repair path.
165
+ - Added a permanent source-level blocklist to the funded-issues tracker:
166
+ owners manually verified as fake-bounty sources are dropped at the
167
+ `merge_into_store` choke point (counted as `blocked` in the merge summary)
168
+ and `purge_blocklisted_entries` removes any legacy entries; `track` runs the
169
+ purge on every merge so existing stores self-heal.
170
+ - Added `funded-issues import-algora-board`, an offline parser for a locally
171
+ saved Algora organization bounty-board page. It extracts the funder-stated
172
+ USD amount, GitHub issue reference, posting age, and declared claim count
173
+ per bounty, and can merge the scored records into a tracker store. No
174
+ network access is performed.
175
+ - Added read-only competition and payout-vs-effort scoring signals plus the
176
+ `funded-issues competition` and `funded-issues payout-effort` batch
177
+ commands, all derived from public metadata observations with no claims,
178
+ comments, or maintainer contact.
179
+ - Added an offline owner-level `source_noise` heuristic and
180
+ `funded-issues apply-recheck`, a local-file-only command that transitions
181
+ tracker entries to closed / stale / active from recheck observations.
182
+ - Added .NET/NuGet/C# and xUnit fixture coverage for `dotnet restore`,
183
+ `dotnet build`, and `dotnet test` failure modes, growing the public CI
184
+ fixture zoo to 153 cases.
185
+
186
+ ## 0.1.1 - 2026-06-12
187
+
188
+ - `ci explain` now ends text and Markdown reports with a `Guide:` link to the
189
+ matching getpatchrail.com `/fix` remediation page; unknown or unpublished
190
+ failure classes fall back to the `/fix` index without a network call.
191
+ - Added `funded-issues fresh`, a local read-only radar over the tracker store
192
+ that surfaces recently posted or recently labeled funded issues for fast
193
+ solver-side triage.
194
+ - Added `pre_commit_hook_failure` CI classification so pre-commit hook output is
195
+ recognized directly while the CLI still avoids linking to a missing `/fix`
196
+ page until that guide exists.
197
+
198
+ ## 0.1.0 - 2026-06-02
199
+
200
+ - Initial public CI Janitor snapshot.
201
+ - Added `patchrail ci explain` and `patchrail ci classify`.
202
+ - Added local Markdown, JSON, and text reports.
203
+ - Added Apache-2.0 license and safety/ethics documentation.
204
+ - Added fixture-backed tests, local benchmark command, and GitHub Actions CI.
205
+ - Expanded the initial CI fixture zoo to 101 sanitized synthetic examples across
206
+ Python, Node, TypeScript, Go, Rust, and GitHub Actions failure modes.
207
+ - Added a read-only GitHub Actions triage artifact workflow.
208
+ - Added the experimental local Agent Control Plane queue with SQLite-backed
209
+ work items, approval states, audit export, CI result import, and proposal
210
+ records.
211
+ - Added the experimental read-only `funded-issues` CLI over local metadata,
212
+ with safe-only filtering and explicit anti-abuse blocked actions.
213
+ - Added permission-only adopter reporting and a public metrics tracker for
214
+ pilot outcomes, adoption signals, and open-source program evidence gaps.
215
+ - Added release-prep evidence docs, package smoke checks, and manual publish
216
+ gates. Release tags, PyPI publishing, GitHub Releases, and public
217
+ announcements remain maintainer actions.
@@ -22,7 +22,8 @@ patchrail redact --log failed-ci.log > failed-ci.redacted.log
22
22
 
23
23
  3. Review `failed-ci.redacted.log` manually and remove anything PatchRail should
24
24
  not publish: secrets, emails, private repo names, user names, customer names,
25
- local home paths, and private URLs.
25
+ local home paths, and private URLs. See `docs/redaction.md` for exactly
26
+ which categories `patchrail redact` covers and which it doesn't.
26
27
  4. Reduce the log to the shortest excerpt that still shows the root cause.
27
28
  5. Add the fixture and expected metadata under `examples/ci-triage/`.
28
29
  6. Run the fixture hygiene gate and benchmark:
@@ -38,6 +39,10 @@ patchrail ci benchmark examples/ci-triage --format json
38
39
  If a real log cannot be safely redacted, create a minimal synthetic fixture that
39
40
  preserves the error pattern without preserving private identifiers.
40
41
 
42
+ To catch a forgotten secret or a malformed fixture before it reaches a pull
43
+ request, see `docs/pre-commit-example.md` for an optional pre-commit hook
44
+ that runs `patchrail ci fixture-check` and `patchrail redact` automatically.
45
+
41
46
  ## Adding a CI fixture
42
47
 
43
48
  1. Copy the smallest failing log excerpt that still shows the root cause.
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: patchrail
3
- Version: 0.2.0
3
+ Version: 0.3.0
4
4
  Summary: Local-first maintainer automation for open-source CI triage
5
5
  Project-URL: Homepage, https://github.com/patchrail/patchrail
6
6
  Project-URL: Documentation, https://github.com/patchrail/patchrail/tree/main/docs
@@ -49,11 +49,13 @@ entirely on your machine.
49
49
 
50
50
  ## Why maintainers use it
51
51
 
52
- - **33 failure classes** backed by real log signatures — dependency
52
+ - **40 failure classes** backed by real log signatures — dependency
53
53
  resolution, flaky network, OOM-killed runners, Docker builds, lint,
54
- type checks, and test failures across Python, Node, TypeScript, Go, Rust,
55
- Java, .NET, Ruby, PHP, and C++.
56
- - **153 sanitized CI log fixtures** keep the classifier honest: every rule is
54
+ type checks, docs-site builds, and test failures across Python, Node,
55
+ TypeScript, Go, Rust, Java, .NET, Ruby, PHP, C++, and Swift/Xcode. Run
56
+ `patchrail ci classes` to list them all (add `--format json` to check
57
+ coverage from a script).
58
+ - **169 sanitized CI log fixtures** keep the classifier honest: every rule is
57
59
  benchmarked against the public fixture zoo in `examples/ci-triage/` on every
58
60
  test run.
59
61
  - **23 secret-redaction patterns** (GitHub/GitLab/npm/PyPI/AWS tokens, private
@@ -91,7 +93,7 @@ Real output:
91
93
  # PatchRail CI Report
92
94
 
93
95
  - Root cause: `python_dependency_resolution`
94
- - Confidence: `0.95`
96
+ - Confidence: `0.89`
95
97
  - Subsystem: Python dependency installation
96
98
  - Reproduce: `python -m pip install -r requirements.txt`
97
99
  - Suggested action: Pin or relax the conflicting dependency range, then rerun the same install command and the affected tests.
@@ -99,8 +101,8 @@ Real output:
99
101
  ## Evidence signals
100
102
 
101
103
  - `Could not find a version that satisfies the requirement`
104
+ - `Cannot install .*because these package versions have conflicting dependencies`
102
105
  - `ResolutionImpossible`
103
- - `python -m pip install`
104
106
  ```
105
107
 
106
108
  It also reads from stdin, so you can pipe a log straight in:
@@ -129,14 +131,17 @@ leaves the job:
129
131
  log-path: test.log
130
132
  ```
131
133
 
132
- See [examples/ci-triage-action](examples/ci-triage-action/README.md) for the
133
- report artifact shape.
134
+ The `@v1` drop-in exposes `failure-class`, `confidence`, and `guide-url`, plus a
135
+ run annotation and job summary. See
136
+ [docs/using-the-action.md](docs/using-the-action.md) for its full inputs and
137
+ outputs, or [examples/ci-triage-action](examples/ci-triage-action/README.md) for
138
+ the artifact shapes of both `@v1` and the richer in-repo composite.
134
139
 
135
140
  ## Features
136
141
 
137
142
  | Feature | Status | Notes |
138
143
  | --- | --- | --- |
139
- | CI failure triage (`ci explain`, `ci classify`) | Beta | 33 failure classes for GitHub Actions-style logs and common toolchains |
144
+ | CI failure triage (`ci explain`, `ci classify`, `ci classes`) | Beta | 40 failure classes for GitHub Actions-style logs and common toolchains |
140
145
  | Secret redaction (`redact`, `ci explain --redact`) | Beta | 23 patterns for tokens, keys, emails, and home paths |
141
146
  | Reports | Beta | Markdown, JSON, and plain text |
142
147
  | Fixture benchmark (`ci benchmark`) | Beta | Scores the classifier against all 153 public fixtures |
@@ -179,9 +184,11 @@ Details in [docs/roadmap.md](docs/roadmap.md).
179
184
  ## Documentation
180
185
 
181
186
  - [Quickstart](docs/quickstart.md)
187
+ - [jq cookbook for the JSON classifier output](docs/json-cookbook.md)
182
188
  - [Fix guides per failure class](docs/fix/README.md)
183
189
  - [CI Failure Zoo](docs/ci-failure-zoo.md)
184
190
  - [GitHub Actions CI triage](docs/github-action.md)
191
+ - [Using the action in your own repository](docs/using-the-action.md)
185
192
  - [Agent Control Plane](docs/agent-control-plane.md)
186
193
  - [API reference](docs/api-reference.md)
187
194
  - [Threat model](docs/threat-model.md)
@@ -18,11 +18,13 @@ entirely on your machine.
18
18
 
19
19
  ## Why maintainers use it
20
20
 
21
- - **33 failure classes** backed by real log signatures — dependency
21
+ - **40 failure classes** backed by real log signatures — dependency
22
22
  resolution, flaky network, OOM-killed runners, Docker builds, lint,
23
- type checks, and test failures across Python, Node, TypeScript, Go, Rust,
24
- Java, .NET, Ruby, PHP, and C++.
25
- - **153 sanitized CI log fixtures** keep the classifier honest: every rule is
23
+ type checks, docs-site builds, and test failures across Python, Node,
24
+ TypeScript, Go, Rust, Java, .NET, Ruby, PHP, C++, and Swift/Xcode. Run
25
+ `patchrail ci classes` to list them all (add `--format json` to check
26
+ coverage from a script).
27
+ - **169 sanitized CI log fixtures** keep the classifier honest: every rule is
26
28
  benchmarked against the public fixture zoo in `examples/ci-triage/` on every
27
29
  test run.
28
30
  - **23 secret-redaction patterns** (GitHub/GitLab/npm/PyPI/AWS tokens, private
@@ -60,7 +62,7 @@ Real output:
60
62
  # PatchRail CI Report
61
63
 
62
64
  - Root cause: `python_dependency_resolution`
63
- - Confidence: `0.95`
65
+ - Confidence: `0.89`
64
66
  - Subsystem: Python dependency installation
65
67
  - Reproduce: `python -m pip install -r requirements.txt`
66
68
  - Suggested action: Pin or relax the conflicting dependency range, then rerun the same install command and the affected tests.
@@ -68,8 +70,8 @@ Real output:
68
70
  ## Evidence signals
69
71
 
70
72
  - `Could not find a version that satisfies the requirement`
73
+ - `Cannot install .*because these package versions have conflicting dependencies`
71
74
  - `ResolutionImpossible`
72
- - `python -m pip install`
73
75
  ```
74
76
 
75
77
  It also reads from stdin, so you can pipe a log straight in:
@@ -98,14 +100,17 @@ leaves the job:
98
100
  log-path: test.log
99
101
  ```
100
102
 
101
- See [examples/ci-triage-action](examples/ci-triage-action/README.md) for the
102
- report artifact shape.
103
+ The `@v1` drop-in exposes `failure-class`, `confidence`, and `guide-url`, plus a
104
+ run annotation and job summary. See
105
+ [docs/using-the-action.md](docs/using-the-action.md) for its full inputs and
106
+ outputs, or [examples/ci-triage-action](examples/ci-triage-action/README.md) for
107
+ the artifact shapes of both `@v1` and the richer in-repo composite.
103
108
 
104
109
  ## Features
105
110
 
106
111
  | Feature | Status | Notes |
107
112
  | --- | --- | --- |
108
- | CI failure triage (`ci explain`, `ci classify`) | Beta | 33 failure classes for GitHub Actions-style logs and common toolchains |
113
+ | CI failure triage (`ci explain`, `ci classify`, `ci classes`) | Beta | 40 failure classes for GitHub Actions-style logs and common toolchains |
109
114
  | Secret redaction (`redact`, `ci explain --redact`) | Beta | 23 patterns for tokens, keys, emails, and home paths |
110
115
  | Reports | Beta | Markdown, JSON, and plain text |
111
116
  | Fixture benchmark (`ci benchmark`) | Beta | Scores the classifier against all 153 public fixtures |
@@ -148,9 +153,11 @@ Details in [docs/roadmap.md](docs/roadmap.md).
148
153
  ## Documentation
149
154
 
150
155
  - [Quickstart](docs/quickstart.md)
156
+ - [jq cookbook for the JSON classifier output](docs/json-cookbook.md)
151
157
  - [Fix guides per failure class](docs/fix/README.md)
152
158
  - [CI Failure Zoo](docs/ci-failure-zoo.md)
153
159
  - [GitHub Actions CI triage](docs/github-action.md)
160
+ - [Using the action in your own repository](docs/using-the-action.md)
154
161
  - [Agent Control Plane](docs/agent-control-plane.md)
155
162
  - [API reference](docs/api-reference.md)
156
163
  - [Threat model](docs/threat-model.md)
@@ -0,0 +1,10 @@
1
+ > dotnet test .\src\Billing.Tests\Billing.Tests.csproj
2
+ Starting test execution, please wait...
3
+ [xUnit.net 00:00:01.24] Billing.Tests.InvoiceCalculatorTests.AppliesTaxRate_ForRegion [FAIL]
4
+ [xUnit.net 00:00:01.24] Assert.Equal() Failure
5
+ [xUnit.net 00:00:01.24] Expected: 108.50m
6
+ [xUnit.net 00:00:01.24] Actual: 108.00m
7
+ Failed Billing.Tests.InvoiceCalculatorTests.AppliesTaxRate_ForRegion [12 ms]
8
+
9
+ Failed! - Failed: 1, Passed: 46, Skipped: 0, Total: 47
10
+ Command exited with code 1
@@ -0,0 +1,18 @@
1
+ ##[section]Starting: dotnet test
2
+ ==============================================================================
3
+ Task : .NET Core
4
+ Description : Build, test, package, or publish a dotnet application
5
+ ==============================================================================
6
+ ##[command]dotnet test ./tests/Billing.Tests.csproj --logger trx
7
+ Starting test execution, please wait...
8
+
9
+ X Billing.Tests.InvoiceCalculatorTests.AppliesDiscountAboveThreshold [12 ms]
10
+ Error Message:
11
+ Xunit.Sdk.EqualException
12
+ Assert.Equal() Failure
13
+ Expected: 90.00m
14
+ Actual: 100.00m
15
+
16
+ Failed! - Failed: 1, Passed: 47, Skipped: 0, Total: 48
17
+ ##[error]Process completed with exit code 1.
18
+ ##[section]Finishing: dotnet test
@@ -0,0 +1,10 @@
1
+ + composer install --no-dev --prefer-dist
2
+ Loading composer repositories with package information
3
+ Updating dependencies
4
+ Your requirements could not be resolved to an installable set of packages.
5
+
6
+ Problem 1
7
+ - Root composer.json requires php >=8.2 but your php version (8.1.27) does not satisfy that requirement.
8
+ - vendor/example/pdf-toolkit v3.0.1 requires php >=8.2 -> your php version (8.1.27) does not satisfy that requirement.
9
+
10
+ Build failed with exit code 2
@@ -0,0 +1,18 @@
1
+ + npm install
2
+ npm ERR! code ERESOLVE
3
+ npm ERR! ERESOLVE unable to resolve dependency tree
4
+ npm ERR!
5
+ npm ERR! While resolving: checkout-service@2.1.0
6
+ npm ERR! Found: react@18.3.1
7
+ npm ERR! node_modules/react
8
+ npm ERR! react@"^18.3.1" from the root project
9
+ npm ERR!
10
+ npm ERR! Could not resolve dependency:
11
+ npm ERR! peer react@"^17.0.0" from react-legacy-widgets@4.2.0
12
+ npm ERR! node_modules/react-legacy-widgets
13
+ npm ERR! react-legacy-widgets@"^4.2.0" from the root project
14
+ npm ERR!
15
+ npm ERR! Fix the upstream dependency conflict, or retry
16
+ npm ERR! this command with --force or --legacy-peer-deps
17
+ npm ERR! A complete log of this run can be found in: /root/.npm/_logs/2026-07-08T09_12_00_000Z-debug-0.log
18
+ Build failed with exit code 1.
@@ -0,0 +1,14 @@
1
+ + vue-tsc --noEmit -p tsconfig.json --composite false
2
+ src/components/OrderSummary.vue:28:11 - error TS2322: Type 'number | undefined' is not assignable to type 'number'.
3
+
4
+ 28 <TotalLabel :amount="order.total" />
5
+ ~~~~~~
6
+
7
+ src/types/order.ts:9:3
8
+ 9 total: number;
9
+ ~~~~~
10
+ The expected type comes from property 'total' which is declared here on type 'Order'.
11
+
12
+ Found 1 error in src/components/OrderSummary.vue:28
13
+
14
+ Build failed with exit code 2
@@ -0,0 +1,8 @@
1
+ ~~~ Running commands
2
+ $ docker build -t app:ci .
3
+ [+] Building 4.2s (8/12)
4
+ #8 [5/9] COPY app/config/production.yaml /app/config/production.yaml
5
+ failed to solve: failed to compute cache key: "/app/config/production.yaml": not found
6
+ no such file or directory
7
+ ^^^ +++
8
+ user command error: exited with status 1
@@ -0,0 +1,11 @@
1
+ ~~~ Running commands
2
+ $ pnpm install --frozen-lockfile
3
+ Lockfile is up to date, resolution step is skipped
4
+ Fetching dependencies
5
+
6
+ ERR_PNPM_OUTDATED_LOCKFILE Cannot install with "frozen-lockfile" because pnpm-lock.yaml is not up to date with dashboard-ui/package.json
7
+
8
+ Failure reason:
9
+ specifiers in the lockfile ({"date-fns":"^2.30.0"}) don't match specs in package.json ({"date-fns":"^3.6.0"})
10
+
11
+ user command error: exited with status 1
@@ -0,0 +1,11 @@
1
+ Run cargo test
2
+ running 12 tests
3
+ thread 'store::tests::rejects_negative_balance' panicked at crates/store/src/lib.rs:58:9:
4
+ assertion failed: `(left == right)`
5
+ left: `-5`,
6
+ right: `0`
7
+ test store::tests::rejects_negative_balance ... FAILED
8
+
9
+ test result: FAILED. 11 passed; 1 failed; 0 ignored; 0 measured; 0 filtered out
10
+
11
+ error: test failed, to rerun pass `-p store --lib`
@@ -0,0 +1,15 @@
1
+ #!/bin/bash -eo pipefail
2
+ bundle install --jobs=4 --retry=3
3
+ Fetching gem metadata from https://rubygems.org/...
4
+ Installing nokogiri 1.16.5 with native extensions
5
+ Gem::Ext::BuildError: ERROR: Failed to build gem native extension.
6
+
7
+ current directory: /builds/project/vendor/bundle/ruby/3.2.0/gems/nokogiri-1.16.5/ext/nokogiri
8
+ /usr/bin/ruby3.2 extconf.rb
9
+ checking if the C compiler accepts ... *** extconf.rb failed ***
10
+ Could not create Makefile due to some reason, probably lack of necessary libraries and/or headers.
11
+ Check the mkmf.log file for more details.
12
+
13
+ An error occurred while installing nokogiri (1.16.5), and Bundler cannot continue.
14
+
15
+ Exited with code exit status 1
@@ -0,0 +1,4 @@
1
+ {
2
+ "failure_class": "git_checkout_failure",
3
+ "minimum_confidence": 0.7
4
+ }
@@ -0,0 +1,9 @@
1
+ #!/bin/bash -eo pipefail
2
+ Checkout code
3
+ Cloning git repository
4
+ Cloning into 'project'...
5
+ Downloading assets/demo-render.mov (82 MB)
6
+ Error downloading object: assets/demo-render.mov (a1b2c3d): Smudge error: Error downloading assets/demo-render.mov (a1b2c3d4e5f67890): smudge filter lfs failed
7
+ error downloading object
8
+
9
+ Exited with code exit status 1
@@ -0,0 +1,4 @@
1
+ {
2
+ "failure_class": "runner_resource_exhaustion",
3
+ "minimum_confidence": 0.7
4
+ }
@@ -0,0 +1,12 @@
1
+ #!/bin/bash -eo pipefail
2
+ yarn build
3
+ $ yarn build
4
+ yarn run v1.22.19
5
+ $ webpack --mode production
6
+ <--- Last few GCs --->
7
+
8
+ FATAL ERROR: JavaScript heap out of memory
9
+ Out of memory: Killed process 412 (node) total-vm:5231212kB
10
+
11
+ Exited with code exit status 137
12
+ CircleCI received exit code 137
@@ -0,0 +1,18 @@
1
+ $ cargo test --workspace
2
+ running 18 tests
3
+ test scheduler::tests::retries_backoff_capped ... FAILED
4
+
5
+ failures:
6
+
7
+ ---- scheduler::tests::retries_backoff_capped stdout ----
8
+ thread 'scheduler::tests::retries_backoff_capped' panicked at crates/scheduler/src/lib.rs:73:9:
9
+ assertion `left == right` failed
10
+ left: 32
11
+ right: 30
12
+
13
+ failures:
14
+ scheduler::tests::retries_backoff_capped
15
+
16
+ test result: FAILED. 17 passed; 1 failed; 0 ignored; 0 measured
17
+ error: test failed, to rerun pass `-p scheduler --lib`
18
+ Cirrus CI task failed with exit code 101
@@ -0,0 +1,4 @@
1
+ {
2
+ "failure_class": "go_lint",
3
+ "minimum_confidence": 0.7
4
+ }
@@ -0,0 +1,6 @@
1
+ Step #2 - "lint": + golangci-lint run ./...
2
+ Step #2 - "lint": internal/pricing/discount.go:58:2: ineffectual assignment to err (ineffassign)
3
+ Step #2 - "lint": internal/pricing/discount.go:71:14: S1021: should merge variable declaration with assignment (gosimple)
4
+ Step #2 - "lint": 2 issues found
5
+ Finished Step #2 - "lint"
6
+ ERROR: build step 2 "golangci/golangci-lint" failed: exit status 1
@@ -0,0 +1,4 @@
1
+ {
2
+ "failure_class": "node_test_failure",
3
+ "minimum_confidence": 0.7
4
+ }
@@ -0,0 +1,19 @@
1
+ [Container] Running command npm test
2
+
3
+ > checkout-api@1.4.0 test
4
+ > jest --ci
5
+
6
+ FAIL src/handlers/refund.test.ts
7
+ refund handler
8
+ ✕ rejects refunds above the remaining balance (14 ms)
9
+
10
+ ● refund handler > rejects refunds above the remaining balance
11
+
12
+ expect(received).toBe(expected)
13
+
14
+ Expected: 400
15
+ Received: 200
16
+
17
+ Tests: 1 failed, 22 passed, 23 total
18
+ Test Suites: 1 failed, 6 passed, 7 total
19
+ [Container] Command did not exit successfully npm test exit status 1
@@ -0,0 +1,4 @@
1
+ {
2
+ "failure_class": "security_scan_failure",
3
+ "minimum_confidence": 0.7
4
+ }
@@ -0,0 +1,15 @@
1
+ Step: Scan image
2
+ $ trivy image --exit-code 1 --severity CRITICAL registry.example.com/api-gateway:sha-9f31c02
3
+
4
+ api-gateway:sha-9f31c02 (alpine 3.18.4)
5
+ =======================================
6
+ Total: 2 (CRITICAL: 2)
7
+
8
+ +-------------+------------------+----------+-------------------+---------------+
9
+ | LIBRARY | VULNERABILITY ID | SEVERITY | INSTALLED VERSION | FIXED VERSION |
10
+ +-------------+------------------+----------+-------------------+---------------+
11
+ | openssl | CVE-2024-0727 | CRITICAL | 3.1.4-r0 | 3.1.4-r5 |
12
+ | libcrypto3 | CVE-2024-0727 | CRITICAL | 3.1.4-r0 | 3.1.4-r5 |
13
+ +-------------+------------------+----------+-------------------+---------------+
14
+
15
+ Codefresh step failed: exit code 1