Repository navigation
v2.7.0
简体中文: 查看本版本的中文更新日志
2.7.0 - 2026-10-23
Added
tokdash tuigrew from three tabs to seven panes: Overview, Sessions, Stats, Report, Speed, Quota and Pricing, reachable onF1-F7or through avpicker that lists them. Sessions fans out over the supported session sources behind its own source filter and its detail covers the whole session rather than the selected window of it; Stats owns its own annual selection (pwalks to an earlier calendar year,Pback toward the trailing 365 days); Pricing is a read-only view of the shipped pricing database. The three panes that had a digit shortcut keep it, so1/2/3still mean Overview, Report and Quota. (#258)- Speed in the terminal. The pane reads the server's own measurements and grouping rather than estimating in the client, so the TUI and the dashboard cannot report two different rates for the same model: per-stream and combined are presented as the separate populations they are, combined reports the union of busy time, gaps stay gaps instead of being drawn as zero-rate samples, hour-of-day asks for one exact bucket, and build progress arrives from the job's own events instead of a polling guess.
kpicks the series,xthe timing set andbthe bucket resolution, and the pane names the series the payload actually answered for. (#258) TOKDASH_TUI_COLOR(unset) keeps colour intokdash tuieven where theNO_COLORconvention has it off. The convention is written for line-oriented output, and aNO_COLORexported into a shell or a tmux session greys a full-screen dashboard out with no way to tell it apart from an empty one; the TUI's own monochrome layout stays the default. The palette the terminal agreed to is on the top row ascolour: …, because a reader cannot tell a 24-bit terminal from a 256-colour or 16-colour one by looking at this dashboard. Insidetmux,COLORTERMdoes not reach the pane, so the palette is capped at 256 colours untilterminal-featuresdeclares the client a truecolour one (documented inCONFIG.md), andTEXTUAL_COLOR_SYSTEMremains the underlying override, honoured as given even when it asks for less than the terminal could do. (#258)src/tokdash/pricing_db.jsonmoves from 2.0.37 to 2.0.38 (lastUpdated: 2026-10-23T04:27:20Z) with the 2026-10-23 scan's auto-approved result: one addition and no repricings.minimax-m3.1-flash(minimax) joins at $0.15 input / $0.60 output per MTok, cache at $0.015 read / $0.15 write. (#257)
Changed
- The TUI is rebuilt against the approved revision-5 design: dark navy surfaces separated by spacing and background tone rather than panel outlines, lavender selected tabs, coloured KPI values and per-source badges. Only table headers, input affordances and focus indicators keep a rule, because a rule that means nothing is a rule the reader has to re-learn on every screen. Numeric columns line up, and the colour system is settled before Textual reads its colour ceiling, which it does once at import -- inside tmux the environment usually under-sells the terminal, and eight ANSI colours is not this dashboard's design. (#258)
- Overview and Report share one range strip whose labels are the exact inclusive dates rather than a token the reader has to decode, and the range is genuinely shared: what is on screen is what the strip says. The Models table aggregates normalized model names across every tool and carries no tool column of its own, and Cost is a sort of that same table rather than a second leaderboard that can disagree with the first. Activity draws only the usage buckets the payload actually carries, and a range too long to chart says so instead of inventing a chart. (#258)
- Scope is stated next to the figures it belongs to. Each pane names the window, the sources and the denominator it used, quota rows keep their account boundary and their consent behaviour, and a pane may only paint a payload under the scope that produced it -- see the stale-read fix below. Production still opens on Today. (#258)
- Known gap: Report in the TUI still renders the CLI body. Its calculations and denominators are the CLI's, as specified, but the card-based Report presentation from the revision-5 preview has not been built for the terminal. (#258)
Fixed
- A pane no longer shows one window's numbers under another window's dates. A range change could let an older read finish last, and its totals were painted under the strip the reader had just moved; every action that restarts a load now bumps a generation guard, the payload carries the
(period, date_from, date_to)-- and for Stats its own annual rung -- that it answered, and a paint whose scope no longer matches is dropped rather than shown. Failed analytics reads are reported as failed instead of being left looking still-running. (#258) - The page no longer keeps the layout of a terminal size it no longer has. A resize that arrived while a range or source chooser was open, and the typed-dates input being revealed or put away, both left the remaining rows sized for the old frame; the layout is refit against the frame the terminal actually gave, including when that frame is refused, and a table bound stops letting the arrow keys walk a row into the clipped area. Verified keyboard-only at 120x36, 100x30 and 80x24 by reading back the rendered screen. (#258)
- Hidden panes no longer hold their work. Subscriptions left running in a pane that was not visible kept loading and painting behind it, and a superseded request could finish after its replacement; loads are now counted per pane, retiring a pane's in-flight work when the pane is dismissed or superseded, and the polling sentence a pane started with stays its own until a read retires it. A source badge resolved its colour by display name, so two tools sharing a label shared a badge; they look it up by source id. (#258)