Skip to content

v1.1.0 - the meter stops eating the quota it reports

Latest

Choose a tag to compare

@giovi321 giovi321 released this 08 Sep 23:09
f4cf5c6

Two community pull requests. The headline: polling no longer spends an inference request, so the meter stops consuming the quota it reports.

Polling was billing you

poll_api() sent a max_tokens: 1 POST to /v1/messages and read the anthropic-ratelimit-* response headers. That POST is a real inference request, so every poll counted against the 5-hour window it was measuring. At --interval 30 it is plainly visible: roughly 18% of a Pro 5-hour window burned over four idle hours with nothing running but the daemon.

The poller now reads GET https://api.anthropic.com/api/oauth/usage, a plain status query that spends nothing. Polling no longer moves the numbers, and short intervals are safe.

Thanks to @Piya-Boy in #8.

The device no longer sits blank after a failed first poll

Every transport waits for a successful poll before it sends anything, so a failed poll leaves the device on its logo. The common case is login: autostart beats the network up, the first call dies on DNS, and with --interval 300 the next attempt is five minutes away.

Failed polls now retry at 5s, 10s, 20s, 40s, capped at 60s and never above --interval, and reset to the normal interval on the first success. A missing or invalid token still waits out the full interval, since that one needs you to run claude setup-token.

Thanks to @eakarin in #7.

Breaking: st changed vocabulary

The payload keys are unchanged (s / sr / w / wr / st / ok), but st now carries the session limit severity from the usage endpoint (normal, warning, rejected) instead of the rate-limit header status (allowed, allowed_warning, rejected).

Firmware that branches on the exact string needs updating:

  • smalltv-mod: use 2.13.1 or newer. Older builds read normal as a warning and light the accent dot permanently.
  • clawdmeter-win: unaffected, it stores st without branching on it.

Full details in CHANGELOG.md.