open-code-review-toolkit 0.13.0__tar.gz → 0.13.1__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 (142) hide show
  1. {open_code_review_toolkit-0.13.0 → open_code_review_toolkit-0.13.1}/PKG-INFO +7 -1
  2. {open_code_review_toolkit-0.13.0 → open_code_review_toolkit-0.13.1}/README.md +6 -0
  3. {open_code_review_toolkit-0.13.0 → open_code_review_toolkit-0.13.1}/src/ocr_toolkit/_version.py +2 -2
  4. open_code_review_toolkit-0.13.1/src/ocr_toolkit/evidence/gitlink_projection.py +770 -0
  5. open_code_review_toolkit-0.13.1/src/ocr_toolkit/evidence/gitlinks.py +188 -0
  6. {open_code_review_toolkit-0.13.0 → open_code_review_toolkit-0.13.1}/src/ocr_toolkit/evidence/repository.py +60 -0
  7. {open_code_review_toolkit-0.13.0 → open_code_review_toolkit-0.13.1}/src/ocr_toolkit/ocr_result.py +4 -1
  8. {open_code_review_toolkit-0.13.0 → open_code_review_toolkit-0.13.1}/src/ocr_toolkit/posting/formatting.py +3 -0
  9. {open_code_review_toolkit-0.13.0 → open_code_review_toolkit-0.13.1}/src/ocr_toolkit/posting/freshness.py +8 -2
  10. {open_code_review_toolkit-0.13.0 → open_code_review_toolkit-0.13.1}/src/ocr_toolkit/posting/workflow.py +148 -12
  11. {open_code_review_toolkit-0.13.0 → open_code_review_toolkit-0.13.1}/src/ocr_toolkit/pre_execution.py +73 -5
  12. {open_code_review_toolkit-0.13.0 → open_code_review_toolkit-0.13.1}/src/ocr_toolkit/providers/local.py +18 -3
  13. {open_code_review_toolkit-0.13.0 → open_code_review_toolkit-0.13.1}/src/ocr_toolkit/reporting/model.py +14 -1
  14. open_code_review_toolkit-0.13.1/src/ocr_toolkit/repository_coverage.py +138 -0
  15. {open_code_review_toolkit-0.13.0 → open_code_review_toolkit-0.13.1}/src/ocr_toolkit/review_receipt.py +16 -1
  16. {open_code_review_toolkit-0.13.0 → open_code_review_toolkit-0.13.1}/src/ocr_toolkit/review_runner.py +188 -16
  17. open_code_review_toolkit-0.13.0/src/ocr_toolkit/evidence/gitlinks.py +0 -66
  18. {open_code_review_toolkit-0.13.0 → open_code_review_toolkit-0.13.1}/.gitignore +0 -0
  19. {open_code_review_toolkit-0.13.0 → open_code_review_toolkit-0.13.1}/LICENSE +0 -0
  20. {open_code_review_toolkit-0.13.0 → open_code_review_toolkit-0.13.1}/pyproject.toml +0 -0
  21. {open_code_review_toolkit-0.13.0 → open_code_review_toolkit-0.13.1}/src/ocr_toolkit/__init__.py +0 -0
  22. {open_code_review_toolkit-0.13.0 → open_code_review_toolkit-0.13.1}/src/ocr_toolkit/cli.py +0 -0
  23. {open_code_review_toolkit-0.13.0 → open_code_review_toolkit-0.13.1}/src/ocr_toolkit/common/__init__.py +0 -0
  24. {open_code_review_toolkit-0.13.0 → open_code_review_toolkit-0.13.1}/src/ocr_toolkit/common/filesystem.py +0 -0
  25. {open_code_review_toolkit-0.13.0 → open_code_review_toolkit-0.13.1}/src/ocr_toolkit/common/git.py +0 -0
  26. {open_code_review_toolkit-0.13.0 → open_code_review_toolkit-0.13.1}/src/ocr_toolkit/common/language.py +0 -0
  27. {open_code_review_toolkit-0.13.0 → open_code_review_toolkit-0.13.1}/src/ocr_toolkit/common/markdown.py +0 -0
  28. {open_code_review_toolkit-0.13.0 → open_code_review_toolkit-0.13.1}/src/ocr_toolkit/common/redaction.py +0 -0
  29. {open_code_review_toolkit-0.13.0 → open_code_review_toolkit-0.13.1}/src/ocr_toolkit/config_writer.py +0 -0
  30. {open_code_review_toolkit-0.13.0 → open_code_review_toolkit-0.13.1}/src/ocr_toolkit/configure.py +0 -0
  31. {open_code_review_toolkit-0.13.0 → open_code_review_toolkit-0.13.1}/src/ocr_toolkit/context/__init__.py +0 -0
  32. {open_code_review_toolkit-0.13.0 → open_code_review_toolkit-0.13.1}/src/ocr_toolkit/context/broker.py +0 -0
  33. {open_code_review_toolkit-0.13.0 → open_code_review_toolkit-0.13.1}/src/ocr_toolkit/context/ci_outcomes.py +0 -0
  34. {open_code_review_toolkit-0.13.0 → open_code_review_toolkit-0.13.1}/src/ocr_toolkit/context/contracts.py +0 -0
  35. {open_code_review_toolkit-0.13.0 → open_code_review_toolkit-0.13.1}/src/ocr_toolkit/context/dlp.py +0 -0
  36. {open_code_review_toolkit-0.13.0 → open_code_review_toolkit-0.13.1}/src/ocr_toolkit/context/mcp.py +0 -0
  37. {open_code_review_toolkit-0.13.0 → open_code_review_toolkit-0.13.1}/src/ocr_toolkit/context/policy.py +0 -0
  38. {open_code_review_toolkit-0.13.0 → open_code_review_toolkit-0.13.1}/src/ocr_toolkit/context/recognizers.py +0 -0
  39. {open_code_review_toolkit-0.13.0 → open_code_review_toolkit-0.13.1}/src/ocr_toolkit/context/store.py +0 -0
  40. {open_code_review_toolkit-0.13.0 → open_code_review_toolkit-0.13.1}/src/ocr_toolkit/evidence/__init__.py +0 -0
  41. {open_code_review_toolkit-0.13.0 → open_code_review_toolkit-0.13.1}/src/ocr_toolkit/evidence/__main__.py +0 -0
  42. {open_code_review_toolkit-0.13.0 → open_code_review_toolkit-0.13.1}/src/ocr_toolkit/evidence/actions.py +0 -0
  43. {open_code_review_toolkit-0.13.0 → open_code_review_toolkit-0.13.1}/src/ocr_toolkit/evidence/artifacts.py +0 -0
  44. {open_code_review_toolkit-0.13.0 → open_code_review_toolkit-0.13.1}/src/ocr_toolkit/evidence/categorize.py +0 -0
  45. {open_code_review_toolkit-0.13.0 → open_code_review_toolkit-0.13.1}/src/ocr_toolkit/evidence/collect.py +0 -0
  46. {open_code_review_toolkit-0.13.0 → open_code_review_toolkit-0.13.1}/src/ocr_toolkit/evidence/collectors/__init__.py +0 -0
  47. {open_code_review_toolkit-0.13.0 → open_code_review_toolkit-0.13.1}/src/ocr_toolkit/evidence/collectors/graphs.py +0 -0
  48. {open_code_review_toolkit-0.13.0 → open_code_review_toolkit-0.13.1}/src/ocr_toolkit/evidence/collectors/orchestration.py +0 -0
  49. {open_code_review_toolkit-0.13.0 → open_code_review_toolkit-0.13.1}/src/ocr_toolkit/evidence/collectors/projections.py +0 -0
  50. {open_code_review_toolkit-0.13.0 → open_code_review_toolkit-0.13.1}/src/ocr_toolkit/evidence/collectors/registry.py +0 -0
  51. {open_code_review_toolkit-0.13.0 → open_code_review_toolkit-0.13.1}/src/ocr_toolkit/evidence/collectors/sources.py +0 -0
  52. {open_code_review_toolkit-0.13.0 → open_code_review_toolkit-0.13.1}/src/ocr_toolkit/evidence/coverage.py +0 -0
  53. {open_code_review_toolkit-0.13.0 → open_code_review_toolkit-0.13.1}/src/ocr_toolkit/evidence/ecosystems/__init__.py +0 -0
  54. {open_code_review_toolkit-0.13.0 → open_code_review_toolkit-0.13.1}/src/ocr_toolkit/evidence/ecosystems/ansible/__init__.py +0 -0
  55. {open_code_review_toolkit-0.13.0 → open_code_review_toolkit-0.13.1}/src/ocr_toolkit/evidence/ecosystems/ansible/requirements.py +0 -0
  56. {open_code_review_toolkit-0.13.0 → open_code_review_toolkit-0.13.1}/src/ocr_toolkit/evidence/ecosystems/ansible/topology.py +0 -0
  57. {open_code_review_toolkit-0.13.0 → open_code_review_toolkit-0.13.1}/src/ocr_toolkit/evidence/ecosystems/contracts.py +0 -0
  58. {open_code_review_toolkit-0.13.0 → open_code_review_toolkit-0.13.1}/src/ocr_toolkit/evidence/ecosystems/go.py +0 -0
  59. {open_code_review_toolkit-0.13.0 → open_code_review_toolkit-0.13.1}/src/ocr_toolkit/evidence/ecosystems/javascript.py +0 -0
  60. {open_code_review_toolkit-0.13.0 → open_code_review_toolkit-0.13.1}/src/ocr_toolkit/evidence/ecosystems/php.py +0 -0
  61. {open_code_review_toolkit-0.13.0 → open_code_review_toolkit-0.13.1}/src/ocr_toolkit/evidence/ecosystems/python.py +0 -0
  62. {open_code_review_toolkit-0.13.0 → open_code_review_toolkit-0.13.1}/src/ocr_toolkit/evidence/frameworks/__init__.py +0 -0
  63. {open_code_review_toolkit-0.13.0 → open_code_review_toolkit-0.13.1}/src/ocr_toolkit/evidence/frameworks/contracts.py +0 -0
  64. {open_code_review_toolkit-0.13.0 → open_code_review_toolkit-0.13.1}/src/ocr_toolkit/evidence/frameworks/detection.py +0 -0
  65. {open_code_review_toolkit-0.13.0 → open_code_review_toolkit-0.13.1}/src/ocr_toolkit/evidence/frameworks/providers/__init__.py +0 -0
  66. {open_code_review_toolkit-0.13.0 → open_code_review_toolkit-0.13.1}/src/ocr_toolkit/evidence/frameworks/providers/frontend.py +0 -0
  67. {open_code_review_toolkit-0.13.0 → open_code_review_toolkit-0.13.1}/src/ocr_toolkit/evidence/frameworks/providers/go.py +0 -0
  68. {open_code_review_toolkit-0.13.0 → open_code_review_toolkit-0.13.1}/src/ocr_toolkit/evidence/frameworks/providers/php.py +0 -0
  69. {open_code_review_toolkit-0.13.0 → open_code_review_toolkit-0.13.1}/src/ocr_toolkit/evidence/frameworks/providers/python.py +0 -0
  70. {open_code_review_toolkit-0.13.0 → open_code_review_toolkit-0.13.1}/src/ocr_toolkit/evidence/frameworks/registry.py +0 -0
  71. {open_code_review_toolkit-0.13.0 → open_code_review_toolkit-0.13.1}/src/ocr_toolkit/evidence/frameworks/schema.py +0 -0
  72. {open_code_review_toolkit-0.13.0 → open_code_review_toolkit-0.13.1}/src/ocr_toolkit/evidence/frameworks/templates.py +0 -0
  73. {open_code_review_toolkit-0.13.0 → open_code_review_toolkit-0.13.1}/src/ocr_toolkit/evidence/infrastructure.py +0 -0
  74. {open_code_review_toolkit-0.13.0 → open_code_review_toolkit-0.13.1}/src/ocr_toolkit/evidence/invocation.py +0 -0
  75. {open_code_review_toolkit-0.13.0 → open_code_review_toolkit-0.13.1}/src/ocr_toolkit/evidence/mcp.py +0 -0
  76. {open_code_review_toolkit-0.13.0 → open_code_review_toolkit-0.13.1}/src/ocr_toolkit/evidence/model.py +0 -0
  77. {open_code_review_toolkit-0.13.0 → open_code_review_toolkit-0.13.1}/src/ocr_toolkit/evidence/opaque_code.py +0 -0
  78. {open_code_review_toolkit-0.13.0 → open_code_review_toolkit-0.13.1}/src/ocr_toolkit/evidence/policy/__init__.py +0 -0
  79. {open_code_review_toolkit-0.13.0 → open_code_review_toolkit-0.13.1}/src/ocr_toolkit/evidence/policy/contracts.py +0 -0
  80. {open_code_review_toolkit-0.13.0 → open_code_review_toolkit-0.13.1}/src/ocr_toolkit/evidence/policy/decisions.py +0 -0
  81. {open_code_review_toolkit-0.13.0 → open_code_review_toolkit-0.13.1}/src/ocr_toolkit/evidence/policy/guidance.py +0 -0
  82. {open_code_review_toolkit-0.13.0 → open_code_review_toolkit-0.13.1}/src/ocr_toolkit/evidence/policy/registry.py +0 -0
  83. {open_code_review_toolkit-0.13.0 → open_code_review_toolkit-0.13.1}/src/ocr_toolkit/evidence/policy/schema.py +0 -0
  84. {open_code_review_toolkit-0.13.0 → open_code_review_toolkit-0.13.1}/src/ocr_toolkit/evidence/policy/scopes.py +0 -0
  85. {open_code_review_toolkit-0.13.0 → open_code_review_toolkit-0.13.1}/src/ocr_toolkit/evidence/project.py +0 -0
  86. {open_code_review_toolkit-0.13.0 → open_code_review_toolkit-0.13.1}/src/ocr_toolkit/evidence/review_context.py +0 -0
  87. {open_code_review_toolkit-0.13.0 → open_code_review_toolkit-0.13.1}/src/ocr_toolkit/evidence/store/__init__.py +0 -0
  88. {open_code_review_toolkit-0.13.0 → open_code_review_toolkit-0.13.1}/src/ocr_toolkit/evidence/store/atomic.py +0 -0
  89. {open_code_review_toolkit-0.13.0 → open_code_review_toolkit-0.13.1}/src/ocr_toolkit/evidence/store/contracts.py +0 -0
  90. {open_code_review_toolkit-0.13.0 → open_code_review_toolkit-0.13.1}/src/ocr_toolkit/evidence/store/core.py +0 -0
  91. {open_code_review_toolkit-0.13.0 → open_code_review_toolkit-0.13.1}/src/ocr_toolkit/evidence/store/readback.py +0 -0
  92. {open_code_review_toolkit-0.13.0 → open_code_review_toolkit-0.13.1}/src/ocr_toolkit/evidence/store/values.py +0 -0
  93. {open_code_review_toolkit-0.13.0 → open_code_review_toolkit-0.13.1}/src/ocr_toolkit/federation/__init__.py +0 -0
  94. {open_code_review_toolkit-0.13.0 → open_code_review_toolkit-0.13.1}/src/ocr_toolkit/federation/admission.py +0 -0
  95. {open_code_review_toolkit-0.13.0 → open_code_review_toolkit-0.13.1}/src/ocr_toolkit/federation/contracts.py +0 -0
  96. {open_code_review_toolkit-0.13.0 → open_code_review_toolkit-0.13.1}/src/ocr_toolkit/federation/gateway.py +0 -0
  97. {open_code_review_toolkit-0.13.0 → open_code_review_toolkit-0.13.1}/src/ocr_toolkit/federation/registry.py +0 -0
  98. {open_code_review_toolkit-0.13.0 → open_code_review_toolkit-0.13.1}/src/ocr_toolkit/federation/relay.py +0 -0
  99. {open_code_review_toolkit-0.13.0 → open_code_review_toolkit-0.13.1}/src/ocr_toolkit/federation/runtime.py +0 -0
  100. {open_code_review_toolkit-0.13.0 → open_code_review_toolkit-0.13.1}/src/ocr_toolkit/federation/transport.py +0 -0
  101. {open_code_review_toolkit-0.13.0 → open_code_review_toolkit-0.13.1}/src/ocr_toolkit/local_chatgpt.py +0 -0
  102. {open_code_review_toolkit-0.13.0 → open_code_review_toolkit-0.13.1}/src/ocr_toolkit/mcp_config.py +0 -0
  103. {open_code_review_toolkit-0.13.0 → open_code_review_toolkit-0.13.1}/src/ocr_toolkit/posting/__init__.py +0 -0
  104. {open_code_review_toolkit-0.13.0 → open_code_review_toolkit-0.13.1}/src/ocr_toolkit/posting/__main__.py +0 -0
  105. {open_code_review_toolkit-0.13.0 → open_code_review_toolkit-0.13.1}/src/ocr_toolkit/posting/approval.py +0 -0
  106. {open_code_review_toolkit-0.13.0 → open_code_review_toolkit-0.13.1}/src/ocr_toolkit/posting/comments.py +0 -0
  107. {open_code_review_toolkit-0.13.0 → open_code_review_toolkit-0.13.1}/src/ocr_toolkit/posting/gitlab.py +0 -0
  108. {open_code_review_toolkit-0.13.0 → open_code_review_toolkit-0.13.1}/src/ocr_toolkit/posting/gitlab_approval.py +0 -0
  109. {open_code_review_toolkit-0.13.0 → open_code_review_toolkit-0.13.1}/src/ocr_toolkit/posting/markers.py +0 -0
  110. {open_code_review_toolkit-0.13.0 → open_code_review_toolkit-0.13.1}/src/ocr_toolkit/posting/payloads.py +0 -0
  111. {open_code_review_toolkit-0.13.0 → open_code_review_toolkit-0.13.1}/src/ocr_toolkit/posting/reconciliation.py +0 -0
  112. {open_code_review_toolkit-0.13.0 → open_code_review_toolkit-0.13.1}/src/ocr_toolkit/posting/result.py +0 -0
  113. {open_code_review_toolkit-0.13.0 → open_code_review_toolkit-0.13.1}/src/ocr_toolkit/posting/settings.py +0 -0
  114. {open_code_review_toolkit-0.13.0 → open_code_review_toolkit-0.13.1}/src/ocr_toolkit/posting/snapshot.py +0 -0
  115. {open_code_review_toolkit-0.13.0 → open_code_review_toolkit-0.13.1}/src/ocr_toolkit/posting/suggestions.py +0 -0
  116. {open_code_review_toolkit-0.13.0 → open_code_review_toolkit-0.13.1}/src/ocr_toolkit/posting/transaction.py +0 -0
  117. {open_code_review_toolkit-0.13.0 → open_code_review_toolkit-0.13.1}/src/ocr_toolkit/preflight.py +0 -0
  118. {open_code_review_toolkit-0.13.0 → open_code_review_toolkit-0.13.1}/src/ocr_toolkit/provider_config.py +0 -0
  119. {open_code_review_toolkit-0.13.0 → open_code_review_toolkit-0.13.1}/src/ocr_toolkit/provider_failure.py +0 -0
  120. {open_code_review_toolkit-0.13.0 → open_code_review_toolkit-0.13.1}/src/ocr_toolkit/providers/__init__.py +0 -0
  121. {open_code_review_toolkit-0.13.0 → open_code_review_toolkit-0.13.1}/src/ocr_toolkit/providers/gitlab.py +0 -0
  122. {open_code_review_toolkit-0.13.0 → open_code_review_toolkit-0.13.1}/src/ocr_toolkit/providers/gitlab_ci.py +0 -0
  123. {open_code_review_toolkit-0.13.0 → open_code_review_toolkit-0.13.1}/src/ocr_toolkit/providers/gitlab_context.py +0 -0
  124. {open_code_review_toolkit-0.13.0 → open_code_review_toolkit-0.13.1}/src/ocr_toolkit/providers/gitlab_discussions.py +0 -0
  125. {open_code_review_toolkit-0.13.0 → open_code_review_toolkit-0.13.1}/src/ocr_toolkit/providers/gitlab_identity.py +0 -0
  126. {open_code_review_toolkit-0.13.0 → open_code_review_toolkit-0.13.1}/src/ocr_toolkit/providers/gitlab_remediation.py +0 -0
  127. {open_code_review_toolkit-0.13.0 → open_code_review_toolkit-0.13.1}/src/ocr_toolkit/providers/local_config.py +0 -0
  128. {open_code_review_toolkit-0.13.0 → open_code_review_toolkit-0.13.1}/src/ocr_toolkit/py.typed +0 -0
  129. {open_code_review_toolkit-0.13.0 → open_code_review_toolkit-0.13.1}/src/ocr_toolkit/reporting/__init__.py +0 -0
  130. {open_code_review_toolkit-0.13.0 → open_code_review_toolkit-0.13.1}/src/ocr_toolkit/reporting/dlp.py +0 -0
  131. {open_code_review_toolkit-0.13.0 → open_code_review_toolkit-0.13.1}/src/ocr_toolkit/reporting/federation.py +0 -0
  132. {open_code_review_toolkit-0.13.0 → open_code_review_toolkit-0.13.1}/src/ocr_toolkit/reporting/metadata.py +0 -0
  133. {open_code_review_toolkit-0.13.0 → open_code_review_toolkit-0.13.1}/src/ocr_toolkit/reporting/outcome.py +0 -0
  134. {open_code_review_toolkit-0.13.0 → open_code_review_toolkit-0.13.1}/src/ocr_toolkit/reporting/result.py +0 -0
  135. {open_code_review_toolkit-0.13.0 → open_code_review_toolkit-0.13.1}/src/ocr_toolkit/reporting/sections.py +0 -0
  136. {open_code_review_toolkit-0.13.0 → open_code_review_toolkit-0.13.1}/src/ocr_toolkit/reporting/text.py +0 -0
  137. {open_code_review_toolkit-0.13.0 → open_code_review_toolkit-0.13.1}/src/ocr_toolkit/reporting/usage.py +0 -0
  138. {open_code_review_toolkit-0.13.0 → open_code_review_toolkit-0.13.1}/src/ocr_toolkit/result_contract.py +0 -0
  139. {open_code_review_toolkit-0.13.0 → open_code_review_toolkit-0.13.1}/src/ocr_toolkit/result_usage.py +0 -0
  140. {open_code_review_toolkit-0.13.0 → open_code_review_toolkit-0.13.1}/src/ocr_toolkit/review_debug.py +0 -0
  141. {open_code_review_toolkit-0.13.0 → open_code_review_toolkit-0.13.1}/src/ocr_toolkit/review_identity.py +0 -0
  142. {open_code_review_toolkit-0.13.0 → open_code_review_toolkit-0.13.1}/src/ocr_toolkit/review_progress.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.5
2
2
  Name: open-code-review-toolkit
3
- Version: 0.13.0
3
+ Version: 0.13.1
4
4
  Summary: Unofficial GitLab CI integration layer for Open Code Review
5
5
  Project-URL: Homepage, https://github.com/xeonvs/open-code-review-toolkit
6
6
  Project-URL: Repository, https://github.com/xeonvs/open-code-review-toolkit
@@ -324,6 +324,12 @@ On a successful rerun, the toolkit replaces untouched OCR-only notes instead of
324
324
 
325
325
  Suppression uses both the GitLab diff position and a stable finding fingerprint, so ordinary line shifts do not normally bring the same bug back. A materially changed finding can still receive a new discussion. See [GitLab review operations](docs/operations.md) for the complete lifecycle, posting modes, permissions, failure behavior, and Mermaid state diagram.
326
326
 
327
+ For a safely separable changed Git submodule pointer under qualified OCR
328
+ 1.13.3, the toolkit reviews selected ordinary files and labels repository
329
+ coverage partial. It leaves the pointer and submodule contents unreviewed,
330
+ preserves prior finding threads and cannot automatically approve. A diff with
331
+ no selected ordinary files starts no model review and posts an advisory status.
332
+
327
333
  After every current review note publishes, the GitLab adapter can add a conservative approval bound to receipt v11's exact reviewed diff, actual target, policy authority, merge-request author, DLP mode, and reconciled federation use. This write is enabled by default; set `OCR_AUTO_APPROVE=false` when the bot must remain comment-only. DLP-clean metadata, generic discussions, protected same-revision CI outcomes, unused governed services, and successful `review_read` tool use do not independently block approval. An unprotected target, disabled DLP, degraded metadata, a DLP rejection, required context degradation, admitted remediation history, older receipts, publication filtering, used advisory tools, uncertain federation accounting, author movement, or bot self-authorship prevents an approval write. A CI status is review context, never approval authority. GitLab approval rules, Code Owners, and protected-branch policy remain authoritative merge policy. They are not prerequisites for OCR execution. The toolkit only adds an eligible approval; it never removes an existing approval when a later review is ineligible or disabled.
328
334
 
329
335
  An intentionally absent toolkit receipt retains compatible direct posting outside
@@ -90,6 +90,12 @@ On a successful rerun, the toolkit replaces untouched OCR-only notes instead of
90
90
 
91
91
  Suppression uses both the GitLab diff position and a stable finding fingerprint, so ordinary line shifts do not normally bring the same bug back. A materially changed finding can still receive a new discussion. See [GitLab review operations](docs/operations.md) for the complete lifecycle, posting modes, permissions, failure behavior, and Mermaid state diagram.
92
92
 
93
+ For a safely separable changed Git submodule pointer under qualified OCR
94
+ 1.13.3, the toolkit reviews selected ordinary files and labels repository
95
+ coverage partial. It leaves the pointer and submodule contents unreviewed,
96
+ preserves prior finding threads and cannot automatically approve. A diff with
97
+ no selected ordinary files starts no model review and posts an advisory status.
98
+
93
99
  After every current review note publishes, the GitLab adapter can add a conservative approval bound to receipt v11's exact reviewed diff, actual target, policy authority, merge-request author, DLP mode, and reconciled federation use. This write is enabled by default; set `OCR_AUTO_APPROVE=false` when the bot must remain comment-only. DLP-clean metadata, generic discussions, protected same-revision CI outcomes, unused governed services, and successful `review_read` tool use do not independently block approval. An unprotected target, disabled DLP, degraded metadata, a DLP rejection, required context degradation, admitted remediation history, older receipts, publication filtering, used advisory tools, uncertain federation accounting, author movement, or bot self-authorship prevents an approval write. A CI status is review context, never approval authority. GitLab approval rules, Code Owners, and protected-branch policy remain authoritative merge policy. They are not prerequisites for OCR execution. The toolkit only adds an eligible approval; it never removes an existing approval when a later review is ineligible or disabled.
94
100
 
95
101
  An intentionally absent toolkit receipt retains compatible direct posting outside
@@ -18,7 +18,7 @@ version_tuple: tuple[int | str, ...]
18
18
  commit_id: str | None
19
19
  __commit_id__: str | None
20
20
 
21
- __version__ = version = '0.13.0'
22
- __version_tuple__ = version_tuple = (0, 13, 0)
21
+ __version__ = version = '0.13.1'
22
+ __version_tuple__ = version_tuple = (0, 13, 1)
23
23
 
24
24
  __commit_id__ = commit_id = None