Skip to content

Remove the tok/s reading; steady the running connector on the desktop app - #19

Merged
scasella merged 2 commits into
mainfrom
fix/remove-tok-s
Oct 24, 2026
Merged

scasella merged 2 commits into
mainfrom
fix/remove-tok-s

Conversation

@scasella

Copy link
Copy Markdown
Owner

Two small fixes, one commit each.

Remove the tokens-per-second reading

The main box's last req line showed time to first token and output tokens per second. The rate divided a request's output tokens by the time from its first streamed piece to its stop. The reported tokens include thinking, and when thinking isn't streamed it arrives before that first piece, so the rate read in the thousands: 9844 tok/s on an xhigh-effort request in the desktop app. It's removed rather than shown wrong, so the line reads last req ttft 0.8s.

  • stepSpeed keeps only the time to first token, and the stream no longer times its stop chunk.
  • The state keeps its speed field. A tokPerS left in a running session's state by 0.5.0 is ignored, and a test covers that.
  • README: "What is inferred" now covers time to first token alone, including that it takes in unstreamed thinking, and says why there is no rate.

Keep the running connector's length steady on the desktop app

While work runs, the connector between panels swaps a few of its ─ for a moving bold ● and •. The desktop app draws text in a proportional face, where those glyphs and bold aren't the same width as ─. So as the dots entered, crossed and left the line, its length changed every frame and its right end jittered. At rest, all ─, it held still.

  • The line is drawn in the surface's monospaced face (Text's mono). On a remote surface a cell is that face's advance, so every glyph takes exactly one cell.
  • It sits in a box of its width that clips four spare dashes, so its right end is the box's edge even if a glyph falls back to another face.
  • The static line drawn with motion off uses the same face.

The dot, its speed and its path are unchanged: the first 64 cells of 30 consecutive frames, on the terminal and on the desktop surface, match main's exactly. A new test drives the live connector frame by frame on both surfaces. It checks the box, the face and the length, and that the dot still travels. main's connector fails it.

Checks

  • claude plugin validate . passes.
  • claude plugin test .: 50 pass.
  • npx -p typescript tsc -p .: clean against the 2.1.309 declarations.
  • Not checked on screen yet: whether the desktop app's monospaced face has ● and • of its own. If it doesn't, the clipping box still keeps the right end fixed.

🤖 Generated with Claude Code

scasella and others added 2 commits October 24, 2026 08:45
The main box's `last req` line divided a request's output tokens by the
time from its first streamed piece to its stop. The reported tokens
include thinking, and when thinking isn't streamed it arrives before
that first piece, so the rate read in the thousands (9844 tok/s on an
xhigh-effort request). It is removed rather than shown wrong: the line
reads `last req  ttft 0.8s`, and the stream no longer times its stop.

The state keeps its `speed` field; a `tokPerS` left in it by 0.5.0 is
ignored. README's "What is inferred" now covers time to first token
alone and says why there is no rate.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
While work runs, the connector between panels swaps a few of its ─ for
a moving ● and •, in bold. A graphical surface draws text in a
proportional face, where those glyphs and bold differ in width from ─,
so as the packets entered, crossed and left the line its length changed
every frame and its right end jittered. At rest, all ─, it held still.

The line is now drawn in the surface's monospaced face (Text's `mono`),
whose advance is what a cell is there, so each glyph takes one cell;
and it sits in a box of its width that clips four spare dashes, so its
right end is that box's edge even if a glyph falls back to another
face. The static line drawn without motion uses the same face.

The dot, its speed and its path are unchanged: the first 64 cells of 30
frames, on the terminal and the desktop surface, match main's exactly.
A test drives the live connector frame by frame and checks its box,
face and length, and that the dot still travels; main's fails it.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
@scasella
scasella merged commit fbc9261 into main Oct 24, 2026
1 check passed
scasella added a commit that referenced this pull request Oct 24, 2026
- The main box's `last req` line shows only the time to first token;
  the tokens-per-second reading counted unstreamed thinking (#19).
- The running connector keeps its length on the desktop app, so its
  right end no longer jitters (#19).

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
@scasella scasella mentioned this pull request Oct 24, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant