Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
15 changes: 15 additions & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
Expand Up @@ -7,6 +7,14 @@ later entries are regular releases.

## Unreleased

## v1.1.0

Code Mower v1.1.0 adds opt-in Jira Cloud work tracking without changing the
default GitHub-only path. GitHub pull requests, checks, and merge gates remain
authoritative; Jira reads are bounded and Jira writes require both explicit
configuration and an explicit apply command. The metadata-only privacy
boundary is unchanged.

### Added

- Read-only Jira queue policy with injectable enhanced-JQL reads, bounded
Expand All @@ -30,6 +38,11 @@ later entries are regular releases.
adoption rehearsal runbook (`docs/jira-adoption-rehearsal.md`). Default setup
remains purely GitHub-based; generated workflows and default init plans are
strictly preserved (issue #803).
- Trusted GitHub pull request and Code Mower gate milestones can be synchronized
to an associated Jira issue through the guarded mutation layer. Association
is explicit and transactional, untrusted authors cannot establish it, and
GitHub remains the source of truth for pull requests and merge readiness
(issue #802).

- A guarded, idempotent Jira mutation surface, `code-mower tracker mutate`.
Planning is the default and performs no Jira call; a write needs both
Expand Down Expand Up @@ -114,6 +127,8 @@ later entries are regular releases.
- Code Mower Board recognizes active supervised Muse lanes running under `muse`
or versioned `muse-bin-*` executables without exposing raw arguments, versions,
or private paths (issue #806).
- Antigravity audits use sandbox-compatible working paths and preserve the
closed, metadata-only verdict contract when run headlessly (issue #811).

## v1.0.15

Expand Down
22 changes: 11 additions & 11 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -215,7 +215,7 @@ agent report its actual host posture, exact installed version, doctor result,
Board URL, and any owner-only click-list before it mutates the repo.

The current package-index announcement entry point is the tagged
[Try Code Mower In 10 Minutes](https://github.com/codemower-ai/code-mower/blob/v1.0.15/docs/try-in-10-minutes.md)
[Try Code Mower In 10 Minutes](https://github.com/codemower-ai/code-mower/blob/v1.1.0/docs/try-in-10-minutes.md)
guide. The v1.0 supervised-pilot release includes the native Board, the
controller dry-run and policy contract, adoption and upgrade hardening from
recent install rehearsals, package-index release checks, provider-diversity
Expand Down Expand Up @@ -280,13 +280,12 @@ reports `running` / `waiting_for_user`, so a finished informational Devin
attempt is no longer recorded as owner-blocked. An explicit terminal API
failure and a `waiting_for_approval` session still take precedence over any
structured output.
The v1.0.15 release makes measurement and release operations more trustworthy:
productivity reports prefer live GitHub current state while retaining clearly
labeled historical Board observations, release campaigns can discover trusted
results on their explicitly linked release PR, provider credentials survive
restarts through fail-closed profiles, and new metadata-only contracts cover
reviewer finding outcomes, normalized productivity windows, and PR cost
coverage.
The v1.1 release adds optional Jira Cloud work tracking while keeping GitHub
pull requests, checks, and merge gates authoritative. Jira setup starts
read-only; mutation requires both explicit configuration and an explicit
apply command. Controller queue visibility, Board, and PR-to-Jira milestones
share the same bounded metadata contract, and GitHub-only repositories keep
their existing behavior and generated workflows.
Package-only users can start from the public package rather than a source
checkout.

Expand Down Expand Up @@ -319,7 +318,7 @@ Provider-contract baseline for the next release train:

For release verification,
[First-User Install Rehearsal](docs/first-user-install-rehearsal.md) records
the package-index procedure for `v1.0.15` / `code-mower==1.0.15`. The
the package-index procedure for `v1.1.0` / `code-mower==1.1.0`. The
GitHub release records the workflow and rehearsal evidence for the exact tag.
After publication, [Release Qualification](docs/release-qualification.md)
coordinates provider-specific install and operational checks without treating
Expand Down Expand Up @@ -513,8 +512,8 @@ measurement work.

## Installation Status

The current package-index release baseline is `v1.0.15`, with pinned package
install spec `code-mower==1.0.15`. Release evidence is recorded on the GitHub
The current package-index release baseline is `v1.1.0`, with pinned package
install spec `code-mower==1.1.0`. Release evidence is recorded on the GitHub
release and in the first-user install rehearsal. The public repository is
[codemower-ai/code-mower](https://github.com/codemower-ai/code-mower), and
GitHub releases remain the auditable source for tags, build artifacts, and
Expand Down Expand Up @@ -600,6 +599,7 @@ first so local work exercises the same package entrypoint users install.
- [v1.0.13 Release Notes](docs/v1013-release-notes.md)
- [v1.0.14 Release Notes](docs/v1014-release-notes.md)
- [v1.0.15 Release Notes](docs/v1015-release-notes.md)
- [v1.1 Release Notes](docs/v11-release-notes.md)
- [Post-v0.8 Effectiveness Assessment](docs/post-v08-effectiveness-assessment.md)
- [v1.0.1 Effectiveness Assessment](docs/v101-effectiveness-assessment.md)
- [Demo Calibration Example](examples/demo-calibration/README.md)
Expand Down
2 changes: 1 addition & 1 deletion docs/build-loop-in-30-minutes.md
Original file line number Diff line number Diff line change
Expand Up @@ -60,7 +60,7 @@ audit evidence, skip to section 2.
```bash
python3.12 --version
export CODE_MOWER_PYTHON="$(command -v python3.12)"
pipx install --python "$CODE_MOWER_PYTHON" code-mower==1.0.15
pipx install --python "$CODE_MOWER_PYTHON" code-mower==1.1.0
gh auth status >/dev/null 2>&1 && echo "gh auth ok" || { echo "gh auth NOT ready"; false; }
code-mower init --easy
code-mower init --easy --apply --output-dir .code-mower.generated
Expand Down
6 changes: 3 additions & 3 deletions docs/cloud-benchmarking.md
Original file line number Diff line number Diff line change
Expand Up @@ -29,9 +29,9 @@ observability/evaluation backend.

## Release Stages

### Current v1.0.15: Metadata-Only Upload, Board, Productivity, And Qualification
### Current v1.1.0: Metadata-Only Upload, Board, Productivity, And Qualification

The current v1.0.15 line keeps cloud sharing opt-in for adopters who explicitly
The current v1.1.0 line keeps cloud sharing opt-in for adopters who explicitly
want to share sanitized benchmark metadata, summarized Board mirrors, or
aggregate productivity metrics with Code Mower Cloud. The OSS tool is still
local-first:
Expand All @@ -43,7 +43,7 @@ code-mower cloud upload .code-mower/cloud-benchmark-bundle --yes --json
code-mower cloud dogfood --json
code-mower cloud dogfood --event productivity_summary=productivity-summary.json --json
code-mower cloud board-snapshot --repo-slug OWNER/REPO --json
code-mower release qualify --release-tag v1.0.15 --package-spec code-mower==1.0.15 --output adoption-result.json --execute
code-mower release qualify --release-tag v1.1.0 --package-spec code-mower==1.1.0 --output adoption-result.json --execute
code-mower cloud export --event adoption_run=adoption-result.json --repo-slug OWNER/REPO --json
```

Expand Down
14 changes: 7 additions & 7 deletions docs/current-state-and-roadmap.md
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
# Code Mower Current State And Roadmap

This is the short source-of-truth snapshot for the public OSS package, the
hosted CodeMower.com surface, and the near-term path from the current v1.0.15
hosted CodeMower.com surface, and the near-term path from the current v1.1.0
line toward broader supervised adoption.

## Positioning
Expand All @@ -27,13 +27,13 @@ The public OSS repository is:
https://github.com/codemower-ai/code-mower
```

The current package-index release baseline is `v1.0.15`, with pinned package
install spec `code-mower==1.0.15`. Release evidence is recorded on the GitHub
The current package-index release baseline is `v1.1.0`, with pinned package
install spec `code-mower==1.1.0`. Release evidence is recorded on the GitHub
release and in the first-user install rehearsal. It is intended to be installed
from the package index for supervised pilots, with GitHub tag/source installs
kept as a fallback and development path.

The v1.0.15 supervised-pilot release keeps the Python 3.12+ runtime contract,
The v1.1.0 supervised-pilot release keeps the Python 3.12+ runtime contract,
pipx/uv install matrix, non-expiring dispatch-token diagnostics, native redacted
lane status, the local Board, Board history and admin commands, spend/verdict
timelines, owner queue, optional metadata-only agent cards, explicit cloud Board
Expand Down Expand Up @@ -140,8 +140,8 @@ The beta-to-v1.0 line has proved:
- a friendly-user rollout plan that turns install, doctor, first report,
optional cloud dry-run/upload, and dashboard usefulness into explicit
acceptance criteria for the first 5-10 users; and
- the current public PyPI package-install rehearsal from `v1.0.15` /
`code-mower==1.0.15` with a
- the current public PyPI package-install rehearsal from `v1.1.0` /
`code-mower==1.1.0` with a
10/10 first-user readiness score, proving install, generated setup, doctor,
draft calibration, value-report, cloud export, and dry-run dogfood without a
local Code Mower checkout. The earlier beta.52 package rehearsal remains
Expand Down Expand Up @@ -320,7 +320,7 @@ these questions in the first few minutes:
- Where is the code intentionally structured, and where is it still being
refactored from extraction-era shape?

The v1.0.15 line now gives adopters that trust test plus first productivity
The v1.1.0 line now gives adopters that trust test plus first productivity
visibility. More provider adapters are useful only when install, doctor, first
report, privacy, measurement, and code structure remain boring and credible.

Expand Down
4 changes: 2 additions & 2 deletions docs/early-adopter-invite-runbook.md
Original file line number Diff line number Diff line change
Expand Up @@ -38,7 +38,7 @@ It is an OSS local-first tool for setting up AI peer-programmer/reviewer lanes
on your real codebase, with optional privacy-first cloud reporting.

Start here:
https://github.com/codemower-ai/code-mower/blob/v1.0.15/docs/try-in-10-minutes.md
https://github.com/codemower-ai/code-mower/blob/v1.1.0/docs/try-in-10-minutes.md

Cloud sharing is optional. The default bundle excludes source code, raw diffs,
model transcripts, raw stdout/stderr, auth output, and secrets.
Expand All @@ -53,7 +53,7 @@ Before inviting a user:
```bash
python3.12 --version
export CODE_MOWER_PYTHON="$(command -v python3.12)"
pipx install --python "$CODE_MOWER_PYTHON" code-mower==1.0.15
pipx install --python "$CODE_MOWER_PYTHON" code-mower==1.1.0
code-mower --version
```

Expand Down
4 changes: 2 additions & 2 deletions docs/early-adopter-v05.md
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
# Code Mower Early Adopter Guide

This document records the historical v0.5 early-adopter product plan. The
current public install path is the v1.0.15 supervised-pilot release; use
current public install path is the v1.1.0 supervised-pilot release; use
[Install And Bootstrap](install.md), [Try Code Mower In 10 Minutes](try-in-10-minutes.md),
and [Quickstart](quickstart.md) for live adoption steps.

Expand Down Expand Up @@ -145,7 +145,7 @@ Cut a v0.5 alpha or beta only after:

## Current Release

`v1.0.15` is the current supervised-pilot release. It keeps the
`v1.1.0` is the current supervised-pilot release. It keeps the
local-first package path from alpha.1, the cloud doctor service-readiness check
from alpha.5, the hardened provider-auth doctor diagnostics needed for
early-adopter troubleshooting, the dogfood dry-run path that feeds the
Expand Down
4 changes: 2 additions & 2 deletions docs/first-run-transcript.md
Original file line number Diff line number Diff line change
Expand Up @@ -9,15 +9,15 @@ same provider warnings.
```bash
python3.12 --version
export CODE_MOWER_PYTHON="$(command -v python3.12)"
pipx install --python "$CODE_MOWER_PYTHON" code-mower==1.0.15
pipx install --python "$CODE_MOWER_PYTHON" code-mower==1.1.0
code-mower --version
```

Expected shape:

```text
Python 3.12.x
code-mower 1.0.15
code-mower 1.1.0
```

## Generate Local Setup
Expand Down
6 changes: 3 additions & 3 deletions docs/first-user-demo-transcript.md
Original file line number Diff line number Diff line change
Expand Up @@ -14,9 +14,9 @@ release.
```bash
python3.12 -m venv "$WORK_DIR/venv"
"$WORK_DIR/venv/bin/python" -m pip install --upgrade pip
"$WORK_DIR/venv/bin/python" -m pip install code-mower==1.0.15
"$WORK_DIR/venv/bin/python" -m pip install code-mower==1.1.0
"$WORK_DIR/venv/bin/code-mower" migration package-install-rehearsal \
--package-spec code-mower==1.0.15 \
--package-spec code-mower==1.1.0 \
--allow-package-index \
--python "$(command -v python3.12)" \
--json
Expand All @@ -29,7 +29,7 @@ python3.12 -m venv "$WORK_DIR/venv"
"mode": "package-install-rehearsal",
"status": "pass",
"steps": 27,
"package_spec": "code-mower==1.0.15",
"package_spec": "code-mower==1.1.0",
"toy_repo": "$WORK_DIR/toy-repo",
"doctor_status": "warn",
"generated_artifacts": {
Expand Down
26 changes: 13 additions & 13 deletions docs/first-user-install-rehearsal.md
Original file line number Diff line number Diff line change
Expand Up @@ -48,7 +48,7 @@ Use the current public tag or release candidate:

```bash
code-mower migration package-install-rehearsal \
--package-spec code-mower==1.0.15 \
--package-spec code-mower==1.1.0 \
--allow-package-index \
--python "$(command -v python3.12)" \
--json
Expand All @@ -72,7 +72,7 @@ For a fixed output directory:

```bash
code-mower migration package-install-rehearsal \
--package-spec code-mower==1.0.15 \
--package-spec code-mower==1.1.0 \
--allow-package-index \
--python "$(command -v python3.12)" \
--work-dir /tmp/code-mower-first-user-rehearsal \
Expand Down Expand Up @@ -101,7 +101,7 @@ For a GitHub tag fallback, pass the tag URL explicitly:

```bash
code-mower migration package-install-rehearsal \
--package-spec "git+https://github.com/codemower-ai/code-mower.git@v1.0.15" \
--package-spec "git+https://github.com/codemower-ai/code-mower.git@v1.1.0" \
--python "$(command -v python3.12)" \
--json
```
Expand All @@ -113,14 +113,14 @@ deciding the package index or the release is broken. For pipx:

```bash
export CODE_MOWER_PYTHON="$(command -v python3.12)"
PIP_NO_CACHE_DIR=1 pipx install --force --python "$CODE_MOWER_PYTHON" code-mower==1.0.15
PIP_NO_CACHE_DIR=1 pipx install --force --python "$CODE_MOWER_PYTHON" code-mower==1.1.0
code-mower --version
```

For uv:

```bash
uv tool install --python 3.12 --reinstall --refresh-package code-mower code-mower==1.0.15
uv tool install --python 3.12 --reinstall --refresh-package code-mower code-mower==1.1.0
code-mower --version
```

Expand Down Expand Up @@ -148,7 +148,7 @@ repository after the package install succeeds:

```bash
code-mower migration package-install-rehearsal \
--package-spec code-mower==1.0.15 \
--package-spec code-mower==1.1.0 \
--allow-package-index \
--repo-path /path/to/external-repo \
--python "$(command -v python3.12)" \
Expand Down Expand Up @@ -240,7 +240,7 @@ When a product repository already has Code Mower wrapper files, the same

```bash
code-mower migration package-install-rehearsal \
--package-spec code-mower==1.0.15 \
--package-spec code-mower==1.1.0 \
--allow-package-index \
--repo-path /path/to/product-repo \
--python "$(command -v python3.12)" \
Expand Down Expand Up @@ -303,15 +303,15 @@ If this fails, fix the first-user path before cutting or promoting a release.
Publish and rehearse the package-index artifacts in this order. After the
release tag exists at the release commit, dispatch both package-index
publication runs with
`--ref v1.0.15`; never substitute mutable `main`, because the TestPyPI
`--ref v1.1.0`; never substitute mutable `main`, because the TestPyPI
and production PyPI builds must check out identical source.

First, run `release.yml` for TestPyPI only:

```bash
gh workflow run release.yml \
--repo codemower-ai/code-mower \
--ref v1.0.15 \
--ref v1.1.0 \
-f publish_testpypi=true \
-f publish_pypi=false
```
Expand All @@ -321,7 +321,7 @@ candidate from TestPyPI:

```bash
code-mower migration package-install-rehearsal \
--package-spec code-mower==1.0.15 \
--package-spec code-mower==1.1.0 \
--allow-package-index \
--upgrade-pip \
--pip-index-url https://test.pypi.org/simple/ \
Expand All @@ -336,7 +336,7 @@ Then run `release.yml` for production PyPI only:
```bash
gh workflow run release.yml \
--repo codemower-ai/code-mower \
--ref v1.0.15 \
--ref v1.1.0 \
-f publish_testpypi=false \
-f publish_pypi=true
```
Expand All @@ -346,7 +346,7 @@ production package from PyPI:

```bash
code-mower migration package-install-rehearsal \
--package-spec code-mower==1.0.15 \
--package-spec code-mower==1.1.0 \
--allow-package-index \
--upgrade-pip \
--python "$(command -v python3.12)" \
Expand All @@ -366,7 +366,7 @@ repository:

```bash
code-mower migration package-install-rehearsal \
--package-spec code-mower==1.0.15 \
--package-spec code-mower==1.1.0 \
--allow-package-index \
--repo-path "$REPO_PATH" \
--work-dir "$WORK_DIR" \
Expand Down
6 changes: 3 additions & 3 deletions docs/friendly-user-rollout-v05.md
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@ This is the operating plan for the first 5-10 friendly users before Code Mower
widens to 20-50 early adopters.

The filename is historical from the v0.5 planning pass. The live baseline in
this document is the current v1.0.15 supervised-pilot release.
this document is the current v1.1.0 supervised-pilot release.

Code Mower is beta, bring-your-own-agent-loop software for teams willing to
calibrate reviewers. It is not a drop-in autonomous merge gate.
Expand All @@ -28,10 +28,10 @@ out in the invite:
```bash
python3.12 --version
export CODE_MOWER_PYTHON="$(command -v python3.12)"
pipx install --python "$CODE_MOWER_PYTHON" code-mower==1.0.15
pipx install --python "$CODE_MOWER_PYTHON" code-mower==1.1.0
```

The current package-index release baseline is `v1.0.15`, with pinned package install spec `code-mower==1.0.15`. Release evidence is recorded on the GitHub release and in the first-user install rehearsal.
The current package-index release baseline is `v1.1.0`, with pinned package install spec `code-mower==1.1.0`. Release evidence is recorded on the GitHub release and in the first-user install rehearsal.

## Invite Criteria

Expand Down
Loading
Loading