Skip to content

v0.2.0

Choose a tag to compare

@shoustak shoustak released this 04 Sep 08:09
· 17 commits to main since this release
4cb3cb9

The recommendation that would have broken your other repo

context-tax judged every server on the sessions in the directory you ran it from. For a server whose only lever is claude mcp remove <name> -s user, that is the wrong denominator: the command is machine-wide. Found on a real machine — one call in this project, 67 in a sibling checkout, and the removal printed against it anyway.

A verdict's denominator now has to cover everything its fix would switch off. Machine-wide levers need machine-wide silence. Project-scoped levers keep the project's count.

The first run in an unfamiliar directory

In a fresh clone, or anywhere you have not used Claude Code before, share, calls and per call all came out empty and every verdict downgraded to "too few sessions to judge". Those are the three columns that carry the whole argument, blank in the run you are most likely to make first — while the history to fill them sat on the same disk.

A project with too little history now borrows the machine's denominator and says on this machine wherever it did.

The exact total does not widen. A cold-start median mixed across projects with different configs is not this directory's prefix, and it will not be labelled as one.

The scan was narrow because a whole-corpus pass was assumed to cost a minute. Measured: 890 transcripts and 2.1 GB in 5.1s, inside a command that already spends ten seconds starting servers.

The screen

  • Leads with the number. It used to open with four lines of chars/4 caveat and keep its one exact figure at the bottom of the table. The methodology now sits below, next to the total it qualifies. Nothing was removed.
  • A line saying what this machine has actually spent: sessions, turns, tokens of context carried, and the /clear and /compact you typed to survive it.
  • A progress line. A run takes ten seconds and every one of them was silent, which reads as a hang. It names the server it is waiting on. Written to stderr and only when stderr is a terminal, so --json, > file and | less are byte-for-byte what they were.
  • Rows sharing a note collapse onto one line, and a row measured from the bundled table says so rather than printing the same bare dash as a row that could not be measured at all.

Breaking, for library users

Verdict carries a required scope, LedgerRow a basis, Ledger a machine, and MeasureOptions an optional onProbe. The CLI is unaffected.

Full notes in CHANGELOG.md.

npx context-tax