diff --git a/CHANGELOG.md b/CHANGELOG.md index 0f176b0..3b004ed 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -65,6 +65,13 @@ This changelog is automatically generated by AI when releases are published. For detailed design rationale and implementation notes, see `docs/superpowers/specs/2026-04-29-telemetry-streams-design.md`. +## [3.0.0] - 2026-11-04 + +### Added + +- **`autter badge`**: a README badge with the share of the repository's added lines written by AI, `AI-written | 72%`. It prints the share over the last 90 days (`--since`, `--all-time`), how many commits had authorship notes, and a Markdown snippet it also copies. Repositories linked to Autter get a live badge that stays current; others get a shields.io badge, and `--write` stores an endpoint file (`.autter/badge.json`) that keeps it current from the repository itself. `--json` prints that payload. See [changelog/readme-ai-badge.md](changelog/readme-ai-badge.md). +- **`autter wrapped`**: your year of AI-assisted coding in a repository as a card made for screenshots: AI share overall and by month, top agent and model, most-prompted file, longest prompt, longest streak and busiest weekday. `--share` publishes it as a page at `app.autter.dev/wrapped/` with share cards in story, square and wide sizes to download or post; sharing again updates the same page. `--hide-repo` leaves the repository name off, and `--unshare` takes the page down. `--json` prints the numbers. Prompt text stays on the machine unless you pass `--include-prompt-text`. See [changelog/wrapped.md](changelog/wrapped.md). + ## [2.4.0] - 2026-11-03 ### Added diff --git a/Cargo.lock b/Cargo.lock index 9195b30..be61d72 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -258,7 +258,7 @@ checksum = "c08606f8c3cbf4ce6ec8e28fb0014a2c086708fe954eaa885384a6165172e7e8" [[package]] name = "autter" -version = "2.4.0" +version = "3.0.0" dependencies = [ "autter", "base64", diff --git a/Cargo.toml b/Cargo.toml index 2cfbf4a..0126e3d 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -5,7 +5,7 @@ resolver = "3" [package] name = "autter" -version = "2.4.0" +version = "3.0.0" edition = "2024" default-run = "autter" diff --git a/changelog/readme-ai-badge.md b/changelog/readme-ai-badge.md new file mode 100644 index 0000000..6520627 --- /dev/null +++ b/changelog/readme-ai-badge.md @@ -0,0 +1,19 @@ +# `autter badge`: a README badge with the repository's AI-written share + +`autter badge` prints the share of the repository's added lines that were written by AI and a README badge that shows it: `AI-written | 72%`. + +- The share is AI-accepted lines over added lines, summed over the commits that carry an authorship note. It is the same ratio every commit summary uploads as `ai_percent`. +- By default it counts the last 90 days of non-merge commits on the current branch. `--since ` takes anything `git log --since` accepts, and `--all-time` counts every commit reachable from HEAD. At most 2,000 commits are walked, and the output says when the cap was hit. +- Commits without a note add nothing to the share, but they are counted, so the output reports coverage. Files matching `.autter-ignore` and `--ignore ` are left out, as in `autter stats`. +- The Markdown snippet is printed and copied to the clipboard at a terminal. Which badge it uses depends on the setup: + + | Setup | Badge | + |---|---| + | Repository linked to Autter, signed in | A live badge served by Autter at `app.autter.dev/api/public/repos//badge.svg`. It is always current and links to autter.dev. | + | `--write` on a GitHub repository | A shields.io endpoint badge that reads the committed `.autter/badge.json`, so it updates whenever the file does. | + | Anything else | A shields.io static badge with today's number. | + +- `--json` prints the shields.io endpoint payload (`schemaVersion`, `label`, `message`, `color`) plus the figures behind it. `--write [path]` stores the same payload, by default in `.autter/badge.json`. +- Colors: no data is grey; under 25% light blue; 25-49% blue; 50-74% indigo; 75% and up Autter teal. The live badge uses the same label, rounding and colors. + +The live badge needs the updated Autter API (Autter-dev/autter-monorepo#641). Without it, or when the lookup takes more than 5 seconds, the command prints the static badge and one line saying why. diff --git a/npm/package.json b/npm/package.json index 890dbd8..9b2fef1 100644 --- a/npm/package.json +++ b/npm/package.json @@ -1,6 +1,6 @@ { "name": "@autter/cli", - "version": "2.4.0", + "version": "3.0.0", "description": "Git-native AI authorship tracking: records which lines were written by AI agents and links them to the agent, model, and prompt. This package is a thin bootstrapper that installs the native autter binary.", "license": "Apache-2.0", "homepage": "https://autter.dev",