Skip to content

v2.7.1

Latest

Choose a tag to compare

@pgalko pgalko released this 31 Oct 02:57
· 1 commit to main since this release

BambooAI 2.7.1 — the Usage dialog, rebuilt

Every number BambooAI shows about itself should be as inspectable as the numbers it shows about your data. 2.7.1 rebuilds the Usage dialog (gear menu → Usage) on that principle: what the analyses cost and where the money and the time went, computed from the record of model calls, nothing written by a model.

What it shows

A period — the last 24 hours, 7, 30 or 90 days, this month or last month, in your own days — against the period before it, and Export CSV for the rows themselves.

Overview — the tiles: model cost, analyses, model calls, tokens in (with the share served from the prompt cache and what it saved), tokens out, model time, and on the hosted service the compute charge; each with its change against the period before and a sparkline. Under them a chart, one column a day, stacked by seat, model or mode and measuring cost, tokens, calls or time, with the legend as a table beside it — click a row to see that part alone — and a tooltip per column. Then three lines of what stands out: the heaviest day and what made it, the cache, the failures.

Seats & models — who spent what: the Analyst writes the cells, the Reviewer judges them, the Reader reads documents, the Coder codes the context, the Rewriter writes the plain version, the Figures seat draws, the Promoter makes routines. Sortable, with the configuration's list prices per model.

Analyses — every analysis of the period with what it cost and how it ended, grouped by day, searchable by a word of the question, a mode or an outcome. Pick one for its breakdown: its figures, its seats ranked, its calls laid out in time (one row per seat, a mark per call — hover for the model, tokens and cost), its models, and open the analysis when it is saved.

Calls — the raw rows, newest first, under a frozen header.

What is recorded

Each model call's row now keeps the prompt-cache split (tokens read from the cache, tokens written to it), what the cache saved against an uncached prompt, and the search and image fees inside the cost. Rows from before read as not recorded, never as zero, and the dialog says how many calls of a period carry the figures.

A small usage ledger (storage/<user>/usage_ledger.jsonl) keeps one line per analysis as it ends — the question, the mode, how it ended — so an analysis keeps its name in Usage even when its thread was not saved as a favourite (an unsaved thread's full record is still discarded at the next start, as before). Analyses from before this release that were not saved show as An analysis that was not saved.

The outcome words, since they are easy to misread: a finished analysis is answered; its replay then re-runs the cells and checks the cited numbers — reproduced when they match, differed when they do not, replay failed when it could not run. "Answered" alone means no replay on record. Every chip says this on hover.

Upgrading

pip install -U bambooai
bambooai serve

The local database adds the five columns by itself; no executor rebuild (the image stays v74). Self-hosters of the hosted layout run docs/sql/usage_cache_fields.sql once on their Supabase project before starting 2.7.1.

Patches 0255–0258. The design is in docs/USAGE_DESIGN.md.