This repository was archived by the owner on Sep 13, 2026. It is now read-only.
v0.3.27
Added
-
Thinking block count tracking (
src/usage/extract.ts,src/usage/types.ts,
src/usage/ddl.ts,src/db.ts): counts thinking/reasoning content blocks
observed in both Anthropic and OpenAI streams. Bridges the gap when upstream
omitsthinking_tokens/reasoning_tokensbut emits thinking content —
the dashboard now shows "N req w/ think (unmeasured)" instead of hiding
thinking activity entirely.- Anthropic: counts
content_block_startevents withtype: "thinking". - OpenAI: counts chunks with
delta.reasoning_content(streaming) or
non-emptymessage.reasoning_content(non-streaming). - New
thinking_block_countcolumn incaptures(DDL migration). - Aggregated as
requests_with_thinkingin performance stats query.
- Anthropic: counts
-
Dashboard: unmeasured-thinking indicator (
dashboard/src/components/performance-meter.tsx,
dashboard/src/types.ts): the "Total Out" StatTile now shows "N req w/
think (unmeasured)" when thinking tokens are absent but requests had
thinking blocks, instead of always showing "0 think". Hides the sub-line
entirely when both tokens and request count are zero.
Fixed
- Vitest teardown race in dashboard tests (
dashboard/vitest.config.ts):
the default forked worker pool raced console.log RPC delivery against
teardown, producing anEnvironmentTeardownError("Closing rpc while
'onUserConsoleLog' was pending") that exited non-zero despite all tests
passing — failing CI. SetfileParallelism: false+maxWorkers: 1to
eliminate the race.