code-mower 1.5.0__tar.gz → 1.5.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 (709) hide show
  1. {code_mower-1.5.0 → code_mower-1.5.1}/PKG-INFO +12 -12
  2. {code_mower-1.5.0 → code_mower-1.5.1}/README.md +11 -11
  3. {code_mower-1.5.0 → code_mower-1.5.1}/docs/board-data-contract.md +14 -0
  4. {code_mower-1.5.0 → code_mower-1.5.1}/docs/build-loop-in-30-minutes.md +3 -3
  5. {code_mower-1.5.0 → code_mower-1.5.1}/docs/current-state-and-roadmap.md +5 -5
  6. {code_mower-1.5.0 → code_mower-1.5.1}/docs/early-adopter-invite-runbook.md +4 -4
  7. {code_mower-1.5.0 → code_mower-1.5.1}/docs/first-user-install-rehearsal.md +11 -11
  8. {code_mower-1.5.0 → code_mower-1.5.1}/docs/friendly-user-rollout-v05.md +5 -5
  9. {code_mower-1.5.0 → code_mower-1.5.1}/docs/install.md +47 -13
  10. {code_mower-1.5.0 → code_mower-1.5.1}/docs/local-audit-runner.md +7 -4
  11. {code_mower-1.5.0 → code_mower-1.5.1}/docs/mirror-removal-runbook.md +1 -1
  12. {code_mower-1.5.0 → code_mower-1.5.1}/docs/orchestrator-prompt-pack.md +19 -3
  13. {code_mower-1.5.0 → code_mower-1.5.1}/docs/oss-v1-checklist.md +1 -1
  14. {code_mower-1.5.0 → code_mower-1.5.1}/docs/package-customization.md +1 -1
  15. {code_mower-1.5.0 → code_mower-1.5.1}/docs/provider-matrix.md +1 -1
  16. {code_mower-1.5.0 → code_mower-1.5.1}/docs/public-release-checklist.md +9 -9
  17. {code_mower-1.5.0 → code_mower-1.5.1}/docs/pypi-release.md +21 -19
  18. {code_mower-1.5.0 → code_mower-1.5.1}/docs/quickstart.md +6 -6
  19. {code_mower-1.5.0 → code_mower-1.5.1}/docs/release-history.md +3 -0
  20. {code_mower-1.5.0 → code_mower-1.5.1}/docs/sessions.md +5 -2
  21. {code_mower-1.5.0 → code_mower-1.5.1}/docs/troubleshooting.md +21 -2
  22. {code_mower-1.5.0 → code_mower-1.5.1}/docs/try-in-10-minutes.md +27 -5
  23. {code_mower-1.5.0 → code_mower-1.5.1}/docs/upgrade-existing-repo.md +14 -10
  24. code_mower-1.5.1/docs/v151-qualification.md +43 -0
  25. code_mower-1.5.1/docs/v151-release-notes.md +56 -0
  26. code_mower-1.5.1/docs/v151-release-runbook.md +126 -0
  27. {code_mower-1.5.0 → code_mower-1.5.1}/pyproject.toml +4 -1
  28. {code_mower-1.5.0 → code_mower-1.5.1}/src/code_mower/__init__.py +1 -1
  29. {code_mower-1.5.0 → code_mower-1.5.1}/src/code_mower/audit_publication.py +50 -5
  30. {code_mower-1.5.0 → code_mower-1.5.1}/src/code_mower/board.py +11 -5
  31. {code_mower-1.5.0 → code_mower-1.5.1}/src/code_mower/doctor.py +20 -1
  32. {code_mower-1.5.0 → code_mower-1.5.1}/src/code_mower/doctor_checks/adoption.py +29 -5
  33. {code_mower-1.5.0 → code_mower-1.5.1}/src/code_mower/doctor_checks/github.py +6 -1
  34. {code_mower-1.5.0 → code_mower-1.5.1}/src/code_mower/doctor_checks/provider_review_hygiene.py +11 -7
  35. {code_mower-1.5.0 → code_mower-1.5.1}/src/code_mower/doctor_checks/providers.py +21 -14
  36. {code_mower-1.5.0 → code_mower-1.5.1}/src/code_mower/doctor_checks/runner.py +70 -14
  37. {code_mower-1.5.0 → code_mower-1.5.1}/src/code_mower/init.py +57 -10
  38. {code_mower-1.5.0 → code_mower-1.5.1}/src/code_mower/lane_status.py +35 -2
  39. {code_mower-1.5.0 → code_mower-1.5.1}/src/code_mower/package_manifest.py +3 -0
  40. {code_mower-1.5.0 → code_mower-1.5.1}/src/code_mower/release_readiness.py +15 -12
  41. {code_mower-1.5.0 → code_mower-1.5.1}/src/code_mower.egg-info/PKG-INFO +12 -12
  42. {code_mower-1.5.0 → code_mower-1.5.1}/src/code_mower.egg-info/SOURCES.txt +6 -1
  43. {code_mower-1.5.0 → code_mower-1.5.1}/tests/test_audit_publication.py +83 -0
  44. {code_mower-1.5.0 → code_mower-1.5.1}/tests/test_board.py +43 -0
  45. {code_mower-1.5.0 → code_mower-1.5.1}/tests/test_lane_status.py +89 -0
  46. {code_mower-1.5.0 → code_mower-1.5.1}/tests/test_release_hygiene.py +26 -26
  47. {code_mower-1.5.0 → code_mower-1.5.1}/tests/test_release_identity.py +11 -0
  48. {code_mower-1.5.0 → code_mower-1.5.1}/tests/test_release_v142.py +10 -10
  49. code_mower-1.5.0/tests/test_release_v150.py → code_mower-1.5.1/tests/test_release_v151.py +45 -44
  50. code_mower-1.5.1/tests/test_remote_observer_doctor_1053.py +232 -0
  51. code_mower-1.5.1/tests/test_safe_init_1054.py +237 -0
  52. {code_mower-1.5.0 → code_mower-1.5.1}/CODE_OF_CONDUCT.md +0 -0
  53. {code_mower-1.5.0 → code_mower-1.5.1}/LICENSE +0 -0
  54. {code_mower-1.5.0 → code_mower-1.5.1}/MANIFEST.in +0 -0
  55. {code_mower-1.5.0 → code_mower-1.5.1}/NOTICE +0 -0
  56. {code_mower-1.5.0 → code_mower-1.5.1}/SUPPORT.md +0 -0
  57. {code_mower-1.5.0 → code_mower-1.5.1}/docs/acp-bridge-spike.md +0 -0
  58. {code_mower-1.5.0 → code_mower-1.5.1}/docs/architecture.md +0 -0
  59. {code_mower-1.5.0 → code_mower-1.5.1}/docs/archive/README.md +0 -0
  60. {code_mower-1.5.0 → code_mower-1.5.1}/docs/archive/first-user-install-rehearsal-alpha4.md +0 -0
  61. {code_mower-1.5.0 → code_mower-1.5.1}/docs/archive/first-user-install-rehearsal-alpha5.md +0 -0
  62. {code_mower-1.5.0 → code_mower-1.5.1}/docs/archive/first-user-install-rehearsal-alpha6.md +0 -0
  63. {code_mower-1.5.0 → code_mower-1.5.1}/docs/archive/first-user-install-rehearsal-alpha8.md +0 -0
  64. {code_mower-1.5.0 → code_mower-1.5.1}/docs/archive/first-user-install-rehearsal-alpha9.md +0 -0
  65. {code_mower-1.5.0 → code_mower-1.5.1}/docs/authoring-intelligence.md +0 -0
  66. {code_mower-1.5.0 → code_mower-1.5.1}/docs/board-qualification.md +0 -0
  67. {code_mower-1.5.0 → code_mower-1.5.1}/docs/board-service-lifecycle.md +0 -0
  68. {code_mower-1.5.0 → code_mower-1.5.1}/docs/build-loop.md +0 -0
  69. {code_mower-1.5.0 → code_mower-1.5.1}/docs/builder-experiments.md +0 -0
  70. {code_mower-1.5.0 → code_mower-1.5.1}/docs/builders-grok-cursor.md +0 -0
  71. {code_mower-1.5.0 → code_mower-1.5.1}/docs/calibration-notes.md +0 -0
  72. {code_mower-1.5.0 → code_mower-1.5.1}/docs/calibration-pilot.md +0 -0
  73. {code_mower-1.5.0 → code_mower-1.5.1}/docs/cloud-benchmarking.md +0 -0
  74. {code_mower-1.5.0 → code_mower-1.5.1}/docs/cloud-contributor-runbook.md +0 -0
  75. {code_mower-1.5.0 → code_mower-1.5.1}/docs/cloud-data-contract.md +0 -0
  76. {code_mower-1.5.0 → code_mower-1.5.1}/docs/cloud-sharing.md +0 -0
  77. {code_mower-1.5.0 → code_mower-1.5.1}/docs/code-structure-roadmap.md +0 -0
  78. {code_mower-1.5.0 → code_mower-1.5.1}/docs/commercial-boundary.md +0 -0
  79. {code_mower-1.5.0 → code_mower-1.5.1}/docs/context-connections.md +0 -0
  80. {code_mower-1.5.0 → code_mower-1.5.1}/docs/context-delivery.md +0 -0
  81. {code_mower-1.5.0 → code_mower-1.5.1}/docs/context-graph-lifecycle.md +0 -0
  82. {code_mower-1.5.0 → code_mower-1.5.1}/docs/context-graph-queries.md +0 -0
  83. {code_mower-1.5.0 → code_mower-1.5.1}/docs/context-packet-schema.md +0 -0
  84. {code_mower-1.5.0 → code_mower-1.5.1}/docs/context-provider-contract.md +0 -0
  85. {code_mower-1.5.0 → code_mower-1.5.1}/docs/context-setup.md +0 -0
  86. {code_mower-1.5.0 → code_mower-1.5.1}/docs/devin-peer-support-qualification.md +0 -0
  87. {code_mower-1.5.0 → code_mower-1.5.1}/docs/devin-review-parity.md +0 -0
  88. {code_mower-1.5.0 → code_mower-1.5.1}/docs/devin-setup-prompt.md +0 -0
  89. {code_mower-1.5.0 → code_mower-1.5.1}/docs/devin-work-orders.md +0 -0
  90. {code_mower-1.5.0 → code_mower-1.5.1}/docs/doctrine-lens-proof-v2.md +0 -0
  91. {code_mower-1.5.0 → code_mower-1.5.1}/docs/early-adopter-v05.md +0 -0
  92. {code_mower-1.5.0 → code_mower-1.5.1}/docs/first-run-transcript.md +0 -0
  93. {code_mower-1.5.0 → code_mower-1.5.1}/docs/first-user-demo-transcript.md +0 -0
  94. {code_mower-1.5.0 → code_mower-1.5.1}/docs/github-setup.md +0 -0
  95. {code_mower-1.5.0 → code_mower-1.5.1}/docs/graphify-evaluation.md +0 -0
  96. {code_mower-1.5.0 → code_mower-1.5.1}/docs/graphify-setup.md +0 -0
  97. {code_mower-1.5.0 → code_mower-1.5.1}/docs/jira-adoption-rehearsal.md +0 -0
  98. {code_mower-1.5.0 → code_mower-1.5.1}/docs/jira-cloud-setup.md +0 -0
  99. {code_mower-1.5.0 → code_mower-1.5.1}/docs/lane-promotion-policy.md +0 -0
  100. {code_mower-1.5.0 → code_mower-1.5.1}/docs/lanes/README.md +0 -0
  101. {code_mower-1.5.0 → code_mower-1.5.1}/docs/lanes/claude.md +0 -0
  102. {code_mower-1.5.0 → code_mower-1.5.1}/docs/lanes/codex.md +0 -0
  103. {code_mower-1.5.0 → code_mower-1.5.1}/docs/lanes/cursor.md +0 -0
  104. {code_mower-1.5.0 → code_mower-1.5.1}/docs/lanes/devin.md +0 -0
  105. {code_mower-1.5.0 → code_mower-1.5.1}/docs/launch-command-surface.md +0 -0
  106. {code_mower-1.5.0 → code_mower-1.5.1}/docs/lens-calibration-report.md +0 -0
  107. {code_mower-1.5.0 → code_mower-1.5.1}/docs/operational-evidence.md +0 -0
  108. {code_mower-1.5.0 → code_mower-1.5.1}/docs/participant-qualification.md +0 -0
  109. {code_mower-1.5.0 → code_mower-1.5.1}/docs/planning-work-orders.md +0 -0
  110. {code_mower-1.5.0 → code_mower-1.5.1}/docs/post-v08-effectiveness-assessment.md +0 -0
  111. {code_mower-1.5.0 → code_mower-1.5.1}/docs/prd-addendum-v05-beta.md +0 -0
  112. {code_mower-1.5.0 → code_mower-1.5.1}/docs/privacy-threat-model.md +0 -0
  113. {code_mower-1.5.0 → code_mower-1.5.1}/docs/provider-calibration-scorecard.md +0 -0
  114. {code_mower-1.5.0 → code_mower-1.5.1}/docs/provider-diversity-provenance.md +0 -0
  115. {code_mower-1.5.0 → code_mower-1.5.1}/docs/release-qualification.md +0 -0
  116. {code_mower-1.5.0 → code_mower-1.5.1}/docs/repo-strategy.md +0 -0
  117. {code_mower-1.5.0 → code_mower-1.5.1}/docs/reviewer-value-report.md +0 -0
  118. {code_mower-1.5.0 → code_mower-1.5.1}/docs/sample-doctor-output.md +0 -0
  119. {code_mower-1.5.0 → code_mower-1.5.1}/docs/self-hosted-mac-runner.md +0 -0
  120. {code_mower-1.5.0 → code_mower-1.5.1}/docs/slack-contract.md +0 -0
  121. {code_mower-1.5.0 → code_mower-1.5.1}/docs/slack-ingress.md +0 -0
  122. {code_mower-1.5.0 → code_mower-1.5.1}/docs/slack-setup.md +0 -0
  123. {code_mower-1.5.0 → code_mower-1.5.1}/docs/supervised-pilot-contract.md +0 -0
  124. {code_mower-1.5.0 → code_mower-1.5.1}/docs/supervisor-contract.md +0 -0
  125. {code_mower-1.5.0 → code_mower-1.5.1}/docs/tracker-data-contract.md +0 -0
  126. {code_mower-1.5.0 → code_mower-1.5.1}/docs/v06-release-notes.md +0 -0
  127. {code_mower-1.5.0 → code_mower-1.5.1}/docs/v06-truth-baseline.md +0 -0
  128. {code_mower-1.5.0 → code_mower-1.5.1}/docs/v08-release-notes.md +0 -0
  129. {code_mower-1.5.0 → code_mower-1.5.1}/docs/v09-release-notes.md +0 -0
  130. {code_mower-1.5.0 → code_mower-1.5.1}/docs/v10-release-notes.md +0 -0
  131. {code_mower-1.5.0 → code_mower-1.5.1}/docs/v101-effectiveness-assessment.md +0 -0
  132. {code_mower-1.5.0 → code_mower-1.5.1}/docs/v101-release-notes.md +0 -0
  133. {code_mower-1.5.0 → code_mower-1.5.1}/docs/v1010-release-notes.md +0 -0
  134. {code_mower-1.5.0 → code_mower-1.5.1}/docs/v1011-release-notes.md +0 -0
  135. {code_mower-1.5.0 → code_mower-1.5.1}/docs/v1012-release-notes.md +0 -0
  136. {code_mower-1.5.0 → code_mower-1.5.1}/docs/v1013-release-notes.md +0 -0
  137. {code_mower-1.5.0 → code_mower-1.5.1}/docs/v1014-release-notes.md +0 -0
  138. {code_mower-1.5.0 → code_mower-1.5.1}/docs/v1015-release-notes.md +0 -0
  139. {code_mower-1.5.0 → code_mower-1.5.1}/docs/v102-release-notes.md +0 -0
  140. {code_mower-1.5.0 → code_mower-1.5.1}/docs/v103-installation-documentation-audit.md +0 -0
  141. {code_mower-1.5.0 → code_mower-1.5.1}/docs/v103-release-notes.md +0 -0
  142. {code_mower-1.5.0 → code_mower-1.5.1}/docs/v104-installation-documentation-audit.md +0 -0
  143. {code_mower-1.5.0 → code_mower-1.5.1}/docs/v104-release-notes.md +0 -0
  144. {code_mower-1.5.0 → code_mower-1.5.1}/docs/v105-release-notes.md +0 -0
  145. {code_mower-1.5.0 → code_mower-1.5.1}/docs/v106-release-notes.md +0 -0
  146. {code_mower-1.5.0 → code_mower-1.5.1}/docs/v107-release-notes.md +0 -0
  147. {code_mower-1.5.0 → code_mower-1.5.1}/docs/v108-release-notes.md +0 -0
  148. {code_mower-1.5.0 → code_mower-1.5.1}/docs/v109-release-notes.md +0 -0
  149. {code_mower-1.5.0 → code_mower-1.5.1}/docs/v11-release-notes.md +0 -0
  150. {code_mower-1.5.0 → code_mower-1.5.1}/docs/v111-release-notes.md +0 -0
  151. {code_mower-1.5.0 → code_mower-1.5.1}/docs/v112-release-notes.md +0 -0
  152. {code_mower-1.5.0 → code_mower-1.5.1}/docs/v12-release-notes.md +0 -0
  153. {code_mower-1.5.0 → code_mower-1.5.1}/docs/v121-release-notes.md +0 -0
  154. {code_mower-1.5.0 → code_mower-1.5.1}/docs/v122-release-notes.md +0 -0
  155. {code_mower-1.5.0 → code_mower-1.5.1}/docs/v130-context-qualification.md +0 -0
  156. {code_mower-1.5.0 → code_mower-1.5.1}/docs/v130-release-notes.md +0 -0
  157. {code_mower-1.5.0 → code_mower-1.5.1}/docs/v131-guided-context-qualification.md +0 -0
  158. {code_mower-1.5.0 → code_mower-1.5.1}/docs/v131-release-notes.md +0 -0
  159. {code_mower-1.5.0 → code_mower-1.5.1}/docs/v140-release-notes.md +0 -0
  160. {code_mower-1.5.0 → code_mower-1.5.1}/docs/v140-release-runbook.md +0 -0
  161. {code_mower-1.5.0 → code_mower-1.5.1}/docs/v141-qualification.md +0 -0
  162. {code_mower-1.5.0 → code_mower-1.5.1}/docs/v141-release-notes.md +0 -0
  163. {code_mower-1.5.0 → code_mower-1.5.1}/docs/v142-qualification.md +0 -0
  164. {code_mower-1.5.0 → code_mower-1.5.1}/docs/v142-release-notes.md +0 -0
  165. {code_mower-1.5.0 → code_mower-1.5.1}/docs/v150-qualification.md +0 -0
  166. {code_mower-1.5.0 → code_mower-1.5.1}/docs/v150-release-notes.md +0 -0
  167. {code_mower-1.5.0 → code_mower-1.5.1}/docs/v150-release-runbook.md +0 -0
  168. {code_mower-1.5.0 → code_mower-1.5.1}/requirements/requirements.txt +0 -0
  169. {code_mower-1.5.0 → code_mower-1.5.1}/setup.cfg +0 -0
  170. {code_mower-1.5.0 → code_mower-1.5.1}/src/code_mower/adapters/__init__.py +0 -0
  171. {code_mower-1.5.0 → code_mower-1.5.1}/src/code_mower/adapters/_base.py +0 -0
  172. {code_mower-1.5.0 → code_mower-1.5.1}/src/code_mower/adapters/cursor_bugbot.py +0 -0
  173. {code_mower-1.5.0 → code_mower-1.5.1}/src/code_mower/adapters/gitar.py +0 -0
  174. {code_mower-1.5.0 → code_mower-1.5.1}/src/code_mower/adapters/greptile.py +0 -0
  175. {code_mower-1.5.0 → code_mower-1.5.1}/src/code_mower/adapters/qodo.py +0 -0
  176. {code_mower-1.5.0 → code_mower-1.5.1}/src/code_mower/antigravity_cli_audit_pr.py +0 -0
  177. {code_mower-1.5.0 → code_mower-1.5.1}/src/code_mower/antigravity_sdk_probe.py +0 -0
  178. {code_mower-1.5.0 → code_mower-1.5.1}/src/code_mower/audit_handoff_log.py +0 -0
  179. {code_mower-1.5.0 → code_mower-1.5.1}/src/code_mower/audit_labeler_lib.py +0 -0
  180. {code_mower-1.5.0 → code_mower-1.5.1}/src/code_mower/audit_limits.py +0 -0
  181. {code_mower-1.5.0 → code_mower-1.5.1}/src/code_mower/audit_progress.py +0 -0
  182. {code_mower-1.5.0 → code_mower-1.5.1}/src/code_mower/blind_review_artifacts.py +0 -0
  183. {code_mower-1.5.0 → code_mower-1.5.1}/src/code_mower/blind_review_coordinator.py +0 -0
  184. {code_mower-1.5.0 → code_mower-1.5.1}/src/code_mower/board_local_observation.py +0 -0
  185. {code_mower-1.5.0 → code_mower-1.5.1}/src/code_mower/board_observation.py +0 -0
  186. {code_mower-1.5.0 → code_mower-1.5.1}/src/code_mower/board_observation.schema.json +0 -0
  187. {code_mower-1.5.0 → code_mower-1.5.1}/src/code_mower/board_remote_observation.py +0 -0
  188. {code_mower-1.5.0 → code_mower-1.5.1}/src/code_mower/board_service.py +0 -0
  189. {code_mower-1.5.0 → code_mower-1.5.1}/src/code_mower/board_store.py +0 -0
  190. {code_mower-1.5.0 → code_mower-1.5.1}/src/code_mower/bootstrap.py +0 -0
  191. {code_mower-1.5.0 → code_mower-1.5.1}/src/code_mower/branch_policy.py +0 -0
  192. {code_mower-1.5.0 → code_mower-1.5.1}/src/code_mower/builder_experiment.py +0 -0
  193. {code_mower-1.5.0 → code_mower-1.5.1}/src/code_mower/builder_lineage.py +0 -0
  194. {code_mower-1.5.0 → code_mower-1.5.1}/src/code_mower/builder_lineage_producer.py +0 -0
  195. {code_mower-1.5.0 → code_mower-1.5.1}/src/code_mower/builder_runs.py +0 -0
  196. {code_mower-1.5.0 → code_mower-1.5.1}/src/code_mower/calibration/__init__.py +0 -0
  197. {code_mower-1.5.0 → code_mower-1.5.1}/src/code_mower/calibration/arms.py +0 -0
  198. {code_mower-1.5.0 → code_mower-1.5.1}/src/code_mower/calibration/auto_discovery.py +0 -0
  199. {code_mower-1.5.0 → code_mower-1.5.1}/src/code_mower/calibration/commands.py +0 -0
  200. {code_mower-1.5.0 → code_mower-1.5.1}/src/code_mower/calibration/context_inputs.py +0 -0
  201. {code_mower-1.5.0 → code_mower-1.5.1}/src/code_mower/calibration/corpus.py +0 -0
  202. {code_mower-1.5.0 → code_mower-1.5.1}/src/code_mower/calibration/effect_report.py +0 -0
  203. {code_mower-1.5.0 → code_mower-1.5.1}/src/code_mower/calibration/evidence.py +0 -0
  204. {code_mower-1.5.0 → code_mower-1.5.1}/src/code_mower/calibration/evidence_report.py +0 -0
  205. {code_mower-1.5.0 → code_mower-1.5.1}/src/code_mower/calibration/identity.py +0 -0
  206. {code_mower-1.5.0 → code_mower-1.5.1}/src/code_mower/calibration/metrics.py +0 -0
  207. {code_mower-1.5.0 → code_mower-1.5.1}/src/code_mower/calibration/overlap.py +0 -0
  208. {code_mower-1.5.0 → code_mower-1.5.1}/src/code_mower/calibration/planning.py +0 -0
  209. {code_mower-1.5.0 → code_mower-1.5.1}/src/code_mower/calibration/policy.py +0 -0
  210. {code_mower-1.5.0 → code_mower-1.5.1}/src/code_mower/calibration/results.py +0 -0
  211. {code_mower-1.5.0 → code_mower-1.5.1}/src/code_mower/calibration/run_results.py +0 -0
  212. {code_mower-1.5.0 → code_mower-1.5.1}/src/code_mower/calibration/run_status.py +0 -0
  213. {code_mower-1.5.0 → code_mower-1.5.1}/src/code_mower/calibration/runner.py +0 -0
  214. {code_mower-1.5.0 → code_mower-1.5.1}/src/code_mower/calibration/truth.py +0 -0
  215. {code_mower-1.5.0 → code_mower-1.5.1}/src/code_mower/calibration/value_report.py +0 -0
  216. {code_mower-1.5.0 → code_mower-1.5.1}/src/code_mower/campaign_adapters.py +0 -0
  217. {code_mower-1.5.0 → code_mower-1.5.1}/src/code_mower/campaign_discovery.py +0 -0
  218. {code_mower-1.5.0 → code_mower-1.5.1}/src/code_mower/checks.py +0 -0
  219. {code_mower-1.5.0 → code_mower-1.5.1}/src/code_mower/claude_audit_pr.py +0 -0
  220. {code_mower-1.5.0 → code_mower-1.5.1}/src/code_mower/claude_cli_bounce.py +0 -0
  221. {code_mower-1.5.0 → code_mower-1.5.1}/src/code_mower/claude_cli_environment.py +0 -0
  222. {code_mower-1.5.0 → code_mower-1.5.1}/src/code_mower/clear_stale.py +0 -0
  223. {code_mower-1.5.0 → code_mower-1.5.1}/src/code_mower/cli.py +0 -0
  224. {code_mower-1.5.0 → code_mower-1.5.1}/src/code_mower/cloud.py +0 -0
  225. {code_mower-1.5.0 → code_mower-1.5.1}/src/code_mower/cloud_client/__init__.py +0 -0
  226. {code_mower-1.5.0 → code_mower-1.5.1}/src/code_mower/cloud_client/adoption_runs.py +0 -0
  227. {code_mower-1.5.0 → code_mower-1.5.1}/src/code_mower/cloud_client/bundle.py +0 -0
  228. {code_mower-1.5.0 → code_mower-1.5.1}/src/code_mower/cloud_client/doctor.py +0 -0
  229. {code_mower-1.5.0 → code_mower-1.5.1}/src/code_mower/cloud_client/dogfood.py +0 -0
  230. {code_mower-1.5.0 → code_mower-1.5.1}/src/code_mower/cloud_client/endpoints.py +0 -0
  231. {code_mower-1.5.0 → code_mower-1.5.1}/src/code_mower/cloud_client/errors.py +0 -0
  232. {code_mower-1.5.0 → code_mower-1.5.1}/src/code_mower/cloud_client/events.py +0 -0
  233. {code_mower-1.5.0 → code_mower-1.5.1}/src/code_mower/cloud_client/export.py +0 -0
  234. {code_mower-1.5.0 → code_mower-1.5.1}/src/code_mower/cloud_client/finding_outcomes.py +0 -0
  235. {code_mower-1.5.0 → code_mower-1.5.1}/src/code_mower/cloud_client/git_metadata.py +0 -0
  236. {code_mower-1.5.0 → code_mower-1.5.1}/src/code_mower/cloud_client/manifest.py +0 -0
  237. {code_mower-1.5.0 → code_mower-1.5.1}/src/code_mower/cloud_client/operations.py +0 -0
  238. {code_mower-1.5.0 → code_mower-1.5.1}/src/code_mower/cloud_client/pr_outcomes.py +0 -0
  239. {code_mower-1.5.0 → code_mower-1.5.1}/src/code_mower/cloud_client/productivity.py +0 -0
  240. {code_mower-1.5.0 → code_mower-1.5.1}/src/code_mower/cloud_client/productivity_windows.py +0 -0
  241. {code_mower-1.5.0 → code_mower-1.5.1}/src/code_mower/cloud_client/reports.py +0 -0
  242. {code_mower-1.5.0 → code_mower-1.5.1}/src/code_mower/cloud_client/setup.py +0 -0
  243. {code_mower-1.5.0 → code_mower-1.5.1}/src/code_mower/cloud_client/tokens.py +0 -0
  244. {code_mower-1.5.0 → code_mower-1.5.1}/src/code_mower/cloud_client/upload.py +0 -0
  245. {code_mower-1.5.0 → code_mower-1.5.1}/src/code_mower/cloud_client/work_types.py +0 -0
  246. {code_mower-1.5.0 → code_mower-1.5.1}/src/code_mower/code_mower_calibration.py +0 -0
  247. {code_mower-1.5.0 → code_mower-1.5.1}/src/code_mower/code_mower_context_packs.py +0 -0
  248. {code_mower-1.5.0 → code_mower-1.5.1}/src/code_mower/code_mower_merge.py +0 -0
  249. {code_mower-1.5.0 → code_mower-1.5.1}/src/code_mower/code_mower_telemetry.py +0 -0
  250. {code_mower-1.5.0 → code_mower-1.5.1}/src/code_mower/coderabbit_cli_audit_pr.py +0 -0
  251. {code_mower-1.5.0 → code_mower-1.5.1}/src/code_mower/codex_audit_env_preflight.py +0 -0
  252. {code_mower-1.5.0 → code_mower-1.5.1}/src/code_mower/codex_audit_pr.py +0 -0
  253. {code_mower-1.5.0 → code_mower-1.5.1}/src/code_mower/codex_audit_schema_smoke.py +0 -0
  254. {code_mower-1.5.0 → code_mower-1.5.1}/src/code_mower/codex_audit_verdict.schema.json +0 -0
  255. {code_mower-1.5.0 → code_mower-1.5.1}/src/code_mower/config.py +0 -0
  256. {code_mower-1.5.0 → code_mower-1.5.1}/src/code_mower/context_audit.py +0 -0
  257. {code_mower-1.5.0 → code_mower-1.5.1}/src/code_mower/context_command.py +0 -0
  258. {code_mower-1.5.0 → code_mower-1.5.1}/src/code_mower/context_connections.py +0 -0
  259. {code_mower-1.5.0 → code_mower-1.5.1}/src/code_mower/context_contract.py +0 -0
  260. {code_mower-1.5.0 → code_mower-1.5.1}/src/code_mower/context_delivery.py +0 -0
  261. {code_mower-1.5.0 → code_mower-1.5.1}/src/code_mower/context_graph.py +0 -0
  262. {code_mower-1.5.0 → code_mower-1.5.1}/src/code_mower/context_graph_command.py +0 -0
  263. {code_mower-1.5.0 → code_mower-1.5.1}/src/code_mower/context_graph_connection.py +0 -0
  264. {code_mower-1.5.0 → code_mower-1.5.1}/src/code_mower/context_graph_lifecycle.py +0 -0
  265. {code_mower-1.5.0 → code_mower-1.5.1}/src/code_mower/context_graph_query.py +0 -0
  266. {code_mower-1.5.0 → code_mower-1.5.1}/src/code_mower/context_guided.py +0 -0
  267. {code_mower-1.5.0 → code_mower-1.5.1}/src/code_mower/context_packets.py +0 -0
  268. {code_mower-1.5.0 → code_mower-1.5.1}/src/code_mower/context_prepare.py +0 -0
  269. {code_mower-1.5.0 → code_mower-1.5.1}/src/code_mower/context_readiness.py +0 -0
  270. {code_mower-1.5.0 → code_mower-1.5.1}/src/code_mower/context_review.py +0 -0
  271. {code_mower-1.5.0 → code_mower-1.5.1}/src/code_mower/context_session.py +0 -0
  272. {code_mower-1.5.0 → code_mower-1.5.1}/src/code_mower/context_store.py +0 -0
  273. {code_mower-1.5.0 → code_mower-1.5.1}/src/code_mower/controller.py +0 -0
  274. {code_mower-1.5.0 → code_mower-1.5.1}/src/code_mower/coworker_mcp.py +0 -0
  275. {code_mower-1.5.0 → code_mower-1.5.1}/src/code_mower/coworker_retrieval.py +0 -0
  276. {code_mower-1.5.0 → code_mower-1.5.1}/src/code_mower/decisions.py +0 -0
  277. {code_mower-1.5.0 → code_mower-1.5.1}/src/code_mower/devin_api.py +0 -0
  278. {code_mower-1.5.0 → code_mower-1.5.1}/src/code_mower/devin_cli_audit_pr.py +0 -0
  279. {code_mower-1.5.0 → code_mower-1.5.1}/src/code_mower/devin_readiness.py +0 -0
  280. {code_mower-1.5.0 → code_mower-1.5.1}/src/code_mower/devin_review.py +0 -0
  281. {code_mower-1.5.0 → code_mower-1.5.1}/src/code_mower/devin_sessions.py +0 -0
  282. {code_mower-1.5.0 → code_mower-1.5.1}/src/code_mower/devin_work_orders.py +0 -0
  283. {code_mower-1.5.0 → code_mower-1.5.1}/src/code_mower/doctor_checks/__init__.py +0 -0
  284. {code_mower-1.5.0 → code_mower-1.5.1}/src/code_mower/doctor_checks/audit_limits.py +0 -0
  285. {code_mower-1.5.0 → code_mower-1.5.1}/src/code_mower/doctor_checks/campaign_auth.py +0 -0
  286. {code_mower-1.5.0 → code_mower-1.5.1}/src/code_mower/doctor_checks/cloud.py +0 -0
  287. {code_mower-1.5.0 → code_mower-1.5.1}/src/code_mower/doctor_checks/common.py +0 -0
  288. {code_mower-1.5.0 → code_mower-1.5.1}/src/code_mower/doctor_checks/devin.py +0 -0
  289. {code_mower-1.5.0 → code_mower-1.5.1}/src/code_mower/doctor_checks/github_actions.py +0 -0
  290. {code_mower-1.5.0 → code_mower-1.5.1}/src/code_mower/doctor_checks/github_actions_cost.py +0 -0
  291. {code_mower-1.5.0 → code_mower-1.5.1}/src/code_mower/doctor_checks/github_actions_cost_summary.py +0 -0
  292. {code_mower-1.5.0 → code_mower-1.5.1}/src/code_mower/doctor_checks/github_actions_failure_annotations.py +0 -0
  293. {code_mower-1.5.0 → code_mower-1.5.1}/src/code_mower/doctor_checks/github_actions_failure_models.py +0 -0
  294. {code_mower-1.5.0 → code_mower-1.5.1}/src/code_mower/doctor_checks/github_actions_failure_scan.py +0 -0
  295. {code_mower-1.5.0 → code_mower-1.5.1}/src/code_mower/doctor_checks/github_actions_failure_selection.py +0 -0
  296. {code_mower-1.5.0 → code_mower-1.5.1}/src/code_mower/doctor_checks/github_actions_failures.py +0 -0
  297. {code_mower-1.5.0 → code_mower-1.5.1}/src/code_mower/doctor_checks/github_actions_permissions.py +0 -0
  298. {code_mower-1.5.0 → code_mower-1.5.1}/src/code_mower/doctor_checks/github_api.py +0 -0
  299. {code_mower-1.5.0 → code_mower-1.5.1}/src/code_mower/doctor_checks/github_branch.py +0 -0
  300. {code_mower-1.5.0 → code_mower-1.5.1}/src/code_mower/doctor_checks/github_config.py +0 -0
  301. {code_mower-1.5.0 → code_mower-1.5.1}/src/code_mower/doctor_checks/github_human_token.py +0 -0
  302. {code_mower-1.5.0 → code_mower-1.5.1}/src/code_mower/doctor_checks/github_provider.py +0 -0
  303. {code_mower-1.5.0 → code_mower-1.5.1}/src/code_mower/doctor_checks/github_repo.py +0 -0
  304. {code_mower-1.5.0 → code_mower-1.5.1}/src/code_mower/doctor_checks/github_trusted_authors.py +0 -0
  305. {code_mower-1.5.0 → code_mower-1.5.1}/src/code_mower/doctor_checks/groups.py +0 -0
  306. {code_mower-1.5.0 → code_mower-1.5.1}/src/code_mower/doctor_checks/jira.py +0 -0
  307. {code_mower-1.5.0 → code_mower-1.5.1}/src/code_mower/doctor_checks/models.py +0 -0
  308. {code_mower-1.5.0 → code_mower-1.5.1}/src/code_mower/doctor_checks/output.py +0 -0
  309. {code_mower-1.5.0 → code_mower-1.5.1}/src/code_mower/doctor_checks/presets.py +0 -0
  310. {code_mower-1.5.0 → code_mower-1.5.1}/src/code_mower/doctor_checks/privacy.py +0 -0
  311. {code_mower-1.5.0 → code_mower-1.5.1}/src/code_mower/doctor_checks/provider_api_model.py +0 -0
  312. {code_mower-1.5.0 → code_mower-1.5.1}/src/code_mower/doctor_checks/provider_api_model_openai.py +0 -0
  313. {code_mower-1.5.0 → code_mower-1.5.1}/src/code_mower/doctor_checks/provider_api_model_profiles.py +0 -0
  314. {code_mower-1.5.0 → code_mower-1.5.1}/src/code_mower/doctor_checks/provider_env.py +0 -0
  315. {code_mower-1.5.0 → code_mower-1.5.1}/src/code_mower/doctor_checks/provider_env_required.py +0 -0
  316. {code_mower-1.5.0 → code_mower-1.5.1}/src/code_mower/doctor_checks/provider_env_tokens.py +0 -0
  317. {code_mower-1.5.0 → code_mower-1.5.1}/src/code_mower/doctor_checks/provider_local_audit_setup.py +0 -0
  318. {code_mower-1.5.0 → code_mower-1.5.1}/src/code_mower/doctor_checks/provider_local_cli.py +0 -0
  319. {code_mower-1.5.0 → code_mower-1.5.1}/src/code_mower/doctor_checks/provider_local_cli_commands.py +0 -0
  320. {code_mower-1.5.0 → code_mower-1.5.1}/src/code_mower/doctor_checks/provider_local_cli_probe_config.py +0 -0
  321. {code_mower-1.5.0 → code_mower-1.5.1}/src/code_mower/doctor_checks/provider_probe.py +0 -0
  322. {code_mower-1.5.0 → code_mower-1.5.1}/src/code_mower/doctor_checks/provider_probe_auth.py +0 -0
  323. {code_mower-1.5.0 → code_mower-1.5.1}/src/code_mower/doctor_checks/provider_probe_evaluation.py +0 -0
  324. {code_mower-1.5.0 → code_mower-1.5.1}/src/code_mower/doctor_checks/provider_probe_json.py +0 -0
  325. {code_mower-1.5.0 → code_mower-1.5.1}/src/code_mower/doctor_checks/provider_probe_remediation.py +0 -0
  326. {code_mower-1.5.0 → code_mower-1.5.1}/src/code_mower/doctor_checks/registry.py +0 -0
  327. {code_mower-1.5.0 → code_mower-1.5.1}/src/code_mower/doctor_checks/runtime.py +0 -0
  328. {code_mower-1.5.0 → code_mower-1.5.1}/src/code_mower/doctor_checks/runtime_github_auth.py +0 -0
  329. {code_mower-1.5.0 → code_mower-1.5.1}/src/code_mower/doctor_checks/self_hosted_runner.py +0 -0
  330. {code_mower-1.5.0 → code_mower-1.5.1}/src/code_mower/doctor_checks/supervised_pilot.py +0 -0
  331. {code_mower-1.5.0 → code_mower-1.5.1}/src/code_mower/file_locks.py +0 -0
  332. {code_mower-1.5.0 → code_mower-1.5.1}/src/code_mower/gate_health.py +0 -0
  333. {code_mower-1.5.0 → code_mower-1.5.1}/src/code_mower/gemini_cli_audit_pr.py +0 -0
  334. {code_mower-1.5.0 → code_mower-1.5.1}/src/code_mower/git_identity.py +0 -0
  335. {code_mower-1.5.0 → code_mower-1.5.1}/src/code_mower/github_builder_evidence.py +0 -0
  336. {code_mower-1.5.0 → code_mower-1.5.1}/src/code_mower/grok_build_audit_pr.py +0 -0
  337. {code_mower-1.5.0 → code_mower-1.5.1}/src/code_mower/hermes_cli_audit_pr.py +0 -0
  338. {code_mower-1.5.0 → code_mower-1.5.1}/src/code_mower/jira_cloud.py +0 -0
  339. {code_mower-1.5.0 → code_mower-1.5.1}/src/code_mower/jira_mutations.py +0 -0
  340. {code_mower-1.5.0 → code_mower-1.5.1}/src/code_mower/jira_pr_sync.py +0 -0
  341. {code_mower-1.5.0 → code_mower-1.5.1}/src/code_mower/lane_configs/__init__.py +0 -0
  342. {code_mower-1.5.0 → code_mower-1.5.1}/src/code_mower/lane_configs/aider.py +0 -0
  343. {code_mower-1.5.0 → code_mower-1.5.1}/src/code_mower/lane_configs/antigravity_cli.py +0 -0
  344. {code_mower-1.5.0 → code_mower-1.5.1}/src/code_mower/lane_configs/claude.py +0 -0
  345. {code_mower-1.5.0 → code_mower-1.5.1}/src/code_mower/lane_configs/codex.py +0 -0
  346. {code_mower-1.5.0 → code_mower-1.5.1}/src/code_mower/lane_configs/devin.py +0 -0
  347. {code_mower-1.5.0 → code_mower-1.5.1}/src/code_mower/lane_configs/devin_cli.py +0 -0
  348. {code_mower-1.5.0 → code_mower-1.5.1}/src/code_mower/lane_configs/gemini_cli.py +0 -0
  349. {code_mower-1.5.0 → code_mower-1.5.1}/src/code_mower/lane_configs/grok_build.py +0 -0
  350. {code_mower-1.5.0 → code_mower-1.5.1}/src/code_mower/lane_configs/hermes_cli.py +0 -0
  351. {code_mower-1.5.0 → code_mower-1.5.1}/src/code_mower/lane_configs/local_llm.py +0 -0
  352. {code_mower-1.5.0 → code_mower-1.5.1}/src/code_mower/lane_configs/muse_cli.py +0 -0
  353. {code_mower-1.5.0 → code_mower-1.5.1}/src/code_mower/lane_delivery.py +0 -0
  354. {code_mower-1.5.0 → code_mower-1.5.1}/src/code_mower/lane_handoff.py +0 -0
  355. {code_mower-1.5.0 → code_mower-1.5.1}/src/code_mower/lane_runtime.py +0 -0
  356. {code_mower-1.5.0 → code_mower-1.5.1}/src/code_mower/local_cli_commands.py +0 -0
  357. {code_mower-1.5.0 → code_mower-1.5.1}/src/code_mower/local_llm_audit_pr.py +0 -0
  358. {code_mower-1.5.0 → code_mower-1.5.1}/src/code_mower/local_llm_bakeoff.py +0 -0
  359. {code_mower-1.5.0 → code_mower-1.5.1}/src/code_mower/local_llm_calibration.py +0 -0
  360. {code_mower-1.5.0 → code_mower-1.5.1}/src/code_mower/local_llm_profiles.py +0 -0
  361. {code_mower-1.5.0 → code_mower-1.5.1}/src/code_mower/migration.py +0 -0
  362. {code_mower-1.5.0 → code_mower-1.5.1}/src/code_mower/migration_install.py +0 -0
  363. {code_mower-1.5.0 → code_mower-1.5.1}/src/code_mower/migration_mirror.py +0 -0
  364. {code_mower-1.5.0 → code_mower-1.5.1}/src/code_mower/migration_readiness.py +0 -0
  365. {code_mower-1.5.0 → code_mower-1.5.1}/src/code_mower/migration_rehearsal.py +0 -0
  366. {code_mower-1.5.0 → code_mower-1.5.1}/src/code_mower/muse_cli_audit_pr.py +0 -0
  367. {code_mower-1.5.0 → code_mower-1.5.1}/src/code_mower/next_steps.py +0 -0
  368. {code_mower-1.5.0 → code_mower-1.5.1}/src/code_mower/operational_evidence.py +0 -0
  369. {code_mower-1.5.0 → code_mower-1.5.1}/src/code_mower/package.py +0 -0
  370. {code_mower-1.5.0 → code_mower-1.5.1}/src/code_mower/package_content.py +0 -0
  371. {code_mower-1.5.0 → code_mower-1.5.1}/src/code_mower/package_paths.py +0 -0
  372. {code_mower-1.5.0 → code_mower-1.5.1}/src/code_mower/package_rendering.py +0 -0
  373. {code_mower-1.5.0 → code_mower-1.5.1}/src/code_mower/package_static.py +0 -0
  374. {code_mower-1.5.0 → code_mower-1.5.1}/src/code_mower/participants.py +0 -0
  375. {code_mower-1.5.0 → code_mower-1.5.1}/src/code_mower/plan_context.py +0 -0
  376. {code_mower-1.5.0 → code_mower-1.5.1}/src/code_mower/productivity_report.py +0 -0
  377. {code_mower-1.5.0 → code_mower-1.5.1}/src/code_mower/prompts.py +0 -0
  378. {code_mower-1.5.0 → code_mower-1.5.1}/src/code_mower/provider_capabilities.py +0 -0
  379. {code_mower-1.5.0 → code_mower-1.5.1}/src/code_mower/provider_capabilities.schema.json +0 -0
  380. {code_mower-1.5.0 → code_mower-1.5.1}/src/code_mower/provider_credentials.py +0 -0
  381. {code_mower-1.5.0 → code_mower-1.5.1}/src/code_mower/provider_registry.py +0 -0
  382. {code_mower-1.5.0 → code_mower-1.5.1}/src/code_mower/provider_runners/__init__.py +0 -0
  383. {code_mower-1.5.0 → code_mower-1.5.1}/src/code_mower/provider_runners/comments.py +0 -0
  384. {code_mower-1.5.0 → code_mower-1.5.1}/src/code_mower/provider_runners/exit_codes.py +0 -0
  385. {code_mower-1.5.0 → code_mower-1.5.1}/src/code_mower/provider_runners/git.py +0 -0
  386. {code_mower-1.5.0 → code_mower-1.5.1}/src/code_mower/provider_runners/github_auth.py +0 -0
  387. {code_mower-1.5.0 → code_mower-1.5.1}/src/code_mower/provider_runners/github_pr.py +0 -0
  388. {code_mower-1.5.0 → code_mower-1.5.1}/src/code_mower/provider_runners/lineage.py +0 -0
  389. {code_mower-1.5.0 → code_mower-1.5.1}/src/code_mower/provider_runners/pr_worktree.py +0 -0
  390. {code_mower-1.5.0 → code_mower-1.5.1}/src/code_mower/provider_runners/process.py +0 -0
  391. {code_mower-1.5.0 → code_mower-1.5.1}/src/code_mower/provider_runners/repo_paths.py +0 -0
  392. {code_mower-1.5.0 → code_mower-1.5.1}/src/code_mower/provider_runners/text_schema.py +0 -0
  393. {code_mower-1.5.0 → code_mower-1.5.1}/src/code_mower/provider_runners/verdict_artifacts.py +0 -0
  394. {code_mower-1.5.0 → code_mower-1.5.1}/src/code_mower/provider_runners/workspace.py +0 -0
  395. {code_mower-1.5.0 → code_mower-1.5.1}/src/code_mower/providers/__init__.py +0 -0
  396. {code_mower-1.5.0 → code_mower-1.5.1}/src/code_mower/providers/local_cli.py +0 -0
  397. {code_mower-1.5.0 → code_mower-1.5.1}/src/code_mower/providers/provenance.py +0 -0
  398. {code_mower-1.5.0 → code_mower-1.5.1}/src/code_mower/release_campaigns.py +0 -0
  399. {code_mower-1.5.0 → code_mower-1.5.1}/src/code_mower/release_identity.py +0 -0
  400. {code_mower-1.5.0 → code_mower-1.5.1}/src/code_mower/release_qualify.py +0 -0
  401. {code_mower-1.5.0 → code_mower-1.5.1}/src/code_mower/remote_session.py +0 -0
  402. {code_mower-1.5.0 → code_mower-1.5.1}/src/code_mower/remote_session.schema.json +0 -0
  403. {code_mower-1.5.0 → code_mower-1.5.1}/src/code_mower/remote_session_cli.py +0 -0
  404. {code_mower-1.5.0 → code_mower-1.5.1}/src/code_mower/review_authority.py +0 -0
  405. {code_mower-1.5.0 → code_mower-1.5.1}/src/code_mower/reviewer_metrics.py +0 -0
  406. {code_mower-1.5.0 → code_mower-1.5.1}/src/code_mower/reviewer_spend.py +0 -0
  407. {code_mower-1.5.0 → code_mower-1.5.1}/src/code_mower/role_eligibility.py +0 -0
  408. {code_mower-1.5.0 → code_mower-1.5.1}/src/code_mower/role_eligibility.schema.json +0 -0
  409. {code_mower-1.5.0 → code_mower-1.5.1}/src/code_mower/saas_reviewer_labeler.py +0 -0
  410. {code_mower-1.5.0 → code_mower-1.5.1}/src/code_mower/secrets.py +0 -0
  411. {code_mower-1.5.0 → code_mower-1.5.1}/src/code_mower/session.py +0 -0
  412. {code_mower-1.5.0 → code_mower-1.5.1}/src/code_mower/session_current.py +0 -0
  413. {code_mower-1.5.0 → code_mower-1.5.1}/src/code_mower/session_lease.py +0 -0
  414. {code_mower-1.5.0 → code_mower-1.5.1}/src/code_mower/slack_contract.py +0 -0
  415. {code_mower-1.5.0 → code_mower-1.5.1}/src/code_mower/slack_contract.schema.json +0 -0
  416. {code_mower-1.5.0 → code_mower-1.5.1}/src/code_mower/slack_ingress.py +0 -0
  417. {code_mower-1.5.0 → code_mower-1.5.1}/src/code_mower/slack_readiness.py +0 -0
  418. {code_mower-1.5.0 → code_mower-1.5.1}/src/code_mower/slack_setup.py +0 -0
  419. {code_mower-1.5.0 → code_mower-1.5.1}/src/code_mower/supervisor.py +0 -0
  420. {code_mower-1.5.0 → code_mower-1.5.1}/src/code_mower/supervisor_checkpoint.py +0 -0
  421. {code_mower-1.5.0 → code_mower-1.5.1}/src/code_mower/supervisor_codex.py +0 -0
  422. {code_mower-1.5.0 → code_mower-1.5.1}/src/code_mower/supervisor_contract.fixtures.json +0 -0
  423. {code_mower-1.5.0 → code_mower-1.5.1}/src/code_mower/supervisor_contract.py +0 -0
  424. {code_mower-1.5.0 → code_mower-1.5.1}/src/code_mower/supervisor_contract.schema.json +0 -0
  425. {code_mower-1.5.0 → code_mower-1.5.1}/src/code_mower/supervisor_contract_v2.fixtures.json +0 -0
  426. {code_mower-1.5.0 → code_mower-1.5.1}/src/code_mower/supervisor_contract_v2.py +0 -0
  427. {code_mower-1.5.0 → code_mower-1.5.1}/src/code_mower/supervisor_contract_v2.schema.json +0 -0
  428. {code_mower-1.5.0 → code_mower-1.5.1}/src/code_mower/templates/builder-experiment.example.json +0 -0
  429. {code_mower-1.5.0 → code_mower-1.5.1}/src/code_mower/templates/calibration-corpus.example.json +0 -0
  430. {code_mower-1.5.0 → code_mower-1.5.1}/src/code_mower/templates/calibration-corpus.json +0 -0
  431. {code_mower-1.5.0 → code_mower-1.5.1}/src/code_mower/templates/code-mower.example.yml +0 -0
  432. {code_mower-1.5.0 → code_mower-1.5.1}/src/code_mower/templates/context-packs.example.json +0 -0
  433. {code_mower-1.5.0 → code_mower-1.5.1}/src/code_mower/templates/lane_prompts/base-audit.md +0 -0
  434. {code_mower-1.5.0 → code_mower-1.5.1}/src/code_mower/templates/lane_prompts/calibration-policy.md +0 -0
  435. {code_mower-1.5.0 → code_mower-1.5.1}/src/code_mower/templates/lane_prompts/context-driven-quality.md +0 -0
  436. {code_mower-1.5.0 → code_mower-1.5.1}/src/code_mower/templates/lane_prompts/docs-design.md +0 -0
  437. {code_mower-1.5.0 → code_mower-1.5.1}/src/code_mower/templates/lane_prompts/generic-programming.md +0 -0
  438. {code_mower-1.5.0 → code_mower-1.5.1}/src/code_mower/templates/lane_prompts/operability.md +0 -0
  439. {code_mower-1.5.0 → code_mower-1.5.1}/src/code_mower/templates/lane_prompts/package-runtime.md +0 -0
  440. {code_mower-1.5.0 → code_mower-1.5.1}/src/code_mower/templates/lane_prompts/plan-conformance.md +0 -0
  441. {code_mower-1.5.0 → code_mower-1.5.1}/src/code_mower/templates/lane_prompts/security-threat-model.md +0 -0
  442. {code_mower-1.5.0 → code_mower-1.5.1}/src/code_mower/templates/lanes/README.md +0 -0
  443. {code_mower-1.5.0 → code_mower-1.5.1}/src/code_mower/templates/lanes/claude.md +0 -0
  444. {code_mower-1.5.0 → code_mower-1.5.1}/src/code_mower/templates/lanes/codex.md +0 -0
  445. {code_mower-1.5.0 → code_mower-1.5.1}/src/code_mower/templates/lanes/cursor.md +0 -0
  446. {code_mower-1.5.0 → code_mower-1.5.1}/src/code_mower/templates/lanes/devin.md +0 -0
  447. {code_mower-1.5.0 → code_mower-1.5.1}/src/code_mower/templates/lanes/generic.md +0 -0
  448. {code_mower-1.5.0 → code_mower-1.5.1}/src/code_mower/templates/lanes/lineage-producer.sh +0 -0
  449. {code_mower-1.5.0 → code_mower-1.5.1}/src/code_mower/templates/lanes/run_mac_lane.sh +0 -0
  450. {code_mower-1.5.0 → code_mower-1.5.1}/src/code_mower/templates/product-support/code_mower +0 -0
  451. {code_mower-1.5.0 → code_mower-1.5.1}/src/code_mower/templates/product-support/code_mower_standalone_pin.env +0 -0
  452. {code_mower-1.5.0 → code_mower-1.5.1}/src/code_mower/templates/product-support/code_mower_standalone_shadow.sh +0 -0
  453. {code_mower-1.5.0 → code_mower-1.5.1}/src/code_mower/templates/product-support/run_claude_audit_pr.sh +0 -0
  454. {code_mower-1.5.0 → code_mower-1.5.1}/src/code_mower/templates/product-support/run_codex_audit_pr.sh +0 -0
  455. {code_mower-1.5.0 → code_mower-1.5.1}/src/code_mower/templates/product-support/run_devin_cli_audit_pr.sh +0 -0
  456. {code_mower-1.5.0 → code_mower-1.5.1}/src/code_mower/templates/product-support/safe_gh_comment.py +0 -0
  457. {code_mower-1.5.0 → code_mower-1.5.1}/src/code_mower/templates/product-support/status_report.py +0 -0
  458. {code_mower-1.5.0 → code_mower-1.5.1}/src/code_mower/templates/providers.yml +0 -0
  459. {code_mower-1.5.0 → code_mower-1.5.1}/src/code_mower/templates/reviewer-spend.example.json +0 -0
  460. {code_mower-1.5.0 → code_mower-1.5.1}/src/code_mower/templates/reviewer-value-report.example.md +0 -0
  461. {code_mower-1.5.0 → code_mower-1.5.1}/src/code_mower/templates/slack/app-manifest.json +0 -0
  462. {code_mower-1.5.0 → code_mower-1.5.1}/src/code_mower/templates/slack/hosted-app-manifest.json +0 -0
  463. {code_mower-1.5.0 → code_mower-1.5.1}/src/code_mower/templates/workflows/audit-label-cleanup.yml.j2 +0 -0
  464. {code_mower-1.5.0 → code_mower-1.5.1}/src/code_mower/templates/workflows/builder-lineage-producer.yml.j2 +0 -0
  465. {code_mower-1.5.0 → code_mower-1.5.1}/src/code_mower/templates/workflows/builder-provenance.yml.j2 +0 -0
  466. {code_mower-1.5.0 → code_mower-1.5.1}/src/code_mower/templates/workflows/code-mower-agent-pr-labeler.yml.j2 +0 -0
  467. {code_mower-1.5.0 → code_mower-1.5.1}/src/code_mower/templates/workflows/code-mower-fix-round-dispatch.yml.j2 +0 -0
  468. {code_mower-1.5.0 → code_mower-1.5.1}/src/code_mower/templates/workflows/code-mower-gate-health.yml.j2 +0 -0
  469. {code_mower-1.5.0 → code_mower-1.5.1}/src/code_mower/templates/workflows/code-mower-gate.yml.j2 +0 -0
  470. {code_mower-1.5.0 → code_mower-1.5.1}/src/code_mower/templates/workflows/dispatch-lanes.yml.j2 +0 -0
  471. {code_mower-1.5.0 → code_mower-1.5.1}/src/code_mower/templates/workflows/hosted-bridge.yml.j2 +0 -0
  472. {code_mower-1.5.0 → code_mower-1.5.1}/src/code_mower/templates/workflows/lane-mac-runner.yml.j2 +0 -0
  473. {code_mower-1.5.0 → code_mower-1.5.1}/src/code_mower/templates/workflows/local-audit-publication.yml.j2 +0 -0
  474. {code_mower-1.5.0 → code_mower-1.5.1}/src/code_mower/templates/workflows/local-audit-request.yml.j2 +0 -0
  475. {code_mower-1.5.0 → code_mower-1.5.1}/src/code_mower/templates/workflows/local-cli-audit.yml.j2 +0 -0
  476. {code_mower-1.5.0 → code_mower-1.5.1}/src/code_mower/templates/workflows/needs-owner-notify.yml.j2 +0 -0
  477. {code_mower-1.5.0 → code_mower-1.5.1}/src/code_mower/templates/workflows/private-standalone-shadow.yml.j2 +0 -0
  478. {code_mower-1.5.0 → code_mower-1.5.1}/src/code_mower/templates/workflows/review-clear-stale.yml.j2 +0 -0
  479. {code_mower-1.5.0 → code_mower-1.5.1}/src/code_mower/templates/workflows/saas-reviewer-labeler.yml.j2 +0 -0
  480. {code_mower-1.5.0 → code_mower-1.5.1}/src/code_mower/templates/workflows/self-hosted-local-audit.yml.j2 +0 -0
  481. {code_mower-1.5.0 → code_mower-1.5.1}/src/code_mower/templates/workflows/trailer-comment-labeler.yml.j2 +0 -0
  482. {code_mower-1.5.0 → code_mower-1.5.1}/src/code_mower/templates/workflows/weekly-status.yml.j2 +0 -0
  483. {code_mower-1.5.0 → code_mower-1.5.1}/src/code_mower/tracker_contract.py +0 -0
  484. {code_mower-1.5.0 → code_mower-1.5.1}/src/code_mower/tracker_queue.py +0 -0
  485. {code_mower-1.5.0 → code_mower-1.5.1}/src/code_mower/trailer_comment_labeler.py +0 -0
  486. {code_mower-1.5.0 → code_mower-1.5.1}/src/code_mower/versioning.py +0 -0
  487. {code_mower-1.5.0 → code_mower-1.5.1}/src/code_mower/work_orders.py +0 -0
  488. {code_mower-1.5.0 → code_mower-1.5.1}/src/code_mower/workflow_actionlint.py +0 -0
  489. {code_mower-1.5.0 → code_mower-1.5.1}/src/code_mower/yaml_subset.py +0 -0
  490. {code_mower-1.5.0 → code_mower-1.5.1}/src/code_mower.egg-info/dependency_links.txt +0 -0
  491. {code_mower-1.5.0 → code_mower-1.5.1}/src/code_mower.egg-info/entry_points.txt +0 -0
  492. {code_mower-1.5.0 → code_mower-1.5.1}/src/code_mower.egg-info/requires.txt +0 -0
  493. {code_mower-1.5.0 → code_mower-1.5.1}/src/code_mower.egg-info/top_level.txt +0 -0
  494. {code_mower-1.5.0 → code_mower-1.5.1}/templates/builder-experiment.example.json +0 -0
  495. {code_mower-1.5.0 → code_mower-1.5.1}/templates/calibration-corpus.example.json +0 -0
  496. {code_mower-1.5.0 → code_mower-1.5.1}/templates/calibration-corpus.json +0 -0
  497. {code_mower-1.5.0 → code_mower-1.5.1}/templates/code-mower.yml.j2 +0 -0
  498. {code_mower-1.5.0 → code_mower-1.5.1}/templates/context-packs.example.json +0 -0
  499. {code_mower-1.5.0 → code_mower-1.5.1}/templates/cursor/BUGBOT.md +0 -0
  500. {code_mower-1.5.0 → code_mower-1.5.1}/templates/lanes/README.md +0 -0
  501. {code_mower-1.5.0 → code_mower-1.5.1}/templates/lanes/claude.md +0 -0
  502. {code_mower-1.5.0 → code_mower-1.5.1}/templates/lanes/codex.md +0 -0
  503. {code_mower-1.5.0 → code_mower-1.5.1}/templates/lanes/cursor.md +0 -0
  504. {code_mower-1.5.0 → code_mower-1.5.1}/templates/lanes/devin.md +0 -0
  505. {code_mower-1.5.0 → code_mower-1.5.1}/templates/lanes/generic.md +0 -0
  506. {code_mower-1.5.0 → code_mower-1.5.1}/templates/lanes/lineage-producer.sh +0 -0
  507. {code_mower-1.5.0 → code_mower-1.5.1}/templates/lanes/run_mac_lane.sh +0 -0
  508. {code_mower-1.5.0 → code_mower-1.5.1}/templates/providers/acp_bridge.yml +0 -0
  509. {code_mower-1.5.0 → code_mower-1.5.1}/templates/providers/aider.yml +0 -0
  510. {code_mower-1.5.0 → code_mower-1.5.1}/templates/providers/antigravity_cli.yml +0 -0
  511. {code_mower-1.5.0 → code_mower-1.5.1}/templates/providers/claude_audit.yml +0 -0
  512. {code_mower-1.5.0 → code_mower-1.5.1}/templates/providers/claude_review.yml +0 -0
  513. {code_mower-1.5.0 → code_mower-1.5.1}/templates/providers/coderabbit_cli.yml +0 -0
  514. {code_mower-1.5.0 → code_mower-1.5.1}/templates/providers/codex.yml +0 -0
  515. {code_mower-1.5.0 → code_mower-1.5.1}/templates/providers/cursor_bugbot.yml +0 -0
  516. {code_mower-1.5.0 → code_mower-1.5.1}/templates/providers/cursor_cloud_agent.yml +0 -0
  517. {code_mower-1.5.0 → code_mower-1.5.1}/templates/providers/devin.yml +0 -0
  518. {code_mower-1.5.0 → code_mower-1.5.1}/templates/providers/devin_cli.yml +0 -0
  519. {code_mower-1.5.0 → code_mower-1.5.1}/templates/providers/gemini_cli.yml +0 -0
  520. {code_mower-1.5.0 → code_mower-1.5.1}/templates/providers/gitar.yml +0 -0
  521. {code_mower-1.5.0 → code_mower-1.5.1}/templates/providers/greptile.yml +0 -0
  522. {code_mower-1.5.0 → code_mower-1.5.1}/templates/providers/hermes_cli.yml +0 -0
  523. {code_mower-1.5.0 → code_mower-1.5.1}/templates/providers/local_llm.yml +0 -0
  524. {code_mower-1.5.0 → code_mower-1.5.1}/templates/providers/muse_cli.yml +0 -0
  525. {code_mower-1.5.0 → code_mower-1.5.1}/templates/providers/qodo.yml +0 -0
  526. {code_mower-1.5.0 → code_mower-1.5.1}/templates/providers.yml +0 -0
  527. {code_mower-1.5.0 → code_mower-1.5.1}/templates/reviewer-spend.example.json +0 -0
  528. {code_mower-1.5.0 → code_mower-1.5.1}/templates/reviewer-value-report.example.md +0 -0
  529. {code_mower-1.5.0 → code_mower-1.5.1}/templates/slack/app-manifest.json +0 -0
  530. {code_mower-1.5.0 → code_mower-1.5.1}/templates/workflows/audit-label-cleanup.yml.j2 +0 -0
  531. {code_mower-1.5.0 → code_mower-1.5.1}/templates/workflows/blind-review-artifacts-dry-run.yml.j2 +0 -0
  532. {code_mower-1.5.0 → code_mower-1.5.1}/templates/workflows/builder-lineage-producer.yml.j2 +0 -0
  533. {code_mower-1.5.0 → code_mower-1.5.1}/templates/workflows/builder-provenance.yml.j2 +0 -0
  534. {code_mower-1.5.0 → code_mower-1.5.1}/templates/workflows/code-mower-agent-pr-labeler.yml.j2 +0 -0
  535. {code_mower-1.5.0 → code_mower-1.5.1}/templates/workflows/code-mower-fix-round-dispatch.yml.j2 +0 -0
  536. {code_mower-1.5.0 → code_mower-1.5.1}/templates/workflows/code-mower-gate-health.yml.j2 +0 -0
  537. {code_mower-1.5.0 → code_mower-1.5.1}/templates/workflows/code-mower-gate.yml.j2 +0 -0
  538. {code_mower-1.5.0 → code_mower-1.5.1}/templates/workflows/dispatch-lanes.yml.j2 +0 -0
  539. {code_mower-1.5.0 → code_mower-1.5.1}/templates/workflows/hosted-bridge.yml.j2 +0 -0
  540. {code_mower-1.5.0 → code_mower-1.5.1}/templates/workflows/lane-mac-runner.yml.j2 +0 -0
  541. {code_mower-1.5.0 → code_mower-1.5.1}/templates/workflows/local-audit-publication.yml.j2 +0 -0
  542. {code_mower-1.5.0 → code_mower-1.5.1}/templates/workflows/local-audit-request.yml.j2 +0 -0
  543. {code_mower-1.5.0 → code_mower-1.5.1}/templates/workflows/local-cli-audit.yml.j2 +0 -0
  544. {code_mower-1.5.0 → code_mower-1.5.1}/templates/workflows/private-standalone-shadow.yml.j2 +0 -0
  545. {code_mower-1.5.0 → code_mower-1.5.1}/templates/workflows/review-clear-stale.yml.j2 +0 -0
  546. {code_mower-1.5.0 → code_mower-1.5.1}/templates/workflows/saas-reviewer-labeler.yml.j2 +0 -0
  547. {code_mower-1.5.0 → code_mower-1.5.1}/templates/workflows/self-hosted-local-audit.yml.j2 +0 -0
  548. {code_mower-1.5.0 → code_mower-1.5.1}/templates/workflows/trailer-comment-labeler.yml.j2 +0 -0
  549. {code_mower-1.5.0 → code_mower-1.5.1}/tests/test_adoption_diagnostics.py +0 -0
  550. {code_mower-1.5.0 → code_mower-1.5.1}/tests/test_adoption_polish_1015.py +0 -0
  551. {code_mower-1.5.0 → code_mower-1.5.1}/tests/test_adoption_polish_955.py +0 -0
  552. {code_mower-1.5.0 → code_mower-1.5.1}/tests/test_adoption_result_semantics.py +0 -0
  553. {code_mower-1.5.0 → code_mower-1.5.1}/tests/test_adoption_run_contract.py +0 -0
  554. {code_mower-1.5.0 → code_mower-1.5.1}/tests/test_antigravity_cli_audit_pr.py +0 -0
  555. {code_mower-1.5.0 → code_mower-1.5.1}/tests/test_antigravity_sdk_probe.py +0 -0
  556. {code_mower-1.5.0 → code_mower-1.5.1}/tests/test_audit_comment_posture.py +0 -0
  557. {code_mower-1.5.0 → code_mower-1.5.1}/tests/test_audit_labeler_identity.py +0 -0
  558. {code_mower-1.5.0 → code_mower-1.5.1}/tests/test_audit_limits.py +0 -0
  559. {code_mower-1.5.0 → code_mower-1.5.1}/tests/test_board_lease.py +0 -0
  560. {code_mower-1.5.0 → code_mower-1.5.1}/tests/test_board_local_observation.py +0 -0
  561. {code_mower-1.5.0 → code_mower-1.5.1}/tests/test_board_observation.py +0 -0
  562. {code_mower-1.5.0 → code_mower-1.5.1}/tests/test_board_qualification.py +0 -0
  563. {code_mower-1.5.0 → code_mower-1.5.1}/tests/test_board_remote_observation.py +0 -0
  564. {code_mower-1.5.0 → code_mower-1.5.1}/tests/test_board_service.py +0 -0
  565. {code_mower-1.5.0 → code_mower-1.5.1}/tests/test_branch_policy.py +0 -0
  566. {code_mower-1.5.0 → code_mower-1.5.1}/tests/test_builder_experiment.py +0 -0
  567. {code_mower-1.5.0 → code_mower-1.5.1}/tests/test_builder_identity.py +0 -0
  568. {code_mower-1.5.0 → code_mower-1.5.1}/tests/test_builder_runs.py +0 -0
  569. {code_mower-1.5.0 → code_mower-1.5.1}/tests/test_calibration_effect_report.py +0 -0
  570. {code_mower-1.5.0 → code_mower-1.5.1}/tests/test_calibration_truth.py +0 -0
  571. {code_mower-1.5.0 → code_mower-1.5.1}/tests/test_campaign_adapters.py +0 -0
  572. {code_mower-1.5.0 → code_mower-1.5.1}/tests/test_campaign_discovery.py +0 -0
  573. {code_mower-1.5.0 → code_mower-1.5.1}/tests/test_campaign_gh_auth_and_issue_binding_817.py +0 -0
  574. {code_mower-1.5.0 → code_mower-1.5.1}/tests/test_campaign_retry_evidence_711.py +0 -0
  575. {code_mower-1.5.0 → code_mower-1.5.1}/tests/test_checks.py +0 -0
  576. {code_mower-1.5.0 → code_mower-1.5.1}/tests/test_claude_audit_pr.py +0 -0
  577. {code_mower-1.5.0 → code_mower-1.5.1}/tests/test_claude_cli_bounce.py +0 -0
  578. {code_mower-1.5.0 → code_mower-1.5.1}/tests/test_clear_stale.py +0 -0
  579. {code_mower-1.5.0 → code_mower-1.5.1}/tests/test_cloud_client.py +0 -0
  580. {code_mower-1.5.0 → code_mower-1.5.1}/tests/test_cloud_git_metadata.py +0 -0
  581. {code_mower-1.5.0 → code_mower-1.5.1}/tests/test_cloud_manifest.py +0 -0
  582. {code_mower-1.5.0 → code_mower-1.5.1}/tests/test_cloud_reports.py +0 -0
  583. {code_mower-1.5.0 → code_mower-1.5.1}/tests/test_coderabbit_cli_audit_pr.py +0 -0
  584. {code_mower-1.5.0 → code_mower-1.5.1}/tests/test_codex_audit_env_preflight.py +0 -0
  585. {code_mower-1.5.0 → code_mower-1.5.1}/tests/test_codex_audit_pr.py +0 -0
  586. {code_mower-1.5.0 → code_mower-1.5.1}/tests/test_codex_campaign_auth_modes.py +0 -0
  587. {code_mower-1.5.0 → code_mower-1.5.1}/tests/test_context_audit.py +0 -0
  588. {code_mower-1.5.0 → code_mower-1.5.1}/tests/test_context_command.py +0 -0
  589. {code_mower-1.5.0 → code_mower-1.5.1}/tests/test_context_connections.py +0 -0
  590. {code_mower-1.5.0 → code_mower-1.5.1}/tests/test_context_contract.py +0 -0
  591. {code_mower-1.5.0 → code_mower-1.5.1}/tests/test_context_delivery.py +0 -0
  592. {code_mower-1.5.0 → code_mower-1.5.1}/tests/test_context_graph.py +0 -0
  593. {code_mower-1.5.0 → code_mower-1.5.1}/tests/test_context_graph_connection.py +0 -0
  594. {code_mower-1.5.0 → code_mower-1.5.1}/tests/test_context_graph_lifecycle.py +0 -0
  595. {code_mower-1.5.0 → code_mower-1.5.1}/tests/test_context_graph_query.py +0 -0
  596. {code_mower-1.5.0 → code_mower-1.5.1}/tests/test_context_guided.py +0 -0
  597. {code_mower-1.5.0 → code_mower-1.5.1}/tests/test_context_packets.py +0 -0
  598. {code_mower-1.5.0 → code_mower-1.5.1}/tests/test_context_prepare.py +0 -0
  599. {code_mower-1.5.0 → code_mower-1.5.1}/tests/test_context_readiness.py +0 -0
  600. {code_mower-1.5.0 → code_mower-1.5.1}/tests/test_context_review.py +0 -0
  601. {code_mower-1.5.0 → code_mower-1.5.1}/tests/test_context_session.py +0 -0
  602. {code_mower-1.5.0 → code_mower-1.5.1}/tests/test_controller.py +0 -0
  603. {code_mower-1.5.0 → code_mower-1.5.1}/tests/test_coworker_mcp.py +0 -0
  604. {code_mower-1.5.0 → code_mower-1.5.1}/tests/test_coworker_retrieval.py +0 -0
  605. {code_mower-1.5.0 → code_mower-1.5.1}/tests/test_decision_audit_integration.py +0 -0
  606. {code_mower-1.5.0 → code_mower-1.5.1}/tests/test_decisions.py +0 -0
  607. {code_mower-1.5.0 → code_mower-1.5.1}/tests/test_devin_api.py +0 -0
  608. {code_mower-1.5.0 → code_mower-1.5.1}/tests/test_devin_builder_lane.py +0 -0
  609. {code_mower-1.5.0 → code_mower-1.5.1}/tests/test_devin_capabilities.py +0 -0
  610. {code_mower-1.5.0 → code_mower-1.5.1}/tests/test_devin_cli_audit_pr.py +0 -0
  611. {code_mower-1.5.0 → code_mower-1.5.1}/tests/test_devin_provider_contract.py +0 -0
  612. {code_mower-1.5.0 → code_mower-1.5.1}/tests/test_devin_review.py +0 -0
  613. {code_mower-1.5.0 → code_mower-1.5.1}/tests/test_devin_sessions.py +0 -0
  614. {code_mower-1.5.0 → code_mower-1.5.1}/tests/test_devin_setup_readiness.py +0 -0
  615. {code_mower-1.5.0 → code_mower-1.5.1}/tests/test_devin_work_orders.py +0 -0
  616. {code_mower-1.5.0 → code_mower-1.5.1}/tests/test_doctor_actions_cost_summary.py +0 -0
  617. {code_mower-1.5.0 → code_mower-1.5.1}/tests/test_doctor_actions_failure_selection.py +0 -0
  618. {code_mower-1.5.0 → code_mower-1.5.1}/tests/test_doctor_boundaries.py +0 -0
  619. {code_mower-1.5.0 → code_mower-1.5.1}/tests/test_doctor_campaign_auth.py +0 -0
  620. {code_mower-1.5.0 → code_mower-1.5.1}/tests/test_doctor_campaign_readiness.py +0 -0
  621. {code_mower-1.5.0 → code_mower-1.5.1}/tests/test_doctor_github_checks.py +0 -0
  622. {code_mower-1.5.0 → code_mower-1.5.1}/tests/test_doctor_output.py +0 -0
  623. {code_mower-1.5.0 → code_mower-1.5.1}/tests/test_doctor_privacy.py +0 -0
  624. {code_mower-1.5.0 → code_mower-1.5.1}/tests/test_doctor_provider_env_required.py +0 -0
  625. {code_mower-1.5.0 → code_mower-1.5.1}/tests/test_doctor_provider_env_tokens.py +0 -0
  626. {code_mower-1.5.0 → code_mower-1.5.1}/tests/test_doctor_provider_local_audit_setup.py +0 -0
  627. {code_mower-1.5.0 → code_mower-1.5.1}/tests/test_doctor_provider_probe.py +0 -0
  628. {code_mower-1.5.0 → code_mower-1.5.1}/tests/test_doctor_provider_review_hygiene.py +0 -0
  629. {code_mower-1.5.0 → code_mower-1.5.1}/tests/test_doctor_registry.py +0 -0
  630. {code_mower-1.5.0 → code_mower-1.5.1}/tests/test_doctor_runtime.py +0 -0
  631. {code_mower-1.5.0 → code_mower-1.5.1}/tests/test_doctor_self_hosted_runner.py +0 -0
  632. {code_mower-1.5.0 → code_mower-1.5.1}/tests/test_doctor_supervised_pilot.py +0 -0
  633. {code_mower-1.5.0 → code_mower-1.5.1}/tests/test_documentation.py +0 -0
  634. {code_mower-1.5.0 → code_mower-1.5.1}/tests/test_documented_commands.py +0 -0
  635. {code_mower-1.5.0 → code_mower-1.5.1}/tests/test_file_locks.py +0 -0
  636. {code_mower-1.5.0 → code_mower-1.5.1}/tests/test_fork_pr_guard.py +0 -0
  637. {code_mower-1.5.0 → code_mower-1.5.1}/tests/test_gate_automerge.py +0 -0
  638. {code_mower-1.5.0 → code_mower-1.5.1}/tests/test_gate_health.py +0 -0
  639. {code_mower-1.5.0 → code_mower-1.5.1}/tests/test_github_builder_evidence.py +0 -0
  640. {code_mower-1.5.0 → code_mower-1.5.1}/tests/test_hosted_dispatch_profile.py +0 -0
  641. {code_mower-1.5.0 → code_mower-1.5.1}/tests/test_init_actionlint.py +0 -0
  642. {code_mower-1.5.0 → code_mower-1.5.1}/tests/test_init_build_loop.py +0 -0
  643. {code_mower-1.5.0 → code_mower-1.5.1}/tests/test_init_builders_cold_start.py +0 -0
  644. {code_mower-1.5.0 → code_mower-1.5.1}/tests/test_jira_adoption.py +0 -0
  645. {code_mower-1.5.0 → code_mower-1.5.1}/tests/test_jira_cloud.py +0 -0
  646. {code_mower-1.5.0 → code_mower-1.5.1}/tests/test_jira_mutations.py +0 -0
  647. {code_mower-1.5.0 → code_mower-1.5.1}/tests/test_jira_pr_sync.py +0 -0
  648. {code_mower-1.5.0 → code_mower-1.5.1}/tests/test_lane_delivery_contract.py +0 -0
  649. {code_mower-1.5.0 → code_mower-1.5.1}/tests/test_lane_handoff.py +0 -0
  650. {code_mower-1.5.0 → code_mower-1.5.1}/tests/test_lane_writer_identity.py +0 -0
  651. {code_mower-1.5.0 → code_mower-1.5.1}/tests/test_lineage_consumer_activation.py +0 -0
  652. {code_mower-1.5.0 → code_mower-1.5.1}/tests/test_lineage_consumer_admission.py +0 -0
  653. {code_mower-1.5.0 → code_mower-1.5.1}/tests/test_lineage_consumer_labels.py +0 -0
  654. {code_mower-1.5.0 → code_mower-1.5.1}/tests/test_lineage_consumer_projection.py +0 -0
  655. {code_mower-1.5.0 → code_mower-1.5.1}/tests/test_lineage_creation.py +0 -0
  656. {code_mower-1.5.0 → code_mower-1.5.1}/tests/test_lineage_producer_artifacts.py +0 -0
  657. {code_mower-1.5.0 → code_mower-1.5.1}/tests/test_lineage_producer_publication.py +0 -0
  658. {code_mower-1.5.0 → code_mower-1.5.1}/tests/test_lineage_producer_state.py +0 -0
  659. {code_mower-1.5.0 → code_mower-1.5.1}/tests/test_local_llm_github_helpers.py +0 -0
  660. {code_mower-1.5.0 → code_mower-1.5.1}/tests/test_migration_rehearsal.py +0 -0
  661. {code_mower-1.5.0 → code_mower-1.5.1}/tests/test_migration_setup_drift.py +0 -0
  662. {code_mower-1.5.0 → code_mower-1.5.1}/tests/test_minimal_lineage_contract.py +0 -0
  663. {code_mower-1.5.0 → code_mower-1.5.1}/tests/test_minimal_lineage_packaging.py +0 -0
  664. {code_mower-1.5.0 → code_mower-1.5.1}/tests/test_minimal_lineage_transport.py +0 -0
  665. {code_mower-1.5.0 → code_mower-1.5.1}/tests/test_next_steps.py +0 -0
  666. {code_mower-1.5.0 → code_mower-1.5.1}/tests/test_operational_evidence.py +0 -0
  667. {code_mower-1.5.0 → code_mower-1.5.1}/tests/test_package_install_failure_taxonomy.py +0 -0
  668. {code_mower-1.5.0 → code_mower-1.5.1}/tests/test_participant_sessions.py +0 -0
  669. {code_mower-1.5.0 → code_mower-1.5.1}/tests/test_plan_context.py +0 -0
  670. {code_mower-1.5.0 → code_mower-1.5.1}/tests/test_pr_outcome_contract.py +0 -0
  671. {code_mower-1.5.0 → code_mower-1.5.1}/tests/test_pr_outcome_coverage.py +0 -0
  672. {code_mower-1.5.0 → code_mower-1.5.1}/tests/test_productivity_metrics_contract.py +0 -0
  673. {code_mower-1.5.0 → code_mower-1.5.1}/tests/test_productivity_report.py +0 -0
  674. {code_mower-1.5.0 → code_mower-1.5.1}/tests/test_productivity_windows.py +0 -0
  675. {code_mower-1.5.0 → code_mower-1.5.1}/tests/test_prompts.py +0 -0
  676. {code_mower-1.5.0 → code_mower-1.5.1}/tests/test_provider_credentials.py +0 -0
  677. {code_mower-1.5.0 → code_mower-1.5.1}/tests/test_provider_fixture_contracts.py +0 -0
  678. {code_mower-1.5.0 → code_mower-1.5.1}/tests/test_provider_local_cli.py +0 -0
  679. {code_mower-1.5.0 → code_mower-1.5.1}/tests/test_provider_runners_comments.py +0 -0
  680. {code_mower-1.5.0 → code_mower-1.5.1}/tests/test_provider_runners_git.py +0 -0
  681. {code_mower-1.5.0 → code_mower-1.5.1}/tests/test_provider_runners_github_pr.py +0 -0
  682. {code_mower-1.5.0 → code_mower-1.5.1}/tests/test_provider_runners_pr_worktree.py +0 -0
  683. {code_mower-1.5.0 → code_mower-1.5.1}/tests/test_provider_runners_process.py +0 -0
  684. {code_mower-1.5.0 → code_mower-1.5.1}/tests/test_provider_runners_repo_paths.py +0 -0
  685. {code_mower-1.5.0 → code_mower-1.5.1}/tests/test_provider_runners_text_schema.py +0 -0
  686. {code_mower-1.5.0 → code_mower-1.5.1}/tests/test_provider_runners_workspace.py +0 -0
  687. {code_mower-1.5.0 → code_mower-1.5.1}/tests/test_release_campaigns.py +0 -0
  688. {code_mower-1.5.0 → code_mower-1.5.1}/tests/test_release_qualify.py +0 -0
  689. {code_mower-1.5.0 → code_mower-1.5.1}/tests/test_release_v141.py +0 -0
  690. {code_mower-1.5.0 → code_mower-1.5.1}/tests/test_remote_qualification_failure_reason_819.py +0 -0
  691. {code_mower-1.5.0 → code_mower-1.5.1}/tests/test_remote_session.py +0 -0
  692. {code_mower-1.5.0 → code_mower-1.5.1}/tests/test_reviewer_finding_outcome_contract.py +0 -0
  693. {code_mower-1.5.0 → code_mower-1.5.1}/tests/test_reviewer_metrics_core.py +0 -0
  694. {code_mower-1.5.0 → code_mower-1.5.1}/tests/test_reviewer_spend.py +0 -0
  695. {code_mower-1.5.0 → code_mower-1.5.1}/tests/test_role_eligibility.py +0 -0
  696. {code_mower-1.5.0 → code_mower-1.5.1}/tests/test_session_current.py +0 -0
  697. {code_mower-1.5.0 → code_mower-1.5.1}/tests/test_session_lease.py +0 -0
  698. {code_mower-1.5.0 → code_mower-1.5.1}/tests/test_slack_contract.py +0 -0
  699. {code_mower-1.5.0 → code_mower-1.5.1}/tests/test_slack_ingress.py +0 -0
  700. {code_mower-1.5.0 → code_mower-1.5.1}/tests/test_slack_setup.py +0 -0
  701. {code_mower-1.5.0 → code_mower-1.5.1}/tests/test_supervised_pilot_contract.py +0 -0
  702. {code_mower-1.5.0 → code_mower-1.5.1}/tests/test_supervisor.py +0 -0
  703. {code_mower-1.5.0 → code_mower-1.5.1}/tests/test_supervisor_v2.py +0 -0
  704. {code_mower-1.5.0 → code_mower-1.5.1}/tests/test_tracker_config.py +0 -0
  705. {code_mower-1.5.0 → code_mower-1.5.1}/tests/test_tracker_contract.py +0 -0
  706. {code_mower-1.5.0 → code_mower-1.5.1}/tests/test_tracker_queue.py +0 -0
  707. {code_mower-1.5.0 → code_mower-1.5.1}/tests/test_trailer_comment_labeler.py +0 -0
  708. {code_mower-1.5.0 → code_mower-1.5.1}/tests/test_work_orders.py +0 -0
  709. {code_mower-1.5.0 → code_mower-1.5.1}/tests/test_work_type_contract.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: code-mower
3
- Version: 1.5.0
3
+ Version: 1.5.1
4
4
  Summary: Multi-reviewer AI code audit orchestration
5
5
  License-Expression: Apache-2.0
6
6
  Project-URL: Homepage, https://github.com/codemower-ai/code-mower
@@ -45,12 +45,12 @@ Code Mower is supervised-pilot, bring-your-own-agent-loop software.
45
45
  It is not a drop-in unattended merge gate. Humans still own credentials,
46
46
  repository policy, reviewer promotion, and exceptional decisions.
47
47
 
48
- This source defines Code Mower `v1.5.0`, with package spec
49
- `code-mower==1.5.0`. Confirm the release tag on GitHub Releases and the package
48
+ This source defines Code Mower `v1.5.1`, with package spec
49
+ `code-mower==1.5.1`. Confirm the release tag on GitHub Releases and the package
50
50
  version on the selected index before using an index install command; source
51
51
  version and publication state are separate facts. See the
52
- [v1.5.0 release notes](https://github.com/codemower-ai/code-mower/blob/main/docs/v150-release-notes.md)
53
- and [qualification contract](https://github.com/codemower-ai/code-mower/blob/main/docs/v150-qualification.md).
52
+ [v1.5.1 release notes](https://github.com/codemower-ai/code-mower/blob/main/docs/v151-release-notes.md)
53
+ and [qualification contract](https://github.com/codemower-ai/code-mower/blob/main/docs/v151-qualification.md).
54
54
  After publication, the GitHub Release and linked release issue carry the
55
55
  observed source SHA, artifact digests, canary outcomes, publication run and
56
56
  reinstall evidence.
@@ -61,7 +61,7 @@ not claimed by its immutable qualification record.
61
61
 
62
62
  Documentation on `main` follows the source on `main`. For an installed release,
63
63
  read its immutable versioned guide, such as the
64
- [`v1.5.0` guide](https://github.com/codemower-ai/code-mower/blob/v1.5.0/docs/try-in-10-minutes.md),
64
+ [`v1.5.1` guide](https://github.com/codemower-ai/code-mower/blob/v1.5.1/docs/try-in-10-minutes.md),
65
65
  and confirm the tag and package exist before using pinned install commands.
66
66
 
67
67
  ## What Code Mower Adds
@@ -90,13 +90,13 @@ one stable `pipx` installation:
90
90
  ```bash
91
91
  python3.12 --version
92
92
  export CODE_MOWER_PYTHON="$(command -v python3.12)"
93
- pipx install --python "$CODE_MOWER_PYTHON" code-mower==1.5.0
93
+ pipx install --python "$CODE_MOWER_PYTHON" code-mower==1.5.1
94
94
  command -v code-mower
95
95
  code-mower --version
96
96
  ```
97
97
 
98
98
  `command -v code-mower` should print the path you expect and `code-mower
99
- --version` should print `code-mower 1.5.0` before you point Code Mower at a
99
+ --version` should print `code-mower 1.5.1` before you point Code Mower at a
100
100
  repository. If you do not have pipx, install it from the
101
101
  [official pipx installation guide](https://pipx.pypa.io/stable/installation/).
102
102
 
@@ -321,7 +321,7 @@ for both workflows, supported behavior, and the trust boundary.
321
321
 
322
322
  ## Current Capabilities And Limits
323
323
 
324
- | Area | v1.5.0 posture |
324
+ | Area | v1.5.1 posture |
325
325
  | --- | --- |
326
326
  | Default builders and reviewers | Claude Code + Codex |
327
327
  | Session hosts | Codex, Claude Code, and Cursor qualified; other identities recognized but require explicit handoff/provider transport |
@@ -335,7 +335,7 @@ for both workflows, supported behavior, and the trust boundary.
335
335
 
336
336
  GitLab, Bitbucket, broad unattended rollout, uncalibrated merge gates, Devin
337
337
  peer-orchestrator/reviewer parity, a hosted work-order CLI, a required Graphify
338
- dependency, Slack telemetry/Board links, and rich Slack UX are outside v1.5.0. The current priorities
338
+ dependency, Slack telemetry/Board links, and rich Slack UX are outside v1.5.1. The current priorities
339
339
  and boundaries are recorded in
340
340
  [Current State And Roadmap](https://github.com/codemower-ai/code-mower/blob/main/docs/current-state-and-roadmap.md).
341
341
 
@@ -436,9 +436,9 @@ does not need rebuilding. See
436
436
  - [Cloud Data Contract](https://github.com/codemower-ai/code-mower/blob/main/docs/cloud-data-contract.md)
437
437
  - [Release Qualification](https://github.com/codemower-ai/code-mower/blob/main/docs/release-qualification.md)
438
438
  - [Public Release Checklist](https://github.com/codemower-ai/code-mower/blob/main/docs/public-release-checklist.md)
439
- - [v1.5.0 Release Notes](https://github.com/codemower-ai/code-mower/blob/main/docs/v150-release-notes.md)
439
+ - [v1.5.1 Release Notes](https://github.com/codemower-ai/code-mower/blob/main/docs/v151-release-notes.md)
440
440
  - [v1.4.2 Release Notes](https://github.com/codemower-ai/code-mower/blob/main/docs/v142-release-notes.md)
441
- - [v1.5.0 Qualification Contract](https://github.com/codemower-ai/code-mower/blob/main/docs/v150-qualification.md)
441
+ - [v1.5.1 Qualification Contract](https://github.com/codemower-ai/code-mower/blob/main/docs/v151-qualification.md)
442
442
  - [v1.4.2 Qualification Record](https://github.com/codemower-ai/code-mower/blob/main/docs/v142-qualification.md)
443
443
  - [Release History And Archived Plans](https://github.com/codemower-ai/code-mower/blob/main/docs/release-history.md)
444
444
  - [Changelog](https://github.com/codemower-ai/code-mower/blob/main/CHANGELOG.md)
@@ -9,12 +9,12 @@ Code Mower is supervised-pilot, bring-your-own-agent-loop software.
9
9
  It is not a drop-in unattended merge gate. Humans still own credentials,
10
10
  repository policy, reviewer promotion, and exceptional decisions.
11
11
 
12
- This source defines Code Mower `v1.5.0`, with package spec
13
- `code-mower==1.5.0`. Confirm the release tag on GitHub Releases and the package
12
+ This source defines Code Mower `v1.5.1`, with package spec
13
+ `code-mower==1.5.1`. Confirm the release tag on GitHub Releases and the package
14
14
  version on the selected index before using an index install command; source
15
15
  version and publication state are separate facts. See the
16
- [v1.5.0 release notes](https://github.com/codemower-ai/code-mower/blob/main/docs/v150-release-notes.md)
17
- and [qualification contract](https://github.com/codemower-ai/code-mower/blob/main/docs/v150-qualification.md).
16
+ [v1.5.1 release notes](https://github.com/codemower-ai/code-mower/blob/main/docs/v151-release-notes.md)
17
+ and [qualification contract](https://github.com/codemower-ai/code-mower/blob/main/docs/v151-qualification.md).
18
18
  After publication, the GitHub Release and linked release issue carry the
19
19
  observed source SHA, artifact digests, canary outcomes, publication run and
20
20
  reinstall evidence.
@@ -25,7 +25,7 @@ not claimed by its immutable qualification record.
25
25
 
26
26
  Documentation on `main` follows the source on `main`. For an installed release,
27
27
  read its immutable versioned guide, such as the
28
- [`v1.5.0` guide](https://github.com/codemower-ai/code-mower/blob/v1.5.0/docs/try-in-10-minutes.md),
28
+ [`v1.5.1` guide](https://github.com/codemower-ai/code-mower/blob/v1.5.1/docs/try-in-10-minutes.md),
29
29
  and confirm the tag and package exist before using pinned install commands.
30
30
 
31
31
  ## What Code Mower Adds
@@ -54,13 +54,13 @@ one stable `pipx` installation:
54
54
  ```bash
55
55
  python3.12 --version
56
56
  export CODE_MOWER_PYTHON="$(command -v python3.12)"
57
- pipx install --python "$CODE_MOWER_PYTHON" code-mower==1.5.0
57
+ pipx install --python "$CODE_MOWER_PYTHON" code-mower==1.5.1
58
58
  command -v code-mower
59
59
  code-mower --version
60
60
  ```
61
61
 
62
62
  `command -v code-mower` should print the path you expect and `code-mower
63
- --version` should print `code-mower 1.5.0` before you point Code Mower at a
63
+ --version` should print `code-mower 1.5.1` before you point Code Mower at a
64
64
  repository. If you do not have pipx, install it from the
65
65
  [official pipx installation guide](https://pipx.pypa.io/stable/installation/).
66
66
 
@@ -285,7 +285,7 @@ for both workflows, supported behavior, and the trust boundary.
285
285
 
286
286
  ## Current Capabilities And Limits
287
287
 
288
- | Area | v1.5.0 posture |
288
+ | Area | v1.5.1 posture |
289
289
  | --- | --- |
290
290
  | Default builders and reviewers | Claude Code + Codex |
291
291
  | Session hosts | Codex, Claude Code, and Cursor qualified; other identities recognized but require explicit handoff/provider transport |
@@ -299,7 +299,7 @@ for both workflows, supported behavior, and the trust boundary.
299
299
 
300
300
  GitLab, Bitbucket, broad unattended rollout, uncalibrated merge gates, Devin
301
301
  peer-orchestrator/reviewer parity, a hosted work-order CLI, a required Graphify
302
- dependency, Slack telemetry/Board links, and rich Slack UX are outside v1.5.0. The current priorities
302
+ dependency, Slack telemetry/Board links, and rich Slack UX are outside v1.5.1. The current priorities
303
303
  and boundaries are recorded in
304
304
  [Current State And Roadmap](https://github.com/codemower-ai/code-mower/blob/main/docs/current-state-and-roadmap.md).
305
305
 
@@ -400,9 +400,9 @@ does not need rebuilding. See
400
400
  - [Cloud Data Contract](https://github.com/codemower-ai/code-mower/blob/main/docs/cloud-data-contract.md)
401
401
  - [Release Qualification](https://github.com/codemower-ai/code-mower/blob/main/docs/release-qualification.md)
402
402
  - [Public Release Checklist](https://github.com/codemower-ai/code-mower/blob/main/docs/public-release-checklist.md)
403
- - [v1.5.0 Release Notes](https://github.com/codemower-ai/code-mower/blob/main/docs/v150-release-notes.md)
403
+ - [v1.5.1 Release Notes](https://github.com/codemower-ai/code-mower/blob/main/docs/v151-release-notes.md)
404
404
  - [v1.4.2 Release Notes](https://github.com/codemower-ai/code-mower/blob/main/docs/v142-release-notes.md)
405
- - [v1.5.0 Qualification Contract](https://github.com/codemower-ai/code-mower/blob/main/docs/v150-qualification.md)
405
+ - [v1.5.1 Qualification Contract](https://github.com/codemower-ai/code-mower/blob/main/docs/v151-qualification.md)
406
406
  - [v1.4.2 Qualification Record](https://github.com/codemower-ai/code-mower/blob/main/docs/v142-qualification.md)
407
407
  - [Release History And Archived Plans](https://github.com/codemower-ai/code-mower/blob/main/docs/release-history.md)
408
408
  - [Changelog](https://github.com/codemower-ai/code-mower/blob/main/CHANGELOG.md)
@@ -16,6 +16,15 @@ to the newest timestamped result in this current-state snapshot. Superseded
16
16
  results remain available in prior local history events, but do not drive the
17
17
  current next action or owner queue.
18
18
 
19
+ Each readable open PR includes a `lineage` posture. When no repository policy
20
+ was loaded, `status: optional` and `reason: lineage_policy_not_configured`
21
+ preserve the independently readable labels, checks, gate state, and PR next
22
+ action; `lineage.next_action` tells the operator to pass
23
+ `--config code-mower.yml` if they want lineage evaluated. When a configured
24
+ policy cannot read or validate the lineage metadata, `status: unavailable`
25
+ and `reason: lineage_unreadable` direct the operator to restore readable
26
+ metadata and rerun status. Neither posture is presented as verified lineage.
27
+
19
28
  `code_mower.board.v1` is the local board wrapper added by
20
29
  `code-mower board serve --repo OWNER/REPO`. It adds board display metadata and
21
30
  embeds the lane-status snapshot unchanged.
@@ -466,6 +475,11 @@ and at every width. The tabs are a real `tablist` of `tab` buttons controlling
466
475
  real `tabpanel` regions; the unselected panels carry `hidden`, so they leave the
467
476
  accessibility tree instead of being painted away.
468
477
 
478
+ The header labels the running package as `Serving version: VERSION`; this is
479
+ the primary version reading, while the Health view retains installed-version
480
+ and restart detail. An empty Recent Code Mower Workflows section renders
481
+ `none`, matching the terminal status surface.
482
+
469
483
  - **Now** — the work rows, the selected work item's evidence, the participant
470
484
  summary, and the existing owner queue, lane work, supervised pilot and open
471
485
  PR sections.
@@ -57,14 +57,14 @@ If path A has not been completed in this repository, do this reviewer-gate
57
57
  checkpoint first. If you already have a merged setup PR with Codex and Claude
58
58
  audit evidence, skip to section 2.
59
59
 
60
- Confirm `code-mower==1.5.0` is visible on the selected package index before
60
+ Confirm `code-mower==1.5.1` is visible on the selected package index before
61
61
  running this install block. Prepublication qualification uses the retained
62
- candidate wheel from the [v1.5.0 release runbook](v150-release-runbook.md).
62
+ candidate wheel from the [v1.5.1 release runbook](v151-release-runbook.md).
63
63
 
64
64
  ```bash
65
65
  python3.12 --version
66
66
  export CODE_MOWER_PYTHON="$(command -v python3.12)"
67
- pipx install --python "$CODE_MOWER_PYTHON" code-mower==1.5.0
67
+ pipx install --python "$CODE_MOWER_PYTHON" code-mower==1.5.1
68
68
  gh auth status >/dev/null 2>&1 && echo "gh auth ok" || { echo "gh auth NOT ready"; false; }
69
69
  code-mower init --easy
70
70
  code-mower init --easy --apply --output-dir .code-mower.generated
@@ -22,12 +22,12 @@ dry-run-first.
22
22
 
23
23
  ## Current Source And Published Baseline
24
24
 
25
- This source defines Code Mower `v1.5.0`, with package spec
26
- `code-mower==1.5.0`. Confirm the release tag on GitHub Releases and the package
25
+ This source defines Code Mower `v1.5.1`, with package spec
26
+ `code-mower==1.5.1`. Confirm the release tag on GitHub Releases and the package
27
27
  version on the selected index before using an index install command; source
28
28
  version and publication state are separate facts. See the
29
- [v1.5.0 release notes](https://github.com/codemower-ai/code-mower/blob/main/docs/v150-release-notes.md)
30
- and [qualification contract](https://github.com/codemower-ai/code-mower/blob/main/docs/v150-qualification.md).
29
+ [v1.5.1 release notes](https://github.com/codemower-ai/code-mower/blob/main/docs/v151-release-notes.md)
30
+ and [qualification contract](https://github.com/codemower-ai/code-mower/blob/main/docs/v151-qualification.md).
31
31
  After publication, the GitHub Release and linked release issue carry the
32
32
  observed source SHA, artifact digests, canary outcomes, publication run and
33
33
  reinstall evidence.
@@ -310,7 +310,7 @@ administration/readiness; #920 consumes the immutable candidate to obtain one
310
310
  accepted completion and one accepted confirmed cancellation under an explicit
311
311
  numeric cap while preserving every attempt and reservation; #923 records the
312
312
  tag, publication and independent reinstall evidence.
313
- Slack telemetry/Board/cloud links and rich UX remain v1.5.1. Slack consumes the
313
+ Slack telemetry/Board/cloud links and rich UX remain v1.6.0. Slack consumes the
314
314
  durable lifecycle instead of scraping terminal or Board output and carries no
315
315
  raw private context or private reviewer findings.
316
316
 
@@ -1,7 +1,7 @@
1
1
  # Early Adopter Invite Runbook
2
2
 
3
3
  Source target: v1.5.0 supervised-pilot baseline. Release invitations and pinned
4
- index installs target `code-mower==1.5.0` only after that version is visible on
4
+ index installs target `code-mower==1.5.1` only after that version is visible on
5
5
  the selected package index.
6
6
 
7
7
  Use this runbook for the first 5-10 friendly users before widening Code Mower
@@ -41,8 +41,8 @@ Want to try Code Mower for 10 minutes?
41
41
  It is an OSS local-first tool for setting up AI peer-programmer/reviewer lanes
42
42
  on your real codebase, with optional privacy-first cloud reporting.
43
43
 
44
- After v1.5.0 is published, start here:
45
- https://github.com/codemower-ai/code-mower/blob/v1.5.0/docs/try-in-10-minutes.md
44
+ After v1.5.1 is published, start here:
45
+ https://github.com/codemower-ai/code-mower/blob/v1.5.1/docs/try-in-10-minutes.md
46
46
 
47
47
  Cloud sharing is optional. The default bundle excludes source code, raw diffs,
48
48
  model transcripts, raw stdout/stderr, auth output, and secrets.
@@ -57,7 +57,7 @@ Before inviting a user:
57
57
  ```bash
58
58
  python3.12 --version
59
59
  export CODE_MOWER_PYTHON="$(command -v python3.12)"
60
- pipx install --python "$CODE_MOWER_PYTHON" code-mower==1.5.0
60
+ pipx install --python "$CODE_MOWER_PYTHON" code-mower==1.5.1
61
61
  code-mower --version
62
62
  ```
63
63
 
@@ -1,12 +1,12 @@
1
1
  # First-User Install Rehearsal
2
2
 
3
- v1.5.0 uses the exact install pin `code-mower==1.5.0`. Verify that version is
3
+ v1.5.1 uses the exact install pin `code-mower==1.5.1`. Verify that version is
4
4
  published on the selected index, then verify the command path and version after
5
- installing. The [v1.5.0 qualification contract](v150-qualification.md) defines
5
+ installing. The [v1.5.1 qualification contract](v151-qualification.md) defines
6
6
  the required evidence. After publication, the GitHub Release and linked release
7
7
  issue carry the observed source SHA, artifact digests, canary outcomes,
8
8
  publication run and reinstall evidence. Use the
9
- [candidate runbook](v150-release-runbook.md) for
9
+ [candidate runbook](v151-release-runbook.md) for
10
10
  prepublication local-wheel rehearsals. Offline preparation does not establish
11
11
  live Slack readiness.
12
12
 
@@ -59,7 +59,7 @@ Use the current public tag or release candidate:
59
59
 
60
60
  ```bash
61
61
  code-mower migration package-install-rehearsal \
62
- --package-spec code-mower==1.5.0 \
62
+ --package-spec code-mower==1.5.1 \
63
63
  --allow-package-index \
64
64
  --python "$(command -v python3.12)" \
65
65
  --json
@@ -83,7 +83,7 @@ For a fixed output directory:
83
83
 
84
84
  ```bash
85
85
  code-mower migration package-install-rehearsal \
86
- --package-spec code-mower==1.5.0 \
86
+ --package-spec code-mower==1.5.1 \
87
87
  --allow-package-index \
88
88
  --python "$(command -v python3.12)" \
89
89
  --work-dir /tmp/code-mower-first-user-rehearsal \
@@ -127,7 +127,7 @@ deciding the package index or the release is broken. For pipx:
127
127
 
128
128
  ```bash
129
129
  export CODE_MOWER_PYTHON="$(command -v python3.12)"
130
- PIP_NO_CACHE_DIR=1 pipx install --force --python "$CODE_MOWER_PYTHON" code-mower==1.5.0
130
+ PIP_NO_CACHE_DIR=1 pipx install --force --python "$CODE_MOWER_PYTHON" code-mower==1.5.1
131
131
  code-mower --version
132
132
  ```
133
133
 
@@ -137,7 +137,7 @@ For uv:
137
137
  env -u UV_INDEX -u UV_DEFAULT_INDEX -u UV_INDEX_URL -u UV_EXTRA_INDEX_URL \
138
138
  -u UV_FIND_LINKS -u UV_NO_INDEX -u UV_OFFLINE \
139
139
  uv --no-config --no-cache tool install --python 3.12 --reinstall \
140
- --default-index https://pypi.org/simple/ code-mower==1.5.0
140
+ --default-index https://pypi.org/simple/ code-mower==1.5.1
141
141
  code-mower --version
142
142
  ```
143
143
 
@@ -168,7 +168,7 @@ repository after the package install succeeds:
168
168
 
169
169
  ```bash
170
170
  code-mower migration package-install-rehearsal \
171
- --package-spec code-mower==1.5.0 \
171
+ --package-spec code-mower==1.5.1 \
172
172
  --allow-package-index \
173
173
  --repo-path /path/to/external-repo \
174
174
  --python "$(command -v python3.12)" \
@@ -260,7 +260,7 @@ When a product repository already has Code Mower wrapper files, the same
260
260
 
261
261
  ```bash
262
262
  code-mower migration package-install-rehearsal \
263
- --package-spec code-mower==1.5.0 \
263
+ --package-spec code-mower==1.5.1 \
264
264
  --allow-package-index \
265
265
  --repo-path /path/to/product-repo \
266
266
  --python "$(command -v python3.12)" \
@@ -321,9 +321,9 @@ If this fails, fix the first-user path before cutting or promoting a release.
321
321
  ## Stable Package-Index Release Procedure
322
322
 
323
323
  The following v1.4.2 publication commands are historical evidence, not the
324
- v1.5.0 sequence. For v1.5.0 build the merge-SHA candidate first, qualify it in
324
+ v1.5.1 sequence. For v1.5.1 build the merge-SHA candidate first, qualify it in
325
325
  #918 and explicitly authorized #920, then tag/publish the unchanged source SHA
326
- and the same artifacts through #923. Follow [the current runbook](v150-release-runbook.md).
326
+ and the same artifacts through #923. Follow [the current runbook](v151-release-runbook.md).
327
327
 
328
328
  Publish and rehearse the package-index artifacts in this order. After the
329
329
  release tag exists at the release commit, dispatch both package-index
@@ -1,7 +1,7 @@
1
1
  # Friendly-User Rollout Plan
2
2
 
3
3
  Source target: v1.5.0 supervised-pilot baseline. Release invitations and pinned
4
- index installs target `code-mower==1.5.0` only after that version is visible on
4
+ index installs target `code-mower==1.5.1` only after that version is visible on
5
5
  the selected package index.
6
6
 
7
7
  This is the operating plan for the first 5-10 friendly users before Code Mower
@@ -33,14 +33,14 @@ out in the invite:
33
33
  ```bash
34
34
  python3.12 --version
35
35
  export CODE_MOWER_PYTHON="$(command -v python3.12)"
36
- pipx install --python "$CODE_MOWER_PYTHON" code-mower==1.5.0
36
+ pipx install --python "$CODE_MOWER_PYTHON" code-mower==1.5.1
37
37
  ```
38
38
 
39
- This source defines Code Mower `v1.5.0`, with package spec
40
- `code-mower==1.5.0`. Confirm the release tag on GitHub Releases and the package
39
+ This source defines Code Mower `v1.5.1`, with package spec
40
+ `code-mower==1.5.1`. Confirm the release tag on GitHub Releases and the package
41
41
  version on the selected index before using an index install command; source
42
42
  version and publication state are separate facts. After publication, see the
43
- [v1.5.0 release](https://github.com/codemower-ai/code-mower/releases/tag/v1.5.0).
43
+ [v1.5.1 release](https://github.com/codemower-ai/code-mower/releases/tag/v1.5.1).
44
44
 
45
45
  ## Invite Criteria
46
46
 
@@ -1,12 +1,12 @@
1
1
  # Install And Bootstrap
2
2
 
3
- v1.5.0 uses the exact install pin `code-mower==1.5.0`. Confirm that version is
3
+ v1.5.1 uses the exact install pin `code-mower==1.5.1`. Confirm that version is
4
4
  published on the selected index, then verify the command path and version after
5
- installing. The [v1.5.0 qualification contract](v150-qualification.md) defines
5
+ installing. The [v1.5.1 qualification contract](v151-qualification.md) defines
6
6
  the required evidence. After publication, the GitHub Release and linked release
7
7
  issue carry the observed source SHA, artifact digests, canary outcomes,
8
8
  publication run and reinstall evidence. Use the
9
- [candidate runbook](v150-release-runbook.md) for
9
+ [candidate runbook](v151-release-runbook.md) for
10
10
  prepublication local-wheel rehearsals. Offline preparation does not establish
11
11
  live Slack readiness.
12
12
 
@@ -39,6 +39,23 @@ documentation rather than from a copied shell snippet:
39
39
  Code Mower does not publish, and you should not use, a
40
40
  `curl ... | sh` bootstrap for either installer.
41
41
 
42
+ On a hosted Linux image that has Python 3.12 with `venv` support but neither
43
+ installer, bootstrap uv in a small isolated environment instead of piping a
44
+ remote script into a shell or writing into an externally managed system
45
+ Python:
46
+
47
+ ```bash
48
+ UV_BOOTSTRAP="$HOME/.local/share/code-mower-bootstrap/uv"
49
+ python3.12 -m venv "$UV_BOOTSTRAP"
50
+ "$UV_BOOTSTRAP/bin/python" -m pip install --upgrade uv
51
+ "$UV_BOOTSTRAP/bin/python" -m uv --version
52
+ "$UV_BOOTSTRAP/bin/python" -m uv tool install --python 3.12 code-mower==1.5.1
53
+ ```
54
+
55
+ The module form works even when uv is not yet on `PATH`. After installation,
56
+ follow uv's printed path hint, then verify
57
+ `command -v code-mower` and `code-mower --version` before using the repository.
58
+
42
59
  Confirm the installer is on `PATH` before installing Code Mower with it:
43
60
 
44
61
  ```bash
@@ -61,7 +78,7 @@ code-mower --version
61
78
  ```
62
79
 
63
80
  `command -v code-mower` must print the path belonging to the installer you
64
- chose, and `code-mower --version` must print `code-mower 1.5.0`. A version that
81
+ chose, and `code-mower --version` must print `code-mower 1.5.1`. A version that
65
82
  does not match, or a path from a different installer, means an older command is
66
83
  still winning on `PATH`; resolve that before running anything against a
67
84
  repository.
@@ -101,7 +118,7 @@ v1.5.0 includes the local audit publisher, which generates
101
118
  gate and standalone verification helpers. Commit that generated set to the
102
119
  repository's default branch before switching local Claude/Codex wrappers to
103
120
  workflow publication. A PR's copy of the verifier has no publication authority.
104
- Before v1.5.0 is published, use its reviewed candidate wheel; afterward, use the
121
+ Before v1.5.1 is published, use its reviewed candidate wheel; afterward, use the
105
122
  exact published pin below.
106
123
 
107
124
  The generated self-hosted audit job seals the verdict digest in an immutable
@@ -121,7 +138,7 @@ Install with pipx and an explicit Python 3.12+ interpreter:
121
138
  ```bash
122
139
  python3.12 --version
123
140
  export CODE_MOWER_PYTHON="$(command -v python3.12)"
124
- pipx install --python "$CODE_MOWER_PYTHON" code-mower==1.5.0
141
+ pipx install --python "$CODE_MOWER_PYTHON" code-mower==1.5.1
125
142
  code-mower --version
126
143
  ```
127
144
 
@@ -142,7 +159,7 @@ To replace an existing pipx install with an exact release, use `--force` so the
142
159
  old venv cannot keep serving the previous package:
143
160
 
144
161
  ```bash
145
- PIP_NO_CACHE_DIR=1 pipx install --force --python "$CODE_MOWER_PYTHON" code-mower==1.5.0
162
+ PIP_NO_CACHE_DIR=1 pipx install --force --python "$CODE_MOWER_PYTHON" code-mower==1.5.1
146
163
  code-mower --version
147
164
  ```
148
165
 
@@ -155,7 +172,7 @@ export PIPX_HOME="$CODE_MOWER_AGENT_TOOLS/pipx"
155
172
  export PIPX_BIN_DIR="$CODE_MOWER_AGENT_TOOLS/bin"
156
173
  export PIPX_LOG_DIR="$CODE_MOWER_AGENT_TOOLS/logs"
157
174
  mkdir -p "$PIPX_HOME" "$PIPX_BIN_DIR" "$PIPX_LOG_DIR"
158
- PIP_NO_CACHE_DIR=1 pipx install --force --python "$CODE_MOWER_PYTHON" code-mower==1.5.0
175
+ PIP_NO_CACHE_DIR=1 pipx install --force --python "$CODE_MOWER_PYTHON" code-mower==1.5.1
159
176
  "$PIPX_BIN_DIR/code-mower" --version
160
177
  ```
161
178
 
@@ -166,7 +183,7 @@ interactive shell profile:
166
183
 
167
184
  ```bash
168
185
  uv python install 3.12
169
- uv tool install --python 3.12 code-mower==1.5.0
186
+ uv tool install --python 3.12 code-mower==1.5.1
170
187
  code-mower --version
171
188
  ```
172
189
 
@@ -176,7 +193,7 @@ installed command directly from the uv tool bin directory for that session.
176
193
  To replace an existing uv tool install with an exact release:
177
194
 
178
195
  ```bash
179
- uv tool install --python 3.12 --reinstall --refresh-package code-mower code-mower==1.5.0
196
+ uv tool install --python 3.12 --reinstall --refresh-package code-mower code-mower==1.5.1
180
197
  code-mower --version
181
198
  ```
182
199
 
@@ -227,7 +244,7 @@ command -v code-mower
227
244
  code-mower --version
228
245
  pipx uninstall code-mower
229
246
  uv python install 3.12
230
- uv tool install --python 3.12 --reinstall --refresh-package code-mower code-mower==1.5.0
247
+ uv tool install --python 3.12 --reinstall --refresh-package code-mower code-mower==1.5.1
231
248
  hash -r
232
249
  command -v code-mower
233
250
  code-mower --version
@@ -247,7 +264,7 @@ For pipx:
247
264
  ```bash
248
265
  python3.12 --version
249
266
  export CODE_MOWER_PYTHON="$(command -v python3.12)"
250
- PIP_NO_CACHE_DIR=1 pipx install --force --python "$CODE_MOWER_PYTHON" code-mower==1.5.0
267
+ PIP_NO_CACHE_DIR=1 pipx install --force --python "$CODE_MOWER_PYTHON" code-mower==1.5.1
251
268
  code-mower --version
252
269
  ```
253
270
 
@@ -255,7 +272,7 @@ For uv:
255
272
 
256
273
  ```bash
257
274
  uv python install 3.12
258
- uv tool install --python 3.12 --reinstall --refresh-package code-mower code-mower==1.5.0
275
+ uv tool install --python 3.12 --reinstall --refresh-package code-mower code-mower==1.5.1
259
276
  code-mower --version
260
277
  ```
261
278
 
@@ -430,6 +447,23 @@ code-mower doctor --adoption --hosted-builders --repo OWNER/REPO --json
430
447
  code-mower doctor --adoption --orchestrator-only --repo OWNER/REPO --json
431
448
  ```
432
449
 
450
+ Those commands expect the current checkout to contain `code-mower.yml`. On a
451
+ remote-only host with no repository checkout, select the maintained packaged
452
+ starter explicitly through the easy preset:
453
+
454
+ ```bash
455
+ code-mower doctor --easy --orchestrator-only --repo OWNER/REPO --json
456
+ ```
457
+
458
+ The resulting filesystem and generated-workflow checks describe the packaged
459
+ starter, not the remote repository. Use them for installation posture; use
460
+ `lanes status --repo OWNER/REPO` for current remote PR and gate visibility.
461
+
462
+ Doctor JSON is local diagnostic evidence. It can include bounded local paths
463
+ such as the selected config, executable, or workflow path. Review or redact it
464
+ before attaching it to an issue or uploading it; the concise text view is the
465
+ safer first status summary.
466
+
433
467
  In those observer/coordinator postures, missing local wrapper environment
434
468
  variables and missing `DISPATCH_TOKEN` setup are surfaced as owner setup or
435
469
  promotion tasks, not as proof the install is broken. Adoption text output
@@ -165,7 +165,7 @@ metadata only while its original head and freshness checks still hold.
165
165
 
166
166
  Only canonical metadata leaves the machine: schema, numeric repository ID, PR
167
167
  number, reviewer lane, PASS/BLOCKED, full start/end head SHAs, artifact creation
168
- time, and the originating audit run ID/attempt. The repository name, comment prose, findings, code, prompts, transcript,
168
+ time, and the originating audit run, attempt, and job IDs. The repository name, comment prose, findings, code, prompts, transcript,
169
169
  paths and provider output stay local. The SHA-256 digest covers those exact
170
170
  canonical metadata bytes. The publisher accepts only equal full start/end SHAs,
171
171
  an open PR at that SHA, and artifacts no more than 24 hours old. UNKNOWN, STALE,
@@ -185,12 +185,15 @@ attempt is refused. Keep receipts and reservations for at least the 24-hour
185
185
  artifact lifetime. The global publication concurrency group serializes claims;
186
186
  GitHub may cancel an older queued dispatch, which requires inspecting its result.
187
187
 
188
- The source job stages the metadata, independently validates it, and completes a
188
+ The source job stages the metadata with its exact GitHub Actions job ID,
189
+ independently validates it, and completes a
189
190
  `Code Mower reviewer seal <digest>` step before dispatch. The publisher verifies
190
- that immutable Actions step record in the matching `audit (claude|codex)` job,
191
+ that immutable Actions step record in that exact `audit (claude|codex)` job,
191
192
  source run ID/attempt, trusted `local-cli-audit.yml` `repository_dispatch` event,
192
193
  same repository and default branch. The sealed digest binds the PR, lane and
193
- full start/end head. The small `local-audit-request.yml` trigger requests the
194
+ full start/end head plus the source job identity. Another audit lane in the
195
+ same matrix run cannot satisfy or make ambiguous that binding; a duplicate
196
+ seal within the requested lane is refused. The small `local-audit-request.yml` trigger requests the
194
197
  review; the source workflow validates the request against the live PR before
195
198
  starting a provider. Both source and publisher use `repository_dispatch`, which
196
199
  always executes default-branch code: a builder cannot counterfeit a source job
@@ -32,7 +32,7 @@ Run:
32
32
 
33
33
  ```bash
34
34
  code-mower migration package-install-rehearsal \
35
- --package-spec code-mower==1.5.0 \
35
+ --package-spec code-mower==1.5.1 \
36
36
  --allow-package-index \
37
37
  --repo-path /path/to/product-repo \
38
38
  --json
@@ -74,12 +74,25 @@ Run the posture-appropriate doctor:
74
74
  - local reviewer/builder machine: code-mower doctor --adoption --repo OWNER/REPO --json
75
75
  - hosted builder or observer: code-mower doctor --adoption --hosted-builders --repo OWNER/REPO --json
76
76
  - orchestrator-only host: code-mower doctor --adoption --orchestrator-only --repo OWNER/REPO --json
77
+ - remote-only host with no checkout config: code-mower doctor --adoption --orchestrator-only --repo OWNER/REPO --json
77
78
  - supervised pilot readiness: code-mower doctor --supervised-pilot --repo OWNER/REPO --json
78
79
 
79
80
  Read the posture-scoped summary first by rerunning the same posture with
80
81
  --concise instead of --json: every check still runs, and the summary leads with
81
82
  active failures and owner actions. Keep the --json output as the complete
82
- machine-readable evidence, and use --advanced for the full text list.
83
+ machine-readable local evidence, and use --advanced for the full text list.
84
+ When the orchestrator-only command has no repository config, doctor labels the
85
+ result as a `packaged_starter_remote_observer` plan. It omits local wrapper,
86
+ provider-login, campaign, optional Cloud, and product-test checks unless they
87
+ were selected explicitly. With no checkout, it also omits workflow-presence
88
+ checks. Repository Actions secret and variable presence still comes from the
89
+ target repository through `gh`; that is separate from `GITHUB_TOKEN` or local
90
+ checkout-path requirements used by direct local-audit wrappers.
91
+
92
+ That packaged-starter remote-observer JSON uses stable package labels and does
93
+ not include local config, executable, checkout, or workflow paths. Other doctor
94
+ JSON can contain local paths; review or redact it before attaching or uploading
95
+ it.
83
96
 
84
97
  Provider selection and a working CLI do not qualify an orchestrator. Devin is
85
98
  currently limited to bounded builder work and informational review; use a
@@ -94,8 +107,11 @@ SESSION_ID using the saved ID. A later shell must pass that ID explicitly.
94
107
  If work intentionally continues, renew only your live lease with code-mower
95
108
  session lease renew --session-id SESSION_ID. Use session show --current to
96
109
  find the matching saved brief from this checkout.
97
- Do not force-release another session as routine cleanup. A read-only adoption
98
- check can use session start --dry-run or --no-lease.
110
+ Do not force-release another session as routine cleanup. An eligible host can
111
+ use session start --dry-run or --no-lease for a read-only adoption check. Host
112
+ role admission still runs before either mode; an ineligible host reports the
113
+ diagnostic and hands orchestration to a qualified host rather than rendering a
114
+ brief under an unqualified identity.
99
115
 
100
116
  Then run code-mower lanes status --repo OWNER/REPO and, when useful, start or
101
117
  check the local Board with code-mower board serve --repo OWNER/REPO.
@@ -47,7 +47,7 @@ history opens the repository. They should be able to confirm:
47
47
  ## Current v1.0 Baseline
48
48
 
49
49
  The historical public-release baseline below is the published `v1.4.2`.
50
- For v1.5.0 follow [the immutable candidate-first runbook](v150-release-runbook.md);
50
+ For v1.5.1 follow [the immutable candidate-first runbook](v151-release-runbook.md);
51
51
  these publication and dogfood steps record the previous release procedure.
52
52
  Before widening that release, record:
53
53
 
@@ -286,7 +286,7 @@ run:
286
286
 
287
287
  ```bash
288
288
  code-mower migration package-install-rehearsal \
289
- --package-spec code-mower==1.5.0 \
289
+ --package-spec code-mower==1.5.1 \
290
290
  --allow-package-index \
291
291
  --repo-path /path/to/product-repo \
292
292
  --json
@@ -30,7 +30,7 @@ agent hosting a session is the default orchestrator.
30
30
 
31
31
  The lease, shared Jira brief, and explicit Cursor qualification have been
32
32
  available since `code-mower==1.4.0` and are present in
33
- `code-mower==1.5.0`; see [Participants And Sessions](sessions.md) for
33
+ `code-mower==1.5.1`; see [Participants And Sessions](sessions.md) for
34
34
  the operating contract.
35
35
 
36
36
  ## Provider Classes