agentmeterv0.1.1

Changelog

Generated from CHANGELOG.md in the project repository. Never maintained twice.

Unreleased

  • changedPages: the project site uses the current shared theme (0.12.6).

0.1.1

31 October 2026

  • fixedCLI: text output stays within the terminal width, at most 88 columns: evidence lines and long paths break after / and before · with an indent, and the sessions and projects tables shrink their bars instead of spilling over (#2).

0.1.0

30 October 2026

  • addedCLI: agentmeter reads Claude Code session logs (~/.claude/projects, CLAUDE_CONFIG_DIR) and prints a summary with days and compactions; --sessions, --projects, --findings, --since <Nd|date>, --project <name> and --json select and filter. Read-only, no network.
  • addedAdapter: merges streaming duplicates and drops sub-agent replays, reads cache writes by lifetime (5 min / 1 h) from the nested cache_creation object, and counts unreadable lines, unknown entry types and unknown usage fields instead of failing.
  • addedFindings: baseline-load, cache-rebuild, compact-thrash, big-context and long-session report an observation with rule version, measure, denominator, sample, evidence (file and event id), certainty, counterexamples and a next step. None is an error; thresholds are uncalibrated.
  • addedData quality: the report states the observed period, files without usage, unreadable entries and rules that could not be measured, and separates "no analysis possible" from "no findings".
  • addedCodex adapter: reads Codex CLI rollouts ($CODEX_HOME or ~/.codex) from the running token_count totals, ignoring repeated events and replayed parent history. Compressed .jsonl.zst files are streamed within limits; damaged ones are counted, never fatal. Rules that need cache writes or compaction sizes report "not measurable" instead of guessing.
  • addedCLI: --tool claude|codex|all selects the source; by default every source that has logs is reported on its own, with its own data quality. --json now returns a sources array.
  • addedFindings: every rule appears once per source as observed, checked with nothing to report (with its measure and sample) or not measurable (with the reason), in text and JSON. big-context uses 50 % of the logged context window where a window is recorded (Codex) and 500k otherwise.
  • addedCLI: agentmeter without arguments on a terminal opens a menu (summary, sessions, projects, one row per rule with its status, data quality per source) with the source and the period selectable; in a pipe or with any flag it prints the text as before.
  • addedCLI: --check data-quality exits 1 when a source has unreadable lines or compressed files over a limit or no usage in the period, 0 otherwise and 2 for a bad call. Notices and info never fail it.
  • addedJSON: the output carries schema_version (1) and is documented field by field in JSON output.
  • addedCLI: --probe asks Claude Code via /context (local, no model request) what a session start holds and splits the median start into configuration and the rest; also in the menu. Details: Asking Claude Code.
  • addedFindings: every diagnosis opens with a conclusion (lever, look at it, fine) and splits its measure into parts; conclusion and parts are in the JSON. Details: Conclusions.
  • addedFindings: cache-rebuild lists sub-agent files apart from the main conversation and, where writes are split by lifetime, compares a 1 h cache lifetime with 5 min at list-price ratios; baseline-load names the front end that wrote the session starts (entrypoint, Codex originator).
  • addedCLI: the text output starts with a block of what was read and how well, and shows bars for days, models, sessions, projects and every breakdown.
  • addedRelease: binaries for macOS and Linux on the GitHub release with .sha256, SHA256SUMS and a signed build provenance attestation; the crates are on crates.io (cargo install agentmeter). Details: Install.
  • fixedBuild: the declared minimum Rust version is 1.88, the version the code and ruzstd need; 1.85 did not build.
  • fixedCLI: --since with a day count too large to compute is refused as a bad call instead of overflowing.
  • fixedCLI: --project that matches no project in any source exits 1 with a message instead of printing an empty summary.
  • fixedCLI: requests without a model name appear as (unknown) in the model table instead of a blank row.
  • fixedFindings: the baseline-load next step names /context as a Claude Code command instead of suggesting it for every source.