code-mower 1.4.1__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.
- code_mower-1.5.0/PKG-INFO +455 -0
- code_mower-1.5.0/README.md +419 -0
- {code_mower-1.4.1 → code_mower-1.5.0}/SUPPORT.md +16 -1
- code_mower-1.5.0/docs/board-data-contract.md +958 -0
- code_mower-1.5.0/docs/board-qualification.md +129 -0
- code_mower-1.5.0/docs/board-service-lifecycle.md +332 -0
- {code_mower-1.4.1 → code_mower-1.5.0}/docs/build-loop-in-30-minutes.md +5 -1
- {code_mower-1.4.1 → code_mower-1.5.0}/docs/builders-grok-cursor.md +4 -3
- {code_mower-1.4.1 → code_mower-1.5.0}/docs/cloud-benchmarking.md +1 -1
- {code_mower-1.4.1 → code_mower-1.5.0}/docs/context-delivery.md +4 -3
- {code_mower-1.4.1 → code_mower-1.5.0}/docs/context-graph-lifecycle.md +40 -5
- {code_mower-1.4.1 → code_mower-1.5.0}/docs/context-graph-queries.md +56 -1
- {code_mower-1.4.1 → code_mower-1.5.0}/docs/context-provider-contract.md +11 -8
- {code_mower-1.4.1 → code_mower-1.5.0}/docs/context-setup.md +6 -3
- code_mower-1.5.0/docs/current-state-and-roadmap.md +354 -0
- code_mower-1.5.0/docs/devin-setup-prompt.md +69 -0
- {code_mower-1.4.1 → code_mower-1.5.0}/docs/early-adopter-invite-runbook.md +6 -5
- {code_mower-1.4.1 → code_mower-1.5.0}/docs/early-adopter-v05.md +4 -3
- {code_mower-1.4.1 → code_mower-1.5.0}/docs/first-run-transcript.md +4 -0
- {code_mower-1.4.1 → code_mower-1.5.0}/docs/first-user-demo-transcript.md +5 -0
- {code_mower-1.4.1 → code_mower-1.5.0}/docs/first-user-install-rehearsal.md +34 -22
- {code_mower-1.4.1 → code_mower-1.5.0}/docs/friendly-user-rollout-v05.md +12 -8
- {code_mower-1.4.1 → code_mower-1.5.0}/docs/github-setup.md +1 -1
- {code_mower-1.4.1 → code_mower-1.5.0}/docs/graphify-evaluation.md +29 -10
- code_mower-1.5.0/docs/graphify-setup.md +288 -0
- {code_mower-1.4.1 → code_mower-1.5.0}/docs/install.md +155 -17
- {code_mower-1.4.1 → code_mower-1.5.0}/docs/jira-cloud-setup.md +2 -2
- {code_mower-1.4.1 → code_mower-1.5.0}/docs/launch-command-surface.md +27 -0
- code_mower-1.5.0/docs/local-audit-runner.md +348 -0
- {code_mower-1.4.1 → code_mower-1.5.0}/docs/mirror-removal-runbook.md +1 -1
- {code_mower-1.4.1 → code_mower-1.5.0}/docs/operational-evidence.md +21 -0
- {code_mower-1.4.1 → code_mower-1.5.0}/docs/orchestrator-prompt-pack.md +24 -46
- {code_mower-1.4.1 → code_mower-1.5.0}/docs/oss-v1-checklist.md +7 -5
- {code_mower-1.4.1 → code_mower-1.5.0}/docs/package-customization.md +35 -10
- {code_mower-1.4.1 → code_mower-1.5.0}/docs/privacy-threat-model.md +37 -0
- {code_mower-1.4.1 → code_mower-1.5.0}/docs/provider-matrix.md +4 -3
- {code_mower-1.4.1 → code_mower-1.5.0}/docs/public-release-checklist.md +35 -11
- {code_mower-1.4.1 → code_mower-1.5.0}/docs/pypi-release.md +384 -140
- {code_mower-1.4.1 → code_mower-1.5.0}/docs/quickstart.md +31 -16
- {code_mower-1.4.1 → code_mower-1.5.0}/docs/release-history.md +7 -1
- {code_mower-1.4.1 → code_mower-1.5.0}/docs/release-qualification.md +101 -3
- {code_mower-1.4.1 → code_mower-1.5.0}/docs/self-hosted-mac-runner.md +56 -0
- {code_mower-1.4.1 → code_mower-1.5.0}/docs/sessions.md +4 -3
- {code_mower-1.4.1 → code_mower-1.5.0}/docs/slack-contract.md +5 -0
- {code_mower-1.4.1 → code_mower-1.5.0}/docs/slack-ingress.md +29 -13
- code_mower-1.5.0/docs/slack-setup.md +321 -0
- code_mower-1.5.0/docs/supervisor-contract.md +321 -0
- {code_mower-1.4.1 → code_mower-1.5.0}/docs/troubleshooting.md +30 -2
- {code_mower-1.4.1 → code_mower-1.5.0}/docs/try-in-10-minutes.md +15 -8
- {code_mower-1.4.1 → code_mower-1.5.0}/docs/upgrade-existing-repo.md +81 -14
- {code_mower-1.4.1 → code_mower-1.5.0}/docs/v140-release-runbook.md +115 -17
- {code_mower-1.4.1 → code_mower-1.5.0}/docs/v141-qualification.md +9 -2
- {code_mower-1.4.1 → code_mower-1.5.0}/docs/v141-release-notes.md +14 -3
- code_mower-1.5.0/docs/v142-qualification.md +87 -0
- code_mower-1.5.0/docs/v142-release-notes.md +91 -0
- code_mower-1.5.0/docs/v150-qualification.md +53 -0
- code_mower-1.5.0/docs/v150-release-notes.md +94 -0
- code_mower-1.5.0/docs/v150-release-runbook.md +327 -0
- {code_mower-1.4.1 → code_mower-1.5.0}/pyproject.toml +10 -1
- {code_mower-1.4.1 → code_mower-1.5.0}/src/code_mower/__init__.py +1 -1
- {code_mower-1.4.1 → code_mower-1.5.0}/src/code_mower/audit_labeler_lib.py +28 -0
- code_mower-1.5.0/src/code_mower/audit_publication.py +867 -0
- code_mower-1.5.0/src/code_mower/board.py +6488 -0
- code_mower-1.5.0/src/code_mower/board_local_observation.py +1030 -0
- code_mower-1.5.0/src/code_mower/board_observation.py +459 -0
- code_mower-1.5.0/src/code_mower/board_observation.schema.json +278 -0
- code_mower-1.5.0/src/code_mower/board_remote_observation.py +180 -0
- code_mower-1.5.0/src/code_mower/board_service.py +2757 -0
- {code_mower-1.4.1 → code_mower-1.5.0}/src/code_mower/builder_lineage.py +17 -2
- {code_mower-1.4.1 → code_mower-1.5.0}/src/code_mower/builder_lineage_producer.py +71 -4
- {code_mower-1.4.1 → code_mower-1.5.0}/src/code_mower/campaign_adapters.py +205 -15
- {code_mower-1.4.1 → code_mower-1.5.0}/src/code_mower/claude_audit_pr.py +33 -1
- {code_mower-1.4.1 → code_mower-1.5.0}/src/code_mower/claude_cli_environment.py +2 -1
- {code_mower-1.4.1 → code_mower-1.5.0}/src/code_mower/cli.py +4 -1
- {code_mower-1.4.1 → code_mower-1.5.0}/src/code_mower/codex_audit_pr.py +35 -2
- {code_mower-1.4.1 → code_mower-1.5.0}/src/code_mower/context_graph_command.py +41 -10
- {code_mower-1.4.1 → code_mower-1.5.0}/src/code_mower/context_graph_connection.py +25 -6
- {code_mower-1.4.1 → code_mower-1.5.0}/src/code_mower/context_graph_lifecycle.py +9 -3
- {code_mower-1.4.1 → code_mower-1.5.0}/src/code_mower/context_graph_query.py +185 -12
- {code_mower-1.4.1 → code_mower-1.5.0}/src/code_mower/context_store.py +26 -0
- {code_mower-1.4.1 → code_mower-1.5.0}/src/code_mower/devin_review.py +9 -0
- {code_mower-1.4.1 → code_mower-1.5.0}/src/code_mower/devin_sessions.py +8 -0
- {code_mower-1.4.1 → code_mower-1.5.0}/src/code_mower/devin_work_orders.py +74 -2
- {code_mower-1.4.1 → code_mower-1.5.0}/src/code_mower/doctor.py +29 -1
- {code_mower-1.4.1 → code_mower-1.5.0}/src/code_mower/doctor_checks/adoption.py +18 -2
- {code_mower-1.4.1 → code_mower-1.5.0}/src/code_mower/doctor_checks/campaign_auth.py +378 -10
- {code_mower-1.4.1 → code_mower-1.5.0}/src/code_mower/doctor_checks/runner.py +3 -0
- {code_mower-1.4.1 → code_mower-1.5.0}/src/code_mower/doctor_checks/supervised_pilot.py +20 -5
- {code_mower-1.4.1 → code_mower-1.5.0}/src/code_mower/init.py +45 -5
- {code_mower-1.4.1 → code_mower-1.5.0}/src/code_mower/lane_delivery.py +740 -4
- {code_mower-1.4.1 → code_mower-1.5.0}/src/code_mower/lane_status.py +337 -10
- {code_mower-1.4.1 → code_mower-1.5.0}/src/code_mower/migration.py +149 -0
- {code_mower-1.4.1 → code_mower-1.5.0}/src/code_mower/package_manifest.py +29 -0
- {code_mower-1.4.1 → code_mower-1.5.0}/src/code_mower/provider_registry.py +9 -2
- {code_mower-1.4.1 → code_mower-1.5.0}/src/code_mower/provider_runners/github_auth.py +23 -3
- {code_mower-1.4.1 → code_mower-1.5.0}/src/code_mower/provider_runners/lineage.py +4 -2
- code_mower-1.5.0/src/code_mower/release_identity.py +162 -0
- {code_mower-1.4.1 → code_mower-1.5.0}/src/code_mower/release_readiness.py +286 -27
- {code_mower-1.4.1 → code_mower-1.5.0}/src/code_mower/remote_session.py +109 -3
- code_mower-1.5.0/src/code_mower/slack_readiness.py +257 -0
- code_mower-1.5.0/src/code_mower/slack_setup.py +63 -0
- code_mower-1.5.0/src/code_mower/supervisor.py +660 -0
- code_mower-1.5.0/src/code_mower/supervisor_checkpoint.py +285 -0
- code_mower-1.5.0/src/code_mower/supervisor_codex.py +189 -0
- code_mower-1.5.0/src/code_mower/supervisor_contract.fixtures.json +132 -0
- code_mower-1.5.0/src/code_mower/supervisor_contract.py +108 -0
- code_mower-1.5.0/src/code_mower/supervisor_contract.schema.json +551 -0
- code_mower-1.5.0/src/code_mower/supervisor_contract_v2.fixtures.json +265 -0
- code_mower-1.5.0/src/code_mower/supervisor_contract_v2.py +60 -0
- code_mower-1.5.0/src/code_mower/supervisor_contract_v2.schema.json +623 -0
- {code_mower-1.4.1 → code_mower-1.5.0}/src/code_mower/templates/lanes/run_mac_lane.sh +230 -3
- code_mower-1.5.0/src/code_mower/templates/slack/hosted-app-manifest.json +30 -0
- code_mower-1.5.0/src/code_mower/templates/workflows/local-audit-publication.yml.j2 +67 -0
- code_mower-1.5.0/src/code_mower/templates/workflows/local-audit-request.yml.j2 +27 -0
- {code_mower-1.4.1 → code_mower-1.5.0}/src/code_mower/templates/workflows/local-cli-audit.yml.j2 +4 -1
- {code_mower-1.4.1 → code_mower-1.5.0/src/code_mower}/templates/workflows/self-hosted-local-audit.yml.j2 +79 -22
- {code_mower-1.4.1 → code_mower-1.5.0}/src/code_mower/templates/workflows/trailer-comment-labeler.yml.j2 +21 -2
- {code_mower-1.4.1 → code_mower-1.5.0}/src/code_mower/trailer_comment_labeler.py +16 -2
- {code_mower-1.4.1 → code_mower-1.5.0}/src/code_mower/versioning.py +6 -11
- code_mower-1.5.0/src/code_mower.egg-info/PKG-INFO +455 -0
- {code_mower-1.4.1 → code_mower-1.5.0}/src/code_mower.egg-info/SOURCES.txt +50 -0
- {code_mower-1.4.1 → code_mower-1.5.0}/templates/lanes/README.md +2 -1
- {code_mower-1.4.1 → code_mower-1.5.0}/templates/lanes/run_mac_lane.sh +230 -3
- code_mower-1.5.0/templates/workflows/local-audit-publication.yml.j2 +67 -0
- code_mower-1.5.0/templates/workflows/local-audit-request.yml.j2 +27 -0
- {code_mower-1.4.1 → code_mower-1.5.0}/templates/workflows/local-cli-audit.yml.j2 +4 -1
- {code_mower-1.4.1/src/code_mower → code_mower-1.5.0}/templates/workflows/self-hosted-local-audit.yml.j2 +79 -22
- {code_mower-1.4.1 → code_mower-1.5.0}/templates/workflows/trailer-comment-labeler.yml.j2 +21 -2
- code_mower-1.5.0/tests/test_adoption_polish_1015.py +762 -0
- {code_mower-1.4.1 → code_mower-1.5.0}/tests/test_adoption_polish_955.py +27 -13
- code_mower-1.5.0/tests/test_audit_labeler_identity.py +192 -0
- code_mower-1.5.0/tests/test_audit_publication.py +1419 -0
- code_mower-1.5.0/tests/test_board.py +11909 -0
- {code_mower-1.4.1 → code_mower-1.5.0}/tests/test_board_lease.py +8 -3
- code_mower-1.5.0/tests/test_board_local_observation.py +700 -0
- code_mower-1.5.0/tests/test_board_observation.py +282 -0
- code_mower-1.5.0/tests/test_board_qualification.py +272 -0
- code_mower-1.5.0/tests/test_board_remote_observation.py +485 -0
- code_mower-1.5.0/tests/test_board_service.py +2562 -0
- {code_mower-1.4.1 → code_mower-1.5.0}/tests/test_branch_policy.py +553 -2
- code_mower-1.5.0/tests/test_codex_campaign_auth_modes.py +616 -0
- {code_mower-1.4.1 → code_mower-1.5.0}/tests/test_context_graph_connection.py +291 -1
- {code_mower-1.4.1 → code_mower-1.5.0}/tests/test_context_graph_lifecycle.py +64 -5
- {code_mower-1.4.1 → code_mower-1.5.0}/tests/test_context_graph_query.py +65 -0
- {code_mower-1.4.1 → code_mower-1.5.0}/tests/test_devin_review.py +27 -0
- {code_mower-1.4.1 → code_mower-1.5.0}/tests/test_doctor_campaign_auth.py +5 -1
- {code_mower-1.4.1 → code_mower-1.5.0}/tests/test_doctor_campaign_readiness.py +10 -0
- {code_mower-1.4.1 → code_mower-1.5.0}/tests/test_documentation.py +1 -1
- {code_mower-1.4.1 → code_mower-1.5.0}/tests/test_lane_delivery_contract.py +21 -1
- {code_mower-1.4.1 → code_mower-1.5.0}/tests/test_lane_status.py +106 -0
- code_mower-1.5.0/tests/test_lane_writer_identity.py +484 -0
- code_mower-1.5.0/tests/test_lineage_creation.py +1213 -0
- {code_mower-1.4.1 → code_mower-1.5.0}/tests/test_lineage_producer_artifacts.py +45 -14
- {code_mower-1.4.1 → code_mower-1.5.0}/tests/test_release_hygiene.py +510 -250
- code_mower-1.5.0/tests/test_release_identity.py +386 -0
- {code_mower-1.4.1 → code_mower-1.5.0}/tests/test_release_v141.py +10 -7
- code_mower-1.5.0/tests/test_release_v142.py +723 -0
- code_mower-1.5.0/tests/test_release_v150.py +473 -0
- code_mower-1.5.0/tests/test_slack_setup.py +281 -0
- code_mower-1.5.0/tests/test_supervisor.py +620 -0
- code_mower-1.5.0/tests/test_supervisor_v2.py +569 -0
- code_mower-1.4.1/PKG-INFO +0 -343
- code_mower-1.4.1/README.md +0 -307
- code_mower-1.4.1/docs/board-data-contract.md +0 -495
- code_mower-1.4.1/docs/current-state-and-roadmap.md +0 -275
- code_mower-1.4.1/docs/graphify-setup.md +0 -95
- code_mower-1.4.1/docs/local-audit-runner.md +0 -166
- code_mower-1.4.1/src/code_mower/board.py +0 -2558
- code_mower-1.4.1/src/code_mower.egg-info/PKG-INFO +0 -343
- code_mower-1.4.1/tests/test_board.py +0 -2737
- {code_mower-1.4.1 → code_mower-1.5.0}/CODE_OF_CONDUCT.md +0 -0
- {code_mower-1.4.1 → code_mower-1.5.0}/LICENSE +0 -0
- {code_mower-1.4.1 → code_mower-1.5.0}/MANIFEST.in +0 -0
- {code_mower-1.4.1 → code_mower-1.5.0}/NOTICE +0 -0
- {code_mower-1.4.1 → code_mower-1.5.0}/docs/acp-bridge-spike.md +0 -0
- {code_mower-1.4.1 → code_mower-1.5.0}/docs/architecture.md +0 -0
- {code_mower-1.4.1 → code_mower-1.5.0}/docs/archive/README.md +0 -0
- {code_mower-1.4.1 → code_mower-1.5.0}/docs/archive/first-user-install-rehearsal-alpha4.md +0 -0
- {code_mower-1.4.1 → code_mower-1.5.0}/docs/archive/first-user-install-rehearsal-alpha5.md +0 -0
- {code_mower-1.4.1 → code_mower-1.5.0}/docs/archive/first-user-install-rehearsal-alpha6.md +0 -0
- {code_mower-1.4.1 → code_mower-1.5.0}/docs/archive/first-user-install-rehearsal-alpha8.md +0 -0
- {code_mower-1.4.1 → code_mower-1.5.0}/docs/archive/first-user-install-rehearsal-alpha9.md +0 -0
- {code_mower-1.4.1 → code_mower-1.5.0}/docs/authoring-intelligence.md +0 -0
- {code_mower-1.4.1 → code_mower-1.5.0}/docs/build-loop.md +0 -0
- {code_mower-1.4.1 → code_mower-1.5.0}/docs/builder-experiments.md +0 -0
- {code_mower-1.4.1 → code_mower-1.5.0}/docs/calibration-notes.md +0 -0
- {code_mower-1.4.1 → code_mower-1.5.0}/docs/calibration-pilot.md +0 -0
- {code_mower-1.4.1 → code_mower-1.5.0}/docs/cloud-contributor-runbook.md +0 -0
- {code_mower-1.4.1 → code_mower-1.5.0}/docs/cloud-data-contract.md +0 -0
- {code_mower-1.4.1 → code_mower-1.5.0}/docs/cloud-sharing.md +0 -0
- {code_mower-1.4.1 → code_mower-1.5.0}/docs/code-structure-roadmap.md +0 -0
- {code_mower-1.4.1 → code_mower-1.5.0}/docs/commercial-boundary.md +0 -0
- {code_mower-1.4.1 → code_mower-1.5.0}/docs/context-connections.md +0 -0
- {code_mower-1.4.1 → code_mower-1.5.0}/docs/context-packet-schema.md +0 -0
- {code_mower-1.4.1 → code_mower-1.5.0}/docs/devin-peer-support-qualification.md +0 -0
- {code_mower-1.4.1 → code_mower-1.5.0}/docs/devin-review-parity.md +0 -0
- {code_mower-1.4.1 → code_mower-1.5.0}/docs/devin-work-orders.md +0 -0
- {code_mower-1.4.1 → code_mower-1.5.0}/docs/doctrine-lens-proof-v2.md +0 -0
- {code_mower-1.4.1 → code_mower-1.5.0}/docs/jira-adoption-rehearsal.md +0 -0
- {code_mower-1.4.1 → code_mower-1.5.0}/docs/lane-promotion-policy.md +0 -0
- {code_mower-1.4.1 → code_mower-1.5.0}/docs/lanes/README.md +0 -0
- {code_mower-1.4.1 → code_mower-1.5.0}/docs/lanes/claude.md +0 -0
- {code_mower-1.4.1 → code_mower-1.5.0}/docs/lanes/codex.md +0 -0
- {code_mower-1.4.1 → code_mower-1.5.0}/docs/lanes/cursor.md +0 -0
- {code_mower-1.4.1 → code_mower-1.5.0}/docs/lanes/devin.md +0 -0
- {code_mower-1.4.1 → code_mower-1.5.0}/docs/lens-calibration-report.md +0 -0
- {code_mower-1.4.1 → code_mower-1.5.0}/docs/participant-qualification.md +0 -0
- {code_mower-1.4.1 → code_mower-1.5.0}/docs/planning-work-orders.md +0 -0
- {code_mower-1.4.1 → code_mower-1.5.0}/docs/post-v08-effectiveness-assessment.md +0 -0
- {code_mower-1.4.1 → code_mower-1.5.0}/docs/prd-addendum-v05-beta.md +0 -0
- {code_mower-1.4.1 → code_mower-1.5.0}/docs/provider-calibration-scorecard.md +0 -0
- {code_mower-1.4.1 → code_mower-1.5.0}/docs/provider-diversity-provenance.md +0 -0
- {code_mower-1.4.1 → code_mower-1.5.0}/docs/repo-strategy.md +0 -0
- {code_mower-1.4.1 → code_mower-1.5.0}/docs/reviewer-value-report.md +0 -0
- {code_mower-1.4.1 → code_mower-1.5.0}/docs/sample-doctor-output.md +0 -0
- {code_mower-1.4.1 → code_mower-1.5.0}/docs/supervised-pilot-contract.md +0 -0
- {code_mower-1.4.1 → code_mower-1.5.0}/docs/tracker-data-contract.md +0 -0
- {code_mower-1.4.1 → code_mower-1.5.0}/docs/v06-release-notes.md +0 -0
- {code_mower-1.4.1 → code_mower-1.5.0}/docs/v06-truth-baseline.md +0 -0
- {code_mower-1.4.1 → code_mower-1.5.0}/docs/v08-release-notes.md +0 -0
- {code_mower-1.4.1 → code_mower-1.5.0}/docs/v09-release-notes.md +0 -0
- {code_mower-1.4.1 → code_mower-1.5.0}/docs/v10-release-notes.md +0 -0
- {code_mower-1.4.1 → code_mower-1.5.0}/docs/v101-effectiveness-assessment.md +0 -0
- {code_mower-1.4.1 → code_mower-1.5.0}/docs/v101-release-notes.md +0 -0
- {code_mower-1.4.1 → code_mower-1.5.0}/docs/v1010-release-notes.md +0 -0
- {code_mower-1.4.1 → code_mower-1.5.0}/docs/v1011-release-notes.md +0 -0
- {code_mower-1.4.1 → code_mower-1.5.0}/docs/v1012-release-notes.md +0 -0
- {code_mower-1.4.1 → code_mower-1.5.0}/docs/v1013-release-notes.md +0 -0
- {code_mower-1.4.1 → code_mower-1.5.0}/docs/v1014-release-notes.md +0 -0
- {code_mower-1.4.1 → code_mower-1.5.0}/docs/v1015-release-notes.md +0 -0
- {code_mower-1.4.1 → code_mower-1.5.0}/docs/v102-release-notes.md +0 -0
- {code_mower-1.4.1 → code_mower-1.5.0}/docs/v103-installation-documentation-audit.md +0 -0
- {code_mower-1.4.1 → code_mower-1.5.0}/docs/v103-release-notes.md +0 -0
- {code_mower-1.4.1 → code_mower-1.5.0}/docs/v104-installation-documentation-audit.md +0 -0
- {code_mower-1.4.1 → code_mower-1.5.0}/docs/v104-release-notes.md +0 -0
- {code_mower-1.4.1 → code_mower-1.5.0}/docs/v105-release-notes.md +0 -0
- {code_mower-1.4.1 → code_mower-1.5.0}/docs/v106-release-notes.md +0 -0
- {code_mower-1.4.1 → code_mower-1.5.0}/docs/v107-release-notes.md +0 -0
- {code_mower-1.4.1 → code_mower-1.5.0}/docs/v108-release-notes.md +0 -0
- {code_mower-1.4.1 → code_mower-1.5.0}/docs/v109-release-notes.md +0 -0
- {code_mower-1.4.1 → code_mower-1.5.0}/docs/v11-release-notes.md +0 -0
- {code_mower-1.4.1 → code_mower-1.5.0}/docs/v111-release-notes.md +0 -0
- {code_mower-1.4.1 → code_mower-1.5.0}/docs/v112-release-notes.md +0 -0
- {code_mower-1.4.1 → code_mower-1.5.0}/docs/v12-release-notes.md +0 -0
- {code_mower-1.4.1 → code_mower-1.5.0}/docs/v121-release-notes.md +0 -0
- {code_mower-1.4.1 → code_mower-1.5.0}/docs/v122-release-notes.md +0 -0
- {code_mower-1.4.1 → code_mower-1.5.0}/docs/v130-context-qualification.md +0 -0
- {code_mower-1.4.1 → code_mower-1.5.0}/docs/v130-release-notes.md +0 -0
- {code_mower-1.4.1 → code_mower-1.5.0}/docs/v131-guided-context-qualification.md +0 -0
- {code_mower-1.4.1 → code_mower-1.5.0}/docs/v131-release-notes.md +0 -0
- {code_mower-1.4.1 → code_mower-1.5.0}/docs/v140-release-notes.md +0 -0
- {code_mower-1.4.1 → code_mower-1.5.0}/requirements/requirements.txt +0 -0
- {code_mower-1.4.1 → code_mower-1.5.0}/setup.cfg +0 -0
- {code_mower-1.4.1 → code_mower-1.5.0}/src/code_mower/adapters/__init__.py +0 -0
- {code_mower-1.4.1 → code_mower-1.5.0}/src/code_mower/adapters/_base.py +0 -0
- {code_mower-1.4.1 → code_mower-1.5.0}/src/code_mower/adapters/cursor_bugbot.py +0 -0
- {code_mower-1.4.1 → code_mower-1.5.0}/src/code_mower/adapters/gitar.py +0 -0
- {code_mower-1.4.1 → code_mower-1.5.0}/src/code_mower/adapters/greptile.py +0 -0
- {code_mower-1.4.1 → code_mower-1.5.0}/src/code_mower/adapters/qodo.py +0 -0
- {code_mower-1.4.1 → code_mower-1.5.0}/src/code_mower/antigravity_cli_audit_pr.py +0 -0
- {code_mower-1.4.1 → code_mower-1.5.0}/src/code_mower/antigravity_sdk_probe.py +0 -0
- {code_mower-1.4.1 → code_mower-1.5.0}/src/code_mower/audit_handoff_log.py +0 -0
- {code_mower-1.4.1 → code_mower-1.5.0}/src/code_mower/audit_limits.py +0 -0
- {code_mower-1.4.1 → code_mower-1.5.0}/src/code_mower/audit_progress.py +0 -0
- {code_mower-1.4.1 → code_mower-1.5.0}/src/code_mower/blind_review_artifacts.py +0 -0
- {code_mower-1.4.1 → code_mower-1.5.0}/src/code_mower/blind_review_coordinator.py +0 -0
- {code_mower-1.4.1 → code_mower-1.5.0}/src/code_mower/board_store.py +0 -0
- {code_mower-1.4.1 → code_mower-1.5.0}/src/code_mower/bootstrap.py +0 -0
- {code_mower-1.4.1 → code_mower-1.5.0}/src/code_mower/branch_policy.py +0 -0
- {code_mower-1.4.1 → code_mower-1.5.0}/src/code_mower/builder_experiment.py +0 -0
- {code_mower-1.4.1 → code_mower-1.5.0}/src/code_mower/builder_runs.py +0 -0
- {code_mower-1.4.1 → code_mower-1.5.0}/src/code_mower/calibration/__init__.py +0 -0
- {code_mower-1.4.1 → code_mower-1.5.0}/src/code_mower/calibration/arms.py +0 -0
- {code_mower-1.4.1 → code_mower-1.5.0}/src/code_mower/calibration/auto_discovery.py +0 -0
- {code_mower-1.4.1 → code_mower-1.5.0}/src/code_mower/calibration/commands.py +0 -0
- {code_mower-1.4.1 → code_mower-1.5.0}/src/code_mower/calibration/context_inputs.py +0 -0
- {code_mower-1.4.1 → code_mower-1.5.0}/src/code_mower/calibration/corpus.py +0 -0
- {code_mower-1.4.1 → code_mower-1.5.0}/src/code_mower/calibration/effect_report.py +0 -0
- {code_mower-1.4.1 → code_mower-1.5.0}/src/code_mower/calibration/evidence.py +0 -0
- {code_mower-1.4.1 → code_mower-1.5.0}/src/code_mower/calibration/evidence_report.py +0 -0
- {code_mower-1.4.1 → code_mower-1.5.0}/src/code_mower/calibration/identity.py +0 -0
- {code_mower-1.4.1 → code_mower-1.5.0}/src/code_mower/calibration/metrics.py +0 -0
- {code_mower-1.4.1 → code_mower-1.5.0}/src/code_mower/calibration/overlap.py +0 -0
- {code_mower-1.4.1 → code_mower-1.5.0}/src/code_mower/calibration/planning.py +0 -0
- {code_mower-1.4.1 → code_mower-1.5.0}/src/code_mower/calibration/policy.py +0 -0
- {code_mower-1.4.1 → code_mower-1.5.0}/src/code_mower/calibration/results.py +0 -0
- {code_mower-1.4.1 → code_mower-1.5.0}/src/code_mower/calibration/run_results.py +0 -0
- {code_mower-1.4.1 → code_mower-1.5.0}/src/code_mower/calibration/run_status.py +0 -0
- {code_mower-1.4.1 → code_mower-1.5.0}/src/code_mower/calibration/runner.py +0 -0
- {code_mower-1.4.1 → code_mower-1.5.0}/src/code_mower/calibration/truth.py +0 -0
- {code_mower-1.4.1 → code_mower-1.5.0}/src/code_mower/calibration/value_report.py +0 -0
- {code_mower-1.4.1 → code_mower-1.5.0}/src/code_mower/campaign_discovery.py +0 -0
- {code_mower-1.4.1 → code_mower-1.5.0}/src/code_mower/checks.py +0 -0
- {code_mower-1.4.1 → code_mower-1.5.0}/src/code_mower/claude_cli_bounce.py +0 -0
- {code_mower-1.4.1 → code_mower-1.5.0}/src/code_mower/clear_stale.py +0 -0
- {code_mower-1.4.1 → code_mower-1.5.0}/src/code_mower/cloud.py +0 -0
- {code_mower-1.4.1 → code_mower-1.5.0}/src/code_mower/cloud_client/__init__.py +0 -0
- {code_mower-1.4.1 → code_mower-1.5.0}/src/code_mower/cloud_client/adoption_runs.py +0 -0
- {code_mower-1.4.1 → code_mower-1.5.0}/src/code_mower/cloud_client/bundle.py +0 -0
- {code_mower-1.4.1 → code_mower-1.5.0}/src/code_mower/cloud_client/doctor.py +0 -0
- {code_mower-1.4.1 → code_mower-1.5.0}/src/code_mower/cloud_client/dogfood.py +0 -0
- {code_mower-1.4.1 → code_mower-1.5.0}/src/code_mower/cloud_client/endpoints.py +0 -0
- {code_mower-1.4.1 → code_mower-1.5.0}/src/code_mower/cloud_client/errors.py +0 -0
- {code_mower-1.4.1 → code_mower-1.5.0}/src/code_mower/cloud_client/events.py +0 -0
- {code_mower-1.4.1 → code_mower-1.5.0}/src/code_mower/cloud_client/export.py +0 -0
- {code_mower-1.4.1 → code_mower-1.5.0}/src/code_mower/cloud_client/finding_outcomes.py +0 -0
- {code_mower-1.4.1 → code_mower-1.5.0}/src/code_mower/cloud_client/git_metadata.py +0 -0
- {code_mower-1.4.1 → code_mower-1.5.0}/src/code_mower/cloud_client/manifest.py +0 -0
- {code_mower-1.4.1 → code_mower-1.5.0}/src/code_mower/cloud_client/operations.py +0 -0
- {code_mower-1.4.1 → code_mower-1.5.0}/src/code_mower/cloud_client/pr_outcomes.py +0 -0
- {code_mower-1.4.1 → code_mower-1.5.0}/src/code_mower/cloud_client/productivity.py +0 -0
- {code_mower-1.4.1 → code_mower-1.5.0}/src/code_mower/cloud_client/productivity_windows.py +0 -0
- {code_mower-1.4.1 → code_mower-1.5.0}/src/code_mower/cloud_client/reports.py +0 -0
- {code_mower-1.4.1 → code_mower-1.5.0}/src/code_mower/cloud_client/setup.py +0 -0
- {code_mower-1.4.1 → code_mower-1.5.0}/src/code_mower/cloud_client/tokens.py +0 -0
- {code_mower-1.4.1 → code_mower-1.5.0}/src/code_mower/cloud_client/upload.py +0 -0
- {code_mower-1.4.1 → code_mower-1.5.0}/src/code_mower/cloud_client/work_types.py +0 -0
- {code_mower-1.4.1 → code_mower-1.5.0}/src/code_mower/code_mower_calibration.py +0 -0
- {code_mower-1.4.1 → code_mower-1.5.0}/src/code_mower/code_mower_context_packs.py +0 -0
- {code_mower-1.4.1 → code_mower-1.5.0}/src/code_mower/code_mower_merge.py +0 -0
- {code_mower-1.4.1 → code_mower-1.5.0}/src/code_mower/code_mower_telemetry.py +0 -0
- {code_mower-1.4.1 → code_mower-1.5.0}/src/code_mower/coderabbit_cli_audit_pr.py +0 -0
- {code_mower-1.4.1 → code_mower-1.5.0}/src/code_mower/codex_audit_env_preflight.py +0 -0
- {code_mower-1.4.1 → code_mower-1.5.0}/src/code_mower/codex_audit_schema_smoke.py +0 -0
- {code_mower-1.4.1 → code_mower-1.5.0}/src/code_mower/codex_audit_verdict.schema.json +0 -0
- {code_mower-1.4.1 → code_mower-1.5.0}/src/code_mower/config.py +0 -0
- {code_mower-1.4.1 → code_mower-1.5.0}/src/code_mower/context_audit.py +0 -0
- {code_mower-1.4.1 → code_mower-1.5.0}/src/code_mower/context_command.py +0 -0
- {code_mower-1.4.1 → code_mower-1.5.0}/src/code_mower/context_connections.py +0 -0
- {code_mower-1.4.1 → code_mower-1.5.0}/src/code_mower/context_contract.py +0 -0
- {code_mower-1.4.1 → code_mower-1.5.0}/src/code_mower/context_delivery.py +0 -0
- {code_mower-1.4.1 → code_mower-1.5.0}/src/code_mower/context_graph.py +0 -0
- {code_mower-1.4.1 → code_mower-1.5.0}/src/code_mower/context_guided.py +0 -0
- {code_mower-1.4.1 → code_mower-1.5.0}/src/code_mower/context_packets.py +0 -0
- {code_mower-1.4.1 → code_mower-1.5.0}/src/code_mower/context_prepare.py +0 -0
- {code_mower-1.4.1 → code_mower-1.5.0}/src/code_mower/context_readiness.py +0 -0
- {code_mower-1.4.1 → code_mower-1.5.0}/src/code_mower/context_review.py +0 -0
- {code_mower-1.4.1 → code_mower-1.5.0}/src/code_mower/context_session.py +0 -0
- {code_mower-1.4.1 → code_mower-1.5.0}/src/code_mower/controller.py +0 -0
- {code_mower-1.4.1 → code_mower-1.5.0}/src/code_mower/coworker_mcp.py +0 -0
- {code_mower-1.4.1 → code_mower-1.5.0}/src/code_mower/coworker_retrieval.py +0 -0
- {code_mower-1.4.1 → code_mower-1.5.0}/src/code_mower/decisions.py +0 -0
- {code_mower-1.4.1 → code_mower-1.5.0}/src/code_mower/devin_api.py +0 -0
- {code_mower-1.4.1 → code_mower-1.5.0}/src/code_mower/devin_cli_audit_pr.py +0 -0
- {code_mower-1.4.1 → code_mower-1.5.0}/src/code_mower/devin_readiness.py +0 -0
- {code_mower-1.4.1 → code_mower-1.5.0}/src/code_mower/doctor_checks/__init__.py +0 -0
- {code_mower-1.4.1 → code_mower-1.5.0}/src/code_mower/doctor_checks/audit_limits.py +0 -0
- {code_mower-1.4.1 → code_mower-1.5.0}/src/code_mower/doctor_checks/cloud.py +0 -0
- {code_mower-1.4.1 → code_mower-1.5.0}/src/code_mower/doctor_checks/common.py +0 -0
- {code_mower-1.4.1 → code_mower-1.5.0}/src/code_mower/doctor_checks/devin.py +0 -0
- {code_mower-1.4.1 → code_mower-1.5.0}/src/code_mower/doctor_checks/github.py +0 -0
- {code_mower-1.4.1 → code_mower-1.5.0}/src/code_mower/doctor_checks/github_actions.py +0 -0
- {code_mower-1.4.1 → code_mower-1.5.0}/src/code_mower/doctor_checks/github_actions_cost.py +0 -0
- {code_mower-1.4.1 → code_mower-1.5.0}/src/code_mower/doctor_checks/github_actions_cost_summary.py +0 -0
- {code_mower-1.4.1 → code_mower-1.5.0}/src/code_mower/doctor_checks/github_actions_failure_annotations.py +0 -0
- {code_mower-1.4.1 → code_mower-1.5.0}/src/code_mower/doctor_checks/github_actions_failure_models.py +0 -0
- {code_mower-1.4.1 → code_mower-1.5.0}/src/code_mower/doctor_checks/github_actions_failure_scan.py +0 -0
- {code_mower-1.4.1 → code_mower-1.5.0}/src/code_mower/doctor_checks/github_actions_failure_selection.py +0 -0
- {code_mower-1.4.1 → code_mower-1.5.0}/src/code_mower/doctor_checks/github_actions_failures.py +0 -0
- {code_mower-1.4.1 → code_mower-1.5.0}/src/code_mower/doctor_checks/github_actions_permissions.py +0 -0
- {code_mower-1.4.1 → code_mower-1.5.0}/src/code_mower/doctor_checks/github_api.py +0 -0
- {code_mower-1.4.1 → code_mower-1.5.0}/src/code_mower/doctor_checks/github_branch.py +0 -0
- {code_mower-1.4.1 → code_mower-1.5.0}/src/code_mower/doctor_checks/github_config.py +0 -0
- {code_mower-1.4.1 → code_mower-1.5.0}/src/code_mower/doctor_checks/github_human_token.py +0 -0
- {code_mower-1.4.1 → code_mower-1.5.0}/src/code_mower/doctor_checks/github_provider.py +0 -0
- {code_mower-1.4.1 → code_mower-1.5.0}/src/code_mower/doctor_checks/github_repo.py +0 -0
- {code_mower-1.4.1 → code_mower-1.5.0}/src/code_mower/doctor_checks/github_trusted_authors.py +0 -0
- {code_mower-1.4.1 → code_mower-1.5.0}/src/code_mower/doctor_checks/groups.py +0 -0
- {code_mower-1.4.1 → code_mower-1.5.0}/src/code_mower/doctor_checks/jira.py +0 -0
- {code_mower-1.4.1 → code_mower-1.5.0}/src/code_mower/doctor_checks/models.py +0 -0
- {code_mower-1.4.1 → code_mower-1.5.0}/src/code_mower/doctor_checks/output.py +0 -0
- {code_mower-1.4.1 → code_mower-1.5.0}/src/code_mower/doctor_checks/presets.py +0 -0
- {code_mower-1.4.1 → code_mower-1.5.0}/src/code_mower/doctor_checks/privacy.py +0 -0
- {code_mower-1.4.1 → code_mower-1.5.0}/src/code_mower/doctor_checks/provider_api_model.py +0 -0
- {code_mower-1.4.1 → code_mower-1.5.0}/src/code_mower/doctor_checks/provider_api_model_openai.py +0 -0
- {code_mower-1.4.1 → code_mower-1.5.0}/src/code_mower/doctor_checks/provider_api_model_profiles.py +0 -0
- {code_mower-1.4.1 → code_mower-1.5.0}/src/code_mower/doctor_checks/provider_env.py +0 -0
- {code_mower-1.4.1 → code_mower-1.5.0}/src/code_mower/doctor_checks/provider_env_required.py +0 -0
- {code_mower-1.4.1 → code_mower-1.5.0}/src/code_mower/doctor_checks/provider_env_tokens.py +0 -0
- {code_mower-1.4.1 → code_mower-1.5.0}/src/code_mower/doctor_checks/provider_local_audit_setup.py +0 -0
- {code_mower-1.4.1 → code_mower-1.5.0}/src/code_mower/doctor_checks/provider_local_cli.py +0 -0
- {code_mower-1.4.1 → code_mower-1.5.0}/src/code_mower/doctor_checks/provider_local_cli_commands.py +0 -0
- {code_mower-1.4.1 → code_mower-1.5.0}/src/code_mower/doctor_checks/provider_local_cli_probe_config.py +0 -0
- {code_mower-1.4.1 → code_mower-1.5.0}/src/code_mower/doctor_checks/provider_probe.py +0 -0
- {code_mower-1.4.1 → code_mower-1.5.0}/src/code_mower/doctor_checks/provider_probe_auth.py +0 -0
- {code_mower-1.4.1 → code_mower-1.5.0}/src/code_mower/doctor_checks/provider_probe_evaluation.py +0 -0
- {code_mower-1.4.1 → code_mower-1.5.0}/src/code_mower/doctor_checks/provider_probe_json.py +0 -0
- {code_mower-1.4.1 → code_mower-1.5.0}/src/code_mower/doctor_checks/provider_probe_remediation.py +0 -0
- {code_mower-1.4.1 → code_mower-1.5.0}/src/code_mower/doctor_checks/provider_review_hygiene.py +0 -0
- {code_mower-1.4.1 → code_mower-1.5.0}/src/code_mower/doctor_checks/providers.py +0 -0
- {code_mower-1.4.1 → code_mower-1.5.0}/src/code_mower/doctor_checks/registry.py +0 -0
- {code_mower-1.4.1 → code_mower-1.5.0}/src/code_mower/doctor_checks/runtime.py +0 -0
- {code_mower-1.4.1 → code_mower-1.5.0}/src/code_mower/doctor_checks/runtime_github_auth.py +0 -0
- {code_mower-1.4.1 → code_mower-1.5.0}/src/code_mower/doctor_checks/self_hosted_runner.py +0 -0
- {code_mower-1.4.1 → code_mower-1.5.0}/src/code_mower/file_locks.py +0 -0
- {code_mower-1.4.1 → code_mower-1.5.0}/src/code_mower/gate_health.py +0 -0
- {code_mower-1.4.1 → code_mower-1.5.0}/src/code_mower/gemini_cli_audit_pr.py +0 -0
- {code_mower-1.4.1 → code_mower-1.5.0}/src/code_mower/git_identity.py +0 -0
- {code_mower-1.4.1 → code_mower-1.5.0}/src/code_mower/github_builder_evidence.py +0 -0
- {code_mower-1.4.1 → code_mower-1.5.0}/src/code_mower/grok_build_audit_pr.py +0 -0
- {code_mower-1.4.1 → code_mower-1.5.0}/src/code_mower/hermes_cli_audit_pr.py +0 -0
- {code_mower-1.4.1 → code_mower-1.5.0}/src/code_mower/jira_cloud.py +0 -0
- {code_mower-1.4.1 → code_mower-1.5.0}/src/code_mower/jira_mutations.py +0 -0
- {code_mower-1.4.1 → code_mower-1.5.0}/src/code_mower/jira_pr_sync.py +0 -0
- {code_mower-1.4.1 → code_mower-1.5.0}/src/code_mower/lane_configs/__init__.py +0 -0
- {code_mower-1.4.1 → code_mower-1.5.0}/src/code_mower/lane_configs/aider.py +0 -0
- {code_mower-1.4.1 → code_mower-1.5.0}/src/code_mower/lane_configs/antigravity_cli.py +0 -0
- {code_mower-1.4.1 → code_mower-1.5.0}/src/code_mower/lane_configs/claude.py +0 -0
- {code_mower-1.4.1 → code_mower-1.5.0}/src/code_mower/lane_configs/codex.py +0 -0
- {code_mower-1.4.1 → code_mower-1.5.0}/src/code_mower/lane_configs/devin.py +0 -0
- {code_mower-1.4.1 → code_mower-1.5.0}/src/code_mower/lane_configs/devin_cli.py +0 -0
- {code_mower-1.4.1 → code_mower-1.5.0}/src/code_mower/lane_configs/gemini_cli.py +0 -0
- {code_mower-1.4.1 → code_mower-1.5.0}/src/code_mower/lane_configs/grok_build.py +0 -0
- {code_mower-1.4.1 → code_mower-1.5.0}/src/code_mower/lane_configs/hermes_cli.py +0 -0
- {code_mower-1.4.1 → code_mower-1.5.0}/src/code_mower/lane_configs/local_llm.py +0 -0
- {code_mower-1.4.1 → code_mower-1.5.0}/src/code_mower/lane_configs/muse_cli.py +0 -0
- {code_mower-1.4.1 → code_mower-1.5.0}/src/code_mower/lane_handoff.py +0 -0
- {code_mower-1.4.1 → code_mower-1.5.0}/src/code_mower/lane_runtime.py +0 -0
- {code_mower-1.4.1 → code_mower-1.5.0}/src/code_mower/local_cli_commands.py +0 -0
- {code_mower-1.4.1 → code_mower-1.5.0}/src/code_mower/local_llm_audit_pr.py +0 -0
- {code_mower-1.4.1 → code_mower-1.5.0}/src/code_mower/local_llm_bakeoff.py +0 -0
- {code_mower-1.4.1 → code_mower-1.5.0}/src/code_mower/local_llm_calibration.py +0 -0
- {code_mower-1.4.1 → code_mower-1.5.0}/src/code_mower/local_llm_profiles.py +0 -0
- {code_mower-1.4.1 → code_mower-1.5.0}/src/code_mower/migration_install.py +0 -0
- {code_mower-1.4.1 → code_mower-1.5.0}/src/code_mower/migration_mirror.py +0 -0
- {code_mower-1.4.1 → code_mower-1.5.0}/src/code_mower/migration_readiness.py +0 -0
- {code_mower-1.4.1 → code_mower-1.5.0}/src/code_mower/migration_rehearsal.py +0 -0
- {code_mower-1.4.1 → code_mower-1.5.0}/src/code_mower/muse_cli_audit_pr.py +0 -0
- {code_mower-1.4.1 → code_mower-1.5.0}/src/code_mower/next_steps.py +0 -0
- {code_mower-1.4.1 → code_mower-1.5.0}/src/code_mower/operational_evidence.py +0 -0
- {code_mower-1.4.1 → code_mower-1.5.0}/src/code_mower/package.py +0 -0
- {code_mower-1.4.1 → code_mower-1.5.0}/src/code_mower/package_content.py +0 -0
- {code_mower-1.4.1 → code_mower-1.5.0}/src/code_mower/package_paths.py +0 -0
- {code_mower-1.4.1 → code_mower-1.5.0}/src/code_mower/package_rendering.py +0 -0
- {code_mower-1.4.1 → code_mower-1.5.0}/src/code_mower/package_static.py +0 -0
- {code_mower-1.4.1 → code_mower-1.5.0}/src/code_mower/participants.py +0 -0
- {code_mower-1.4.1 → code_mower-1.5.0}/src/code_mower/plan_context.py +0 -0
- {code_mower-1.4.1 → code_mower-1.5.0}/src/code_mower/productivity_report.py +0 -0
- {code_mower-1.4.1 → code_mower-1.5.0}/src/code_mower/prompts.py +0 -0
- {code_mower-1.4.1 → code_mower-1.5.0}/src/code_mower/provider_capabilities.py +0 -0
- {code_mower-1.4.1 → code_mower-1.5.0}/src/code_mower/provider_capabilities.schema.json +0 -0
- {code_mower-1.4.1 → code_mower-1.5.0}/src/code_mower/provider_credentials.py +0 -0
- {code_mower-1.4.1 → code_mower-1.5.0}/src/code_mower/provider_runners/__init__.py +0 -0
- {code_mower-1.4.1 → code_mower-1.5.0}/src/code_mower/provider_runners/comments.py +0 -0
- {code_mower-1.4.1 → code_mower-1.5.0}/src/code_mower/provider_runners/exit_codes.py +0 -0
- {code_mower-1.4.1 → code_mower-1.5.0}/src/code_mower/provider_runners/git.py +0 -0
- {code_mower-1.4.1 → code_mower-1.5.0}/src/code_mower/provider_runners/github_pr.py +0 -0
- {code_mower-1.4.1 → code_mower-1.5.0}/src/code_mower/provider_runners/pr_worktree.py +0 -0
- {code_mower-1.4.1 → code_mower-1.5.0}/src/code_mower/provider_runners/process.py +0 -0
- {code_mower-1.4.1 → code_mower-1.5.0}/src/code_mower/provider_runners/repo_paths.py +0 -0
- {code_mower-1.4.1 → code_mower-1.5.0}/src/code_mower/provider_runners/text_schema.py +0 -0
- {code_mower-1.4.1 → code_mower-1.5.0}/src/code_mower/provider_runners/verdict_artifacts.py +0 -0
- {code_mower-1.4.1 → code_mower-1.5.0}/src/code_mower/provider_runners/workspace.py +0 -0
- {code_mower-1.4.1 → code_mower-1.5.0}/src/code_mower/providers/__init__.py +0 -0
- {code_mower-1.4.1 → code_mower-1.5.0}/src/code_mower/providers/local_cli.py +0 -0
- {code_mower-1.4.1 → code_mower-1.5.0}/src/code_mower/providers/provenance.py +0 -0
- {code_mower-1.4.1 → code_mower-1.5.0}/src/code_mower/release_campaigns.py +0 -0
- {code_mower-1.4.1 → code_mower-1.5.0}/src/code_mower/release_qualify.py +0 -0
- {code_mower-1.4.1 → code_mower-1.5.0}/src/code_mower/remote_session.schema.json +0 -0
- {code_mower-1.4.1 → code_mower-1.5.0}/src/code_mower/remote_session_cli.py +0 -0
- {code_mower-1.4.1 → code_mower-1.5.0}/src/code_mower/review_authority.py +0 -0
- {code_mower-1.4.1 → code_mower-1.5.0}/src/code_mower/reviewer_metrics.py +0 -0
- {code_mower-1.4.1 → code_mower-1.5.0}/src/code_mower/reviewer_spend.py +0 -0
- {code_mower-1.4.1 → code_mower-1.5.0}/src/code_mower/role_eligibility.py +0 -0
- {code_mower-1.4.1 → code_mower-1.5.0}/src/code_mower/role_eligibility.schema.json +0 -0
- {code_mower-1.4.1 → code_mower-1.5.0}/src/code_mower/saas_reviewer_labeler.py +0 -0
- {code_mower-1.4.1 → code_mower-1.5.0}/src/code_mower/secrets.py +0 -0
- {code_mower-1.4.1 → code_mower-1.5.0}/src/code_mower/session.py +0 -0
- {code_mower-1.4.1 → code_mower-1.5.0}/src/code_mower/session_current.py +0 -0
- {code_mower-1.4.1 → code_mower-1.5.0}/src/code_mower/session_lease.py +0 -0
- {code_mower-1.4.1 → code_mower-1.5.0}/src/code_mower/slack_contract.py +0 -0
- {code_mower-1.4.1 → code_mower-1.5.0}/src/code_mower/slack_contract.schema.json +0 -0
- {code_mower-1.4.1 → code_mower-1.5.0}/src/code_mower/slack_ingress.py +0 -0
- {code_mower-1.4.1 → code_mower-1.5.0}/src/code_mower/templates/builder-experiment.example.json +0 -0
- {code_mower-1.4.1 → code_mower-1.5.0}/src/code_mower/templates/calibration-corpus.example.json +0 -0
- {code_mower-1.4.1 → code_mower-1.5.0}/src/code_mower/templates/calibration-corpus.json +0 -0
- {code_mower-1.4.1 → code_mower-1.5.0}/src/code_mower/templates/code-mower.example.yml +0 -0
- {code_mower-1.4.1 → code_mower-1.5.0}/src/code_mower/templates/context-packs.example.json +0 -0
- {code_mower-1.4.1 → code_mower-1.5.0}/src/code_mower/templates/lane_prompts/base-audit.md +0 -0
- {code_mower-1.4.1 → code_mower-1.5.0}/src/code_mower/templates/lane_prompts/calibration-policy.md +0 -0
- {code_mower-1.4.1 → code_mower-1.5.0}/src/code_mower/templates/lane_prompts/context-driven-quality.md +0 -0
- {code_mower-1.4.1 → code_mower-1.5.0}/src/code_mower/templates/lane_prompts/docs-design.md +0 -0
- {code_mower-1.4.1 → code_mower-1.5.0}/src/code_mower/templates/lane_prompts/generic-programming.md +0 -0
- {code_mower-1.4.1 → code_mower-1.5.0}/src/code_mower/templates/lane_prompts/operability.md +0 -0
- {code_mower-1.4.1 → code_mower-1.5.0}/src/code_mower/templates/lane_prompts/package-runtime.md +0 -0
- {code_mower-1.4.1 → code_mower-1.5.0}/src/code_mower/templates/lane_prompts/plan-conformance.md +0 -0
- {code_mower-1.4.1 → code_mower-1.5.0}/src/code_mower/templates/lane_prompts/security-threat-model.md +0 -0
- {code_mower-1.4.1 → code_mower-1.5.0}/src/code_mower/templates/lanes/README.md +0 -0
- {code_mower-1.4.1 → code_mower-1.5.0}/src/code_mower/templates/lanes/claude.md +0 -0
- {code_mower-1.4.1 → code_mower-1.5.0}/src/code_mower/templates/lanes/codex.md +0 -0
- {code_mower-1.4.1 → code_mower-1.5.0}/src/code_mower/templates/lanes/cursor.md +0 -0
- {code_mower-1.4.1 → code_mower-1.5.0}/src/code_mower/templates/lanes/devin.md +0 -0
- {code_mower-1.4.1 → code_mower-1.5.0}/src/code_mower/templates/lanes/generic.md +0 -0
- {code_mower-1.4.1 → code_mower-1.5.0}/src/code_mower/templates/lanes/lineage-producer.sh +0 -0
- {code_mower-1.4.1 → code_mower-1.5.0}/src/code_mower/templates/product-support/code_mower +0 -0
- {code_mower-1.4.1 → code_mower-1.5.0}/src/code_mower/templates/product-support/code_mower_standalone_pin.env +0 -0
- {code_mower-1.4.1 → code_mower-1.5.0}/src/code_mower/templates/product-support/code_mower_standalone_shadow.sh +0 -0
- {code_mower-1.4.1 → code_mower-1.5.0}/src/code_mower/templates/product-support/run_claude_audit_pr.sh +0 -0
- {code_mower-1.4.1 → code_mower-1.5.0}/src/code_mower/templates/product-support/run_codex_audit_pr.sh +0 -0
- {code_mower-1.4.1 → code_mower-1.5.0}/src/code_mower/templates/product-support/run_devin_cli_audit_pr.sh +0 -0
- {code_mower-1.4.1 → code_mower-1.5.0}/src/code_mower/templates/product-support/safe_gh_comment.py +0 -0
- {code_mower-1.4.1 → code_mower-1.5.0}/src/code_mower/templates/product-support/status_report.py +0 -0
- {code_mower-1.4.1 → code_mower-1.5.0}/src/code_mower/templates/providers.yml +0 -0
- {code_mower-1.4.1 → code_mower-1.5.0}/src/code_mower/templates/reviewer-spend.example.json +0 -0
- {code_mower-1.4.1 → code_mower-1.5.0}/src/code_mower/templates/reviewer-value-report.example.md +0 -0
- {code_mower-1.4.1 → code_mower-1.5.0}/src/code_mower/templates/slack/app-manifest.json +0 -0
- {code_mower-1.4.1 → code_mower-1.5.0}/src/code_mower/templates/workflows/audit-label-cleanup.yml.j2 +0 -0
- {code_mower-1.4.1 → code_mower-1.5.0}/src/code_mower/templates/workflows/builder-lineage-producer.yml.j2 +0 -0
- {code_mower-1.4.1 → code_mower-1.5.0}/src/code_mower/templates/workflows/builder-provenance.yml.j2 +0 -0
- {code_mower-1.4.1 → code_mower-1.5.0}/src/code_mower/templates/workflows/code-mower-agent-pr-labeler.yml.j2 +0 -0
- {code_mower-1.4.1 → code_mower-1.5.0}/src/code_mower/templates/workflows/code-mower-fix-round-dispatch.yml.j2 +0 -0
- {code_mower-1.4.1 → code_mower-1.5.0}/src/code_mower/templates/workflows/code-mower-gate-health.yml.j2 +0 -0
- {code_mower-1.4.1 → code_mower-1.5.0}/src/code_mower/templates/workflows/code-mower-gate.yml.j2 +0 -0
- {code_mower-1.4.1 → code_mower-1.5.0}/src/code_mower/templates/workflows/dispatch-lanes.yml.j2 +0 -0
- {code_mower-1.4.1 → code_mower-1.5.0}/src/code_mower/templates/workflows/hosted-bridge.yml.j2 +0 -0
- {code_mower-1.4.1 → code_mower-1.5.0}/src/code_mower/templates/workflows/lane-mac-runner.yml.j2 +0 -0
- {code_mower-1.4.1 → code_mower-1.5.0}/src/code_mower/templates/workflows/needs-owner-notify.yml.j2 +0 -0
- {code_mower-1.4.1 → code_mower-1.5.0}/src/code_mower/templates/workflows/private-standalone-shadow.yml.j2 +0 -0
- {code_mower-1.4.1 → code_mower-1.5.0}/src/code_mower/templates/workflows/review-clear-stale.yml.j2 +0 -0
- {code_mower-1.4.1 → code_mower-1.5.0}/src/code_mower/templates/workflows/saas-reviewer-labeler.yml.j2 +0 -0
- {code_mower-1.4.1 → code_mower-1.5.0}/src/code_mower/templates/workflows/weekly-status.yml.j2 +0 -0
- {code_mower-1.4.1 → code_mower-1.5.0}/src/code_mower/tracker_contract.py +0 -0
- {code_mower-1.4.1 → code_mower-1.5.0}/src/code_mower/tracker_queue.py +0 -0
- {code_mower-1.4.1 → code_mower-1.5.0}/src/code_mower/work_orders.py +0 -0
- {code_mower-1.4.1 → code_mower-1.5.0}/src/code_mower/workflow_actionlint.py +0 -0
- {code_mower-1.4.1 → code_mower-1.5.0}/src/code_mower/yaml_subset.py +0 -0
- {code_mower-1.4.1 → code_mower-1.5.0}/src/code_mower.egg-info/dependency_links.txt +0 -0
- {code_mower-1.4.1 → code_mower-1.5.0}/src/code_mower.egg-info/entry_points.txt +0 -0
- {code_mower-1.4.1 → code_mower-1.5.0}/src/code_mower.egg-info/requires.txt +0 -0
- {code_mower-1.4.1 → code_mower-1.5.0}/src/code_mower.egg-info/top_level.txt +0 -0
- {code_mower-1.4.1 → code_mower-1.5.0}/templates/builder-experiment.example.json +0 -0
- {code_mower-1.4.1 → code_mower-1.5.0}/templates/calibration-corpus.example.json +0 -0
- {code_mower-1.4.1 → code_mower-1.5.0}/templates/calibration-corpus.json +0 -0
- {code_mower-1.4.1 → code_mower-1.5.0}/templates/code-mower.yml.j2 +0 -0
- {code_mower-1.4.1 → code_mower-1.5.0}/templates/context-packs.example.json +0 -0
- {code_mower-1.4.1 → code_mower-1.5.0}/templates/cursor/BUGBOT.md +0 -0
- {code_mower-1.4.1 → code_mower-1.5.0}/templates/lanes/claude.md +0 -0
- {code_mower-1.4.1 → code_mower-1.5.0}/templates/lanes/codex.md +0 -0
- {code_mower-1.4.1 → code_mower-1.5.0}/templates/lanes/cursor.md +0 -0
- {code_mower-1.4.1 → code_mower-1.5.0}/templates/lanes/devin.md +0 -0
- {code_mower-1.4.1 → code_mower-1.5.0}/templates/lanes/generic.md +0 -0
- {code_mower-1.4.1 → code_mower-1.5.0}/templates/lanes/lineage-producer.sh +0 -0
- {code_mower-1.4.1 → code_mower-1.5.0}/templates/providers/acp_bridge.yml +0 -0
- {code_mower-1.4.1 → code_mower-1.5.0}/templates/providers/aider.yml +0 -0
- {code_mower-1.4.1 → code_mower-1.5.0}/templates/providers/antigravity_cli.yml +0 -0
- {code_mower-1.4.1 → code_mower-1.5.0}/templates/providers/claude_audit.yml +0 -0
- {code_mower-1.4.1 → code_mower-1.5.0}/templates/providers/claude_review.yml +0 -0
- {code_mower-1.4.1 → code_mower-1.5.0}/templates/providers/coderabbit_cli.yml +0 -0
- {code_mower-1.4.1 → code_mower-1.5.0}/templates/providers/codex.yml +0 -0
- {code_mower-1.4.1 → code_mower-1.5.0}/templates/providers/cursor_bugbot.yml +0 -0
- {code_mower-1.4.1 → code_mower-1.5.0}/templates/providers/cursor_cloud_agent.yml +0 -0
- {code_mower-1.4.1 → code_mower-1.5.0}/templates/providers/devin.yml +0 -0
- {code_mower-1.4.1 → code_mower-1.5.0}/templates/providers/devin_cli.yml +0 -0
- {code_mower-1.4.1 → code_mower-1.5.0}/templates/providers/gemini_cli.yml +0 -0
- {code_mower-1.4.1 → code_mower-1.5.0}/templates/providers/gitar.yml +0 -0
- {code_mower-1.4.1 → code_mower-1.5.0}/templates/providers/greptile.yml +0 -0
- {code_mower-1.4.1 → code_mower-1.5.0}/templates/providers/hermes_cli.yml +0 -0
- {code_mower-1.4.1 → code_mower-1.5.0}/templates/providers/local_llm.yml +0 -0
- {code_mower-1.4.1 → code_mower-1.5.0}/templates/providers/muse_cli.yml +0 -0
- {code_mower-1.4.1 → code_mower-1.5.0}/templates/providers/qodo.yml +0 -0
- {code_mower-1.4.1 → code_mower-1.5.0}/templates/providers.yml +0 -0
- {code_mower-1.4.1 → code_mower-1.5.0}/templates/reviewer-spend.example.json +0 -0
- {code_mower-1.4.1 → code_mower-1.5.0}/templates/reviewer-value-report.example.md +0 -0
- {code_mower-1.4.1 → code_mower-1.5.0}/templates/slack/app-manifest.json +0 -0
- {code_mower-1.4.1 → code_mower-1.5.0}/templates/workflows/audit-label-cleanup.yml.j2 +0 -0
- {code_mower-1.4.1 → code_mower-1.5.0}/templates/workflows/blind-review-artifacts-dry-run.yml.j2 +0 -0
- {code_mower-1.4.1 → code_mower-1.5.0}/templates/workflows/builder-lineage-producer.yml.j2 +0 -0
- {code_mower-1.4.1 → code_mower-1.5.0}/templates/workflows/builder-provenance.yml.j2 +0 -0
- {code_mower-1.4.1 → code_mower-1.5.0}/templates/workflows/code-mower-agent-pr-labeler.yml.j2 +0 -0
- {code_mower-1.4.1 → code_mower-1.5.0}/templates/workflows/code-mower-fix-round-dispatch.yml.j2 +0 -0
- {code_mower-1.4.1 → code_mower-1.5.0}/templates/workflows/code-mower-gate-health.yml.j2 +0 -0
- {code_mower-1.4.1 → code_mower-1.5.0}/templates/workflows/code-mower-gate.yml.j2 +0 -0
- {code_mower-1.4.1 → code_mower-1.5.0}/templates/workflows/dispatch-lanes.yml.j2 +0 -0
- {code_mower-1.4.1 → code_mower-1.5.0}/templates/workflows/hosted-bridge.yml.j2 +0 -0
- {code_mower-1.4.1 → code_mower-1.5.0}/templates/workflows/lane-mac-runner.yml.j2 +0 -0
- {code_mower-1.4.1 → code_mower-1.5.0}/templates/workflows/private-standalone-shadow.yml.j2 +0 -0
- {code_mower-1.4.1 → code_mower-1.5.0}/templates/workflows/review-clear-stale.yml.j2 +0 -0
- {code_mower-1.4.1 → code_mower-1.5.0}/templates/workflows/saas-reviewer-labeler.yml.j2 +0 -0
- {code_mower-1.4.1 → code_mower-1.5.0}/tests/test_adoption_diagnostics.py +0 -0
- {code_mower-1.4.1 → code_mower-1.5.0}/tests/test_adoption_result_semantics.py +0 -0
- {code_mower-1.4.1 → code_mower-1.5.0}/tests/test_adoption_run_contract.py +0 -0
- {code_mower-1.4.1 → code_mower-1.5.0}/tests/test_antigravity_cli_audit_pr.py +0 -0
- {code_mower-1.4.1 → code_mower-1.5.0}/tests/test_antigravity_sdk_probe.py +0 -0
- {code_mower-1.4.1 → code_mower-1.5.0}/tests/test_audit_comment_posture.py +0 -0
- {code_mower-1.4.1 → code_mower-1.5.0}/tests/test_audit_limits.py +0 -0
- {code_mower-1.4.1 → code_mower-1.5.0}/tests/test_builder_experiment.py +0 -0
- {code_mower-1.4.1 → code_mower-1.5.0}/tests/test_builder_identity.py +0 -0
- {code_mower-1.4.1 → code_mower-1.5.0}/tests/test_builder_runs.py +0 -0
- {code_mower-1.4.1 → code_mower-1.5.0}/tests/test_calibration_effect_report.py +0 -0
- {code_mower-1.4.1 → code_mower-1.5.0}/tests/test_calibration_truth.py +0 -0
- {code_mower-1.4.1 → code_mower-1.5.0}/tests/test_campaign_adapters.py +0 -0
- {code_mower-1.4.1 → code_mower-1.5.0}/tests/test_campaign_discovery.py +0 -0
- {code_mower-1.4.1 → code_mower-1.5.0}/tests/test_campaign_gh_auth_and_issue_binding_817.py +0 -0
- {code_mower-1.4.1 → code_mower-1.5.0}/tests/test_campaign_retry_evidence_711.py +0 -0
- {code_mower-1.4.1 → code_mower-1.5.0}/tests/test_checks.py +0 -0
- {code_mower-1.4.1 → code_mower-1.5.0}/tests/test_claude_audit_pr.py +0 -0
- {code_mower-1.4.1 → code_mower-1.5.0}/tests/test_claude_cli_bounce.py +0 -0
- {code_mower-1.4.1 → code_mower-1.5.0}/tests/test_clear_stale.py +0 -0
- {code_mower-1.4.1 → code_mower-1.5.0}/tests/test_cloud_client.py +0 -0
- {code_mower-1.4.1 → code_mower-1.5.0}/tests/test_cloud_git_metadata.py +0 -0
- {code_mower-1.4.1 → code_mower-1.5.0}/tests/test_cloud_manifest.py +0 -0
- {code_mower-1.4.1 → code_mower-1.5.0}/tests/test_cloud_reports.py +0 -0
- {code_mower-1.4.1 → code_mower-1.5.0}/tests/test_coderabbit_cli_audit_pr.py +0 -0
- {code_mower-1.4.1 → code_mower-1.5.0}/tests/test_codex_audit_env_preflight.py +0 -0
- {code_mower-1.4.1 → code_mower-1.5.0}/tests/test_codex_audit_pr.py +0 -0
- {code_mower-1.4.1 → code_mower-1.5.0}/tests/test_context_audit.py +0 -0
- {code_mower-1.4.1 → code_mower-1.5.0}/tests/test_context_command.py +0 -0
- {code_mower-1.4.1 → code_mower-1.5.0}/tests/test_context_connections.py +0 -0
- {code_mower-1.4.1 → code_mower-1.5.0}/tests/test_context_contract.py +0 -0
- {code_mower-1.4.1 → code_mower-1.5.0}/tests/test_context_delivery.py +0 -0
- {code_mower-1.4.1 → code_mower-1.5.0}/tests/test_context_graph.py +0 -0
- {code_mower-1.4.1 → code_mower-1.5.0}/tests/test_context_guided.py +0 -0
- {code_mower-1.4.1 → code_mower-1.5.0}/tests/test_context_packets.py +0 -0
- {code_mower-1.4.1 → code_mower-1.5.0}/tests/test_context_prepare.py +0 -0
- {code_mower-1.4.1 → code_mower-1.5.0}/tests/test_context_readiness.py +0 -0
- {code_mower-1.4.1 → code_mower-1.5.0}/tests/test_context_review.py +0 -0
- {code_mower-1.4.1 → code_mower-1.5.0}/tests/test_context_session.py +0 -0
- {code_mower-1.4.1 → code_mower-1.5.0}/tests/test_controller.py +0 -0
- {code_mower-1.4.1 → code_mower-1.5.0}/tests/test_coworker_mcp.py +0 -0
- {code_mower-1.4.1 → code_mower-1.5.0}/tests/test_coworker_retrieval.py +0 -0
- {code_mower-1.4.1 → code_mower-1.5.0}/tests/test_decision_audit_integration.py +0 -0
- {code_mower-1.4.1 → code_mower-1.5.0}/tests/test_decisions.py +0 -0
- {code_mower-1.4.1 → code_mower-1.5.0}/tests/test_devin_api.py +0 -0
- {code_mower-1.4.1 → code_mower-1.5.0}/tests/test_devin_builder_lane.py +0 -0
- {code_mower-1.4.1 → code_mower-1.5.0}/tests/test_devin_capabilities.py +0 -0
- {code_mower-1.4.1 → code_mower-1.5.0}/tests/test_devin_cli_audit_pr.py +0 -0
- {code_mower-1.4.1 → code_mower-1.5.0}/tests/test_devin_provider_contract.py +0 -0
- {code_mower-1.4.1 → code_mower-1.5.0}/tests/test_devin_sessions.py +0 -0
- {code_mower-1.4.1 → code_mower-1.5.0}/tests/test_devin_setup_readiness.py +0 -0
- {code_mower-1.4.1 → code_mower-1.5.0}/tests/test_devin_work_orders.py +0 -0
- {code_mower-1.4.1 → code_mower-1.5.0}/tests/test_doctor_actions_cost_summary.py +0 -0
- {code_mower-1.4.1 → code_mower-1.5.0}/tests/test_doctor_actions_failure_selection.py +0 -0
- {code_mower-1.4.1 → code_mower-1.5.0}/tests/test_doctor_boundaries.py +0 -0
- {code_mower-1.4.1 → code_mower-1.5.0}/tests/test_doctor_github_checks.py +0 -0
- {code_mower-1.4.1 → code_mower-1.5.0}/tests/test_doctor_output.py +0 -0
- {code_mower-1.4.1 → code_mower-1.5.0}/tests/test_doctor_privacy.py +0 -0
- {code_mower-1.4.1 → code_mower-1.5.0}/tests/test_doctor_provider_env_required.py +0 -0
- {code_mower-1.4.1 → code_mower-1.5.0}/tests/test_doctor_provider_env_tokens.py +0 -0
- {code_mower-1.4.1 → code_mower-1.5.0}/tests/test_doctor_provider_local_audit_setup.py +0 -0
- {code_mower-1.4.1 → code_mower-1.5.0}/tests/test_doctor_provider_probe.py +0 -0
- {code_mower-1.4.1 → code_mower-1.5.0}/tests/test_doctor_provider_review_hygiene.py +0 -0
- {code_mower-1.4.1 → code_mower-1.5.0}/tests/test_doctor_registry.py +0 -0
- {code_mower-1.4.1 → code_mower-1.5.0}/tests/test_doctor_runtime.py +0 -0
- {code_mower-1.4.1 → code_mower-1.5.0}/tests/test_doctor_self_hosted_runner.py +0 -0
- {code_mower-1.4.1 → code_mower-1.5.0}/tests/test_doctor_supervised_pilot.py +0 -0
- {code_mower-1.4.1 → code_mower-1.5.0}/tests/test_documented_commands.py +0 -0
- {code_mower-1.4.1 → code_mower-1.5.0}/tests/test_file_locks.py +0 -0
- {code_mower-1.4.1 → code_mower-1.5.0}/tests/test_fork_pr_guard.py +0 -0
- {code_mower-1.4.1 → code_mower-1.5.0}/tests/test_gate_automerge.py +0 -0
- {code_mower-1.4.1 → code_mower-1.5.0}/tests/test_gate_health.py +0 -0
- {code_mower-1.4.1 → code_mower-1.5.0}/tests/test_github_builder_evidence.py +0 -0
- {code_mower-1.4.1 → code_mower-1.5.0}/tests/test_hosted_dispatch_profile.py +0 -0
- {code_mower-1.4.1 → code_mower-1.5.0}/tests/test_init_actionlint.py +0 -0
- {code_mower-1.4.1 → code_mower-1.5.0}/tests/test_init_build_loop.py +0 -0
- {code_mower-1.4.1 → code_mower-1.5.0}/tests/test_init_builders_cold_start.py +0 -0
- {code_mower-1.4.1 → code_mower-1.5.0}/tests/test_jira_adoption.py +0 -0
- {code_mower-1.4.1 → code_mower-1.5.0}/tests/test_jira_cloud.py +0 -0
- {code_mower-1.4.1 → code_mower-1.5.0}/tests/test_jira_mutations.py +0 -0
- {code_mower-1.4.1 → code_mower-1.5.0}/tests/test_jira_pr_sync.py +0 -0
- {code_mower-1.4.1 → code_mower-1.5.0}/tests/test_lane_handoff.py +0 -0
- {code_mower-1.4.1 → code_mower-1.5.0}/tests/test_lineage_consumer_activation.py +0 -0
- {code_mower-1.4.1 → code_mower-1.5.0}/tests/test_lineage_consumer_admission.py +0 -0
- {code_mower-1.4.1 → code_mower-1.5.0}/tests/test_lineage_consumer_labels.py +0 -0
- {code_mower-1.4.1 → code_mower-1.5.0}/tests/test_lineage_consumer_projection.py +0 -0
- {code_mower-1.4.1 → code_mower-1.5.0}/tests/test_lineage_producer_publication.py +0 -0
- {code_mower-1.4.1 → code_mower-1.5.0}/tests/test_lineage_producer_state.py +0 -0
- {code_mower-1.4.1 → code_mower-1.5.0}/tests/test_local_llm_github_helpers.py +0 -0
- {code_mower-1.4.1 → code_mower-1.5.0}/tests/test_migration_rehearsal.py +0 -0
- {code_mower-1.4.1 → code_mower-1.5.0}/tests/test_migration_setup_drift.py +0 -0
- {code_mower-1.4.1 → code_mower-1.5.0}/tests/test_minimal_lineage_contract.py +0 -0
- {code_mower-1.4.1 → code_mower-1.5.0}/tests/test_minimal_lineage_packaging.py +0 -0
- {code_mower-1.4.1 → code_mower-1.5.0}/tests/test_minimal_lineage_transport.py +0 -0
- {code_mower-1.4.1 → code_mower-1.5.0}/tests/test_next_steps.py +0 -0
- {code_mower-1.4.1 → code_mower-1.5.0}/tests/test_operational_evidence.py +0 -0
- {code_mower-1.4.1 → code_mower-1.5.0}/tests/test_package_install_failure_taxonomy.py +0 -0
- {code_mower-1.4.1 → code_mower-1.5.0}/tests/test_participant_sessions.py +0 -0
- {code_mower-1.4.1 → code_mower-1.5.0}/tests/test_plan_context.py +0 -0
- {code_mower-1.4.1 → code_mower-1.5.0}/tests/test_pr_outcome_contract.py +0 -0
- {code_mower-1.4.1 → code_mower-1.5.0}/tests/test_pr_outcome_coverage.py +0 -0
- {code_mower-1.4.1 → code_mower-1.5.0}/tests/test_productivity_metrics_contract.py +0 -0
- {code_mower-1.4.1 → code_mower-1.5.0}/tests/test_productivity_report.py +0 -0
- {code_mower-1.4.1 → code_mower-1.5.0}/tests/test_productivity_windows.py +0 -0
- {code_mower-1.4.1 → code_mower-1.5.0}/tests/test_prompts.py +0 -0
- {code_mower-1.4.1 → code_mower-1.5.0}/tests/test_provider_credentials.py +0 -0
- {code_mower-1.4.1 → code_mower-1.5.0}/tests/test_provider_fixture_contracts.py +0 -0
- {code_mower-1.4.1 → code_mower-1.5.0}/tests/test_provider_local_cli.py +0 -0
- {code_mower-1.4.1 → code_mower-1.5.0}/tests/test_provider_runners_comments.py +0 -0
- {code_mower-1.4.1 → code_mower-1.5.0}/tests/test_provider_runners_git.py +0 -0
- {code_mower-1.4.1 → code_mower-1.5.0}/tests/test_provider_runners_github_pr.py +0 -0
- {code_mower-1.4.1 → code_mower-1.5.0}/tests/test_provider_runners_pr_worktree.py +0 -0
- {code_mower-1.4.1 → code_mower-1.5.0}/tests/test_provider_runners_process.py +0 -0
- {code_mower-1.4.1 → code_mower-1.5.0}/tests/test_provider_runners_repo_paths.py +0 -0
- {code_mower-1.4.1 → code_mower-1.5.0}/tests/test_provider_runners_text_schema.py +0 -0
- {code_mower-1.4.1 → code_mower-1.5.0}/tests/test_provider_runners_workspace.py +0 -0
- {code_mower-1.4.1 → code_mower-1.5.0}/tests/test_release_campaigns.py +0 -0
- {code_mower-1.4.1 → code_mower-1.5.0}/tests/test_release_qualify.py +0 -0
- {code_mower-1.4.1 → code_mower-1.5.0}/tests/test_remote_qualification_failure_reason_819.py +0 -0
- {code_mower-1.4.1 → code_mower-1.5.0}/tests/test_remote_session.py +0 -0
- {code_mower-1.4.1 → code_mower-1.5.0}/tests/test_reviewer_finding_outcome_contract.py +0 -0
- {code_mower-1.4.1 → code_mower-1.5.0}/tests/test_reviewer_metrics_core.py +0 -0
- {code_mower-1.4.1 → code_mower-1.5.0}/tests/test_reviewer_spend.py +0 -0
- {code_mower-1.4.1 → code_mower-1.5.0}/tests/test_role_eligibility.py +0 -0
- {code_mower-1.4.1 → code_mower-1.5.0}/tests/test_session_current.py +0 -0
- {code_mower-1.4.1 → code_mower-1.5.0}/tests/test_session_lease.py +0 -0
- {code_mower-1.4.1 → code_mower-1.5.0}/tests/test_slack_contract.py +0 -0
- {code_mower-1.4.1 → code_mower-1.5.0}/tests/test_slack_ingress.py +0 -0
- {code_mower-1.4.1 → code_mower-1.5.0}/tests/test_supervised_pilot_contract.py +0 -0
- {code_mower-1.4.1 → code_mower-1.5.0}/tests/test_tracker_config.py +0 -0
- {code_mower-1.4.1 → code_mower-1.5.0}/tests/test_tracker_contract.py +0 -0
- {code_mower-1.4.1 → code_mower-1.5.0}/tests/test_tracker_queue.py +0 -0
- {code_mower-1.4.1 → code_mower-1.5.0}/tests/test_trailer_comment_labeler.py +0 -0
- {code_mower-1.4.1 → code_mower-1.5.0}/tests/test_work_orders.py +0 -0
- {code_mower-1.4.1 → 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.
|