diff options
| author | Adam Malczewski <[email protected]> | 2026-06-12 01:01:32 +0900 |
|---|---|---|
| committer | Adam Malczewski <[email protected]> | 2026-06-12 01:01:32 +0900 |
| commit | 4bc02b0102e45dc8cce97b7fc8499e0ab23d862f (patch) | |
| tree | 8d8c40ca4f2951a68ec812fb3d0f31c044a76599 /src/core/metrics/format.ts | |
| parent | 4866ebe724d247ab9c1a7615104712cf0ff2e508 (diff) | |
| download | dispatch-web-4bc02b0102e45dc8cce97b7fc8499e0ab23d862f.tar.gz dispatch-web-4bc02b0102e45dc8cce97b7fc8499e0ab23d862f.zip | |
feat(metrics): consume contextSize — current context-usage readout
Backend context-size handoff: re-pin [email protected] / [email protected]
(+ re-mirror .dispatch reference snapshots). Thread the optional contextSize
through core/metrics (done fold + durable + selectCurrentContextSize: latest
turn's defined value, undefined=>unknown never 0, durable-wins-over-live).
Chat store exposes currentContextSize; ContextSizeBadge renders
"N tokens in context" / "context size unknown" above the composer.
GLOSSARY: add context size / context window. 533 tests green.
Diffstat (limited to 'src/core/metrics/format.ts')
| -rw-r--r-- | src/core/metrics/format.ts | 11 |
1 files changed, 11 insertions, 0 deletions
diff --git a/src/core/metrics/format.ts b/src/core/metrics/format.ts index ee8db60..d8dd2cc 100644 --- a/src/core/metrics/format.ts +++ b/src/core/metrics/format.ts @@ -17,6 +17,17 @@ function formatTps(tps: number | null): string | null { return `${Math.round(tps)} tok/s`; } +/** + * Format the current context size for display. A defined count renders as + * `"<n> tokens in context"` (thousands-separated); `undefined` ("unknown" — no + * per-step usage reported yet) renders the placeholder `"context size unknown"`. + * Never renders `0` for the unknown case. + */ +export function formatContextSize(n: number | undefined): string { + if (n === undefined) return "context size unknown"; + return `${formatTokens(n)} tokens in context`; +} + /** Compute tokens-per-second. Returns null when elapsed time is absent or zero. */ export function computeTps(outputTokens: number, elapsedMs: number | undefined): number | null { if (elapsedMs === undefined || elapsedMs <= 0) return null; |
