code-mower 0.5.0b32__tar.gz → 0.5.0b33__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-0.5.0b32 → code_mower-0.5.0b33}/PKG-INFO +6 -6
- {code_mower-0.5.0b32 → code_mower-0.5.0b33}/README.md +5 -5
- {code_mower-0.5.0b32 → code_mower-0.5.0b33}/pyproject.toml +1 -1
- {code_mower-0.5.0b32 → code_mower-0.5.0b33}/src/code_mower/__init__.py +1 -1
- {code_mower-0.5.0b32 → code_mower-0.5.0b33}/src/code_mower/cli.py +1 -1
- {code_mower-0.5.0b32 → code_mower-0.5.0b33}/src/code_mower/cloud_client/export.py +8 -5
- {code_mower-0.5.0b32 → code_mower-0.5.0b33}/src/code_mower/migration_readiness.py +1 -1
- {code_mower-0.5.0b32 → code_mower-0.5.0b33}/src/code_mower.egg-info/PKG-INFO +6 -6
- {code_mower-0.5.0b32 → code_mower-0.5.0b33}/tests/test_cloud_client.py +5 -1
- {code_mower-0.5.0b32 → code_mower-0.5.0b33}/tests/test_provider_local_cli.py +2 -2
- {code_mower-0.5.0b32 → code_mower-0.5.0b33}/tests/test_release_hygiene.py +36 -36
- {code_mower-0.5.0b32 → code_mower-0.5.0b33}/CODE_OF_CONDUCT.md +0 -0
- {code_mower-0.5.0b32 → code_mower-0.5.0b33}/LICENSE +0 -0
- {code_mower-0.5.0b32 → code_mower-0.5.0b33}/MANIFEST.in +0 -0
- {code_mower-0.5.0b32 → code_mower-0.5.0b33}/NOTICE +0 -0
- {code_mower-0.5.0b32 → code_mower-0.5.0b33}/SUPPORT.md +0 -0
- {code_mower-0.5.0b32 → code_mower-0.5.0b33}/requirements/requirements.txt +0 -0
- {code_mower-0.5.0b32 → code_mower-0.5.0b33}/setup.cfg +0 -0
- {code_mower-0.5.0b32 → code_mower-0.5.0b33}/src/code_mower/adapters/__init__.py +0 -0
- {code_mower-0.5.0b32 → code_mower-0.5.0b33}/src/code_mower/adapters/_base.py +0 -0
- {code_mower-0.5.0b32 → code_mower-0.5.0b33}/src/code_mower/adapters/cursor_bugbot.py +0 -0
- {code_mower-0.5.0b32 → code_mower-0.5.0b33}/src/code_mower/adapters/gitar.py +0 -0
- {code_mower-0.5.0b32 → code_mower-0.5.0b33}/src/code_mower/adapters/greptile.py +0 -0
- {code_mower-0.5.0b32 → code_mower-0.5.0b33}/src/code_mower/adapters/qodo.py +0 -0
- {code_mower-0.5.0b32 → code_mower-0.5.0b33}/src/code_mower/antigravity_cli_audit_pr.py +0 -0
- {code_mower-0.5.0b32 → code_mower-0.5.0b33}/src/code_mower/audit_handoff_log.py +0 -0
- {code_mower-0.5.0b32 → code_mower-0.5.0b33}/src/code_mower/audit_labeler_lib.py +0 -0
- {code_mower-0.5.0b32 → code_mower-0.5.0b33}/src/code_mower/audit_progress.py +0 -0
- {code_mower-0.5.0b32 → code_mower-0.5.0b33}/src/code_mower/blind_review_artifacts.py +0 -0
- {code_mower-0.5.0b32 → code_mower-0.5.0b33}/src/code_mower/blind_review_coordinator.py +0 -0
- {code_mower-0.5.0b32 → code_mower-0.5.0b33}/src/code_mower/bootstrap.py +0 -0
- {code_mower-0.5.0b32 → code_mower-0.5.0b33}/src/code_mower/builder_experiment.py +0 -0
- {code_mower-0.5.0b32 → code_mower-0.5.0b33}/src/code_mower/calibration/__init__.py +0 -0
- {code_mower-0.5.0b32 → code_mower-0.5.0b33}/src/code_mower/calibration/arms.py +0 -0
- {code_mower-0.5.0b32 → code_mower-0.5.0b33}/src/code_mower/calibration/auto_discovery.py +0 -0
- {code_mower-0.5.0b32 → code_mower-0.5.0b33}/src/code_mower/calibration/commands.py +0 -0
- {code_mower-0.5.0b32 → code_mower-0.5.0b33}/src/code_mower/calibration/context_inputs.py +0 -0
- {code_mower-0.5.0b32 → code_mower-0.5.0b33}/src/code_mower/calibration/corpus.py +0 -0
- {code_mower-0.5.0b32 → code_mower-0.5.0b33}/src/code_mower/calibration/effect_report.py +0 -0
- {code_mower-0.5.0b32 → code_mower-0.5.0b33}/src/code_mower/calibration/evidence.py +0 -0
- {code_mower-0.5.0b32 → code_mower-0.5.0b33}/src/code_mower/calibration/evidence_report.py +0 -0
- {code_mower-0.5.0b32 → code_mower-0.5.0b33}/src/code_mower/calibration/identity.py +0 -0
- {code_mower-0.5.0b32 → code_mower-0.5.0b33}/src/code_mower/calibration/metrics.py +0 -0
- {code_mower-0.5.0b32 → code_mower-0.5.0b33}/src/code_mower/calibration/overlap.py +0 -0
- {code_mower-0.5.0b32 → code_mower-0.5.0b33}/src/code_mower/calibration/planning.py +0 -0
- {code_mower-0.5.0b32 → code_mower-0.5.0b33}/src/code_mower/calibration/policy.py +0 -0
- {code_mower-0.5.0b32 → code_mower-0.5.0b33}/src/code_mower/calibration/results.py +0 -0
- {code_mower-0.5.0b32 → code_mower-0.5.0b33}/src/code_mower/calibration/run_results.py +0 -0
- {code_mower-0.5.0b32 → code_mower-0.5.0b33}/src/code_mower/calibration/run_status.py +0 -0
- {code_mower-0.5.0b32 → code_mower-0.5.0b33}/src/code_mower/calibration/runner.py +0 -0
- {code_mower-0.5.0b32 → code_mower-0.5.0b33}/src/code_mower/calibration/truth.py +0 -0
- {code_mower-0.5.0b32 → code_mower-0.5.0b33}/src/code_mower/calibration/value_report.py +0 -0
- {code_mower-0.5.0b32 → code_mower-0.5.0b33}/src/code_mower/checks.py +0 -0
- {code_mower-0.5.0b32 → code_mower-0.5.0b33}/src/code_mower/claude_audit_pr.py +0 -0
- {code_mower-0.5.0b32 → code_mower-0.5.0b33}/src/code_mower/claude_cli_bounce.py +0 -0
- {code_mower-0.5.0b32 → code_mower-0.5.0b33}/src/code_mower/claude_cli_environment.py +0 -0
- {code_mower-0.5.0b32 → code_mower-0.5.0b33}/src/code_mower/clear_stale.py +0 -0
- {code_mower-0.5.0b32 → code_mower-0.5.0b33}/src/code_mower/cloud.py +0 -0
- {code_mower-0.5.0b32 → code_mower-0.5.0b33}/src/code_mower/cloud_client/__init__.py +0 -0
- {code_mower-0.5.0b32 → code_mower-0.5.0b33}/src/code_mower/cloud_client/bundle.py +0 -0
- {code_mower-0.5.0b32 → code_mower-0.5.0b33}/src/code_mower/cloud_client/doctor.py +0 -0
- {code_mower-0.5.0b32 → code_mower-0.5.0b33}/src/code_mower/cloud_client/dogfood.py +0 -0
- {code_mower-0.5.0b32 → code_mower-0.5.0b33}/src/code_mower/cloud_client/endpoints.py +0 -0
- {code_mower-0.5.0b32 → code_mower-0.5.0b33}/src/code_mower/cloud_client/errors.py +0 -0
- {code_mower-0.5.0b32 → code_mower-0.5.0b33}/src/code_mower/cloud_client/events.py +0 -0
- {code_mower-0.5.0b32 → code_mower-0.5.0b33}/src/code_mower/cloud_client/git_metadata.py +0 -0
- {code_mower-0.5.0b32 → code_mower-0.5.0b33}/src/code_mower/cloud_client/manifest.py +0 -0
- {code_mower-0.5.0b32 → code_mower-0.5.0b33}/src/code_mower/cloud_client/operations.py +0 -0
- {code_mower-0.5.0b32 → code_mower-0.5.0b33}/src/code_mower/cloud_client/reports.py +0 -0
- {code_mower-0.5.0b32 → code_mower-0.5.0b33}/src/code_mower/cloud_client/setup.py +0 -0
- {code_mower-0.5.0b32 → code_mower-0.5.0b33}/src/code_mower/cloud_client/upload.py +0 -0
- {code_mower-0.5.0b32 → code_mower-0.5.0b33}/src/code_mower/code_mower_calibration.py +0 -0
- {code_mower-0.5.0b32 → code_mower-0.5.0b33}/src/code_mower/code_mower_context_packs.py +0 -0
- {code_mower-0.5.0b32 → code_mower-0.5.0b33}/src/code_mower/code_mower_merge.py +0 -0
- {code_mower-0.5.0b32 → code_mower-0.5.0b33}/src/code_mower/code_mower_telemetry.py +0 -0
- {code_mower-0.5.0b32 → code_mower-0.5.0b33}/src/code_mower/coderabbit_cli_audit_pr.py +0 -0
- {code_mower-0.5.0b32 → code_mower-0.5.0b33}/src/code_mower/codex_audit_env_preflight.py +0 -0
- {code_mower-0.5.0b32 → code_mower-0.5.0b33}/src/code_mower/codex_audit_pr.py +0 -0
- {code_mower-0.5.0b32 → code_mower-0.5.0b33}/src/code_mower/codex_audit_schema_smoke.py +0 -0
- {code_mower-0.5.0b32 → code_mower-0.5.0b33}/src/code_mower/codex_audit_verdict.schema.json +0 -0
- {code_mower-0.5.0b32 → code_mower-0.5.0b33}/src/code_mower/config.py +0 -0
- {code_mower-0.5.0b32 → code_mower-0.5.0b33}/src/code_mower/doctor.py +0 -0
- {code_mower-0.5.0b32 → code_mower-0.5.0b33}/src/code_mower/doctor_checks/__init__.py +0 -0
- {code_mower-0.5.0b32 → code_mower-0.5.0b33}/src/code_mower/doctor_checks/cloud.py +0 -0
- {code_mower-0.5.0b32 → code_mower-0.5.0b33}/src/code_mower/doctor_checks/common.py +0 -0
- {code_mower-0.5.0b32 → code_mower-0.5.0b33}/src/code_mower/doctor_checks/github.py +0 -0
- {code_mower-0.5.0b32 → code_mower-0.5.0b33}/src/code_mower/doctor_checks/github_actions.py +0 -0
- {code_mower-0.5.0b32 → code_mower-0.5.0b33}/src/code_mower/doctor_checks/github_actions_cost.py +0 -0
- {code_mower-0.5.0b32 → code_mower-0.5.0b33}/src/code_mower/doctor_checks/github_actions_cost_summary.py +0 -0
- {code_mower-0.5.0b32 → code_mower-0.5.0b33}/src/code_mower/doctor_checks/github_actions_failure_annotations.py +0 -0
- {code_mower-0.5.0b32 → code_mower-0.5.0b33}/src/code_mower/doctor_checks/github_actions_failure_models.py +0 -0
- {code_mower-0.5.0b32 → code_mower-0.5.0b33}/src/code_mower/doctor_checks/github_actions_failure_scan.py +0 -0
- {code_mower-0.5.0b32 → code_mower-0.5.0b33}/src/code_mower/doctor_checks/github_actions_failure_selection.py +0 -0
- {code_mower-0.5.0b32 → code_mower-0.5.0b33}/src/code_mower/doctor_checks/github_actions_failures.py +0 -0
- {code_mower-0.5.0b32 → code_mower-0.5.0b33}/src/code_mower/doctor_checks/github_actions_permissions.py +0 -0
- {code_mower-0.5.0b32 → code_mower-0.5.0b33}/src/code_mower/doctor_checks/github_api.py +0 -0
- {code_mower-0.5.0b32 → code_mower-0.5.0b33}/src/code_mower/doctor_checks/github_branch.py +0 -0
- {code_mower-0.5.0b32 → code_mower-0.5.0b33}/src/code_mower/doctor_checks/github_config.py +0 -0
- {code_mower-0.5.0b32 → code_mower-0.5.0b33}/src/code_mower/doctor_checks/github_provider.py +0 -0
- {code_mower-0.5.0b32 → code_mower-0.5.0b33}/src/code_mower/doctor_checks/github_repo.py +0 -0
- {code_mower-0.5.0b32 → code_mower-0.5.0b33}/src/code_mower/doctor_checks/groups.py +0 -0
- {code_mower-0.5.0b32 → code_mower-0.5.0b33}/src/code_mower/doctor_checks/models.py +0 -0
- {code_mower-0.5.0b32 → code_mower-0.5.0b33}/src/code_mower/doctor_checks/output.py +0 -0
- {code_mower-0.5.0b32 → code_mower-0.5.0b33}/src/code_mower/doctor_checks/presets.py +0 -0
- {code_mower-0.5.0b32 → code_mower-0.5.0b33}/src/code_mower/doctor_checks/privacy.py +0 -0
- {code_mower-0.5.0b32 → code_mower-0.5.0b33}/src/code_mower/doctor_checks/provider_api_model.py +0 -0
- {code_mower-0.5.0b32 → code_mower-0.5.0b33}/src/code_mower/doctor_checks/provider_api_model_openai.py +0 -0
- {code_mower-0.5.0b32 → code_mower-0.5.0b33}/src/code_mower/doctor_checks/provider_api_model_profiles.py +0 -0
- {code_mower-0.5.0b32 → code_mower-0.5.0b33}/src/code_mower/doctor_checks/provider_env.py +0 -0
- {code_mower-0.5.0b32 → code_mower-0.5.0b33}/src/code_mower/doctor_checks/provider_env_required.py +0 -0
- {code_mower-0.5.0b32 → code_mower-0.5.0b33}/src/code_mower/doctor_checks/provider_env_tokens.py +0 -0
- {code_mower-0.5.0b32 → code_mower-0.5.0b33}/src/code_mower/doctor_checks/provider_local_cli.py +0 -0
- {code_mower-0.5.0b32 → code_mower-0.5.0b33}/src/code_mower/doctor_checks/provider_local_cli_commands.py +0 -0
- {code_mower-0.5.0b32 → code_mower-0.5.0b33}/src/code_mower/doctor_checks/provider_local_cli_probe_config.py +0 -0
- {code_mower-0.5.0b32 → code_mower-0.5.0b33}/src/code_mower/doctor_checks/provider_probe.py +0 -0
- {code_mower-0.5.0b32 → code_mower-0.5.0b33}/src/code_mower/doctor_checks/provider_probe_auth.py +0 -0
- {code_mower-0.5.0b32 → code_mower-0.5.0b33}/src/code_mower/doctor_checks/provider_probe_evaluation.py +0 -0
- {code_mower-0.5.0b32 → code_mower-0.5.0b33}/src/code_mower/doctor_checks/provider_probe_json.py +0 -0
- {code_mower-0.5.0b32 → code_mower-0.5.0b33}/src/code_mower/doctor_checks/provider_probe_remediation.py +0 -0
- {code_mower-0.5.0b32 → code_mower-0.5.0b33}/src/code_mower/doctor_checks/provider_review_hygiene.py +0 -0
- {code_mower-0.5.0b32 → code_mower-0.5.0b33}/src/code_mower/doctor_checks/providers.py +0 -0
- {code_mower-0.5.0b32 → code_mower-0.5.0b33}/src/code_mower/doctor_checks/registry.py +0 -0
- {code_mower-0.5.0b32 → code_mower-0.5.0b33}/src/code_mower/doctor_checks/runner.py +0 -0
- {code_mower-0.5.0b32 → code_mower-0.5.0b33}/src/code_mower/doctor_checks/runtime.py +0 -0
- {code_mower-0.5.0b32 → code_mower-0.5.0b33}/src/code_mower/doctor_checks/runtime_github_auth.py +0 -0
- {code_mower-0.5.0b32 → code_mower-0.5.0b33}/src/code_mower/gemini_cli_audit_pr.py +0 -0
- {code_mower-0.5.0b32 → code_mower-0.5.0b33}/src/code_mower/hermes_cli_audit_pr.py +0 -0
- {code_mower-0.5.0b32 → code_mower-0.5.0b33}/src/code_mower/init.py +0 -0
- {code_mower-0.5.0b32 → code_mower-0.5.0b33}/src/code_mower/lane_configs/__init__.py +0 -0
- {code_mower-0.5.0b32 → code_mower-0.5.0b33}/src/code_mower/lane_configs/aider.py +0 -0
- {code_mower-0.5.0b32 → code_mower-0.5.0b33}/src/code_mower/lane_configs/antigravity_cli.py +0 -0
- {code_mower-0.5.0b32 → code_mower-0.5.0b33}/src/code_mower/lane_configs/claude.py +0 -0
- {code_mower-0.5.0b32 → code_mower-0.5.0b33}/src/code_mower/lane_configs/codex.py +0 -0
- {code_mower-0.5.0b32 → code_mower-0.5.0b33}/src/code_mower/lane_configs/devin.py +0 -0
- {code_mower-0.5.0b32 → code_mower-0.5.0b33}/src/code_mower/lane_configs/gemini_cli.py +0 -0
- {code_mower-0.5.0b32 → code_mower-0.5.0b33}/src/code_mower/lane_configs/hermes_cli.py +0 -0
- {code_mower-0.5.0b32 → code_mower-0.5.0b33}/src/code_mower/lane_configs/local_llm.py +0 -0
- {code_mower-0.5.0b32 → code_mower-0.5.0b33}/src/code_mower/local_llm_audit_pr.py +0 -0
- {code_mower-0.5.0b32 → code_mower-0.5.0b33}/src/code_mower/local_llm_bakeoff.py +0 -0
- {code_mower-0.5.0b32 → code_mower-0.5.0b33}/src/code_mower/local_llm_calibration.py +0 -0
- {code_mower-0.5.0b32 → code_mower-0.5.0b33}/src/code_mower/local_llm_profiles.py +0 -0
- {code_mower-0.5.0b32 → code_mower-0.5.0b33}/src/code_mower/migration.py +0 -0
- {code_mower-0.5.0b32 → code_mower-0.5.0b33}/src/code_mower/migration_install.py +0 -0
- {code_mower-0.5.0b32 → code_mower-0.5.0b33}/src/code_mower/migration_mirror.py +0 -0
- {code_mower-0.5.0b32 → code_mower-0.5.0b33}/src/code_mower/migration_rehearsal.py +0 -0
- {code_mower-0.5.0b32 → code_mower-0.5.0b33}/src/code_mower/next_steps.py +0 -0
- {code_mower-0.5.0b32 → code_mower-0.5.0b33}/src/code_mower/package.py +0 -0
- {code_mower-0.5.0b32 → code_mower-0.5.0b33}/src/code_mower/package_content.py +0 -0
- {code_mower-0.5.0b32 → code_mower-0.5.0b33}/src/code_mower/package_manifest.py +0 -0
- {code_mower-0.5.0b32 → code_mower-0.5.0b33}/src/code_mower/package_paths.py +0 -0
- {code_mower-0.5.0b32 → code_mower-0.5.0b33}/src/code_mower/package_rendering.py +0 -0
- {code_mower-0.5.0b32 → code_mower-0.5.0b33}/src/code_mower/package_static.py +0 -0
- {code_mower-0.5.0b32 → code_mower-0.5.0b33}/src/code_mower/prompts.py +0 -0
- {code_mower-0.5.0b32 → code_mower-0.5.0b33}/src/code_mower/provider_registry.py +0 -0
- {code_mower-0.5.0b32 → code_mower-0.5.0b33}/src/code_mower/provider_runners/__init__.py +0 -0
- {code_mower-0.5.0b32 → code_mower-0.5.0b33}/src/code_mower/provider_runners/comments.py +0 -0
- {code_mower-0.5.0b32 → code_mower-0.5.0b33}/src/code_mower/provider_runners/git.py +0 -0
- {code_mower-0.5.0b32 → code_mower-0.5.0b33}/src/code_mower/provider_runners/github_auth.py +0 -0
- {code_mower-0.5.0b32 → code_mower-0.5.0b33}/src/code_mower/provider_runners/github_pr.py +0 -0
- {code_mower-0.5.0b32 → code_mower-0.5.0b33}/src/code_mower/provider_runners/pr_worktree.py +0 -0
- {code_mower-0.5.0b32 → code_mower-0.5.0b33}/src/code_mower/provider_runners/process.py +0 -0
- {code_mower-0.5.0b32 → code_mower-0.5.0b33}/src/code_mower/provider_runners/repo_paths.py +0 -0
- {code_mower-0.5.0b32 → code_mower-0.5.0b33}/src/code_mower/provider_runners/text_schema.py +0 -0
- {code_mower-0.5.0b32 → code_mower-0.5.0b33}/src/code_mower/provider_runners/verdict_artifacts.py +0 -0
- {code_mower-0.5.0b32 → code_mower-0.5.0b33}/src/code_mower/provider_runners/workspace.py +0 -0
- {code_mower-0.5.0b32 → code_mower-0.5.0b33}/src/code_mower/providers/__init__.py +0 -0
- {code_mower-0.5.0b32 → code_mower-0.5.0b33}/src/code_mower/providers/local_cli.py +0 -0
- {code_mower-0.5.0b32 → code_mower-0.5.0b33}/src/code_mower/providers/provenance.py +0 -0
- {code_mower-0.5.0b32 → code_mower-0.5.0b33}/src/code_mower/release_readiness.py +0 -0
- {code_mower-0.5.0b32 → code_mower-0.5.0b33}/src/code_mower/reviewer_metrics.py +0 -0
- {code_mower-0.5.0b32 → code_mower-0.5.0b33}/src/code_mower/saas_reviewer_labeler.py +0 -0
- {code_mower-0.5.0b32 → code_mower-0.5.0b33}/src/code_mower/secrets.py +0 -0
- {code_mower-0.5.0b32 → code_mower-0.5.0b33}/src/code_mower/templates/builder-experiment.example.json +0 -0
- {code_mower-0.5.0b32 → code_mower-0.5.0b33}/src/code_mower/templates/calibration-corpus.example.json +0 -0
- {code_mower-0.5.0b32 → code_mower-0.5.0b33}/src/code_mower/templates/calibration-corpus.json +0 -0
- {code_mower-0.5.0b32 → code_mower-0.5.0b33}/src/code_mower/templates/code-mower.example.yml +0 -0
- {code_mower-0.5.0b32 → code_mower-0.5.0b33}/src/code_mower/templates/context-packs.example.json +0 -0
- {code_mower-0.5.0b32 → code_mower-0.5.0b33}/src/code_mower/templates/lane_prompts/base-audit.md +0 -0
- {code_mower-0.5.0b32 → code_mower-0.5.0b33}/src/code_mower/templates/lane_prompts/calibration-policy.md +0 -0
- {code_mower-0.5.0b32 → code_mower-0.5.0b33}/src/code_mower/templates/lane_prompts/context-driven-quality.md +0 -0
- {code_mower-0.5.0b32 → code_mower-0.5.0b33}/src/code_mower/templates/lane_prompts/docs-design.md +0 -0
- {code_mower-0.5.0b32 → code_mower-0.5.0b33}/src/code_mower/templates/lane_prompts/generic-programming.md +0 -0
- {code_mower-0.5.0b32 → code_mower-0.5.0b33}/src/code_mower/templates/lane_prompts/operability.md +0 -0
- {code_mower-0.5.0b32 → code_mower-0.5.0b33}/src/code_mower/templates/lane_prompts/package-runtime.md +0 -0
- {code_mower-0.5.0b32 → code_mower-0.5.0b33}/src/code_mower/templates/lane_prompts/security-threat-model.md +0 -0
- {code_mower-0.5.0b32 → code_mower-0.5.0b33}/src/code_mower/templates/product-support/code_mower +0 -0
- {code_mower-0.5.0b32 → code_mower-0.5.0b33}/src/code_mower/templates/product-support/code_mower_standalone_pin.env +0 -0
- {code_mower-0.5.0b32 → code_mower-0.5.0b33}/src/code_mower/templates/product-support/code_mower_standalone_shadow.sh +0 -0
- {code_mower-0.5.0b32 → code_mower-0.5.0b33}/src/code_mower/templates/product-support/run_claude_audit_pr.sh +0 -0
- {code_mower-0.5.0b32 → code_mower-0.5.0b33}/src/code_mower/templates/product-support/run_codex_audit_pr.sh +0 -0
- {code_mower-0.5.0b32 → code_mower-0.5.0b33}/src/code_mower/templates/product-support/safe_gh_comment.py +0 -0
- {code_mower-0.5.0b32 → code_mower-0.5.0b33}/src/code_mower/templates/providers.yml +0 -0
- {code_mower-0.5.0b32 → code_mower-0.5.0b33}/src/code_mower/templates/reviewer-spend.example.json +0 -0
- {code_mower-0.5.0b32 → code_mower-0.5.0b33}/src/code_mower/templates/reviewer-value-report.example.md +0 -0
- {code_mower-0.5.0b32 → code_mower-0.5.0b33}/src/code_mower/templates/workflows/audit-label-cleanup.yml.j2 +0 -0
- {code_mower-0.5.0b32 → code_mower-0.5.0b33}/src/code_mower/templates/workflows/hosted-bridge.yml.j2 +0 -0
- {code_mower-0.5.0b32 → code_mower-0.5.0b33}/src/code_mower/templates/workflows/local-cli-audit.yml.j2 +0 -0
- {code_mower-0.5.0b32 → code_mower-0.5.0b33}/src/code_mower/templates/workflows/private-standalone-shadow.yml.j2 +0 -0
- {code_mower-0.5.0b32 → code_mower-0.5.0b33}/src/code_mower/templates/workflows/review-clear-stale.yml.j2 +0 -0
- {code_mower-0.5.0b32 → code_mower-0.5.0b33}/src/code_mower/templates/workflows/saas-reviewer-labeler.yml.j2 +0 -0
- {code_mower-0.5.0b32 → code_mower-0.5.0b33}/src/code_mower/templates/workflows/trailer-comment-labeler.yml.j2 +0 -0
- {code_mower-0.5.0b32 → code_mower-0.5.0b33}/src/code_mower/trailer_comment_labeler.py +0 -0
- {code_mower-0.5.0b32 → code_mower-0.5.0b33}/src/code_mower/versioning.py +0 -0
- {code_mower-0.5.0b32 → code_mower-0.5.0b33}/src/code_mower/work_orders.py +0 -0
- {code_mower-0.5.0b32 → code_mower-0.5.0b33}/src/code_mower.egg-info/SOURCES.txt +0 -0
- {code_mower-0.5.0b32 → code_mower-0.5.0b33}/src/code_mower.egg-info/dependency_links.txt +0 -0
- {code_mower-0.5.0b32 → code_mower-0.5.0b33}/src/code_mower.egg-info/entry_points.txt +0 -0
- {code_mower-0.5.0b32 → code_mower-0.5.0b33}/src/code_mower.egg-info/requires.txt +0 -0
- {code_mower-0.5.0b32 → code_mower-0.5.0b33}/src/code_mower.egg-info/top_level.txt +0 -0
- {code_mower-0.5.0b32 → code_mower-0.5.0b33}/templates/builder-experiment.example.json +0 -0
- {code_mower-0.5.0b32 → code_mower-0.5.0b33}/templates/calibration-corpus.example.json +0 -0
- {code_mower-0.5.0b32 → code_mower-0.5.0b33}/templates/calibration-corpus.json +0 -0
- {code_mower-0.5.0b32 → code_mower-0.5.0b33}/templates/code-mower.yml.j2 +0 -0
- {code_mower-0.5.0b32 → code_mower-0.5.0b33}/templates/context-packs.example.json +0 -0
- {code_mower-0.5.0b32 → code_mower-0.5.0b33}/templates/cursor/BUGBOT.md +0 -0
- {code_mower-0.5.0b32 → code_mower-0.5.0b33}/templates/providers/acp_bridge.yml +0 -0
- {code_mower-0.5.0b32 → code_mower-0.5.0b33}/templates/providers/aider.yml +0 -0
- {code_mower-0.5.0b32 → code_mower-0.5.0b33}/templates/providers/antigravity_cli.yml +0 -0
- {code_mower-0.5.0b32 → code_mower-0.5.0b33}/templates/providers/claude_audit.yml +0 -0
- {code_mower-0.5.0b32 → code_mower-0.5.0b33}/templates/providers/claude_review.yml +0 -0
- {code_mower-0.5.0b32 → code_mower-0.5.0b33}/templates/providers/coderabbit_cli.yml +0 -0
- {code_mower-0.5.0b32 → code_mower-0.5.0b33}/templates/providers/codex.yml +0 -0
- {code_mower-0.5.0b32 → code_mower-0.5.0b33}/templates/providers/cursor_bugbot.yml +0 -0
- {code_mower-0.5.0b32 → code_mower-0.5.0b33}/templates/providers/devin.yml +0 -0
- {code_mower-0.5.0b32 → code_mower-0.5.0b33}/templates/providers/gemini_cli.yml +0 -0
- {code_mower-0.5.0b32 → code_mower-0.5.0b33}/templates/providers/gitar.yml +0 -0
- {code_mower-0.5.0b32 → code_mower-0.5.0b33}/templates/providers/greptile.yml +0 -0
- {code_mower-0.5.0b32 → code_mower-0.5.0b33}/templates/providers/hermes_cli.yml +0 -0
- {code_mower-0.5.0b32 → code_mower-0.5.0b33}/templates/providers/local_llm.yml +0 -0
- {code_mower-0.5.0b32 → code_mower-0.5.0b33}/templates/providers/qodo.yml +0 -0
- {code_mower-0.5.0b32 → code_mower-0.5.0b33}/templates/providers.yml +0 -0
- {code_mower-0.5.0b32 → code_mower-0.5.0b33}/templates/reviewer-spend.example.json +0 -0
- {code_mower-0.5.0b32 → code_mower-0.5.0b33}/templates/reviewer-value-report.example.md +0 -0
- {code_mower-0.5.0b32 → code_mower-0.5.0b33}/templates/workflows/audit-label-cleanup.yml.j2 +0 -0
- {code_mower-0.5.0b32 → code_mower-0.5.0b33}/templates/workflows/blind-review-artifacts-dry-run.yml.j2 +0 -0
- {code_mower-0.5.0b32 → code_mower-0.5.0b33}/templates/workflows/hosted-bridge.yml.j2 +0 -0
- {code_mower-0.5.0b32 → code_mower-0.5.0b33}/templates/workflows/local-cli-audit.yml.j2 +0 -0
- {code_mower-0.5.0b32 → code_mower-0.5.0b33}/templates/workflows/private-standalone-shadow.yml.j2 +0 -0
- {code_mower-0.5.0b32 → code_mower-0.5.0b33}/templates/workflows/review-clear-stale.yml.j2 +0 -0
- {code_mower-0.5.0b32 → code_mower-0.5.0b33}/templates/workflows/saas-reviewer-labeler.yml.j2 +0 -0
- {code_mower-0.5.0b32 → code_mower-0.5.0b33}/templates/workflows/trailer-comment-labeler.yml.j2 +0 -0
- {code_mower-0.5.0b32 → code_mower-0.5.0b33}/tests/test_calibration_effect_report.py +0 -0
- {code_mower-0.5.0b32 → code_mower-0.5.0b33}/tests/test_calibration_truth.py +0 -0
- {code_mower-0.5.0b32 → code_mower-0.5.0b33}/tests/test_checks.py +0 -0
- {code_mower-0.5.0b32 → code_mower-0.5.0b33}/tests/test_claude_cli_bounce.py +0 -0
- {code_mower-0.5.0b32 → code_mower-0.5.0b33}/tests/test_clear_stale.py +0 -0
- {code_mower-0.5.0b32 → code_mower-0.5.0b33}/tests/test_cloud_git_metadata.py +0 -0
- {code_mower-0.5.0b32 → code_mower-0.5.0b33}/tests/test_cloud_manifest.py +0 -0
- {code_mower-0.5.0b32 → code_mower-0.5.0b33}/tests/test_cloud_reports.py +0 -0
- {code_mower-0.5.0b32 → code_mower-0.5.0b33}/tests/test_coderabbit_cli_audit_pr.py +0 -0
- {code_mower-0.5.0b32 → code_mower-0.5.0b33}/tests/test_doctor_actions_cost_summary.py +0 -0
- {code_mower-0.5.0b32 → code_mower-0.5.0b33}/tests/test_doctor_actions_failure_selection.py +0 -0
- {code_mower-0.5.0b32 → code_mower-0.5.0b33}/tests/test_doctor_boundaries.py +0 -0
- {code_mower-0.5.0b32 → code_mower-0.5.0b33}/tests/test_doctor_github_checks.py +0 -0
- {code_mower-0.5.0b32 → code_mower-0.5.0b33}/tests/test_doctor_output.py +0 -0
- {code_mower-0.5.0b32 → code_mower-0.5.0b33}/tests/test_doctor_privacy.py +0 -0
- {code_mower-0.5.0b32 → code_mower-0.5.0b33}/tests/test_doctor_provider_env_required.py +0 -0
- {code_mower-0.5.0b32 → code_mower-0.5.0b33}/tests/test_doctor_provider_env_tokens.py +0 -0
- {code_mower-0.5.0b32 → code_mower-0.5.0b33}/tests/test_doctor_provider_probe.py +0 -0
- {code_mower-0.5.0b32 → code_mower-0.5.0b33}/tests/test_doctor_provider_review_hygiene.py +0 -0
- {code_mower-0.5.0b32 → code_mower-0.5.0b33}/tests/test_doctor_registry.py +0 -0
- {code_mower-0.5.0b32 → code_mower-0.5.0b33}/tests/test_local_llm_github_helpers.py +0 -0
- {code_mower-0.5.0b32 → code_mower-0.5.0b33}/tests/test_provider_runners_comments.py +0 -0
- {code_mower-0.5.0b32 → code_mower-0.5.0b33}/tests/test_provider_runners_git.py +0 -0
- {code_mower-0.5.0b32 → code_mower-0.5.0b33}/tests/test_provider_runners_github_pr.py +0 -0
- {code_mower-0.5.0b32 → code_mower-0.5.0b33}/tests/test_provider_runners_pr_worktree.py +0 -0
- {code_mower-0.5.0b32 → code_mower-0.5.0b33}/tests/test_provider_runners_process.py +0 -0
- {code_mower-0.5.0b32 → code_mower-0.5.0b33}/tests/test_provider_runners_repo_paths.py +0 -0
- {code_mower-0.5.0b32 → code_mower-0.5.0b33}/tests/test_provider_runners_text_schema.py +0 -0
- {code_mower-0.5.0b32 → code_mower-0.5.0b33}/tests/test_provider_runners_workspace.py +0 -0
- {code_mower-0.5.0b32 → code_mower-0.5.0b33}/tests/test_reviewer_metrics_core.py +0 -0
- {code_mower-0.5.0b32 → code_mower-0.5.0b33}/tests/test_work_orders.py +0 -0
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: code-mower
|
|
3
|
-
Version: 0.5.
|
|
3
|
+
Version: 0.5.0b33
|
|
4
4
|
Summary: Multi-reviewer AI code audit orchestration
|
|
5
5
|
License-Expression: Apache-2.0
|
|
6
6
|
Requires-Python: >=3.11
|
|
@@ -103,11 +103,11 @@ Code Mower currently targets Python 3.11+; Python 3.12 is recommended.
|
|
|
103
103
|
|
|
104
104
|
```bash
|
|
105
105
|
python3.12 --version
|
|
106
|
-
pipx install --python python3.12 code-mower==0.5.
|
|
106
|
+
pipx install --python python3.12 code-mower==0.5.0b33
|
|
107
107
|
code-mower --version
|
|
108
108
|
```
|
|
109
109
|
|
|
110
|
-
`0.5.
|
|
110
|
+
`0.5.0b33` is a beta release. Until Code Mower publishes a stable `1.0`
|
|
111
111
|
line, use the explicit beta version above or allow prereleases with:
|
|
112
112
|
|
|
113
113
|
```bash
|
|
@@ -150,7 +150,7 @@ First-time command map: [docs/launch-command-surface.md](docs/launch-command-sur
|
|
|
150
150
|
|
|
151
151
|
The current PyPI beta has been rehearsed end-to-end from a clean install:
|
|
152
152
|
[First-User Install Rehearsal](docs/first-user-install-rehearsal.md) records
|
|
153
|
-
the latest 10/10 public-package readiness proof for `code-mower==0.5.
|
|
153
|
+
the latest 10/10 public-package readiness proof for `code-mower==0.5.0b33`.
|
|
154
154
|
|
|
155
155
|
## Optional: Plan Before Coding
|
|
156
156
|
|
|
@@ -291,9 +291,9 @@ best?" to "which AI builder plus reviewer loop ships best on this product?" See
|
|
|
291
291
|
|
|
292
292
|
## Installation Status
|
|
293
293
|
|
|
294
|
-
The current public beta is `v0.5.0-beta.
|
|
294
|
+
The current public beta is `v0.5.0-beta.33` from
|
|
295
295
|
[codemower-ai/code-mower](https://github.com/codemower-ai/code-mower), published
|
|
296
|
-
as `code-mower==0.5.
|
|
296
|
+
as `code-mower==0.5.0b33` on [PyPI](https://pypi.org/project/code-mower/).
|
|
297
297
|
GitHub releases remain the auditable source for tags, build artifacts, and
|
|
298
298
|
release notes.
|
|
299
299
|
|
|
@@ -88,11 +88,11 @@ Code Mower currently targets Python 3.11+; Python 3.12 is recommended.
|
|
|
88
88
|
|
|
89
89
|
```bash
|
|
90
90
|
python3.12 --version
|
|
91
|
-
pipx install --python python3.12 code-mower==0.5.
|
|
91
|
+
pipx install --python python3.12 code-mower==0.5.0b33
|
|
92
92
|
code-mower --version
|
|
93
93
|
```
|
|
94
94
|
|
|
95
|
-
`0.5.
|
|
95
|
+
`0.5.0b33` is a beta release. Until Code Mower publishes a stable `1.0`
|
|
96
96
|
line, use the explicit beta version above or allow prereleases with:
|
|
97
97
|
|
|
98
98
|
```bash
|
|
@@ -135,7 +135,7 @@ First-time command map: [docs/launch-command-surface.md](docs/launch-command-sur
|
|
|
135
135
|
|
|
136
136
|
The current PyPI beta has been rehearsed end-to-end from a clean install:
|
|
137
137
|
[First-User Install Rehearsal](docs/first-user-install-rehearsal.md) records
|
|
138
|
-
the latest 10/10 public-package readiness proof for `code-mower==0.5.
|
|
138
|
+
the latest 10/10 public-package readiness proof for `code-mower==0.5.0b33`.
|
|
139
139
|
|
|
140
140
|
## Optional: Plan Before Coding
|
|
141
141
|
|
|
@@ -276,9 +276,9 @@ best?" to "which AI builder plus reviewer loop ships best on this product?" See
|
|
|
276
276
|
|
|
277
277
|
## Installation Status
|
|
278
278
|
|
|
279
|
-
The current public beta is `v0.5.0-beta.
|
|
279
|
+
The current public beta is `v0.5.0-beta.33` from
|
|
280
280
|
[codemower-ai/code-mower](https://github.com/codemower-ai/code-mower), published
|
|
281
|
-
as `code-mower==0.5.
|
|
281
|
+
as `code-mower==0.5.0b33` on [PyPI](https://pypi.org/project/code-mower/).
|
|
282
282
|
GitHub releases remain the auditable source for tags, build artifacts, and
|
|
283
283
|
release notes.
|
|
284
284
|
|
|
@@ -14,7 +14,7 @@ from pathlib import Path
|
|
|
14
14
|
if __package__ in {None, ""}:
|
|
15
15
|
raise SystemExit(
|
|
16
16
|
"code_mower.cli is a packaged entrypoint. Install Code Mower with "
|
|
17
|
-
"`pipx install code-mower==0.5.
|
|
17
|
+
"`pipx install code-mower==0.5.0b33`, or run source checkouts with "
|
|
18
18
|
"`PYTHONPATH=src python -m code_mower.cli`."
|
|
19
19
|
)
|
|
20
20
|
|
|
@@ -191,11 +191,13 @@ def build_cloud_bundle(
|
|
|
191
191
|
raise CloudBundleError(
|
|
192
192
|
f"too many events: {len(included_events)}; max {MAX_EVENT_COUNT}"
|
|
193
193
|
)
|
|
194
|
+
upload_ready = not anonymous and bool(included_reports or included_events)
|
|
195
|
+
upload_status = "ready_for_dry_run" if upload_ready else "local_export_only"
|
|
194
196
|
manifest = {
|
|
195
197
|
"schema": BUNDLE_SCHEMA,
|
|
196
198
|
"privacy_mode": "anonymous" if anonymous else "metadata_and_reports",
|
|
197
|
-
"upload_ready":
|
|
198
|
-
"upload_status":
|
|
199
|
+
"upload_ready": upload_ready,
|
|
200
|
+
"upload_status": upload_status,
|
|
199
201
|
"repo_slug": "" if anonymous else repo_slug,
|
|
200
202
|
"team_id": "" if anonymous else team_id,
|
|
201
203
|
"install_id": "" if anonymous else install_id,
|
|
@@ -204,7 +206,7 @@ def build_cloud_bundle(
|
|
|
204
206
|
"provenance": {} if anonymous else build_provenance_summary(included_events),
|
|
205
207
|
"excluded_content": list(EXCLUDED_CONTENT),
|
|
206
208
|
"notes": [
|
|
207
|
-
"This bundle is local-
|
|
209
|
+
"This bundle is local-first and inspectable; upload requires an explicit dry-run and --yes before network transfer.",
|
|
208
210
|
"Do not include source code, raw diffs, raw transcripts, raw stdout/stderr, auth output, or secrets.",
|
|
209
211
|
"Reports are copied exactly as supplied; review them before sharing outside your machine.",
|
|
210
212
|
"Structured events are metadata-only and should not contain source, diffs, transcripts, stdout/stderr, auth output, or secrets.",
|
|
@@ -243,7 +245,8 @@ def build_cloud_bundle(
|
|
|
243
245
|
"event_count": len(manifest["events"]),
|
|
244
246
|
"event_types": event_type_counts(manifest["events"]),
|
|
245
247
|
"provenance": manifest["provenance"],
|
|
246
|
-
"upload_ready":
|
|
248
|
+
"upload_ready": upload_ready,
|
|
249
|
+
"upload_status": upload_status,
|
|
247
250
|
}
|
|
248
251
|
|
|
249
252
|
|
|
@@ -379,7 +382,7 @@ def render_bundle_readme(manifest: dict[str, Any]) -> str:
|
|
|
379
382
|
"# Code Mower Cloud Benchmark Bundle",
|
|
380
383
|
"",
|
|
381
384
|
"This local bundle is the cloud-ready handoff shape for opt-in benchmark reporting.",
|
|
382
|
-
"It is
|
|
385
|
+
"It is never uploaded automatically; run `code-mower cloud upload --dry-run` first, then add `--yes` only after inspection.",
|
|
383
386
|
"",
|
|
384
387
|
"Excluded by default:",
|
|
385
388
|
]
|
|
@@ -191,7 +191,7 @@ def first_user_readiness_scorecard(
|
|
|
191
191
|
isinstance(cloud_export_payload, dict)
|
|
192
192
|
and cloud_export_payload.get("mode") == "cloud-export"
|
|
193
193
|
and len(cloud_export_payload.get("included_reports") or ()) >= 3
|
|
194
|
-
and cloud_export_payload.get("upload_ready") is
|
|
194
|
+
and cloud_export_payload.get("upload_ready") is True
|
|
195
195
|
)
|
|
196
196
|
else "fail"
|
|
197
197
|
),
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: code-mower
|
|
3
|
-
Version: 0.5.
|
|
3
|
+
Version: 0.5.0b33
|
|
4
4
|
Summary: Multi-reviewer AI code audit orchestration
|
|
5
5
|
License-Expression: Apache-2.0
|
|
6
6
|
Requires-Python: >=3.11
|
|
@@ -103,11 +103,11 @@ Code Mower currently targets Python 3.11+; Python 3.12 is recommended.
|
|
|
103
103
|
|
|
104
104
|
```bash
|
|
105
105
|
python3.12 --version
|
|
106
|
-
pipx install --python python3.12 code-mower==0.5.
|
|
106
|
+
pipx install --python python3.12 code-mower==0.5.0b33
|
|
107
107
|
code-mower --version
|
|
108
108
|
```
|
|
109
109
|
|
|
110
|
-
`0.5.
|
|
110
|
+
`0.5.0b33` is a beta release. Until Code Mower publishes a stable `1.0`
|
|
111
111
|
line, use the explicit beta version above or allow prereleases with:
|
|
112
112
|
|
|
113
113
|
```bash
|
|
@@ -150,7 +150,7 @@ First-time command map: [docs/launch-command-surface.md](docs/launch-command-sur
|
|
|
150
150
|
|
|
151
151
|
The current PyPI beta has been rehearsed end-to-end from a clean install:
|
|
152
152
|
[First-User Install Rehearsal](docs/first-user-install-rehearsal.md) records
|
|
153
|
-
the latest 10/10 public-package readiness proof for `code-mower==0.5.
|
|
153
|
+
the latest 10/10 public-package readiness proof for `code-mower==0.5.0b33`.
|
|
154
154
|
|
|
155
155
|
## Optional: Plan Before Coding
|
|
156
156
|
|
|
@@ -291,9 +291,9 @@ best?" to "which AI builder plus reviewer loop ships best on this product?" See
|
|
|
291
291
|
|
|
292
292
|
## Installation Status
|
|
293
293
|
|
|
294
|
-
The current public beta is `v0.5.0-beta.
|
|
294
|
+
The current public beta is `v0.5.0-beta.33` from
|
|
295
295
|
[codemower-ai/code-mower](https://github.com/codemower-ai/code-mower), published
|
|
296
|
-
as `code-mower==0.5.
|
|
296
|
+
as `code-mower==0.5.0b33` on [PyPI](https://pypi.org/project/code-mower/).
|
|
297
297
|
GitHub releases remain the auditable source for tags, build artifacts, and
|
|
298
298
|
release notes.
|
|
299
299
|
|
|
@@ -210,6 +210,8 @@ def test_cloud_export_builds_metadata_only_bundle_from_client_module() -> None:
|
|
|
210
210
|
)
|
|
211
211
|
|
|
212
212
|
assert result["mode"] == "cloud-export"
|
|
213
|
+
assert result["upload_ready"] is True
|
|
214
|
+
assert result["upload_status"] == "ready_for_dry_run"
|
|
213
215
|
assert (root / "bundle" / BUNDLE_MANIFEST_FILENAME).is_file()
|
|
214
216
|
upload = build_upload_payload(bundle_dir=root / "bundle")
|
|
215
217
|
assert upload["upload_mode"] == "metadata_only"
|
|
@@ -269,6 +271,8 @@ def test_cloud_export_accepts_work_order_provenance_event() -> None:
|
|
|
269
271
|
repo_slug="owner/repo",
|
|
270
272
|
)
|
|
271
273
|
|
|
274
|
+
assert result["upload_ready"] is True
|
|
275
|
+
assert result["upload_status"] == "ready_for_dry_run"
|
|
272
276
|
assert result["event_types"] == {"work_order": 1}
|
|
273
277
|
upload = build_upload_payload(bundle_dir=root / "bundle")
|
|
274
278
|
assert upload["events"][0]["event_type"] == "work_order"
|
|
@@ -357,7 +361,7 @@ def test_provenance_summary_preserves_source_quality_fields() -> None:
|
|
|
357
361
|
"tool": {
|
|
358
362
|
"role": "reporter",
|
|
359
363
|
"tool_name": "code-mower",
|
|
360
|
-
"tool_version": "0.5.
|
|
364
|
+
"tool_version": "0.5.0b33",
|
|
361
365
|
"provider": "code-mower",
|
|
362
366
|
"model": "",
|
|
363
367
|
"model_source": "not_applicable",
|
|
@@ -436,11 +436,11 @@ def test_provider_lane_tool_provenance_reads_model_from_selected_profile(
|
|
|
436
436
|
def test_code_mower_reporter_provenance_marks_model_not_applicable() -> None:
|
|
437
437
|
tool = build_code_mower_tool_provenance(
|
|
438
438
|
source="unit-test",
|
|
439
|
-
version="0.5.
|
|
439
|
+
version="0.5.0b33",
|
|
440
440
|
)
|
|
441
441
|
|
|
442
442
|
assert tool["tool_name"] == "code-mower"
|
|
443
|
-
assert tool["tool_version"] == "0.5.
|
|
443
|
+
assert tool["tool_version"] == "0.5.0b33"
|
|
444
444
|
assert tool["provider"] == "code-mower"
|
|
445
445
|
assert tool["model"] == ""
|
|
446
446
|
assert tool["model_source"] == "not_applicable"
|
|
@@ -49,7 +49,7 @@ from scripts import privacy_scan
|
|
|
49
49
|
|
|
50
50
|
class ReleaseHygieneTests(unittest.TestCase):
|
|
51
51
|
def test_version_is_current_v05_prerelease(self) -> None:
|
|
52
|
-
self.assertEqual(__version__, "0.5.
|
|
52
|
+
self.assertEqual(__version__, "0.5.0b33")
|
|
53
53
|
|
|
54
54
|
def test_release_workflow_verifies_downloaded_distributions_before_publish(self) -> None:
|
|
55
55
|
workflow = (ROOT / ".github/workflows/release.yml").read_text(encoding="utf-8")
|
|
@@ -203,7 +203,7 @@ class ReleaseHygieneTests(unittest.TestCase):
|
|
|
203
203
|
self.assertIn(
|
|
204
204
|
(
|
|
205
205
|
"code-mower migration package-install-rehearsal --package-spec "
|
|
206
|
-
"code-mower==0.5.
|
|
206
|
+
"code-mower==0.5.0b33 --json"
|
|
207
207
|
),
|
|
208
208
|
help_text,
|
|
209
209
|
)
|
|
@@ -1622,8 +1622,8 @@ printf '%s\\n' "${lane}"
|
|
|
1622
1622
|
fromlist=["current_alpha_package_spec"],
|
|
1623
1623
|
)
|
|
1624
1624
|
self.assertEqual(
|
|
1625
|
-
legacy_module.current_alpha_package_spec("0.5.
|
|
1626
|
-
"code-mower==0.5.
|
|
1625
|
+
legacy_module.current_alpha_package_spec("0.5.0b33"),
|
|
1626
|
+
"code-mower==0.5.0b33",
|
|
1627
1627
|
)
|
|
1628
1628
|
finally:
|
|
1629
1629
|
sys.path[:] = original_path
|
|
@@ -1660,7 +1660,7 @@ printf '%s\\n' "${lane}"
|
|
|
1660
1660
|
"-c",
|
|
1661
1661
|
(
|
|
1662
1662
|
"from tools import code_mower_package_content as c; "
|
|
1663
|
-
"print(c.current_alpha_package_spec('0.5.
|
|
1663
|
+
"print(c.current_alpha_package_spec('0.5.0b33'))"
|
|
1664
1664
|
),
|
|
1665
1665
|
],
|
|
1666
1666
|
cwd=tmp_path,
|
|
@@ -1673,7 +1673,7 @@ printf '%s\\n' "${lane}"
|
|
|
1673
1673
|
self.assertEqual(completed.returncode, 0, completed.stderr)
|
|
1674
1674
|
self.assertEqual(
|
|
1675
1675
|
completed.stdout.strip(),
|
|
1676
|
-
"code-mower==0.5.
|
|
1676
|
+
"code-mower==0.5.0b33",
|
|
1677
1677
|
)
|
|
1678
1678
|
|
|
1679
1679
|
def test_package_rendering_legacy_fallback_stays_valid_yaml_subset(self) -> None:
|
|
@@ -1749,11 +1749,11 @@ printf '%s\\n' "${lane}"
|
|
|
1749
1749
|
(output_dir / "src/code_mower/cloud_client/dogfood.py").is_file()
|
|
1750
1750
|
)
|
|
1751
1751
|
self.assertIn(
|
|
1752
|
-
'version = "0.5.
|
|
1752
|
+
'version = "0.5.0b33"',
|
|
1753
1753
|
(output_dir / "pyproject.toml").read_text(encoding="utf-8"),
|
|
1754
1754
|
)
|
|
1755
1755
|
self.assertIn(
|
|
1756
|
-
'__version__ = "0.5.
|
|
1756
|
+
'__version__ = "0.5.0b33"',
|
|
1757
1757
|
(output_dir / "src/code_mower/__init__.py").read_text(
|
|
1758
1758
|
encoding="utf-8"
|
|
1759
1759
|
),
|
|
@@ -3288,7 +3288,7 @@ def main():
|
|
|
3288
3288
|
{
|
|
3289
3289
|
"status": "pass",
|
|
3290
3290
|
"package_spec": "code-mower",
|
|
3291
|
-
"version": "code-mower 0.5.
|
|
3291
|
+
"version": "code-mower 0.5.0b33",
|
|
3292
3292
|
"work_dir": "/tmp/code-mower-rehearsal",
|
|
3293
3293
|
"toy_repo": "/tmp/code-mower-rehearsal/toy-repo",
|
|
3294
3294
|
"step_count": 1,
|
|
@@ -3376,7 +3376,7 @@ def main():
|
|
|
3376
3376
|
{"kind": "lane-policy"},
|
|
3377
3377
|
{"kind": "value-report"},
|
|
3378
3378
|
],
|
|
3379
|
-
"upload_ready":
|
|
3379
|
+
"upload_ready": True,
|
|
3380
3380
|
}
|
|
3381
3381
|
),
|
|
3382
3382
|
encoding="utf-8",
|
|
@@ -3400,7 +3400,7 @@ def main():
|
|
|
3400
3400
|
scorecard = code_mower_migration._first_user_readiness_scorecard(
|
|
3401
3401
|
toy_repo=toy_repo,
|
|
3402
3402
|
outputs=outputs,
|
|
3403
|
-
version="code-mower 0.5.
|
|
3403
|
+
version="code-mower 0.5.0b33",
|
|
3404
3404
|
steps=[
|
|
3405
3405
|
{
|
|
3406
3406
|
"command": ["code-mower", "doctor", "--easy", "--json"],
|
|
@@ -3455,7 +3455,7 @@ def main():
|
|
|
3455
3455
|
{
|
|
3456
3456
|
"mode": "cloud-export",
|
|
3457
3457
|
"included_reports": [{}, {}, {}],
|
|
3458
|
-
"upload_ready":
|
|
3458
|
+
"upload_ready": True,
|
|
3459
3459
|
}
|
|
3460
3460
|
),
|
|
3461
3461
|
encoding="utf-8",
|
|
@@ -3479,7 +3479,7 @@ def main():
|
|
|
3479
3479
|
scorecard = code_mower_migration._first_user_readiness_scorecard(
|
|
3480
3480
|
toy_repo=toy_repo,
|
|
3481
3481
|
outputs=outputs,
|
|
3482
|
-
version="code-mower 0.5.
|
|
3482
|
+
version="code-mower 0.5.0b33",
|
|
3483
3483
|
steps=[
|
|
3484
3484
|
{
|
|
3485
3485
|
"command": ["code-mower", "doctor", "--easy", "--json"],
|
|
@@ -3541,7 +3541,7 @@ def main():
|
|
|
3541
3541
|
scorecard = code_mower_migration._first_user_readiness_scorecard(
|
|
3542
3542
|
toy_repo=toy_repo,
|
|
3543
3543
|
outputs=outputs,
|
|
3544
|
-
version="code-mower 0.5.
|
|
3544
|
+
version="code-mower 0.5.0b33",
|
|
3545
3545
|
steps=[
|
|
3546
3546
|
{
|
|
3547
3547
|
"command": ["code-mower", "doctor", "--easy", "--json"],
|
|
@@ -3607,24 +3607,24 @@ def main():
|
|
|
3607
3607
|
)
|
|
3608
3608
|
self.assertEqual(
|
|
3609
3609
|
code_mower_migration._resolve_install_package_spec(
|
|
3610
|
-
"git+https://github.com/codemower-ai/code-mower.git@v0.5.0-beta.
|
|
3610
|
+
"git+https://github.com/codemower-ai/code-mower.git@v0.5.0-beta.33",
|
|
3611
3611
|
base_dir=package,
|
|
3612
3612
|
),
|
|
3613
|
-
"git+https://github.com/codemower-ai/code-mower.git@v0.5.0-beta.
|
|
3613
|
+
"git+https://github.com/codemower-ai/code-mower.git@v0.5.0-beta.33",
|
|
3614
3614
|
)
|
|
3615
3615
|
self.assertEqual(
|
|
3616
3616
|
code_mower_migration._resolve_install_package_spec(
|
|
3617
|
-
"code-mower==0.5.
|
|
3617
|
+
"code-mower==0.5.0b33",
|
|
3618
3618
|
base_dir=package,
|
|
3619
3619
|
),
|
|
3620
|
-
"code-mower==0.5.
|
|
3620
|
+
"code-mower==0.5.0b33",
|
|
3621
3621
|
)
|
|
3622
3622
|
|
|
3623
3623
|
def test_package_install_rehearsal_supports_index_aware_pip_install(self) -> None:
|
|
3624
3624
|
self.assertEqual(
|
|
3625
3625
|
code_mower_migration._pip_install_command(
|
|
3626
3626
|
Path("/tmp/venv/bin/python"),
|
|
3627
|
-
"code-mower==0.5.
|
|
3627
|
+
"code-mower==0.5.0b33",
|
|
3628
3628
|
pip_index_url="https://test.pypi.org/simple/",
|
|
3629
3629
|
pip_extra_index_urls=["https://pypi.org/simple/"],
|
|
3630
3630
|
),
|
|
@@ -3637,7 +3637,7 @@ def main():
|
|
|
3637
3637
|
"https://test.pypi.org/simple/",
|
|
3638
3638
|
"--extra-index-url",
|
|
3639
3639
|
"https://pypi.org/simple/",
|
|
3640
|
-
"code-mower==0.5.
|
|
3640
|
+
"code-mower==0.5.0b33",
|
|
3641
3641
|
],
|
|
3642
3642
|
)
|
|
3643
3643
|
|
|
@@ -3657,10 +3657,10 @@ def main():
|
|
|
3657
3657
|
payload = release_readiness.render_release_readiness(ROOT)
|
|
3658
3658
|
|
|
3659
3659
|
self.assertEqual(payload["status"], "pass")
|
|
3660
|
-
self.assertEqual(payload["version"], "0.5.
|
|
3661
|
-
self.assertEqual(payload["release_tag"], "v0.5.0-beta.
|
|
3662
|
-
self.assertEqual(payload["alpha_tag"], "v0.5.0-beta.
|
|
3663
|
-
self.assertEqual(payload["package_index_spec"], "code-mower==0.5.
|
|
3660
|
+
self.assertEqual(payload["version"], "0.5.0b33")
|
|
3661
|
+
self.assertEqual(payload["release_tag"], "v0.5.0-beta.33")
|
|
3662
|
+
self.assertEqual(payload["alpha_tag"], "v0.5.0-beta.33")
|
|
3663
|
+
self.assertEqual(payload["package_index_spec"], "code-mower==0.5.0b33")
|
|
3664
3664
|
check_ids = {check["id"]: check for check in payload["checks"]}
|
|
3665
3665
|
self.assertEqual(check_ids["package-version-consistency"]["status"], "pass")
|
|
3666
3666
|
self.assertEqual(
|
|
@@ -3709,7 +3709,7 @@ def main():
|
|
|
3709
3709
|
check_ids = {check["id"]: check for check in payload["checks"]}
|
|
3710
3710
|
check = check_ids["materialized-package-version-consistency"]
|
|
3711
3711
|
self.assertEqual(check["status"], "fail")
|
|
3712
|
-
self.assertEqual(check["detail"]["source_version"], "0.5.
|
|
3712
|
+
self.assertEqual(check["detail"]["source_version"], "0.5.0b33")
|
|
3713
3713
|
self.assertEqual(check["detail"]["generated_init_version"], "0.0.0")
|
|
3714
3714
|
|
|
3715
3715
|
def test_public_support_docs_are_packaged_and_privacy_forward(self) -> None:
|
|
@@ -3789,20 +3789,20 @@ def main():
|
|
|
3789
3789
|
|
|
3790
3790
|
def test_release_readiness_tag_derivation_supports_release_stages(self) -> None:
|
|
3791
3791
|
self.assertEqual(
|
|
3792
|
-
release_readiness._release_tag_for_version("0.5.
|
|
3793
|
-
"v0.5.0-beta.
|
|
3792
|
+
release_readiness._release_tag_for_version("0.5.0b33"),
|
|
3793
|
+
"v0.5.0-beta.33",
|
|
3794
3794
|
)
|
|
3795
3795
|
self.assertEqual(
|
|
3796
|
-
code_mower_versioning.release_tag_for_version("0.5.
|
|
3797
|
-
"v0.5.0-beta.
|
|
3796
|
+
code_mower_versioning.release_tag_for_version("0.5.0b33"),
|
|
3797
|
+
"v0.5.0-beta.33",
|
|
3798
3798
|
)
|
|
3799
3799
|
self.assertEqual(
|
|
3800
|
-
release_readiness._release_tag_for_version("0.5.
|
|
3801
|
-
"v0.5.0-beta.
|
|
3800
|
+
release_readiness._release_tag_for_version("0.5.0b33"),
|
|
3801
|
+
"v0.5.0-beta.33",
|
|
3802
3802
|
)
|
|
3803
3803
|
self.assertEqual(
|
|
3804
|
-
code_mower_versioning.release_tag_for_version("0.5.
|
|
3805
|
-
"v0.5.0-beta.
|
|
3804
|
+
code_mower_versioning.release_tag_for_version("0.5.0b33"),
|
|
3805
|
+
"v0.5.0-beta.33",
|
|
3806
3806
|
)
|
|
3807
3807
|
self.assertEqual(
|
|
3808
3808
|
release_readiness._release_tag_for_version("1.0.0rc1"),
|
|
@@ -3831,8 +3831,8 @@ def main():
|
|
|
3831
3831
|
next_steps.current_alpha_package_spec(),
|
|
3832
3832
|
)
|
|
3833
3833
|
self.assertEqual(
|
|
3834
|
-
code_mower_package_content.current_alpha_package_spec("0.5.
|
|
3835
|
-
"code-mower==0.5.
|
|
3834
|
+
code_mower_package_content.current_alpha_package_spec("0.5.0b33"),
|
|
3835
|
+
"code-mower==0.5.0b33",
|
|
3836
3836
|
)
|
|
3837
3837
|
self.assertNotIn(next_steps.current_public_tag(), package_content_text)
|
|
3838
3838
|
self.assertNotIn("v0.0.0", package_content_text)
|
|
@@ -4004,7 +4004,7 @@ def main():
|
|
|
4004
4004
|
step for step in plan["steps"] if step["id"] == "package-install-rehearsal"
|
|
4005
4005
|
)
|
|
4006
4006
|
self.assertIn("doctor --v05", doctor_step["command"])
|
|
4007
|
-
self.assertIn("code-mower==0.5.
|
|
4007
|
+
self.assertIn("code-mower==0.5.0b33", package_step["command"])
|
|
4008
4008
|
self.assertIn("current published PyPI prerelease", package_step["why"])
|
|
4009
4009
|
self.assertIn("first_user_readiness", package_step["why"])
|
|
4010
4010
|
self.assertEqual(
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|