v0.6.0
Minor: receipts can now be produced automatically on push, and PR attribution is more
robust. No change to rendered receipt output (goldens byte-identical); both additions are
opt-in / internal.
Added
- Agent auto-attach (SPEC-0073): a hidden
aireceipts hook pre-pushsubcommand, wired as a
Claude CodePreToolUsehook via a committed.claude/settings.json, writes and pushes the
receipt ref (refs/receipts/<slug>) when the coding agent runs a branch push — so a receipt
is produced with no manual command. It never blocks the push (exits 0 on every path, no
stdout, bounded by the hook timeout) and only acts on a realorigin/current-branch push
(tokenized detection; skips dry-run/delete/tags/non-origin/repo-retargeting/refs/receipts).
The adopter kit is now two files — thepr-checkworkflow (produces nothing on its own)
plus the.claude/settings.jsonhook (docs/adopt/,aireceipts integrations).
Fixed
- Robust PR-receipt attribution (SPEC-0072): a session whose commit SHA was orphaned by
git commit --amend(or rebase) is now correctly credited by matching its stable
git patch-idto the branch commit, instead of showing "no branch commit" while an unrelated
helper takes the credit. Strictly under-crediting — duplicated diffs, empty/merge commits, and
a diff already directly claimed by another session never produce a match (no fabricated or
stolen credit, I2). Adds anunanchored-git-writeconfidence signal that floors the total when
a real git-write can't be tied to the branch.
Minor: PR receipts gain a self-contained CI path (no external reusable workflow), the
default statusline gets richer, and the samosa tip link leaves the default PR-posted
surfaces (now opt-in). Two deliberate output changes — statusline default and the PR-posted
footer — both called out below.
Added
- Self-contained
pr-check(SPEC-0064 R2–R7): an adopter's own workflow can run
npx -y aireceipts-cli@latest pr-checkin a single job — no reusable-workflowuses:,
no org Actions-policy gate — to fetch the branch's receipt ref, render + sanitize it, and
upsert the marked PR comment viaGITHUB_TOKEN(no localgh). Hidden command; for trusted
same-repo/internal PRs (the two-job reusable workflow stays the hardened path for untrusted
fork PRs). Also fixes the reusable-caller template, which was missingpull-requests: write.
Changed (deliberate output changes)
- Richer default statusline (SPEC-0071): the default line now carries a burn rate (
$/hr),
context-window %, abbreviatedM/Btoken counts, and an inline 5h reset countdown — e.g.
[aireceipts] $423 · $80/hr · 501M · ctx 42% · 5h 26% ↺2h13m. Every segment renders from a
real payload field or a priced ledger value; nothing is estimated. - Samosa tip link off by default (SPEC-0070): the
buy me a samosalink no longer appears
on the surfaces aireceipts posts onto a PR (the comment's<details>and the artifact
footer). Opt back in with--samosa; the standalone tip page and the docs-site footer are
unchanged.
Internal / CI
- Incremental mutation testing (SPEC-0069): Stryker runs incrementally on PRs that touch
the money paths (src/pricing/**,src/pr/**), with a nightly full sweep — the same
anti-gaming moat at a fraction of the wall-clock. No product code change.