Releases: Jakeintech/waybill
Release list
waybill 1.4.0
[1.4.0] - 2026-08-17
Added
github-issuestracker adapter — GitHub Issues as the tracker of
record:waybill sync-plan --tracker github-issues. Keys are GitHub's
own cross-repo syntax (owner/repo#15), derived purely from the issue
URL leaf; the conformance kit gained a matching derivation check (a
composed key passes only when re-deriving it from the verbatim URL leaf
reproduces it exactly) and adapters may now declare their tracker's own
keyPattern— the metering branch pattern is deliberately untouched.
Labels map towork_type, milestones tosprint,not_planned
closures are dropped as cancelled work, PR rows from the REST/issues
endpoint are skipped, andpointsstays null (GitHub has no estimates;
a point scale is never invented). Both the gh CLI and REST payload
shapes are accepted. Own-data scoping keeps unassigned issues and drops
issues assigned only to someone else.- Closing-keyword linkage —
MergedChangegainscloses:
"Fixes #12" in a PR body, MR description, or commit body now pairs the
change with its tracker item (GitHub's actual linkage mechanism —
title/branch pattern matching alone was structurally blind to it).
Keyword-per-reference grammar mirrors GitHub exactly; bare#15expands
against the change's own repo. git-local now captures commit bodies and
treats a squash-merged commit carrying a closing ref as a merged change,
so linear-history GitHub-flow repos get receipts too. The conformance
kit verifies everyclosesref against a closing keyword in the raw
payload.
waybill 1.3.0
[1.3.0] - 2026-08-17
The open-issue batch: every UX issue filed against 1.1.1 (#6–#15),
implemented with a regression test each.
Added
- A real pause switch (#6) —
metering.enabled: falsenow stops
everything: the SessionEnd hook captures nothing,mineandmeter
(all paths,--otelincluded) exit 0 without touching the ledger, and
waybill statusreportsmetering: PAUSEDso the state is never
silent. The never-readmetering.sourcesfield is removed rather than
left as a decoy; old configs carrying it load unchanged. - First-run one-shots (#8) — the SessionStart path now speaks at the
two highest-intent moments: not-initialized (“say 'initialize my
waybill ledger' — 60s, no auth”) and metered-but-nothing-logged (“say
'sync my ledger' for a receipt from your git history”). At most one
line per session, each state at most once ever, never stacked on a
pacing notice. notices.level(#9) — one switch for everything Waybill says
first:normal(default),minimal(pacing thresholds and errors
only — the renewal reminder obeys it),off(metering runs, Waybill
never speaks unprompted). Documented in the README next to the privacy
commitments, withbudgets.renewal_reminder_dayssurfaced alongside.detaillevel (#10) —terse/standard/full, mirroring
audience:detail_defaultin config,--detailonquery, echoed
in the query envelope for the rendering layer, with rendering tables in
the spend/report skills. Floor rule:tersemay never drop
unattributed %, confidence values,low_confidencelabels,
evidence-tier labels, or ranges — shorter never means less honest.bin/waybilllauncher (#11) — a POSIX-sh launcher execs the
bundled engine, so every skill now invokes
"${CLAUDE_PLUGIN_ROOT}/bin/waybill" <command>— thenode <path>.mjs
incantation, its zsh word-splitting caveat, and the per-skill setup
block are gone. The validator rejects any reintroduction of the old
idiom.- Status is the menu (#15) —
waybill statusends with a
state-derivednext:line of skill trigger phrases (resolve the inbox
when it has items, process pending captures when they wait, sync for
the first receipt, build the pitch once entries exist), so the health
screen teaches the conversational UI, not just engine subcommands. - The exit path, documented (#7) — a README section covering pause,
quiet, export, uninstall (claude plugin uninstall waybill@waybill),
and full deletion (rm -rf ~/.waybillis the whole footprint).
Fixed
--jsonis honest everywhere (#13) —mine --jsonemits the
structured run summary (mined_new,remetered,gaps,
already_current, pluspaused/lockedstates),export --json
means--format json, and contradictory flags (--json --format csv)
are an exit-2 error instead of a silent choice.
waybill 1.2.0
[1.2.0] - 2026-08-17
Added
- Bundled Anthropic pricing (D6, reversed) —
waybill initnow
auto-imports current Anthropic list rates on a fresh install, and
waybill pricing import [--model <id-or-alias>]loads them any time
(references/anthropic-pricing.json, exact dated model ids, with
family-alias resolution likeclaude-sonnet-4→claude-sonnet-4-6).
The original 1.1.0 call — no prices ship, the user cites every rate — is
reversed: bundled rates are the default now, andwaybill pricing set
still overrides any single model's rate whenever a different basis
applies. waybill initsetup summary — a "Configured" / "Needs action" report
covering the ledger, identity, repo scope, pricing basis, transcript
retention, and whetherGITHUB_MCP_PATis set (with the exact export/PAT
instructions when it isn't). Idempotent: re-runninginiton an existing
ledger never re-imports pricing or touches a rate set by hand.waybill pricing import— load bundled Anthropic list rates on
demand, with optional--model <id-or-alias>filter (family aliases
likeclaude-sonnet-4resolve to dated model ids).
Changed
- Skills, docs, and ROADMAP updated for the D6 reversal: pricing is
configured by default, not an onboarding hurdle.
waybill 1.1.1
Onboarding polish, prompted by a fresh-install plugin-panel error.
- Clean install, clean panel — the bundled GitHub MCP server no longer shows a red "missing GITHUB_MCP_PAT" error before you've set a token: it loads with a default-empty expansion, and the GitHub upgrade simply stays inactive until you connect it.
waybill statusnow helps you connect — it detects the missing PAT and prints the exact fix:export GITHUB_MCP_PAT="$(gh auth token)"when you already have an authenticated gh CLI, otherwise the fine-grained-PAT URL; plus the Atlassian/mcpOAuth pointer. Environment checks only — no network, ever.waybill --version+ engine version in the status header, and a README Updating section:claude plugin update waybill@waybill, restart, done.- Full test plan at docs/testing.md: invariant→suite map, golden protocol, CI matrix, manual matrix, the FINALPASS release gate, and honest coverage gaps.
waybill 1.1.0
Driven by a hands-on user critique — every item reproduced in a real session before it was fixed.
New verbs
waybill status— one screen of ledger health (init, retention with the exact settings edit, mining/gaps, inbox, unattributed %, verify verdict).waybill export— the spend ledger as CSV/JSON, window- and audience-aware. Receipts without hand-written jq.waybill pricing show|set— pricing onboarding; all five rates plus a cited version date required. No rates ship — an accounting tool doesn't guess.
Fixed
- zsh: the documented
$WAYBILL verifyidiom silently failed on macOS's default shell; skills now usenode "$WAYBILL" <cmd>. - story:SHA-256 — the liberal key pattern minted a phantom story from commit messages about SHA-256 escrow. Key-plausibility gating (technical-prefix stoplist + authoritative
project_keysallowlist) ships as rules_version 2: stale sessions re-meter automatically and phantom attributions are superseded, history preserved. Verified live: 16 sessions re-metered, phantom gone, conservation green. mineoutput reconciles (N new · M re-metered · K gaps · P current);bootstrap --from/--to;totals.shipped_metered_tokensrename kills the "0 tokens metered" footgun; spend/report skills default to brevity.
waybill 1.0.1
Patch release from a second adversarial review pass (four lenses over the 0.4/1.0 delta; 12 confirmed findings, every one fixed with a regression test — 101/101 suite).
- OTel correctness: temporality-aware parsing (cumulative snapshots take the latest point, never the sum), grown-export re-ingestion supersedes instead of double-counting, and a transcript appearing later retires a session's OTel events — transcript wins, sources never mix, in either order.
- Reconcile classifies by supersession chain: corrections over open entries still ship; items re-resolved after a reopen clear the flag.
- Pacing windows committed points on the chain-origin timestamp; stale-lock reaping is race-free; assorted CLI hardening.
- Docs fully current at 1.0: the frozen schema reference documents every shipped field (waste, reopened, source otel, renewal_reminder_days), README describes what shipped, CLI help is complete.
waybill 1.0.0 — Trustworthy at scale
Schema v2 is frozen. The fact streams are the compatibility surface from here on — additive is minor, breaking is major and ships with migration tooling (migration policy).
- Waste diagnostics — deterministic retry-loop and duplicate-read detection per turn, counts only (never commands or paths), rolled up per story: what the tokens bought, and what they wasted.
- Rework/reopen tracking — reopened-after-shipping items are counted in report costs without erasing the shipped work. The unflattering number that makes the flattering ones believable.
- Skill trigger evals in
evals/, CI-gated behind an API key; allocation-cycle reminder nudges once, N days before the grant renews. - Linear + GitLab adapters, conformance-tested.
- Full gate: 94/94 tests, reproducible build, conservation verified against this machine's real 1.7B-token history.
waybill 0.4.0 — Answerable
Milestone M2 "Answerable": every canonical spend question is one interaction away.
spendskill — "where am I spending", "what did PLAT-482 cost", "how's my burn", one-tap attribution-inbox resolution.waybill resolve— resolutions are resolver inputs (rule 0, confidence 1.0): they re-attribute the turn via superseding events and survive every future re-meter.--pin/--repo-defaultmake them durable.- Budgets & pacing — linear + work-weighted pace, per-epic envelopes, and a SessionStart notice that fires once per 80%/100% crossing. Never nagging, never blocking.
- OpenTelemetry secondary source —
meter --otelfills sessions whose transcripts were pruned; the transcript always wins, sources never mix. - Linear adapter, conformance-tested;
sync-plan --local-repomakes the zero-auth floor self-contained. - Fixed: all ten adversarially-verified review findings from 0.3, each with a regression test — including per-session checkpoint versions, the attribution-inputs fingerprint (pins now take effect without transcript growth), and supersession-aware shipped classification.
waybill 0.3.0 — Believable + Metered
Milestones M0 "Believable" and M1 "Metered". The deterministic token-accounting engine ships: every Claude Code token metered from local transcripts, attributed to the story it served with a per-event resolver name and confidence, conserved (Σ attributed = Σ observed, per session), and verifiable offline with waybill verify.
Highlights
- Zero-auth first value:
init+bootstraprender a receipt from local git history in under a second — no accounts, no tokens, no OAuth. - SessionEnd hook spawns a detached, dependency-free miner; sessions are metered as you work. No model calls, no network, no telemetry — everything lives in
~/.waybill/. - Schema v2: monthly-sharded append-only streams, deterministic content-derived ULIDs, durable session receipts that keep conservation checkable after transcripts are pruned.
- SHA-256 pre-registration escrow: estimates sealed at write time, backdating refused, seals re-verified by
waybill verify. - Attribution ladder (pin → active entry → transcript evidence → branch → repo default → unattributed) with an attribution inbox for ambiguity — tokens are never dropped and never guessed into a story.
- Contract-first Jira/GitHub/git-local adapters with a conformance kit; deterministic sync with baseline derivation; audience redaction (self/internal/external); exact fixed-point pricing.
Full details: CHANGELOG, gate evidence in VALIDATION.md, judgment log in DECISIONS.md.
Install
claude plugin marketplace add Jakeintech/waybill
claude plugin install waybill@waybill