code-mower 1.4.2__tar.gz → 1.5.0__tar.gz

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (713) hide show
  1. code_mower-1.5.0/PKG-INFO +455 -0
  2. code_mower-1.5.0/README.md +419 -0
  3. {code_mower-1.4.2 → code_mower-1.5.0}/SUPPORT.md +16 -1
  4. {code_mower-1.4.2 → code_mower-1.5.0}/docs/board-service-lifecycle.md +9 -1
  5. {code_mower-1.4.2 → code_mower-1.5.0}/docs/build-loop-in-30-minutes.md +5 -1
  6. {code_mower-1.4.2 → code_mower-1.5.0}/docs/builders-grok-cursor.md +4 -3
  7. {code_mower-1.4.2 → code_mower-1.5.0}/docs/cloud-benchmarking.md +1 -1
  8. {code_mower-1.4.2 → code_mower-1.5.0}/docs/context-delivery.md +4 -3
  9. {code_mower-1.4.2 → code_mower-1.5.0}/docs/context-graph-lifecycle.md +40 -5
  10. {code_mower-1.4.2 → code_mower-1.5.0}/docs/context-graph-queries.md +56 -1
  11. {code_mower-1.4.2 → code_mower-1.5.0}/docs/context-provider-contract.md +11 -8
  12. {code_mower-1.4.2 → code_mower-1.5.0}/docs/context-setup.md +6 -3
  13. code_mower-1.5.0/docs/current-state-and-roadmap.md +354 -0
  14. code_mower-1.5.0/docs/devin-setup-prompt.md +69 -0
  15. {code_mower-1.4.2 → code_mower-1.5.0}/docs/early-adopter-invite-runbook.md +6 -5
  16. {code_mower-1.4.2 → code_mower-1.5.0}/docs/early-adopter-v05.md +4 -3
  17. {code_mower-1.4.2 → code_mower-1.5.0}/docs/first-run-transcript.md +2 -3
  18. {code_mower-1.4.2 → code_mower-1.5.0}/docs/first-user-demo-transcript.md +3 -3
  19. {code_mower-1.4.2 → code_mower-1.5.0}/docs/first-user-install-rehearsal.md +22 -10
  20. {code_mower-1.4.2 → code_mower-1.5.0}/docs/friendly-user-rollout-v05.md +12 -8
  21. {code_mower-1.4.2 → code_mower-1.5.0}/docs/github-setup.md +1 -1
  22. {code_mower-1.4.2 → code_mower-1.5.0}/docs/graphify-evaluation.md +29 -10
  23. code_mower-1.5.0/docs/graphify-setup.md +288 -0
  24. {code_mower-1.4.2 → code_mower-1.5.0}/docs/install.md +155 -17
  25. {code_mower-1.4.2 → code_mower-1.5.0}/docs/jira-cloud-setup.md +2 -2
  26. {code_mower-1.4.2 → code_mower-1.5.0}/docs/launch-command-surface.md +26 -0
  27. code_mower-1.5.0/docs/local-audit-runner.md +348 -0
  28. {code_mower-1.4.2 → code_mower-1.5.0}/docs/mirror-removal-runbook.md +1 -1
  29. {code_mower-1.4.2 → code_mower-1.5.0}/docs/operational-evidence.md +21 -0
  30. {code_mower-1.4.2 → code_mower-1.5.0}/docs/orchestrator-prompt-pack.md +24 -46
  31. {code_mower-1.4.2 → code_mower-1.5.0}/docs/oss-v1-checklist.md +4 -2
  32. {code_mower-1.4.2 → code_mower-1.5.0}/docs/package-customization.md +35 -10
  33. {code_mower-1.4.2 → code_mower-1.5.0}/docs/privacy-threat-model.md +37 -0
  34. {code_mower-1.4.2 → code_mower-1.5.0}/docs/provider-matrix.md +4 -3
  35. {code_mower-1.4.2 → code_mower-1.5.0}/docs/public-release-checklist.md +33 -12
  36. {code_mower-1.4.2 → code_mower-1.5.0}/docs/pypi-release.md +110 -21
  37. {code_mower-1.4.2 → code_mower-1.5.0}/docs/quickstart.md +30 -16
  38. {code_mower-1.4.2 → code_mower-1.5.0}/docs/release-history.md +7 -2
  39. {code_mower-1.4.2 → code_mower-1.5.0}/docs/release-qualification.md +101 -3
  40. {code_mower-1.4.2 → code_mower-1.5.0}/docs/self-hosted-mac-runner.md +56 -0
  41. {code_mower-1.4.2 → code_mower-1.5.0}/docs/sessions.md +4 -3
  42. {code_mower-1.4.2 → code_mower-1.5.0}/docs/slack-contract.md +5 -0
  43. {code_mower-1.4.2 → code_mower-1.5.0}/docs/slack-ingress.md +29 -13
  44. code_mower-1.5.0/docs/slack-setup.md +321 -0
  45. code_mower-1.5.0/docs/supervisor-contract.md +321 -0
  46. {code_mower-1.4.2 → code_mower-1.5.0}/docs/troubleshooting.md +30 -2
  47. {code_mower-1.4.2 → code_mower-1.5.0}/docs/try-in-10-minutes.md +13 -8
  48. {code_mower-1.4.2 → code_mower-1.5.0}/docs/upgrade-existing-repo.md +81 -14
  49. {code_mower-1.4.2 → code_mower-1.5.0}/docs/v141-qualification.md +9 -2
  50. {code_mower-1.4.2 → code_mower-1.5.0}/docs/v141-release-notes.md +14 -3
  51. code_mower-1.5.0/docs/v142-qualification.md +87 -0
  52. code_mower-1.5.0/docs/v142-release-notes.md +91 -0
  53. code_mower-1.5.0/docs/v150-qualification.md +53 -0
  54. code_mower-1.5.0/docs/v150-release-notes.md +94 -0
  55. code_mower-1.5.0/docs/v150-release-runbook.md +327 -0
  56. {code_mower-1.4.2 → code_mower-1.5.0}/pyproject.toml +10 -1
  57. {code_mower-1.4.2 → code_mower-1.5.0}/src/code_mower/__init__.py +1 -1
  58. {code_mower-1.4.2 → code_mower-1.5.0}/src/code_mower/audit_labeler_lib.py +28 -0
  59. code_mower-1.5.0/src/code_mower/audit_publication.py +867 -0
  60. {code_mower-1.4.2 → code_mower-1.5.0}/src/code_mower/builder_lineage.py +17 -2
  61. {code_mower-1.4.2 → code_mower-1.5.0}/src/code_mower/builder_lineage_producer.py +71 -4
  62. {code_mower-1.4.2 → code_mower-1.5.0}/src/code_mower/campaign_adapters.py +205 -15
  63. {code_mower-1.4.2 → code_mower-1.5.0}/src/code_mower/claude_audit_pr.py +33 -1
  64. {code_mower-1.4.2 → code_mower-1.5.0}/src/code_mower/claude_cli_environment.py +2 -1
  65. {code_mower-1.4.2 → code_mower-1.5.0}/src/code_mower/cli.py +3 -0
  66. {code_mower-1.4.2 → code_mower-1.5.0}/src/code_mower/codex_audit_pr.py +35 -2
  67. {code_mower-1.4.2 → code_mower-1.5.0}/src/code_mower/context_graph_command.py +41 -10
  68. {code_mower-1.4.2 → code_mower-1.5.0}/src/code_mower/context_graph_connection.py +25 -6
  69. {code_mower-1.4.2 → code_mower-1.5.0}/src/code_mower/context_graph_lifecycle.py +9 -3
  70. {code_mower-1.4.2 → code_mower-1.5.0}/src/code_mower/context_graph_query.py +185 -12
  71. {code_mower-1.4.2 → code_mower-1.5.0}/src/code_mower/doctor.py +29 -1
  72. {code_mower-1.4.2 → code_mower-1.5.0}/src/code_mower/doctor_checks/adoption.py +18 -2
  73. {code_mower-1.4.2 → code_mower-1.5.0}/src/code_mower/doctor_checks/campaign_auth.py +378 -10
  74. {code_mower-1.4.2 → code_mower-1.5.0}/src/code_mower/doctor_checks/runner.py +3 -0
  75. {code_mower-1.4.2 → code_mower-1.5.0}/src/code_mower/doctor_checks/supervised_pilot.py +20 -5
  76. {code_mower-1.4.2 → code_mower-1.5.0}/src/code_mower/init.py +45 -5
  77. {code_mower-1.4.2 → code_mower-1.5.0}/src/code_mower/lane_delivery.py +740 -4
  78. {code_mower-1.4.2 → code_mower-1.5.0}/src/code_mower/lane_status.py +201 -0
  79. {code_mower-1.4.2 → code_mower-1.5.0}/src/code_mower/migration.py +149 -0
  80. {code_mower-1.4.2 → code_mower-1.5.0}/src/code_mower/package_manifest.py +24 -0
  81. {code_mower-1.4.2 → code_mower-1.5.0}/src/code_mower/provider_registry.py +9 -2
  82. {code_mower-1.4.2 → code_mower-1.5.0}/src/code_mower/provider_runners/github_auth.py +23 -3
  83. {code_mower-1.4.2 → code_mower-1.5.0}/src/code_mower/provider_runners/lineage.py +3 -1
  84. code_mower-1.5.0/src/code_mower/release_identity.py +162 -0
  85. {code_mower-1.4.2 → code_mower-1.5.0}/src/code_mower/release_readiness.py +282 -22
  86. code_mower-1.5.0/src/code_mower/slack_readiness.py +257 -0
  87. code_mower-1.5.0/src/code_mower/slack_setup.py +63 -0
  88. code_mower-1.5.0/src/code_mower/supervisor.py +660 -0
  89. code_mower-1.5.0/src/code_mower/supervisor_checkpoint.py +285 -0
  90. code_mower-1.5.0/src/code_mower/supervisor_codex.py +189 -0
  91. code_mower-1.5.0/src/code_mower/supervisor_contract.fixtures.json +132 -0
  92. code_mower-1.5.0/src/code_mower/supervisor_contract.py +108 -0
  93. code_mower-1.5.0/src/code_mower/supervisor_contract.schema.json +551 -0
  94. code_mower-1.5.0/src/code_mower/supervisor_contract_v2.fixtures.json +265 -0
  95. code_mower-1.5.0/src/code_mower/supervisor_contract_v2.py +60 -0
  96. code_mower-1.5.0/src/code_mower/supervisor_contract_v2.schema.json +623 -0
  97. {code_mower-1.4.2 → code_mower-1.5.0/src/code_mower}/templates/lanes/run_mac_lane.sh +230 -3
  98. code_mower-1.5.0/src/code_mower/templates/slack/hosted-app-manifest.json +30 -0
  99. code_mower-1.5.0/src/code_mower/templates/workflows/local-audit-publication.yml.j2 +67 -0
  100. code_mower-1.5.0/src/code_mower/templates/workflows/local-audit-request.yml.j2 +27 -0
  101. {code_mower-1.4.2 → code_mower-1.5.0}/src/code_mower/templates/workflows/local-cli-audit.yml.j2 +4 -1
  102. {code_mower-1.4.2 → code_mower-1.5.0/src/code_mower}/templates/workflows/self-hosted-local-audit.yml.j2 +79 -22
  103. {code_mower-1.4.2 → code_mower-1.5.0}/src/code_mower/templates/workflows/trailer-comment-labeler.yml.j2 +21 -2
  104. {code_mower-1.4.2 → code_mower-1.5.0}/src/code_mower/trailer_comment_labeler.py +16 -2
  105. {code_mower-1.4.2 → code_mower-1.5.0}/src/code_mower/versioning.py +6 -11
  106. code_mower-1.5.0/src/code_mower.egg-info/PKG-INFO +455 -0
  107. {code_mower-1.4.2 → code_mower-1.5.0}/src/code_mower.egg-info/SOURCES.txt +34 -0
  108. {code_mower-1.4.2 → code_mower-1.5.0}/templates/lanes/README.md +2 -1
  109. {code_mower-1.4.2/src/code_mower → code_mower-1.5.0}/templates/lanes/run_mac_lane.sh +230 -3
  110. code_mower-1.5.0/templates/workflows/local-audit-publication.yml.j2 +67 -0
  111. code_mower-1.5.0/templates/workflows/local-audit-request.yml.j2 +27 -0
  112. {code_mower-1.4.2 → code_mower-1.5.0}/templates/workflows/local-cli-audit.yml.j2 +4 -1
  113. {code_mower-1.4.2/src/code_mower → code_mower-1.5.0}/templates/workflows/self-hosted-local-audit.yml.j2 +79 -22
  114. {code_mower-1.4.2 → code_mower-1.5.0}/templates/workflows/trailer-comment-labeler.yml.j2 +21 -2
  115. code_mower-1.5.0/tests/test_adoption_polish_1015.py +762 -0
  116. {code_mower-1.4.2 → code_mower-1.5.0}/tests/test_adoption_polish_955.py +27 -13
  117. code_mower-1.5.0/tests/test_audit_publication.py +1419 -0
  118. {code_mower-1.4.2 → code_mower-1.5.0}/tests/test_board.py +4 -2
  119. {code_mower-1.4.2 → code_mower-1.5.0}/tests/test_branch_policy.py +553 -2
  120. code_mower-1.5.0/tests/test_codex_campaign_auth_modes.py +616 -0
  121. {code_mower-1.4.2 → code_mower-1.5.0}/tests/test_context_graph_connection.py +291 -1
  122. {code_mower-1.4.2 → code_mower-1.5.0}/tests/test_context_graph_lifecycle.py +64 -5
  123. {code_mower-1.4.2 → code_mower-1.5.0}/tests/test_context_graph_query.py +65 -0
  124. {code_mower-1.4.2 → code_mower-1.5.0}/tests/test_doctor_campaign_auth.py +5 -1
  125. {code_mower-1.4.2 → code_mower-1.5.0}/tests/test_documentation.py +1 -1
  126. {code_mower-1.4.2 → code_mower-1.5.0}/tests/test_lane_delivery_contract.py +21 -1
  127. code_mower-1.5.0/tests/test_lane_writer_identity.py +484 -0
  128. code_mower-1.5.0/tests/test_lineage_creation.py +1213 -0
  129. {code_mower-1.4.2 → code_mower-1.5.0}/tests/test_lineage_producer_artifacts.py +41 -16
  130. {code_mower-1.4.2 → code_mower-1.5.0}/tests/test_release_hygiene.py +236 -87
  131. code_mower-1.5.0/tests/test_release_identity.py +386 -0
  132. {code_mower-1.4.2 → code_mower-1.5.0}/tests/test_release_v141.py +2 -1
  133. code_mower-1.5.0/tests/test_release_v142.py +723 -0
  134. code_mower-1.5.0/tests/test_release_v150.py +473 -0
  135. code_mower-1.5.0/tests/test_slack_setup.py +281 -0
  136. code_mower-1.5.0/tests/test_supervisor.py +620 -0
  137. code_mower-1.5.0/tests/test_supervisor_v2.py +569 -0
  138. code_mower-1.4.2/PKG-INFO +0 -343
  139. code_mower-1.4.2/README.md +0 -307
  140. code_mower-1.4.2/docs/current-state-and-roadmap.md +0 -288
  141. code_mower-1.4.2/docs/graphify-setup.md +0 -95
  142. code_mower-1.4.2/docs/local-audit-runner.md +0 -166
  143. code_mower-1.4.2/docs/v142-qualification.md +0 -67
  144. code_mower-1.4.2/docs/v142-release-notes.md +0 -64
  145. code_mower-1.4.2/src/code_mower.egg-info/PKG-INFO +0 -343
  146. code_mower-1.4.2/tests/test_release_v142.py +0 -330
  147. {code_mower-1.4.2 → code_mower-1.5.0}/CODE_OF_CONDUCT.md +0 -0
  148. {code_mower-1.4.2 → code_mower-1.5.0}/LICENSE +0 -0
  149. {code_mower-1.4.2 → code_mower-1.5.0}/MANIFEST.in +0 -0
  150. {code_mower-1.4.2 → code_mower-1.5.0}/NOTICE +0 -0
  151. {code_mower-1.4.2 → code_mower-1.5.0}/docs/acp-bridge-spike.md +0 -0
  152. {code_mower-1.4.2 → code_mower-1.5.0}/docs/architecture.md +0 -0
  153. {code_mower-1.4.2 → code_mower-1.5.0}/docs/archive/README.md +0 -0
  154. {code_mower-1.4.2 → code_mower-1.5.0}/docs/archive/first-user-install-rehearsal-alpha4.md +0 -0
  155. {code_mower-1.4.2 → code_mower-1.5.0}/docs/archive/first-user-install-rehearsal-alpha5.md +0 -0
  156. {code_mower-1.4.2 → code_mower-1.5.0}/docs/archive/first-user-install-rehearsal-alpha6.md +0 -0
  157. {code_mower-1.4.2 → code_mower-1.5.0}/docs/archive/first-user-install-rehearsal-alpha8.md +0 -0
  158. {code_mower-1.4.2 → code_mower-1.5.0}/docs/archive/first-user-install-rehearsal-alpha9.md +0 -0
  159. {code_mower-1.4.2 → code_mower-1.5.0}/docs/authoring-intelligence.md +0 -0
  160. {code_mower-1.4.2 → code_mower-1.5.0}/docs/board-data-contract.md +0 -0
  161. {code_mower-1.4.2 → code_mower-1.5.0}/docs/board-qualification.md +0 -0
  162. {code_mower-1.4.2 → code_mower-1.5.0}/docs/build-loop.md +0 -0
  163. {code_mower-1.4.2 → code_mower-1.5.0}/docs/builder-experiments.md +0 -0
  164. {code_mower-1.4.2 → code_mower-1.5.0}/docs/calibration-notes.md +0 -0
  165. {code_mower-1.4.2 → code_mower-1.5.0}/docs/calibration-pilot.md +0 -0
  166. {code_mower-1.4.2 → code_mower-1.5.0}/docs/cloud-contributor-runbook.md +0 -0
  167. {code_mower-1.4.2 → code_mower-1.5.0}/docs/cloud-data-contract.md +0 -0
  168. {code_mower-1.4.2 → code_mower-1.5.0}/docs/cloud-sharing.md +0 -0
  169. {code_mower-1.4.2 → code_mower-1.5.0}/docs/code-structure-roadmap.md +0 -0
  170. {code_mower-1.4.2 → code_mower-1.5.0}/docs/commercial-boundary.md +0 -0
  171. {code_mower-1.4.2 → code_mower-1.5.0}/docs/context-connections.md +0 -0
  172. {code_mower-1.4.2 → code_mower-1.5.0}/docs/context-packet-schema.md +0 -0
  173. {code_mower-1.4.2 → code_mower-1.5.0}/docs/devin-peer-support-qualification.md +0 -0
  174. {code_mower-1.4.2 → code_mower-1.5.0}/docs/devin-review-parity.md +0 -0
  175. {code_mower-1.4.2 → code_mower-1.5.0}/docs/devin-work-orders.md +0 -0
  176. {code_mower-1.4.2 → code_mower-1.5.0}/docs/doctrine-lens-proof-v2.md +0 -0
  177. {code_mower-1.4.2 → code_mower-1.5.0}/docs/jira-adoption-rehearsal.md +0 -0
  178. {code_mower-1.4.2 → code_mower-1.5.0}/docs/lane-promotion-policy.md +0 -0
  179. {code_mower-1.4.2 → code_mower-1.5.0}/docs/lanes/README.md +0 -0
  180. {code_mower-1.4.2 → code_mower-1.5.0}/docs/lanes/claude.md +0 -0
  181. {code_mower-1.4.2 → code_mower-1.5.0}/docs/lanes/codex.md +0 -0
  182. {code_mower-1.4.2 → code_mower-1.5.0}/docs/lanes/cursor.md +0 -0
  183. {code_mower-1.4.2 → code_mower-1.5.0}/docs/lanes/devin.md +0 -0
  184. {code_mower-1.4.2 → code_mower-1.5.0}/docs/lens-calibration-report.md +0 -0
  185. {code_mower-1.4.2 → code_mower-1.5.0}/docs/participant-qualification.md +0 -0
  186. {code_mower-1.4.2 → code_mower-1.5.0}/docs/planning-work-orders.md +0 -0
  187. {code_mower-1.4.2 → code_mower-1.5.0}/docs/post-v08-effectiveness-assessment.md +0 -0
  188. {code_mower-1.4.2 → code_mower-1.5.0}/docs/prd-addendum-v05-beta.md +0 -0
  189. {code_mower-1.4.2 → code_mower-1.5.0}/docs/provider-calibration-scorecard.md +0 -0
  190. {code_mower-1.4.2 → code_mower-1.5.0}/docs/provider-diversity-provenance.md +0 -0
  191. {code_mower-1.4.2 → code_mower-1.5.0}/docs/repo-strategy.md +0 -0
  192. {code_mower-1.4.2 → code_mower-1.5.0}/docs/reviewer-value-report.md +0 -0
  193. {code_mower-1.4.2 → code_mower-1.5.0}/docs/sample-doctor-output.md +0 -0
  194. {code_mower-1.4.2 → code_mower-1.5.0}/docs/supervised-pilot-contract.md +0 -0
  195. {code_mower-1.4.2 → code_mower-1.5.0}/docs/tracker-data-contract.md +0 -0
  196. {code_mower-1.4.2 → code_mower-1.5.0}/docs/v06-release-notes.md +0 -0
  197. {code_mower-1.4.2 → code_mower-1.5.0}/docs/v06-truth-baseline.md +0 -0
  198. {code_mower-1.4.2 → code_mower-1.5.0}/docs/v08-release-notes.md +0 -0
  199. {code_mower-1.4.2 → code_mower-1.5.0}/docs/v09-release-notes.md +0 -0
  200. {code_mower-1.4.2 → code_mower-1.5.0}/docs/v10-release-notes.md +0 -0
  201. {code_mower-1.4.2 → code_mower-1.5.0}/docs/v101-effectiveness-assessment.md +0 -0
  202. {code_mower-1.4.2 → code_mower-1.5.0}/docs/v101-release-notes.md +0 -0
  203. {code_mower-1.4.2 → code_mower-1.5.0}/docs/v1010-release-notes.md +0 -0
  204. {code_mower-1.4.2 → code_mower-1.5.0}/docs/v1011-release-notes.md +0 -0
  205. {code_mower-1.4.2 → code_mower-1.5.0}/docs/v1012-release-notes.md +0 -0
  206. {code_mower-1.4.2 → code_mower-1.5.0}/docs/v1013-release-notes.md +0 -0
  207. {code_mower-1.4.2 → code_mower-1.5.0}/docs/v1014-release-notes.md +0 -0
  208. {code_mower-1.4.2 → code_mower-1.5.0}/docs/v1015-release-notes.md +0 -0
  209. {code_mower-1.4.2 → code_mower-1.5.0}/docs/v102-release-notes.md +0 -0
  210. {code_mower-1.4.2 → code_mower-1.5.0}/docs/v103-installation-documentation-audit.md +0 -0
  211. {code_mower-1.4.2 → code_mower-1.5.0}/docs/v103-release-notes.md +0 -0
  212. {code_mower-1.4.2 → code_mower-1.5.0}/docs/v104-installation-documentation-audit.md +0 -0
  213. {code_mower-1.4.2 → code_mower-1.5.0}/docs/v104-release-notes.md +0 -0
  214. {code_mower-1.4.2 → code_mower-1.5.0}/docs/v105-release-notes.md +0 -0
  215. {code_mower-1.4.2 → code_mower-1.5.0}/docs/v106-release-notes.md +0 -0
  216. {code_mower-1.4.2 → code_mower-1.5.0}/docs/v107-release-notes.md +0 -0
  217. {code_mower-1.4.2 → code_mower-1.5.0}/docs/v108-release-notes.md +0 -0
  218. {code_mower-1.4.2 → code_mower-1.5.0}/docs/v109-release-notes.md +0 -0
  219. {code_mower-1.4.2 → code_mower-1.5.0}/docs/v11-release-notes.md +0 -0
  220. {code_mower-1.4.2 → code_mower-1.5.0}/docs/v111-release-notes.md +0 -0
  221. {code_mower-1.4.2 → code_mower-1.5.0}/docs/v112-release-notes.md +0 -0
  222. {code_mower-1.4.2 → code_mower-1.5.0}/docs/v12-release-notes.md +0 -0
  223. {code_mower-1.4.2 → code_mower-1.5.0}/docs/v121-release-notes.md +0 -0
  224. {code_mower-1.4.2 → code_mower-1.5.0}/docs/v122-release-notes.md +0 -0
  225. {code_mower-1.4.2 → code_mower-1.5.0}/docs/v130-context-qualification.md +0 -0
  226. {code_mower-1.4.2 → code_mower-1.5.0}/docs/v130-release-notes.md +0 -0
  227. {code_mower-1.4.2 → code_mower-1.5.0}/docs/v131-guided-context-qualification.md +0 -0
  228. {code_mower-1.4.2 → code_mower-1.5.0}/docs/v131-release-notes.md +0 -0
  229. {code_mower-1.4.2 → code_mower-1.5.0}/docs/v140-release-notes.md +0 -0
  230. {code_mower-1.4.2 → code_mower-1.5.0}/docs/v140-release-runbook.md +0 -0
  231. {code_mower-1.4.2 → code_mower-1.5.0}/requirements/requirements.txt +0 -0
  232. {code_mower-1.4.2 → code_mower-1.5.0}/setup.cfg +0 -0
  233. {code_mower-1.4.2 → code_mower-1.5.0}/src/code_mower/adapters/__init__.py +0 -0
  234. {code_mower-1.4.2 → code_mower-1.5.0}/src/code_mower/adapters/_base.py +0 -0
  235. {code_mower-1.4.2 → code_mower-1.5.0}/src/code_mower/adapters/cursor_bugbot.py +0 -0
  236. {code_mower-1.4.2 → code_mower-1.5.0}/src/code_mower/adapters/gitar.py +0 -0
  237. {code_mower-1.4.2 → code_mower-1.5.0}/src/code_mower/adapters/greptile.py +0 -0
  238. {code_mower-1.4.2 → code_mower-1.5.0}/src/code_mower/adapters/qodo.py +0 -0
  239. {code_mower-1.4.2 → code_mower-1.5.0}/src/code_mower/antigravity_cli_audit_pr.py +0 -0
  240. {code_mower-1.4.2 → code_mower-1.5.0}/src/code_mower/antigravity_sdk_probe.py +0 -0
  241. {code_mower-1.4.2 → code_mower-1.5.0}/src/code_mower/audit_handoff_log.py +0 -0
  242. {code_mower-1.4.2 → code_mower-1.5.0}/src/code_mower/audit_limits.py +0 -0
  243. {code_mower-1.4.2 → code_mower-1.5.0}/src/code_mower/audit_progress.py +0 -0
  244. {code_mower-1.4.2 → code_mower-1.5.0}/src/code_mower/blind_review_artifacts.py +0 -0
  245. {code_mower-1.4.2 → code_mower-1.5.0}/src/code_mower/blind_review_coordinator.py +0 -0
  246. {code_mower-1.4.2 → code_mower-1.5.0}/src/code_mower/board.py +0 -0
  247. {code_mower-1.4.2 → code_mower-1.5.0}/src/code_mower/board_local_observation.py +0 -0
  248. {code_mower-1.4.2 → code_mower-1.5.0}/src/code_mower/board_observation.py +0 -0
  249. {code_mower-1.4.2 → code_mower-1.5.0}/src/code_mower/board_observation.schema.json +0 -0
  250. {code_mower-1.4.2 → code_mower-1.5.0}/src/code_mower/board_remote_observation.py +0 -0
  251. {code_mower-1.4.2 → code_mower-1.5.0}/src/code_mower/board_service.py +0 -0
  252. {code_mower-1.4.2 → code_mower-1.5.0}/src/code_mower/board_store.py +0 -0
  253. {code_mower-1.4.2 → code_mower-1.5.0}/src/code_mower/bootstrap.py +0 -0
  254. {code_mower-1.4.2 → code_mower-1.5.0}/src/code_mower/branch_policy.py +0 -0
  255. {code_mower-1.4.2 → code_mower-1.5.0}/src/code_mower/builder_experiment.py +0 -0
  256. {code_mower-1.4.2 → code_mower-1.5.0}/src/code_mower/builder_runs.py +0 -0
  257. {code_mower-1.4.2 → code_mower-1.5.0}/src/code_mower/calibration/__init__.py +0 -0
  258. {code_mower-1.4.2 → code_mower-1.5.0}/src/code_mower/calibration/arms.py +0 -0
  259. {code_mower-1.4.2 → code_mower-1.5.0}/src/code_mower/calibration/auto_discovery.py +0 -0
  260. {code_mower-1.4.2 → code_mower-1.5.0}/src/code_mower/calibration/commands.py +0 -0
  261. {code_mower-1.4.2 → code_mower-1.5.0}/src/code_mower/calibration/context_inputs.py +0 -0
  262. {code_mower-1.4.2 → code_mower-1.5.0}/src/code_mower/calibration/corpus.py +0 -0
  263. {code_mower-1.4.2 → code_mower-1.5.0}/src/code_mower/calibration/effect_report.py +0 -0
  264. {code_mower-1.4.2 → code_mower-1.5.0}/src/code_mower/calibration/evidence.py +0 -0
  265. {code_mower-1.4.2 → code_mower-1.5.0}/src/code_mower/calibration/evidence_report.py +0 -0
  266. {code_mower-1.4.2 → code_mower-1.5.0}/src/code_mower/calibration/identity.py +0 -0
  267. {code_mower-1.4.2 → code_mower-1.5.0}/src/code_mower/calibration/metrics.py +0 -0
  268. {code_mower-1.4.2 → code_mower-1.5.0}/src/code_mower/calibration/overlap.py +0 -0
  269. {code_mower-1.4.2 → code_mower-1.5.0}/src/code_mower/calibration/planning.py +0 -0
  270. {code_mower-1.4.2 → code_mower-1.5.0}/src/code_mower/calibration/policy.py +0 -0
  271. {code_mower-1.4.2 → code_mower-1.5.0}/src/code_mower/calibration/results.py +0 -0
  272. {code_mower-1.4.2 → code_mower-1.5.0}/src/code_mower/calibration/run_results.py +0 -0
  273. {code_mower-1.4.2 → code_mower-1.5.0}/src/code_mower/calibration/run_status.py +0 -0
  274. {code_mower-1.4.2 → code_mower-1.5.0}/src/code_mower/calibration/runner.py +0 -0
  275. {code_mower-1.4.2 → code_mower-1.5.0}/src/code_mower/calibration/truth.py +0 -0
  276. {code_mower-1.4.2 → code_mower-1.5.0}/src/code_mower/calibration/value_report.py +0 -0
  277. {code_mower-1.4.2 → code_mower-1.5.0}/src/code_mower/campaign_discovery.py +0 -0
  278. {code_mower-1.4.2 → code_mower-1.5.0}/src/code_mower/checks.py +0 -0
  279. {code_mower-1.4.2 → code_mower-1.5.0}/src/code_mower/claude_cli_bounce.py +0 -0
  280. {code_mower-1.4.2 → code_mower-1.5.0}/src/code_mower/clear_stale.py +0 -0
  281. {code_mower-1.4.2 → code_mower-1.5.0}/src/code_mower/cloud.py +0 -0
  282. {code_mower-1.4.2 → code_mower-1.5.0}/src/code_mower/cloud_client/__init__.py +0 -0
  283. {code_mower-1.4.2 → code_mower-1.5.0}/src/code_mower/cloud_client/adoption_runs.py +0 -0
  284. {code_mower-1.4.2 → code_mower-1.5.0}/src/code_mower/cloud_client/bundle.py +0 -0
  285. {code_mower-1.4.2 → code_mower-1.5.0}/src/code_mower/cloud_client/doctor.py +0 -0
  286. {code_mower-1.4.2 → code_mower-1.5.0}/src/code_mower/cloud_client/dogfood.py +0 -0
  287. {code_mower-1.4.2 → code_mower-1.5.0}/src/code_mower/cloud_client/endpoints.py +0 -0
  288. {code_mower-1.4.2 → code_mower-1.5.0}/src/code_mower/cloud_client/errors.py +0 -0
  289. {code_mower-1.4.2 → code_mower-1.5.0}/src/code_mower/cloud_client/events.py +0 -0
  290. {code_mower-1.4.2 → code_mower-1.5.0}/src/code_mower/cloud_client/export.py +0 -0
  291. {code_mower-1.4.2 → code_mower-1.5.0}/src/code_mower/cloud_client/finding_outcomes.py +0 -0
  292. {code_mower-1.4.2 → code_mower-1.5.0}/src/code_mower/cloud_client/git_metadata.py +0 -0
  293. {code_mower-1.4.2 → code_mower-1.5.0}/src/code_mower/cloud_client/manifest.py +0 -0
  294. {code_mower-1.4.2 → code_mower-1.5.0}/src/code_mower/cloud_client/operations.py +0 -0
  295. {code_mower-1.4.2 → code_mower-1.5.0}/src/code_mower/cloud_client/pr_outcomes.py +0 -0
  296. {code_mower-1.4.2 → code_mower-1.5.0}/src/code_mower/cloud_client/productivity.py +0 -0
  297. {code_mower-1.4.2 → code_mower-1.5.0}/src/code_mower/cloud_client/productivity_windows.py +0 -0
  298. {code_mower-1.4.2 → code_mower-1.5.0}/src/code_mower/cloud_client/reports.py +0 -0
  299. {code_mower-1.4.2 → code_mower-1.5.0}/src/code_mower/cloud_client/setup.py +0 -0
  300. {code_mower-1.4.2 → code_mower-1.5.0}/src/code_mower/cloud_client/tokens.py +0 -0
  301. {code_mower-1.4.2 → code_mower-1.5.0}/src/code_mower/cloud_client/upload.py +0 -0
  302. {code_mower-1.4.2 → code_mower-1.5.0}/src/code_mower/cloud_client/work_types.py +0 -0
  303. {code_mower-1.4.2 → code_mower-1.5.0}/src/code_mower/code_mower_calibration.py +0 -0
  304. {code_mower-1.4.2 → code_mower-1.5.0}/src/code_mower/code_mower_context_packs.py +0 -0
  305. {code_mower-1.4.2 → code_mower-1.5.0}/src/code_mower/code_mower_merge.py +0 -0
  306. {code_mower-1.4.2 → code_mower-1.5.0}/src/code_mower/code_mower_telemetry.py +0 -0
  307. {code_mower-1.4.2 → code_mower-1.5.0}/src/code_mower/coderabbit_cli_audit_pr.py +0 -0
  308. {code_mower-1.4.2 → code_mower-1.5.0}/src/code_mower/codex_audit_env_preflight.py +0 -0
  309. {code_mower-1.4.2 → code_mower-1.5.0}/src/code_mower/codex_audit_schema_smoke.py +0 -0
  310. {code_mower-1.4.2 → code_mower-1.5.0}/src/code_mower/codex_audit_verdict.schema.json +0 -0
  311. {code_mower-1.4.2 → code_mower-1.5.0}/src/code_mower/config.py +0 -0
  312. {code_mower-1.4.2 → code_mower-1.5.0}/src/code_mower/context_audit.py +0 -0
  313. {code_mower-1.4.2 → code_mower-1.5.0}/src/code_mower/context_command.py +0 -0
  314. {code_mower-1.4.2 → code_mower-1.5.0}/src/code_mower/context_connections.py +0 -0
  315. {code_mower-1.4.2 → code_mower-1.5.0}/src/code_mower/context_contract.py +0 -0
  316. {code_mower-1.4.2 → code_mower-1.5.0}/src/code_mower/context_delivery.py +0 -0
  317. {code_mower-1.4.2 → code_mower-1.5.0}/src/code_mower/context_graph.py +0 -0
  318. {code_mower-1.4.2 → code_mower-1.5.0}/src/code_mower/context_guided.py +0 -0
  319. {code_mower-1.4.2 → code_mower-1.5.0}/src/code_mower/context_packets.py +0 -0
  320. {code_mower-1.4.2 → code_mower-1.5.0}/src/code_mower/context_prepare.py +0 -0
  321. {code_mower-1.4.2 → code_mower-1.5.0}/src/code_mower/context_readiness.py +0 -0
  322. {code_mower-1.4.2 → code_mower-1.5.0}/src/code_mower/context_review.py +0 -0
  323. {code_mower-1.4.2 → code_mower-1.5.0}/src/code_mower/context_session.py +0 -0
  324. {code_mower-1.4.2 → code_mower-1.5.0}/src/code_mower/context_store.py +0 -0
  325. {code_mower-1.4.2 → code_mower-1.5.0}/src/code_mower/controller.py +0 -0
  326. {code_mower-1.4.2 → code_mower-1.5.0}/src/code_mower/coworker_mcp.py +0 -0
  327. {code_mower-1.4.2 → code_mower-1.5.0}/src/code_mower/coworker_retrieval.py +0 -0
  328. {code_mower-1.4.2 → code_mower-1.5.0}/src/code_mower/decisions.py +0 -0
  329. {code_mower-1.4.2 → code_mower-1.5.0}/src/code_mower/devin_api.py +0 -0
  330. {code_mower-1.4.2 → code_mower-1.5.0}/src/code_mower/devin_cli_audit_pr.py +0 -0
  331. {code_mower-1.4.2 → code_mower-1.5.0}/src/code_mower/devin_readiness.py +0 -0
  332. {code_mower-1.4.2 → code_mower-1.5.0}/src/code_mower/devin_review.py +0 -0
  333. {code_mower-1.4.2 → code_mower-1.5.0}/src/code_mower/devin_sessions.py +0 -0
  334. {code_mower-1.4.2 → code_mower-1.5.0}/src/code_mower/devin_work_orders.py +0 -0
  335. {code_mower-1.4.2 → code_mower-1.5.0}/src/code_mower/doctor_checks/__init__.py +0 -0
  336. {code_mower-1.4.2 → code_mower-1.5.0}/src/code_mower/doctor_checks/audit_limits.py +0 -0
  337. {code_mower-1.4.2 → code_mower-1.5.0}/src/code_mower/doctor_checks/cloud.py +0 -0
  338. {code_mower-1.4.2 → code_mower-1.5.0}/src/code_mower/doctor_checks/common.py +0 -0
  339. {code_mower-1.4.2 → code_mower-1.5.0}/src/code_mower/doctor_checks/devin.py +0 -0
  340. {code_mower-1.4.2 → code_mower-1.5.0}/src/code_mower/doctor_checks/github.py +0 -0
  341. {code_mower-1.4.2 → code_mower-1.5.0}/src/code_mower/doctor_checks/github_actions.py +0 -0
  342. {code_mower-1.4.2 → code_mower-1.5.0}/src/code_mower/doctor_checks/github_actions_cost.py +0 -0
  343. {code_mower-1.4.2 → code_mower-1.5.0}/src/code_mower/doctor_checks/github_actions_cost_summary.py +0 -0
  344. {code_mower-1.4.2 → code_mower-1.5.0}/src/code_mower/doctor_checks/github_actions_failure_annotations.py +0 -0
  345. {code_mower-1.4.2 → code_mower-1.5.0}/src/code_mower/doctor_checks/github_actions_failure_models.py +0 -0
  346. {code_mower-1.4.2 → code_mower-1.5.0}/src/code_mower/doctor_checks/github_actions_failure_scan.py +0 -0
  347. {code_mower-1.4.2 → code_mower-1.5.0}/src/code_mower/doctor_checks/github_actions_failure_selection.py +0 -0
  348. {code_mower-1.4.2 → code_mower-1.5.0}/src/code_mower/doctor_checks/github_actions_failures.py +0 -0
  349. {code_mower-1.4.2 → code_mower-1.5.0}/src/code_mower/doctor_checks/github_actions_permissions.py +0 -0
  350. {code_mower-1.4.2 → code_mower-1.5.0}/src/code_mower/doctor_checks/github_api.py +0 -0
  351. {code_mower-1.4.2 → code_mower-1.5.0}/src/code_mower/doctor_checks/github_branch.py +0 -0
  352. {code_mower-1.4.2 → code_mower-1.5.0}/src/code_mower/doctor_checks/github_config.py +0 -0
  353. {code_mower-1.4.2 → code_mower-1.5.0}/src/code_mower/doctor_checks/github_human_token.py +0 -0
  354. {code_mower-1.4.2 → code_mower-1.5.0}/src/code_mower/doctor_checks/github_provider.py +0 -0
  355. {code_mower-1.4.2 → code_mower-1.5.0}/src/code_mower/doctor_checks/github_repo.py +0 -0
  356. {code_mower-1.4.2 → code_mower-1.5.0}/src/code_mower/doctor_checks/github_trusted_authors.py +0 -0
  357. {code_mower-1.4.2 → code_mower-1.5.0}/src/code_mower/doctor_checks/groups.py +0 -0
  358. {code_mower-1.4.2 → code_mower-1.5.0}/src/code_mower/doctor_checks/jira.py +0 -0
  359. {code_mower-1.4.2 → code_mower-1.5.0}/src/code_mower/doctor_checks/models.py +0 -0
  360. {code_mower-1.4.2 → code_mower-1.5.0}/src/code_mower/doctor_checks/output.py +0 -0
  361. {code_mower-1.4.2 → code_mower-1.5.0}/src/code_mower/doctor_checks/presets.py +0 -0
  362. {code_mower-1.4.2 → code_mower-1.5.0}/src/code_mower/doctor_checks/privacy.py +0 -0
  363. {code_mower-1.4.2 → code_mower-1.5.0}/src/code_mower/doctor_checks/provider_api_model.py +0 -0
  364. {code_mower-1.4.2 → code_mower-1.5.0}/src/code_mower/doctor_checks/provider_api_model_openai.py +0 -0
  365. {code_mower-1.4.2 → code_mower-1.5.0}/src/code_mower/doctor_checks/provider_api_model_profiles.py +0 -0
  366. {code_mower-1.4.2 → code_mower-1.5.0}/src/code_mower/doctor_checks/provider_env.py +0 -0
  367. {code_mower-1.4.2 → code_mower-1.5.0}/src/code_mower/doctor_checks/provider_env_required.py +0 -0
  368. {code_mower-1.4.2 → code_mower-1.5.0}/src/code_mower/doctor_checks/provider_env_tokens.py +0 -0
  369. {code_mower-1.4.2 → code_mower-1.5.0}/src/code_mower/doctor_checks/provider_local_audit_setup.py +0 -0
  370. {code_mower-1.4.2 → code_mower-1.5.0}/src/code_mower/doctor_checks/provider_local_cli.py +0 -0
  371. {code_mower-1.4.2 → code_mower-1.5.0}/src/code_mower/doctor_checks/provider_local_cli_commands.py +0 -0
  372. {code_mower-1.4.2 → code_mower-1.5.0}/src/code_mower/doctor_checks/provider_local_cli_probe_config.py +0 -0
  373. {code_mower-1.4.2 → code_mower-1.5.0}/src/code_mower/doctor_checks/provider_probe.py +0 -0
  374. {code_mower-1.4.2 → code_mower-1.5.0}/src/code_mower/doctor_checks/provider_probe_auth.py +0 -0
  375. {code_mower-1.4.2 → code_mower-1.5.0}/src/code_mower/doctor_checks/provider_probe_evaluation.py +0 -0
  376. {code_mower-1.4.2 → code_mower-1.5.0}/src/code_mower/doctor_checks/provider_probe_json.py +0 -0
  377. {code_mower-1.4.2 → code_mower-1.5.0}/src/code_mower/doctor_checks/provider_probe_remediation.py +0 -0
  378. {code_mower-1.4.2 → code_mower-1.5.0}/src/code_mower/doctor_checks/provider_review_hygiene.py +0 -0
  379. {code_mower-1.4.2 → code_mower-1.5.0}/src/code_mower/doctor_checks/providers.py +0 -0
  380. {code_mower-1.4.2 → code_mower-1.5.0}/src/code_mower/doctor_checks/registry.py +0 -0
  381. {code_mower-1.4.2 → code_mower-1.5.0}/src/code_mower/doctor_checks/runtime.py +0 -0
  382. {code_mower-1.4.2 → code_mower-1.5.0}/src/code_mower/doctor_checks/runtime_github_auth.py +0 -0
  383. {code_mower-1.4.2 → code_mower-1.5.0}/src/code_mower/doctor_checks/self_hosted_runner.py +0 -0
  384. {code_mower-1.4.2 → code_mower-1.5.0}/src/code_mower/file_locks.py +0 -0
  385. {code_mower-1.4.2 → code_mower-1.5.0}/src/code_mower/gate_health.py +0 -0
  386. {code_mower-1.4.2 → code_mower-1.5.0}/src/code_mower/gemini_cli_audit_pr.py +0 -0
  387. {code_mower-1.4.2 → code_mower-1.5.0}/src/code_mower/git_identity.py +0 -0
  388. {code_mower-1.4.2 → code_mower-1.5.0}/src/code_mower/github_builder_evidence.py +0 -0
  389. {code_mower-1.4.2 → code_mower-1.5.0}/src/code_mower/grok_build_audit_pr.py +0 -0
  390. {code_mower-1.4.2 → code_mower-1.5.0}/src/code_mower/hermes_cli_audit_pr.py +0 -0
  391. {code_mower-1.4.2 → code_mower-1.5.0}/src/code_mower/jira_cloud.py +0 -0
  392. {code_mower-1.4.2 → code_mower-1.5.0}/src/code_mower/jira_mutations.py +0 -0
  393. {code_mower-1.4.2 → code_mower-1.5.0}/src/code_mower/jira_pr_sync.py +0 -0
  394. {code_mower-1.4.2 → code_mower-1.5.0}/src/code_mower/lane_configs/__init__.py +0 -0
  395. {code_mower-1.4.2 → code_mower-1.5.0}/src/code_mower/lane_configs/aider.py +0 -0
  396. {code_mower-1.4.2 → code_mower-1.5.0}/src/code_mower/lane_configs/antigravity_cli.py +0 -0
  397. {code_mower-1.4.2 → code_mower-1.5.0}/src/code_mower/lane_configs/claude.py +0 -0
  398. {code_mower-1.4.2 → code_mower-1.5.0}/src/code_mower/lane_configs/codex.py +0 -0
  399. {code_mower-1.4.2 → code_mower-1.5.0}/src/code_mower/lane_configs/devin.py +0 -0
  400. {code_mower-1.4.2 → code_mower-1.5.0}/src/code_mower/lane_configs/devin_cli.py +0 -0
  401. {code_mower-1.4.2 → code_mower-1.5.0}/src/code_mower/lane_configs/gemini_cli.py +0 -0
  402. {code_mower-1.4.2 → code_mower-1.5.0}/src/code_mower/lane_configs/grok_build.py +0 -0
  403. {code_mower-1.4.2 → code_mower-1.5.0}/src/code_mower/lane_configs/hermes_cli.py +0 -0
  404. {code_mower-1.4.2 → code_mower-1.5.0}/src/code_mower/lane_configs/local_llm.py +0 -0
  405. {code_mower-1.4.2 → code_mower-1.5.0}/src/code_mower/lane_configs/muse_cli.py +0 -0
  406. {code_mower-1.4.2 → code_mower-1.5.0}/src/code_mower/lane_handoff.py +0 -0
  407. {code_mower-1.4.2 → code_mower-1.5.0}/src/code_mower/lane_runtime.py +0 -0
  408. {code_mower-1.4.2 → code_mower-1.5.0}/src/code_mower/local_cli_commands.py +0 -0
  409. {code_mower-1.4.2 → code_mower-1.5.0}/src/code_mower/local_llm_audit_pr.py +0 -0
  410. {code_mower-1.4.2 → code_mower-1.5.0}/src/code_mower/local_llm_bakeoff.py +0 -0
  411. {code_mower-1.4.2 → code_mower-1.5.0}/src/code_mower/local_llm_calibration.py +0 -0
  412. {code_mower-1.4.2 → code_mower-1.5.0}/src/code_mower/local_llm_profiles.py +0 -0
  413. {code_mower-1.4.2 → code_mower-1.5.0}/src/code_mower/migration_install.py +0 -0
  414. {code_mower-1.4.2 → code_mower-1.5.0}/src/code_mower/migration_mirror.py +0 -0
  415. {code_mower-1.4.2 → code_mower-1.5.0}/src/code_mower/migration_readiness.py +0 -0
  416. {code_mower-1.4.2 → code_mower-1.5.0}/src/code_mower/migration_rehearsal.py +0 -0
  417. {code_mower-1.4.2 → code_mower-1.5.0}/src/code_mower/muse_cli_audit_pr.py +0 -0
  418. {code_mower-1.4.2 → code_mower-1.5.0}/src/code_mower/next_steps.py +0 -0
  419. {code_mower-1.4.2 → code_mower-1.5.0}/src/code_mower/operational_evidence.py +0 -0
  420. {code_mower-1.4.2 → code_mower-1.5.0}/src/code_mower/package.py +0 -0
  421. {code_mower-1.4.2 → code_mower-1.5.0}/src/code_mower/package_content.py +0 -0
  422. {code_mower-1.4.2 → code_mower-1.5.0}/src/code_mower/package_paths.py +0 -0
  423. {code_mower-1.4.2 → code_mower-1.5.0}/src/code_mower/package_rendering.py +0 -0
  424. {code_mower-1.4.2 → code_mower-1.5.0}/src/code_mower/package_static.py +0 -0
  425. {code_mower-1.4.2 → code_mower-1.5.0}/src/code_mower/participants.py +0 -0
  426. {code_mower-1.4.2 → code_mower-1.5.0}/src/code_mower/plan_context.py +0 -0
  427. {code_mower-1.4.2 → code_mower-1.5.0}/src/code_mower/productivity_report.py +0 -0
  428. {code_mower-1.4.2 → code_mower-1.5.0}/src/code_mower/prompts.py +0 -0
  429. {code_mower-1.4.2 → code_mower-1.5.0}/src/code_mower/provider_capabilities.py +0 -0
  430. {code_mower-1.4.2 → code_mower-1.5.0}/src/code_mower/provider_capabilities.schema.json +0 -0
  431. {code_mower-1.4.2 → code_mower-1.5.0}/src/code_mower/provider_credentials.py +0 -0
  432. {code_mower-1.4.2 → code_mower-1.5.0}/src/code_mower/provider_runners/__init__.py +0 -0
  433. {code_mower-1.4.2 → code_mower-1.5.0}/src/code_mower/provider_runners/comments.py +0 -0
  434. {code_mower-1.4.2 → code_mower-1.5.0}/src/code_mower/provider_runners/exit_codes.py +0 -0
  435. {code_mower-1.4.2 → code_mower-1.5.0}/src/code_mower/provider_runners/git.py +0 -0
  436. {code_mower-1.4.2 → code_mower-1.5.0}/src/code_mower/provider_runners/github_pr.py +0 -0
  437. {code_mower-1.4.2 → code_mower-1.5.0}/src/code_mower/provider_runners/pr_worktree.py +0 -0
  438. {code_mower-1.4.2 → code_mower-1.5.0}/src/code_mower/provider_runners/process.py +0 -0
  439. {code_mower-1.4.2 → code_mower-1.5.0}/src/code_mower/provider_runners/repo_paths.py +0 -0
  440. {code_mower-1.4.2 → code_mower-1.5.0}/src/code_mower/provider_runners/text_schema.py +0 -0
  441. {code_mower-1.4.2 → code_mower-1.5.0}/src/code_mower/provider_runners/verdict_artifacts.py +0 -0
  442. {code_mower-1.4.2 → code_mower-1.5.0}/src/code_mower/provider_runners/workspace.py +0 -0
  443. {code_mower-1.4.2 → code_mower-1.5.0}/src/code_mower/providers/__init__.py +0 -0
  444. {code_mower-1.4.2 → code_mower-1.5.0}/src/code_mower/providers/local_cli.py +0 -0
  445. {code_mower-1.4.2 → code_mower-1.5.0}/src/code_mower/providers/provenance.py +0 -0
  446. {code_mower-1.4.2 → code_mower-1.5.0}/src/code_mower/release_campaigns.py +0 -0
  447. {code_mower-1.4.2 → code_mower-1.5.0}/src/code_mower/release_qualify.py +0 -0
  448. {code_mower-1.4.2 → code_mower-1.5.0}/src/code_mower/remote_session.py +0 -0
  449. {code_mower-1.4.2 → code_mower-1.5.0}/src/code_mower/remote_session.schema.json +0 -0
  450. {code_mower-1.4.2 → code_mower-1.5.0}/src/code_mower/remote_session_cli.py +0 -0
  451. {code_mower-1.4.2 → code_mower-1.5.0}/src/code_mower/review_authority.py +0 -0
  452. {code_mower-1.4.2 → code_mower-1.5.0}/src/code_mower/reviewer_metrics.py +0 -0
  453. {code_mower-1.4.2 → code_mower-1.5.0}/src/code_mower/reviewer_spend.py +0 -0
  454. {code_mower-1.4.2 → code_mower-1.5.0}/src/code_mower/role_eligibility.py +0 -0
  455. {code_mower-1.4.2 → code_mower-1.5.0}/src/code_mower/role_eligibility.schema.json +0 -0
  456. {code_mower-1.4.2 → code_mower-1.5.0}/src/code_mower/saas_reviewer_labeler.py +0 -0
  457. {code_mower-1.4.2 → code_mower-1.5.0}/src/code_mower/secrets.py +0 -0
  458. {code_mower-1.4.2 → code_mower-1.5.0}/src/code_mower/session.py +0 -0
  459. {code_mower-1.4.2 → code_mower-1.5.0}/src/code_mower/session_current.py +0 -0
  460. {code_mower-1.4.2 → code_mower-1.5.0}/src/code_mower/session_lease.py +0 -0
  461. {code_mower-1.4.2 → code_mower-1.5.0}/src/code_mower/slack_contract.py +0 -0
  462. {code_mower-1.4.2 → code_mower-1.5.0}/src/code_mower/slack_contract.schema.json +0 -0
  463. {code_mower-1.4.2 → code_mower-1.5.0}/src/code_mower/slack_ingress.py +0 -0
  464. {code_mower-1.4.2 → code_mower-1.5.0}/src/code_mower/templates/builder-experiment.example.json +0 -0
  465. {code_mower-1.4.2 → code_mower-1.5.0}/src/code_mower/templates/calibration-corpus.example.json +0 -0
  466. {code_mower-1.4.2 → code_mower-1.5.0}/src/code_mower/templates/calibration-corpus.json +0 -0
  467. {code_mower-1.4.2 → code_mower-1.5.0}/src/code_mower/templates/code-mower.example.yml +0 -0
  468. {code_mower-1.4.2 → code_mower-1.5.0}/src/code_mower/templates/context-packs.example.json +0 -0
  469. {code_mower-1.4.2 → code_mower-1.5.0}/src/code_mower/templates/lane_prompts/base-audit.md +0 -0
  470. {code_mower-1.4.2 → code_mower-1.5.0}/src/code_mower/templates/lane_prompts/calibration-policy.md +0 -0
  471. {code_mower-1.4.2 → code_mower-1.5.0}/src/code_mower/templates/lane_prompts/context-driven-quality.md +0 -0
  472. {code_mower-1.4.2 → code_mower-1.5.0}/src/code_mower/templates/lane_prompts/docs-design.md +0 -0
  473. {code_mower-1.4.2 → code_mower-1.5.0}/src/code_mower/templates/lane_prompts/generic-programming.md +0 -0
  474. {code_mower-1.4.2 → code_mower-1.5.0}/src/code_mower/templates/lane_prompts/operability.md +0 -0
  475. {code_mower-1.4.2 → code_mower-1.5.0}/src/code_mower/templates/lane_prompts/package-runtime.md +0 -0
  476. {code_mower-1.4.2 → code_mower-1.5.0}/src/code_mower/templates/lane_prompts/plan-conformance.md +0 -0
  477. {code_mower-1.4.2 → code_mower-1.5.0}/src/code_mower/templates/lane_prompts/security-threat-model.md +0 -0
  478. {code_mower-1.4.2 → code_mower-1.5.0}/src/code_mower/templates/lanes/README.md +0 -0
  479. {code_mower-1.4.2 → code_mower-1.5.0}/src/code_mower/templates/lanes/claude.md +0 -0
  480. {code_mower-1.4.2 → code_mower-1.5.0}/src/code_mower/templates/lanes/codex.md +0 -0
  481. {code_mower-1.4.2 → code_mower-1.5.0}/src/code_mower/templates/lanes/cursor.md +0 -0
  482. {code_mower-1.4.2 → code_mower-1.5.0}/src/code_mower/templates/lanes/devin.md +0 -0
  483. {code_mower-1.4.2 → code_mower-1.5.0}/src/code_mower/templates/lanes/generic.md +0 -0
  484. {code_mower-1.4.2 → code_mower-1.5.0}/src/code_mower/templates/lanes/lineage-producer.sh +0 -0
  485. {code_mower-1.4.2 → code_mower-1.5.0}/src/code_mower/templates/product-support/code_mower +0 -0
  486. {code_mower-1.4.2 → code_mower-1.5.0}/src/code_mower/templates/product-support/code_mower_standalone_pin.env +0 -0
  487. {code_mower-1.4.2 → code_mower-1.5.0}/src/code_mower/templates/product-support/code_mower_standalone_shadow.sh +0 -0
  488. {code_mower-1.4.2 → code_mower-1.5.0}/src/code_mower/templates/product-support/run_claude_audit_pr.sh +0 -0
  489. {code_mower-1.4.2 → code_mower-1.5.0}/src/code_mower/templates/product-support/run_codex_audit_pr.sh +0 -0
  490. {code_mower-1.4.2 → code_mower-1.5.0}/src/code_mower/templates/product-support/run_devin_cli_audit_pr.sh +0 -0
  491. {code_mower-1.4.2 → code_mower-1.5.0}/src/code_mower/templates/product-support/safe_gh_comment.py +0 -0
  492. {code_mower-1.4.2 → code_mower-1.5.0}/src/code_mower/templates/product-support/status_report.py +0 -0
  493. {code_mower-1.4.2 → code_mower-1.5.0}/src/code_mower/templates/providers.yml +0 -0
  494. {code_mower-1.4.2 → code_mower-1.5.0}/src/code_mower/templates/reviewer-spend.example.json +0 -0
  495. {code_mower-1.4.2 → code_mower-1.5.0}/src/code_mower/templates/reviewer-value-report.example.md +0 -0
  496. {code_mower-1.4.2 → code_mower-1.5.0}/src/code_mower/templates/slack/app-manifest.json +0 -0
  497. {code_mower-1.4.2 → code_mower-1.5.0}/src/code_mower/templates/workflows/audit-label-cleanup.yml.j2 +0 -0
  498. {code_mower-1.4.2 → code_mower-1.5.0}/src/code_mower/templates/workflows/builder-lineage-producer.yml.j2 +0 -0
  499. {code_mower-1.4.2 → code_mower-1.5.0}/src/code_mower/templates/workflows/builder-provenance.yml.j2 +0 -0
  500. {code_mower-1.4.2 → code_mower-1.5.0}/src/code_mower/templates/workflows/code-mower-agent-pr-labeler.yml.j2 +0 -0
  501. {code_mower-1.4.2 → code_mower-1.5.0}/src/code_mower/templates/workflows/code-mower-fix-round-dispatch.yml.j2 +0 -0
  502. {code_mower-1.4.2 → code_mower-1.5.0}/src/code_mower/templates/workflows/code-mower-gate-health.yml.j2 +0 -0
  503. {code_mower-1.4.2 → code_mower-1.5.0}/src/code_mower/templates/workflows/code-mower-gate.yml.j2 +0 -0
  504. {code_mower-1.4.2 → code_mower-1.5.0}/src/code_mower/templates/workflows/dispatch-lanes.yml.j2 +0 -0
  505. {code_mower-1.4.2 → code_mower-1.5.0}/src/code_mower/templates/workflows/hosted-bridge.yml.j2 +0 -0
  506. {code_mower-1.4.2 → code_mower-1.5.0}/src/code_mower/templates/workflows/lane-mac-runner.yml.j2 +0 -0
  507. {code_mower-1.4.2 → code_mower-1.5.0}/src/code_mower/templates/workflows/needs-owner-notify.yml.j2 +0 -0
  508. {code_mower-1.4.2 → code_mower-1.5.0}/src/code_mower/templates/workflows/private-standalone-shadow.yml.j2 +0 -0
  509. {code_mower-1.4.2 → code_mower-1.5.0}/src/code_mower/templates/workflows/review-clear-stale.yml.j2 +0 -0
  510. {code_mower-1.4.2 → code_mower-1.5.0}/src/code_mower/templates/workflows/saas-reviewer-labeler.yml.j2 +0 -0
  511. {code_mower-1.4.2 → code_mower-1.5.0}/src/code_mower/templates/workflows/weekly-status.yml.j2 +0 -0
  512. {code_mower-1.4.2 → code_mower-1.5.0}/src/code_mower/tracker_contract.py +0 -0
  513. {code_mower-1.4.2 → code_mower-1.5.0}/src/code_mower/tracker_queue.py +0 -0
  514. {code_mower-1.4.2 → code_mower-1.5.0}/src/code_mower/work_orders.py +0 -0
  515. {code_mower-1.4.2 → code_mower-1.5.0}/src/code_mower/workflow_actionlint.py +0 -0
  516. {code_mower-1.4.2 → code_mower-1.5.0}/src/code_mower/yaml_subset.py +0 -0
  517. {code_mower-1.4.2 → code_mower-1.5.0}/src/code_mower.egg-info/dependency_links.txt +0 -0
  518. {code_mower-1.4.2 → code_mower-1.5.0}/src/code_mower.egg-info/entry_points.txt +0 -0
  519. {code_mower-1.4.2 → code_mower-1.5.0}/src/code_mower.egg-info/requires.txt +0 -0
  520. {code_mower-1.4.2 → code_mower-1.5.0}/src/code_mower.egg-info/top_level.txt +0 -0
  521. {code_mower-1.4.2 → code_mower-1.5.0}/templates/builder-experiment.example.json +0 -0
  522. {code_mower-1.4.2 → code_mower-1.5.0}/templates/calibration-corpus.example.json +0 -0
  523. {code_mower-1.4.2 → code_mower-1.5.0}/templates/calibration-corpus.json +0 -0
  524. {code_mower-1.4.2 → code_mower-1.5.0}/templates/code-mower.yml.j2 +0 -0
  525. {code_mower-1.4.2 → code_mower-1.5.0}/templates/context-packs.example.json +0 -0
  526. {code_mower-1.4.2 → code_mower-1.5.0}/templates/cursor/BUGBOT.md +0 -0
  527. {code_mower-1.4.2 → code_mower-1.5.0}/templates/lanes/claude.md +0 -0
  528. {code_mower-1.4.2 → code_mower-1.5.0}/templates/lanes/codex.md +0 -0
  529. {code_mower-1.4.2 → code_mower-1.5.0}/templates/lanes/cursor.md +0 -0
  530. {code_mower-1.4.2 → code_mower-1.5.0}/templates/lanes/devin.md +0 -0
  531. {code_mower-1.4.2 → code_mower-1.5.0}/templates/lanes/generic.md +0 -0
  532. {code_mower-1.4.2 → code_mower-1.5.0}/templates/lanes/lineage-producer.sh +0 -0
  533. {code_mower-1.4.2 → code_mower-1.5.0}/templates/providers/acp_bridge.yml +0 -0
  534. {code_mower-1.4.2 → code_mower-1.5.0}/templates/providers/aider.yml +0 -0
  535. {code_mower-1.4.2 → code_mower-1.5.0}/templates/providers/antigravity_cli.yml +0 -0
  536. {code_mower-1.4.2 → code_mower-1.5.0}/templates/providers/claude_audit.yml +0 -0
  537. {code_mower-1.4.2 → code_mower-1.5.0}/templates/providers/claude_review.yml +0 -0
  538. {code_mower-1.4.2 → code_mower-1.5.0}/templates/providers/coderabbit_cli.yml +0 -0
  539. {code_mower-1.4.2 → code_mower-1.5.0}/templates/providers/codex.yml +0 -0
  540. {code_mower-1.4.2 → code_mower-1.5.0}/templates/providers/cursor_bugbot.yml +0 -0
  541. {code_mower-1.4.2 → code_mower-1.5.0}/templates/providers/cursor_cloud_agent.yml +0 -0
  542. {code_mower-1.4.2 → code_mower-1.5.0}/templates/providers/devin.yml +0 -0
  543. {code_mower-1.4.2 → code_mower-1.5.0}/templates/providers/devin_cli.yml +0 -0
  544. {code_mower-1.4.2 → code_mower-1.5.0}/templates/providers/gemini_cli.yml +0 -0
  545. {code_mower-1.4.2 → code_mower-1.5.0}/templates/providers/gitar.yml +0 -0
  546. {code_mower-1.4.2 → code_mower-1.5.0}/templates/providers/greptile.yml +0 -0
  547. {code_mower-1.4.2 → code_mower-1.5.0}/templates/providers/hermes_cli.yml +0 -0
  548. {code_mower-1.4.2 → code_mower-1.5.0}/templates/providers/local_llm.yml +0 -0
  549. {code_mower-1.4.2 → code_mower-1.5.0}/templates/providers/muse_cli.yml +0 -0
  550. {code_mower-1.4.2 → code_mower-1.5.0}/templates/providers/qodo.yml +0 -0
  551. {code_mower-1.4.2 → code_mower-1.5.0}/templates/providers.yml +0 -0
  552. {code_mower-1.4.2 → code_mower-1.5.0}/templates/reviewer-spend.example.json +0 -0
  553. {code_mower-1.4.2 → code_mower-1.5.0}/templates/reviewer-value-report.example.md +0 -0
  554. {code_mower-1.4.2 → code_mower-1.5.0}/templates/slack/app-manifest.json +0 -0
  555. {code_mower-1.4.2 → code_mower-1.5.0}/templates/workflows/audit-label-cleanup.yml.j2 +0 -0
  556. {code_mower-1.4.2 → code_mower-1.5.0}/templates/workflows/blind-review-artifacts-dry-run.yml.j2 +0 -0
  557. {code_mower-1.4.2 → code_mower-1.5.0}/templates/workflows/builder-lineage-producer.yml.j2 +0 -0
  558. {code_mower-1.4.2 → code_mower-1.5.0}/templates/workflows/builder-provenance.yml.j2 +0 -0
  559. {code_mower-1.4.2 → code_mower-1.5.0}/templates/workflows/code-mower-agent-pr-labeler.yml.j2 +0 -0
  560. {code_mower-1.4.2 → code_mower-1.5.0}/templates/workflows/code-mower-fix-round-dispatch.yml.j2 +0 -0
  561. {code_mower-1.4.2 → code_mower-1.5.0}/templates/workflows/code-mower-gate-health.yml.j2 +0 -0
  562. {code_mower-1.4.2 → code_mower-1.5.0}/templates/workflows/code-mower-gate.yml.j2 +0 -0
  563. {code_mower-1.4.2 → code_mower-1.5.0}/templates/workflows/dispatch-lanes.yml.j2 +0 -0
  564. {code_mower-1.4.2 → code_mower-1.5.0}/templates/workflows/hosted-bridge.yml.j2 +0 -0
  565. {code_mower-1.4.2 → code_mower-1.5.0}/templates/workflows/lane-mac-runner.yml.j2 +0 -0
  566. {code_mower-1.4.2 → code_mower-1.5.0}/templates/workflows/private-standalone-shadow.yml.j2 +0 -0
  567. {code_mower-1.4.2 → code_mower-1.5.0}/templates/workflows/review-clear-stale.yml.j2 +0 -0
  568. {code_mower-1.4.2 → code_mower-1.5.0}/templates/workflows/saas-reviewer-labeler.yml.j2 +0 -0
  569. {code_mower-1.4.2 → code_mower-1.5.0}/tests/test_adoption_diagnostics.py +0 -0
  570. {code_mower-1.4.2 → code_mower-1.5.0}/tests/test_adoption_result_semantics.py +0 -0
  571. {code_mower-1.4.2 → code_mower-1.5.0}/tests/test_adoption_run_contract.py +0 -0
  572. {code_mower-1.4.2 → code_mower-1.5.0}/tests/test_antigravity_cli_audit_pr.py +0 -0
  573. {code_mower-1.4.2 → code_mower-1.5.0}/tests/test_antigravity_sdk_probe.py +0 -0
  574. {code_mower-1.4.2 → code_mower-1.5.0}/tests/test_audit_comment_posture.py +0 -0
  575. {code_mower-1.4.2 → code_mower-1.5.0}/tests/test_audit_labeler_identity.py +0 -0
  576. {code_mower-1.4.2 → code_mower-1.5.0}/tests/test_audit_limits.py +0 -0
  577. {code_mower-1.4.2 → code_mower-1.5.0}/tests/test_board_lease.py +0 -0
  578. {code_mower-1.4.2 → code_mower-1.5.0}/tests/test_board_local_observation.py +0 -0
  579. {code_mower-1.4.2 → code_mower-1.5.0}/tests/test_board_observation.py +0 -0
  580. {code_mower-1.4.2 → code_mower-1.5.0}/tests/test_board_qualification.py +0 -0
  581. {code_mower-1.4.2 → code_mower-1.5.0}/tests/test_board_remote_observation.py +0 -0
  582. {code_mower-1.4.2 → code_mower-1.5.0}/tests/test_board_service.py +0 -0
  583. {code_mower-1.4.2 → code_mower-1.5.0}/tests/test_builder_experiment.py +0 -0
  584. {code_mower-1.4.2 → code_mower-1.5.0}/tests/test_builder_identity.py +0 -0
  585. {code_mower-1.4.2 → code_mower-1.5.0}/tests/test_builder_runs.py +0 -0
  586. {code_mower-1.4.2 → code_mower-1.5.0}/tests/test_calibration_effect_report.py +0 -0
  587. {code_mower-1.4.2 → code_mower-1.5.0}/tests/test_calibration_truth.py +0 -0
  588. {code_mower-1.4.2 → code_mower-1.5.0}/tests/test_campaign_adapters.py +0 -0
  589. {code_mower-1.4.2 → code_mower-1.5.0}/tests/test_campaign_discovery.py +0 -0
  590. {code_mower-1.4.2 → code_mower-1.5.0}/tests/test_campaign_gh_auth_and_issue_binding_817.py +0 -0
  591. {code_mower-1.4.2 → code_mower-1.5.0}/tests/test_campaign_retry_evidence_711.py +0 -0
  592. {code_mower-1.4.2 → code_mower-1.5.0}/tests/test_checks.py +0 -0
  593. {code_mower-1.4.2 → code_mower-1.5.0}/tests/test_claude_audit_pr.py +0 -0
  594. {code_mower-1.4.2 → code_mower-1.5.0}/tests/test_claude_cli_bounce.py +0 -0
  595. {code_mower-1.4.2 → code_mower-1.5.0}/tests/test_clear_stale.py +0 -0
  596. {code_mower-1.4.2 → code_mower-1.5.0}/tests/test_cloud_client.py +0 -0
  597. {code_mower-1.4.2 → code_mower-1.5.0}/tests/test_cloud_git_metadata.py +0 -0
  598. {code_mower-1.4.2 → code_mower-1.5.0}/tests/test_cloud_manifest.py +0 -0
  599. {code_mower-1.4.2 → code_mower-1.5.0}/tests/test_cloud_reports.py +0 -0
  600. {code_mower-1.4.2 → code_mower-1.5.0}/tests/test_coderabbit_cli_audit_pr.py +0 -0
  601. {code_mower-1.4.2 → code_mower-1.5.0}/tests/test_codex_audit_env_preflight.py +0 -0
  602. {code_mower-1.4.2 → code_mower-1.5.0}/tests/test_codex_audit_pr.py +0 -0
  603. {code_mower-1.4.2 → code_mower-1.5.0}/tests/test_context_audit.py +0 -0
  604. {code_mower-1.4.2 → code_mower-1.5.0}/tests/test_context_command.py +0 -0
  605. {code_mower-1.4.2 → code_mower-1.5.0}/tests/test_context_connections.py +0 -0
  606. {code_mower-1.4.2 → code_mower-1.5.0}/tests/test_context_contract.py +0 -0
  607. {code_mower-1.4.2 → code_mower-1.5.0}/tests/test_context_delivery.py +0 -0
  608. {code_mower-1.4.2 → code_mower-1.5.0}/tests/test_context_graph.py +0 -0
  609. {code_mower-1.4.2 → code_mower-1.5.0}/tests/test_context_guided.py +0 -0
  610. {code_mower-1.4.2 → code_mower-1.5.0}/tests/test_context_packets.py +0 -0
  611. {code_mower-1.4.2 → code_mower-1.5.0}/tests/test_context_prepare.py +0 -0
  612. {code_mower-1.4.2 → code_mower-1.5.0}/tests/test_context_readiness.py +0 -0
  613. {code_mower-1.4.2 → code_mower-1.5.0}/tests/test_context_review.py +0 -0
  614. {code_mower-1.4.2 → code_mower-1.5.0}/tests/test_context_session.py +0 -0
  615. {code_mower-1.4.2 → code_mower-1.5.0}/tests/test_controller.py +0 -0
  616. {code_mower-1.4.2 → code_mower-1.5.0}/tests/test_coworker_mcp.py +0 -0
  617. {code_mower-1.4.2 → code_mower-1.5.0}/tests/test_coworker_retrieval.py +0 -0
  618. {code_mower-1.4.2 → code_mower-1.5.0}/tests/test_decision_audit_integration.py +0 -0
  619. {code_mower-1.4.2 → code_mower-1.5.0}/tests/test_decisions.py +0 -0
  620. {code_mower-1.4.2 → code_mower-1.5.0}/tests/test_devin_api.py +0 -0
  621. {code_mower-1.4.2 → code_mower-1.5.0}/tests/test_devin_builder_lane.py +0 -0
  622. {code_mower-1.4.2 → code_mower-1.5.0}/tests/test_devin_capabilities.py +0 -0
  623. {code_mower-1.4.2 → code_mower-1.5.0}/tests/test_devin_cli_audit_pr.py +0 -0
  624. {code_mower-1.4.2 → code_mower-1.5.0}/tests/test_devin_provider_contract.py +0 -0
  625. {code_mower-1.4.2 → code_mower-1.5.0}/tests/test_devin_review.py +0 -0
  626. {code_mower-1.4.2 → code_mower-1.5.0}/tests/test_devin_sessions.py +0 -0
  627. {code_mower-1.4.2 → code_mower-1.5.0}/tests/test_devin_setup_readiness.py +0 -0
  628. {code_mower-1.4.2 → code_mower-1.5.0}/tests/test_devin_work_orders.py +0 -0
  629. {code_mower-1.4.2 → code_mower-1.5.0}/tests/test_doctor_actions_cost_summary.py +0 -0
  630. {code_mower-1.4.2 → code_mower-1.5.0}/tests/test_doctor_actions_failure_selection.py +0 -0
  631. {code_mower-1.4.2 → code_mower-1.5.0}/tests/test_doctor_boundaries.py +0 -0
  632. {code_mower-1.4.2 → code_mower-1.5.0}/tests/test_doctor_campaign_readiness.py +0 -0
  633. {code_mower-1.4.2 → code_mower-1.5.0}/tests/test_doctor_github_checks.py +0 -0
  634. {code_mower-1.4.2 → code_mower-1.5.0}/tests/test_doctor_output.py +0 -0
  635. {code_mower-1.4.2 → code_mower-1.5.0}/tests/test_doctor_privacy.py +0 -0
  636. {code_mower-1.4.2 → code_mower-1.5.0}/tests/test_doctor_provider_env_required.py +0 -0
  637. {code_mower-1.4.2 → code_mower-1.5.0}/tests/test_doctor_provider_env_tokens.py +0 -0
  638. {code_mower-1.4.2 → code_mower-1.5.0}/tests/test_doctor_provider_local_audit_setup.py +0 -0
  639. {code_mower-1.4.2 → code_mower-1.5.0}/tests/test_doctor_provider_probe.py +0 -0
  640. {code_mower-1.4.2 → code_mower-1.5.0}/tests/test_doctor_provider_review_hygiene.py +0 -0
  641. {code_mower-1.4.2 → code_mower-1.5.0}/tests/test_doctor_registry.py +0 -0
  642. {code_mower-1.4.2 → code_mower-1.5.0}/tests/test_doctor_runtime.py +0 -0
  643. {code_mower-1.4.2 → code_mower-1.5.0}/tests/test_doctor_self_hosted_runner.py +0 -0
  644. {code_mower-1.4.2 → code_mower-1.5.0}/tests/test_doctor_supervised_pilot.py +0 -0
  645. {code_mower-1.4.2 → code_mower-1.5.0}/tests/test_documented_commands.py +0 -0
  646. {code_mower-1.4.2 → code_mower-1.5.0}/tests/test_file_locks.py +0 -0
  647. {code_mower-1.4.2 → code_mower-1.5.0}/tests/test_fork_pr_guard.py +0 -0
  648. {code_mower-1.4.2 → code_mower-1.5.0}/tests/test_gate_automerge.py +0 -0
  649. {code_mower-1.4.2 → code_mower-1.5.0}/tests/test_gate_health.py +0 -0
  650. {code_mower-1.4.2 → code_mower-1.5.0}/tests/test_github_builder_evidence.py +0 -0
  651. {code_mower-1.4.2 → code_mower-1.5.0}/tests/test_hosted_dispatch_profile.py +0 -0
  652. {code_mower-1.4.2 → code_mower-1.5.0}/tests/test_init_actionlint.py +0 -0
  653. {code_mower-1.4.2 → code_mower-1.5.0}/tests/test_init_build_loop.py +0 -0
  654. {code_mower-1.4.2 → code_mower-1.5.0}/tests/test_init_builders_cold_start.py +0 -0
  655. {code_mower-1.4.2 → code_mower-1.5.0}/tests/test_jira_adoption.py +0 -0
  656. {code_mower-1.4.2 → code_mower-1.5.0}/tests/test_jira_cloud.py +0 -0
  657. {code_mower-1.4.2 → code_mower-1.5.0}/tests/test_jira_mutations.py +0 -0
  658. {code_mower-1.4.2 → code_mower-1.5.0}/tests/test_jira_pr_sync.py +0 -0
  659. {code_mower-1.4.2 → code_mower-1.5.0}/tests/test_lane_handoff.py +0 -0
  660. {code_mower-1.4.2 → code_mower-1.5.0}/tests/test_lane_status.py +0 -0
  661. {code_mower-1.4.2 → code_mower-1.5.0}/tests/test_lineage_consumer_activation.py +0 -0
  662. {code_mower-1.4.2 → code_mower-1.5.0}/tests/test_lineage_consumer_admission.py +0 -0
  663. {code_mower-1.4.2 → code_mower-1.5.0}/tests/test_lineage_consumer_labels.py +0 -0
  664. {code_mower-1.4.2 → code_mower-1.5.0}/tests/test_lineage_consumer_projection.py +0 -0
  665. {code_mower-1.4.2 → code_mower-1.5.0}/tests/test_lineage_producer_publication.py +0 -0
  666. {code_mower-1.4.2 → code_mower-1.5.0}/tests/test_lineage_producer_state.py +0 -0
  667. {code_mower-1.4.2 → code_mower-1.5.0}/tests/test_local_llm_github_helpers.py +0 -0
  668. {code_mower-1.4.2 → code_mower-1.5.0}/tests/test_migration_rehearsal.py +0 -0
  669. {code_mower-1.4.2 → code_mower-1.5.0}/tests/test_migration_setup_drift.py +0 -0
  670. {code_mower-1.4.2 → code_mower-1.5.0}/tests/test_minimal_lineage_contract.py +0 -0
  671. {code_mower-1.4.2 → code_mower-1.5.0}/tests/test_minimal_lineage_packaging.py +0 -0
  672. {code_mower-1.4.2 → code_mower-1.5.0}/tests/test_minimal_lineage_transport.py +0 -0
  673. {code_mower-1.4.2 → code_mower-1.5.0}/tests/test_next_steps.py +0 -0
  674. {code_mower-1.4.2 → code_mower-1.5.0}/tests/test_operational_evidence.py +0 -0
  675. {code_mower-1.4.2 → code_mower-1.5.0}/tests/test_package_install_failure_taxonomy.py +0 -0
  676. {code_mower-1.4.2 → code_mower-1.5.0}/tests/test_participant_sessions.py +0 -0
  677. {code_mower-1.4.2 → code_mower-1.5.0}/tests/test_plan_context.py +0 -0
  678. {code_mower-1.4.2 → code_mower-1.5.0}/tests/test_pr_outcome_contract.py +0 -0
  679. {code_mower-1.4.2 → code_mower-1.5.0}/tests/test_pr_outcome_coverage.py +0 -0
  680. {code_mower-1.4.2 → code_mower-1.5.0}/tests/test_productivity_metrics_contract.py +0 -0
  681. {code_mower-1.4.2 → code_mower-1.5.0}/tests/test_productivity_report.py +0 -0
  682. {code_mower-1.4.2 → code_mower-1.5.0}/tests/test_productivity_windows.py +0 -0
  683. {code_mower-1.4.2 → code_mower-1.5.0}/tests/test_prompts.py +0 -0
  684. {code_mower-1.4.2 → code_mower-1.5.0}/tests/test_provider_credentials.py +0 -0
  685. {code_mower-1.4.2 → code_mower-1.5.0}/tests/test_provider_fixture_contracts.py +0 -0
  686. {code_mower-1.4.2 → code_mower-1.5.0}/tests/test_provider_local_cli.py +0 -0
  687. {code_mower-1.4.2 → code_mower-1.5.0}/tests/test_provider_runners_comments.py +0 -0
  688. {code_mower-1.4.2 → code_mower-1.5.0}/tests/test_provider_runners_git.py +0 -0
  689. {code_mower-1.4.2 → code_mower-1.5.0}/tests/test_provider_runners_github_pr.py +0 -0
  690. {code_mower-1.4.2 → code_mower-1.5.0}/tests/test_provider_runners_pr_worktree.py +0 -0
  691. {code_mower-1.4.2 → code_mower-1.5.0}/tests/test_provider_runners_process.py +0 -0
  692. {code_mower-1.4.2 → code_mower-1.5.0}/tests/test_provider_runners_repo_paths.py +0 -0
  693. {code_mower-1.4.2 → code_mower-1.5.0}/tests/test_provider_runners_text_schema.py +0 -0
  694. {code_mower-1.4.2 → code_mower-1.5.0}/tests/test_provider_runners_workspace.py +0 -0
  695. {code_mower-1.4.2 → code_mower-1.5.0}/tests/test_release_campaigns.py +0 -0
  696. {code_mower-1.4.2 → code_mower-1.5.0}/tests/test_release_qualify.py +0 -0
  697. {code_mower-1.4.2 → code_mower-1.5.0}/tests/test_remote_qualification_failure_reason_819.py +0 -0
  698. {code_mower-1.4.2 → code_mower-1.5.0}/tests/test_remote_session.py +0 -0
  699. {code_mower-1.4.2 → code_mower-1.5.0}/tests/test_reviewer_finding_outcome_contract.py +0 -0
  700. {code_mower-1.4.2 → code_mower-1.5.0}/tests/test_reviewer_metrics_core.py +0 -0
  701. {code_mower-1.4.2 → code_mower-1.5.0}/tests/test_reviewer_spend.py +0 -0
  702. {code_mower-1.4.2 → code_mower-1.5.0}/tests/test_role_eligibility.py +0 -0
  703. {code_mower-1.4.2 → code_mower-1.5.0}/tests/test_session_current.py +0 -0
  704. {code_mower-1.4.2 → code_mower-1.5.0}/tests/test_session_lease.py +0 -0
  705. {code_mower-1.4.2 → code_mower-1.5.0}/tests/test_slack_contract.py +0 -0
  706. {code_mower-1.4.2 → code_mower-1.5.0}/tests/test_slack_ingress.py +0 -0
  707. {code_mower-1.4.2 → code_mower-1.5.0}/tests/test_supervised_pilot_contract.py +0 -0
  708. {code_mower-1.4.2 → code_mower-1.5.0}/tests/test_tracker_config.py +0 -0
  709. {code_mower-1.4.2 → code_mower-1.5.0}/tests/test_tracker_contract.py +0 -0
  710. {code_mower-1.4.2 → code_mower-1.5.0}/tests/test_tracker_queue.py +0 -0
  711. {code_mower-1.4.2 → code_mower-1.5.0}/tests/test_trailer_comment_labeler.py +0 -0
  712. {code_mower-1.4.2 → code_mower-1.5.0}/tests/test_work_orders.py +0 -0
  713. {code_mower-1.4.2 → code_mower-1.5.0}/tests/test_work_type_contract.py +0 -0
@@ -0,0 +1,455 @@
1
+ Metadata-Version: 2.4
2
+ Name: code-mower
3
+ Version: 1.5.0
4
+ Summary: Multi-reviewer AI code audit orchestration
5
+ License-Expression: Apache-2.0
6
+ Project-URL: Homepage, https://github.com/codemower-ai/code-mower
7
+ Project-URL: Documentation, https://github.com/codemower-ai/code-mower#readme
8
+ Project-URL: Repository, https://github.com/codemower-ai/code-mower
9
+ Project-URL: Issues, https://github.com/codemower-ai/code-mower/issues
10
+ Project-URL: Changelog, https://github.com/codemower-ai/code-mower/blob/main/CHANGELOG.md
11
+ Keywords: ai,code-review,github-actions,developer-tools
12
+ Classifier: Environment :: Console
13
+ Classifier: Operating System :: OS Independent
14
+ Classifier: Programming Language :: Python :: 3
15
+ Classifier: Programming Language :: Python :: 3.12
16
+ Classifier: Programming Language :: Python :: 3.13
17
+ Classifier: Programming Language :: Python :: 3.14
18
+ Classifier: Topic :: Software Development :: Quality Assurance
19
+ Requires-Python: >=3.12
20
+ Description-Content-Type: text/markdown
21
+ License-File: LICENSE
22
+ License-File: NOTICE
23
+ Requires-Dist: PyYAML>=6.0
24
+ Requires-Dist: packaging>=23.2
25
+ Provides-Extra: coworker
26
+ Requires-Dist: mcp<2.3,>=2.2.0; extra == "coworker"
27
+ Requires-Dist: httpx2<3,>=2.12; extra == "coworker"
28
+ Requires-Dist: PyJWT[crypto]<3,>=2.10; extra == "coworker"
29
+ Requires-Dist: keyring<26,>=25; extra == "coworker"
30
+ Provides-Extra: test
31
+ Requires-Dist: build>=1.2; extra == "test"
32
+ Requires-Dist: pytest>=8.0; extra == "test"
33
+ Requires-Dist: ruff>=0.8; extra == "test"
34
+ Requires-Dist: twine>=5.0; extra == "test"
35
+ Dynamic: license-file
36
+
37
+ # Code Mower
38
+
39
+ Code Mower adds a supervised operating layer around AI coding agents. It helps
40
+ teams give one builder ownership of a change, obtain independent reviews on the
41
+ current pull-request head, recover stalled work, and measure which builder and
42
+ reviewer combinations are useful on their own codebase.
43
+
44
+ Code Mower is supervised-pilot, bring-your-own-agent-loop software.
45
+ It is not a drop-in unattended merge gate. Humans still own credentials,
46
+ repository policy, reviewer promotion, and exceptional decisions.
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
50
+ version on the selected index before using an index install command; source
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).
54
+ After publication, the GitHub Release and linked release issue carry the
55
+ observed source SHA, artifact digests, canary outcomes, publication run and
56
+ reinstall evidence.
57
+ Historical v1.4.x artifacts and qualification records remain unchanged.
58
+ The v1.4.2 release did not claim the bounded hosted Devin canary tracked by
59
+ [#951](https://github.com/codemower-ai/code-mower/issues/951); that result is
60
+ not claimed by its immutable qualification record.
61
+
62
+ Documentation on `main` follows the source on `main`. For an installed release,
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),
65
+ and confirm the tag and package exist before using pinned install commands.
66
+
67
+ ## What Code Mower Adds
68
+
69
+ You can run Claude Code, Codex, Devin, or another coding agent directly. Code
70
+ Mower supplies the shared workflow around them:
71
+
72
+ - one orchestrator and one writer per branch;
73
+ - provider-neutral work orders, handoffs, status, and recovery;
74
+ - independent, structured reviews bound to the current PR head;
75
+ - repository-specific calibration before a reviewer gains merge authority;
76
+ - local reports for quality, latency, cost, interventions, and outcomes;
77
+ - setup diagnostics for provider auth, GitHub permissions, and private-repo
78
+ Actions cost; and
79
+ - optional, explicitly authorized organizational context and metadata sharing.
80
+
81
+ The default setup is deliberately small: Claude Code and Codex. Additional
82
+ participants are opt-in and keep their own execution, privacy, cost, and
83
+ promotion requirements.
84
+
85
+ ## Start Here
86
+
87
+ Code Mower requires Python 3.12 or newer. A laptop or workstation should use
88
+ one stable `pipx` installation:
89
+
90
+ ```bash
91
+ python3.12 --version
92
+ export CODE_MOWER_PYTHON="$(command -v python3.12)"
93
+ pipx install --python "$CODE_MOWER_PYTHON" code-mower==1.5.0
94
+ command -v code-mower
95
+ code-mower --version
96
+ ```
97
+
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
100
+ repository. If you do not have pipx, install it from the
101
+ [official pipx installation guide](https://pipx.pypa.io/stable/installation/).
102
+
103
+ Hosted agents and CI machines can use `uv tool install` after installing uv
104
+ from the [official uv installation guide](https://docs.astral.sh/uv/getting-started/installation/);
105
+ contributors should use `scripts/dev-python` and an editable virtual
106
+ environment. The [Install And Bootstrap](https://github.com/codemower-ai/code-mower/blob/main/docs/install.md) guide gives the exact
107
+ cold-install, upgrade, optional Coworker, and contributor commands.
108
+
109
+ From the repository you want to pilot:
110
+
111
+ ```bash
112
+ code-mower init --easy
113
+ code-mower init --easy --apply --output-dir .code-mower.generated
114
+ code-mower doctor --adoption --repo OWNER/REPO
115
+ code-mower lanes status --repo OWNER/REPO
116
+ ```
117
+
118
+ `init --easy` previews the Claude + Codex setup and changes nothing. `--apply`
119
+ writes a reviewable generated tree; it does not copy those files into your
120
+ repository, start a provider, enable auto-merge, or upload data. Review and
121
+ edit the generated configuration before opening the setup PR.
122
+
123
+ To inspect representative output first, use the
124
+ [synthetic calibration example](https://github.com/codemower-ai/code-mower/blob/main/examples/demo-calibration/README.md) and
125
+ [Board demo](https://github.com/codemower-ai/code-mower/blob/main/examples/board-demo/README.md).
126
+
127
+ Follow [Try Code Mower In 10 Minutes](https://github.com/codemower-ai/code-mower/blob/main/docs/try-in-10-minutes.md) to run Codex
128
+ and Claude manually against that first PR. Automation tokens, recurring
129
+ dispatch, branch-protection changes, and auto-merge are not prerequisites for
130
+ the manual reviewer-gate pilot.
131
+
132
+ After the first peer-review loop works, follow
133
+ [Build Loop In 30 Minutes](https://github.com/codemower-ai/code-mower/blob/main/docs/build-loop-in-30-minutes.md) to add automated
134
+ builder dispatch and the stricter promoted-pilot repository settings.
135
+
136
+ ## Participants And Sessions
137
+
138
+ Choose participants interactively or explicitly:
139
+
140
+ ```bash
141
+ code-mower init --interactive
142
+ code-mower init --with claude,codex,devin
143
+ ```
144
+
145
+ Both commands preview by default. Add `--apply` only when you are ready to
146
+ write the generated setup.
147
+
148
+ The agent that starts a session is the implicit orchestrator:
149
+
150
+ ```bash
151
+ code-mower session start \
152
+ --repo OWNER/REPO \
153
+ --with claude,codex,devin \
154
+ --host codex
155
+ ```
156
+
157
+ `session start` saves an operating brief and takes the local single-orchestrator
158
+ lease. It does not launch every selected product. The host uses the execution
159
+ paths available for each participant and records explicit handoffs where Code
160
+ Mower has no automatic transport. Later, from anywhere in the checkout,
161
+ `code-mower session show --current` finds the brief the live lease names and
162
+ `code-mower session lease show` reports the lease itself; neither changes state.
163
+ The default is 12 hours. A later process can renew or release the same session
164
+ ID with `session lease renew --session-id SESSION_ID` or `session lease release
165
+ --session-id SESSION_ID`; stop its writers before release. Use `session start
166
+ --dry-run` or `--no-lease` for read-only work.
167
+
168
+ Codex, Claude Code, and Cursor are qualified for the shared session, telemetry,
169
+ lease, and Jira-authority contract in v1.5.0. Devin, Grok Bot, Antigravity,
170
+ Muse, and custom hosts are recognized for briefs and provenance, while their
171
+ execution remains an explicit handoff or provider-specific transport. See
172
+ [Participants And Sessions](https://github.com/codemower-ai/code-mower/blob/main/docs/sessions.md) and the
173
+ [Provider Matrix](https://github.com/codemower-ai/code-mower/blob/main/docs/provider-matrix.md).
174
+
175
+ ## Optional Organizational Context
176
+
177
+ The base installation works without an organizational-memory provider. The
178
+ optional Coworker integration gives approved Claude, Codex, and Devin roles the same
179
+ bounded, cited evidence through an explicitly selected private account. Account
180
+ identity and credentials stay outside the repository.
181
+
182
+ After installing the optional dependencies and connecting an approved account,
183
+ the guided path carries one work item through retrieval, builder delivery,
184
+ current-head attachment, independent review, and private feedback:
185
+
186
+ ```bash
187
+ code-mower session start --repo OWNER/REPO --host codex --work-item EXAMPLE-123
188
+ code-mower session context prepare .code-mower/sessions/SESSION.json
189
+ code-mower session context deliver .code-mower/sessions/SESSION.json
190
+ code-mower session context attach .code-mower/sessions/SESSION.json --pr 42
191
+ code-mower session context feedback .code-mower/sessions/SESSION.json \
192
+ --reviewer claude
193
+ ```
194
+
195
+ Every delivery and feedback read reauthorizes online. Private evidence and
196
+ private review findings must not be copied into tracked files or public logs.
197
+ Start with [Optional Organizational Context Setup](https://github.com/codemower-ai/code-mower/blob/main/docs/context-setup.md).
198
+
199
+ ## Roles
200
+
201
+ - **Orchestrator:** the hosting agent by default; coordinates the work item,
202
+ assignments, evidence, reviews, recovery, and owner actions.
203
+ - **Builder:** the only writer for its PR branch.
204
+ - **Reviewer:** an independent current-head audit. A builder's own review does
205
+ not satisfy the peer-review requirement.
206
+ - **Merge authority:** repository policy. Selecting a participant never grants
207
+ it.
208
+ - **Context provider:** supplies approved evidence; it cannot build, review,
209
+ orchestrate, write to the tracker, or merge.
210
+
211
+ Code Mower records builder provenance for Claude Code, Codex, Cursor-style
212
+ hosted builders, Devin, and other authoring lanes. Its generated templates now
213
+ support the supervised issue-to-merge loop end to end, with provider-specific
214
+ adapters handling product differences.
215
+
216
+ ## What Calibration Does And Does Not Prove
217
+
218
+ The generated starter corpus proves that the command and report paths work. It
219
+ does not prove that a reviewer should gate merges.
220
+
221
+ Bootstrap a draft from recent repository history:
222
+
223
+ ```bash
224
+ code-mower calibration auto-discover \
225
+ --repo OWNER/REPO \
226
+ --last-n 20 \
227
+ --output .code-mower/draft-calibration-corpus.json
228
+ ```
229
+
230
+ Review every proposed disposition. Promote a lane only after known-clean and
231
+ known-blocked evidence satisfies the
232
+ [lane promotion policy](https://github.com/codemower-ai/code-mower/blob/main/docs/lane-promotion-policy.md).
233
+
234
+ ## Local Status And Board
235
+
236
+ `lanes status` is the concise terminal view. The optional Board serves the same
237
+ redacted metadata on loopback:
238
+
239
+ ```bash
240
+ code-mower lanes status --repo OWNER/REPO
241
+ code-mower productivity report --repo OWNER/REPO
242
+ code-mower board serve --repo OWNER/REPO
243
+ ```
244
+
245
+ Plain `board serve` is read-only. Add `--record-events` to append throttled,
246
+ metadata-only local history:
247
+
248
+ ```bash
249
+ code-mower board serve --repo OWNER/REPO --record-events
250
+ code-mower board record --repo OWNER/REPO
251
+ code-mower board events
252
+ code-mower board doctor --repo OWNER/REPO
253
+ code-mower board reset --repo OWNER/REPO --yes
254
+ ```
255
+
256
+ The Board includes the owner queue, reviewer verdict history and spend/latency
257
+ when those local inputs exist. It binds to loopback only. Local paths are
258
+ redacted by default. The Board does not upload data.
259
+
260
+ To keep one Board running across logout and reboot, install it as a persistent
261
+ local service. macOS is the supported platform, through launchd; every other
262
+ platform refuses rather than calling a transient process a service:
263
+
264
+ ```bash
265
+ code-mower board service render --repo OWNER/REPO --repo-path . --port 5332
266
+ code-mower board service install --repo OWNER/REPO --repo-path . --port 5332
267
+ code-mower board service status --json
268
+ code-mower board service restart --repo OWNER/REPO --repo-path . --port 5332
269
+ code-mower board service remove --repo OWNER/REPO --yes
270
+ ```
271
+
272
+ `render` prints the exact definition before anything is applied. `board stop
273
+ --repo OWNER/REPO` resolves one exact known binding and refuses an ambiguous,
274
+ duplicate, or contradicting selection, and it refuses a port a keepalive-managed
275
+ service would immediately reclaim. See
276
+ [Board Service Lifecycle](https://github.com/codemower-ai/code-mower/blob/main/docs/board-service-lifecycle.md) for the serving gate,
277
+ delayed health, and the fail-closed refusals.
278
+
279
+ ## Optional Cloud Sharing
280
+
281
+ The OSS package works without CodeMower.com. Cloud sharing is an explicit,
282
+ dry-run-first path for sanitized metadata and selected reports:
283
+
284
+ ```bash
285
+ code-mower cloud dogfood --json
286
+ code-mower cloud board-snapshot --repo-slug OWNER/REPO --json
287
+ ```
288
+
289
+ Neither command uploads without `--yes`. Default bundles exclude source code,
290
+ raw diffs, model transcripts, raw stdout/stderr, auth output, issue body text,
291
+ local secret values, and secrets. See [Cloud Sharing](https://github.com/codemower-ai/code-mower/blob/main/docs/cloud-sharing.md)
292
+ and the [Cloud Data Contract](https://github.com/codemower-ai/code-mower/blob/main/docs/cloud-data-contract.md).
293
+
294
+ ## Optional Hosted Slack
295
+
296
+ v1.5.0 adds a basic Slack control surface for one private workspace and one
297
+ authorized private, unshared channel. A Code Mower team administrator opens
298
+ **Setup → Manage Slack integration** in the hosted dashboard and completes OAuth
299
+ as a Slack workspace administrator. Ordinary hosted setup does not require a
300
+ local manifest, Slack app creation, or Slack credentials on the user's machine.
301
+
302
+ The app requests only the bot `commands` scope. It does not request message or
303
+ channel history, posting, files, email, user tokens, Events API subscriptions,
304
+ Socket Mode, or an organization-wide install. An administrator binds exact
305
+ Slack user, repository alias, and private-channel identities before users can
306
+ run `/codemower help`, `start`, `status`, `answer`, or `cancel`. Replies are
307
+ requester-private.
308
+
309
+ Slack is an authenticated request surface, not an agent or authority. The
310
+ qualified supervisor reauthorizes execution and owns the provider lifecycle,
311
+ independent review, and completion/cancellation evidence. Slack cannot approve
312
+ provider permissions, change safe mode, or grant merge authority. Command and
313
+ modal text cross from Slack to the hosted service and may be sent to the
314
+ configured supervisor/builder for an authorized task; credentials, routing
315
+ identifiers, raw payloads, and private bindings are excluded from logs, Board,
316
+ cloud exports, and public diagnostics.
317
+
318
+ App/deployment operators have a separate manifest and redacted readiness path.
319
+ See [Optional Slack Setup](https://github.com/codemower-ai/code-mower/blob/main/docs/slack-setup.md)
320
+ for both workflows, supported behavior, and the trust boundary.
321
+
322
+ ## Current Capabilities And Limits
323
+
324
+ | Area | v1.5.0 posture |
325
+ | --- | --- |
326
+ | Default builders and reviewers | Claude Code + Codex |
327
+ | Session hosts | Codex, Claude Code, and Cursor qualified; other identities recognized but require explicit handoff/provider transport |
328
+ | Devin | Maintained local builder lane and an exact PR-bound hosted work-order library seam (`code_mower.devin_work_orders`, no packaged CLI command); local review remains informational and Devin is not yet a qualified peer orchestrator |
329
+ | Organizational context | Optional Coworker delivery to approved Claude/Codex/Devin roles |
330
+ | Work trackers | GitHub Issues by default; Jira Cloud is optional and guarded |
331
+ | Forge and merge gate | GitHub |
332
+ | Cloud | Optional metadata/report upload; no upload by default |
333
+ | Graphify | Optional bounded local repository-graph provider behind the packet contract; no default dependency and no network access for the provider |
334
+ | Slack | Optional hosted OAuth and `/codemower` control surface for one private workspace/channel; exact bindings, qualified supervisor, and numeric caps gate work |
335
+
336
+ GitLab, Bitbucket, broad unattended rollout, uncalibrated merge gates, Devin
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
339
+ and boundaries are recorded in
340
+ [Current State And Roadmap](https://github.com/codemower-ai/code-mower/blob/main/docs/current-state-and-roadmap.md).
341
+
342
+ ## Optional Repository Context Graph
343
+
344
+ Graphify's optional bounded provider foundation landed in v1.4.0; its complete
345
+ qualified integration, scorecard and query behavior shipped in v1.4.1 and
346
+ remain available in v1.5.0. It is separately installed into an operator-owned
347
+ environment, explicitly activated, and outside the base dependency set: a
348
+ default Claude + Codex install adds no Graphify dependency, no indexer, no
349
+ background service, and no watcher.
350
+
351
+ ```bash
352
+ code-mower init --graphify
353
+ code-mower context-graph doctor
354
+ code-mower context-graph status --json
355
+ ```
356
+
357
+ `init --graphify` only renders acquisition and pin guidance; it installs and
358
+ indexes nothing. Start with
359
+ [Optional Graphify Setup](https://github.com/codemower-ai/code-mower/blob/main/docs/graphify-setup.md) for the acquisition and
360
+ ramp-up flow, [Local Repository Graph Lifecycle](https://github.com/codemower-ai/code-mower/blob/main/docs/context-graph-lifecycle.md)
361
+ for what a build is allowed to see and where its state lives, and
362
+ [Bounded Queries And Context Packets](https://github.com/codemower-ai/code-mower/blob/main/docs/context-graph-queries.md) for the
363
+ four questions and the packet contract.
364
+
365
+ v1.5.0 includes #1007's bounded 16 MiB provider-manifest reader, `doc_ref`
366
+ non-code exclusions, JavaScript/TypeScript related-test conventions and import
367
+ relationships, plus parser/runtime/single-worker guidance. #1031 makes search
368
+ readiness agree with the installed query reader and preserves usable bounded
369
+ partial answers. The accepted `graphifyy==0.9.58` pin is unchanged. Upgrade does
370
+ not repair existing graphs: explicitly refresh affected/partial generations,
371
+ such as an older partial frontend generation. Inspect
372
+ `code-mower context-graph status --json`; a generation it already reports usable
373
+ does not need rebuilding. See
374
+ [Graphify upgrade guidance](https://github.com/codemower-ai/code-mower/blob/main/docs/graphify-setup.md#v150-compatibility-and-existing-generations).
375
+
376
+ ## Documentation
377
+
378
+ ### Install And First Use
379
+
380
+ - [Install And Bootstrap](https://github.com/codemower-ai/code-mower/blob/main/docs/install.md)
381
+ - [Try Code Mower In 10 Minutes](https://github.com/codemower-ai/code-mower/blob/main/docs/try-in-10-minutes.md)
382
+ - [Upgrade An Existing Repository](https://github.com/codemower-ai/code-mower/blob/main/docs/upgrade-existing-repo.md)
383
+ - [Quickstart Reference](https://github.com/codemower-ai/code-mower/blob/main/docs/quickstart.md)
384
+ - [Troubleshooting](https://github.com/codemower-ai/code-mower/blob/main/docs/troubleshooting.md)
385
+ - [First Run Transcript](https://github.com/codemower-ai/code-mower/blob/main/docs/first-run-transcript.md) (v1.4.0 illustrative shape, not the v1.5.0 source pin)
386
+
387
+ ### Local Board And Repository Context
388
+
389
+ - [Board Data Contract](https://github.com/codemower-ai/code-mower/blob/main/docs/board-data-contract.md)
390
+ - [Board Service Lifecycle](https://github.com/codemower-ai/code-mower/blob/main/docs/board-service-lifecycle.md)
391
+ - [Board Demo Rehearsal](https://github.com/codemower-ai/code-mower/blob/main/examples/board-demo/README.md)
392
+ - [Optional Graphify Setup](https://github.com/codemower-ai/code-mower/blob/main/docs/graphify-setup.md)
393
+ - [Local Repository Graph Lifecycle](https://github.com/codemower-ai/code-mower/blob/main/docs/context-graph-lifecycle.md)
394
+ - [Bounded Queries And Context Packets](https://github.com/codemower-ai/code-mower/blob/main/docs/context-graph-queries.md)
395
+ - [Graphify Evaluation Record](https://github.com/codemower-ai/code-mower/blob/main/docs/graphify-evaluation.md) (historical decision, 2026-09-12)
396
+
397
+ ### Sessions, Builders, And Reviewers
398
+
399
+ - [Participants And Sessions](https://github.com/codemower-ai/code-mower/blob/main/docs/sessions.md)
400
+ - [Build Loop In 30 Minutes](https://github.com/codemower-ai/code-mower/blob/main/docs/build-loop-in-30-minutes.md)
401
+ - [Build Loop Operations](https://github.com/codemower-ai/code-mower/blob/main/docs/build-loop.md)
402
+ - [Planning And Work Orders](https://github.com/codemower-ai/code-mower/blob/main/docs/planning-work-orders.md)
403
+ - [Builder Experiments](https://github.com/codemower-ai/code-mower/blob/main/docs/builder-experiments.md)
404
+ - [Orchestrator Prompt Pack](https://github.com/codemower-ai/code-mower/blob/main/docs/orchestrator-prompt-pack.md)
405
+ - [Optional Devin Setup Prompt](https://github.com/codemower-ai/code-mower/blob/main/docs/devin-setup-prompt.md)
406
+ - [Optional Slack Setup](https://github.com/codemower-ai/code-mower/blob/main/docs/slack-setup.md) (hosted dashboard OAuth for workspace administrators; separate manifest/readiness path for operators)
407
+ - [Slack Authenticated Ingress Contract](https://github.com/codemower-ai/code-mower/blob/main/docs/slack-ingress.md) (standalone OSS adapter seam)
408
+ - [Provider Matrix](https://github.com/codemower-ai/code-mower/blob/main/docs/provider-matrix.md)
409
+ - [Provider Calibration Scorecard](https://github.com/codemower-ai/code-mower/blob/main/docs/provider-calibration-scorecard.md)
410
+ - [Devin Peer-Support Qualification](https://github.com/codemower-ai/code-mower/blob/main/docs/devin-peer-support-qualification.md)
411
+ - [Lane Standing Instructions](https://github.com/codemower-ai/code-mower/blob/main/docs/lanes/README.md)
412
+ - [Codex Lane](https://github.com/codemower-ai/code-mower/blob/main/docs/lanes/codex.md)
413
+ - [Claude Lane](https://github.com/codemower-ai/code-mower/blob/main/docs/lanes/claude.md)
414
+ - [Cursor Lane](https://github.com/codemower-ai/code-mower/blob/main/docs/lanes/cursor.md)
415
+ - [Devin Lane](https://github.com/codemower-ai/code-mower/blob/main/docs/lanes/devin.md)
416
+ - [Self-Hosted Mac Runner](https://github.com/codemower-ai/code-mower/blob/main/docs/self-hosted-mac-runner.md)
417
+ - [Local Audit Runner](https://github.com/codemower-ai/code-mower/blob/main/docs/local-audit-runner.md)
418
+
419
+ ### Context And Trackers
420
+
421
+ - [Optional Organizational Context Setup](https://github.com/codemower-ai/code-mower/blob/main/docs/context-setup.md)
422
+ - [Coworker Connections](https://github.com/codemower-ai/code-mower/blob/main/docs/context-connections.md)
423
+ - [Context Delivery And Private Review](https://github.com/codemower-ai/code-mower/blob/main/docs/context-delivery.md)
424
+ - [Context Provider Contract](https://github.com/codemower-ai/code-mower/blob/main/docs/context-provider-contract.md)
425
+ - [Context Packet Schema](https://github.com/codemower-ai/code-mower/blob/main/docs/context-packet-schema.md)
426
+ - [Jira Cloud Setup](https://github.com/codemower-ai/code-mower/blob/main/docs/jira-cloud-setup.md)
427
+ - [Jira Adoption Rehearsal](https://github.com/codemower-ai/code-mower/blob/main/docs/jira-adoption-rehearsal.md)
428
+ - [Work Tracker Data Contract](https://github.com/codemower-ai/code-mower/blob/main/docs/tracker-data-contract.md)
429
+
430
+ ### Trust, Operations, And Project Records
431
+
432
+ - [Architecture](https://github.com/codemower-ai/code-mower/blob/main/docs/architecture.md)
433
+ - [Current State And Roadmap](https://github.com/codemower-ai/code-mower/blob/main/docs/current-state-and-roadmap.md)
434
+ - [Lane Promotion Policy](https://github.com/codemower-ai/code-mower/blob/main/docs/lane-promotion-policy.md)
435
+ - [Privacy And Threat Model](https://github.com/codemower-ai/code-mower/blob/main/docs/privacy-threat-model.md)
436
+ - [Cloud Data Contract](https://github.com/codemower-ai/code-mower/blob/main/docs/cloud-data-contract.md)
437
+ - [Release Qualification](https://github.com/codemower-ai/code-mower/blob/main/docs/release-qualification.md)
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)
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)
442
+ - [v1.4.2 Qualification Record](https://github.com/codemower-ai/code-mower/blob/main/docs/v142-qualification.md)
443
+ - [Release History And Archived Plans](https://github.com/codemower-ai/code-mower/blob/main/docs/release-history.md)
444
+ - [Changelog](https://github.com/codemower-ai/code-mower/blob/main/CHANGELOG.md)
445
+ - [Contributing](https://github.com/codemower-ai/code-mower/blob/main/CONTRIBUTING.md)
446
+ - [Support](https://github.com/codemower-ai/code-mower/blob/main/SUPPORT.md)
447
+ - [Security Policy](https://github.com/codemower-ai/code-mower/blob/main/SECURITY.md)
448
+ - [Code of Conduct](https://github.com/codemower-ai/code-mower/blob/main/CODE_OF_CONDUCT.md)
449
+
450
+ ## License
451
+
452
+ The Code Mower open-source core is licensed under Apache-2.0. Hosted reporting,
453
+ managed integrations, private telemetry and benchmark products, enterprise
454
+ controls, and support are separate commercial surfaces unless licensed
455
+ otherwise.