Skip to content

v0.4.0

Latest

Choose a tag to compare

@kelesmert kelesmert released this 12 Aug 18:34

See what a project cost, and count every model that contributed to a turn.

Added

  • report project, a report grouped by the directory the agent ran in. Each
    project heads a block carrying its total, with its sessions beneath it. This is
    the split your client already shows as folders, and the report could not make
    it.

    turnlens report project                    every project
    turnlens report project turnlens           that project's sessions
    turnlens report project turnlens daily     that project, day by day
    

    A name matches a project whole, so turnlens does not also mean
    turnlens-docs. A session belongs to the project it started in, so one that
    changed directory part way through is not split across two headings.

    The rows under a project are still sessions. The project is a fifth grouping
    word, not a new unit for the report.

Fixed

  • Advisor usage is no longer omitted from a turn. When Claude Code records
    an advisor_message, TurnLens keeps its model and usage separate, prices each
    model at its own rate, and adds both to the turn. A measured Sonnet turn with
    an Opus advisor moves from 733,887 tokens and $0.3641 to 799,234 tokens and
    $0.7619.

    The reason this is worth its own entry is the shape of the gap: in a second
    measured turn the advisor was 34 percent of the tokens and 64 percent of the
    cost, because an advisor's input is uncached and its model is the dearer one.
    A turn that used one was not slightly wrong.

    The live table still names the model that produced the answer. Reports and the
    exit summary name every model the turn used.

  • An agent named after report now says so. turnlens report claude
    answered Unknown grouping: claude, which is true and useless: you know
    claude is an agent, which is why you typed it. It now names the word order
    and shows the command that works.

  • Two agents in watch mode no longer get called a grouping. turnlens claude codex claimed codex needed the word report in front of it. Watching
    follows one session, so it takes one agent, and the answer for two is a report.

CSV schema change

pricing_components_json is appended as the final column. It is empty for an
ordinary single-model turn and explains every model, token category, cost status
and pricing version in a mixed turn. No existing column moved.

TurnLens refuses an existing 0.3.x CSV rather than silently interpreting it
under the new schema. Either append ,pricing_components_json to the end of its
header row or move the file and let TurnLens create a new one. Existing rows need
no other change, and reports are unaffected because they never open CSV files.

Unchanged

No command-line flag changed. Existing report JSON fields keep their meanings;
the project grouping only adds its optional project field. Single-model turns
produce the same tokens, costs, live-table model and empty component-detail cell
they would have produced under the new header before this fix.


Full diff: v0.3.2...v0.4.0