Skip to content

release: v5.1.0 — per-model plan limits, usage bar row, older models - #47

Merged
serialexperimentslainnnn merged 3 commits into
mainfrom
develop
Aug 10, 2026
Merged

serialexperimentslainnnn merged 3 commits into
mainfrom
develop

Conversation

@serialexperimentslainnnn

Copy link
Copy Markdown
Owner

Release v5.1.0. Merging this publishes to the JetBrains Marketplace: release.yml cuts the tag, builds once, attests and publishes.

Contents

  • Fable / per-model plan limits are reported. They live in rate_limits.model_scoped, an array the parser walked past — and the binary synthesises that key behind its own remote config, so a --print session never received it at all. The raw rate_limits.limits[] array it projects from is read too.
  • The bars no longer flicker. The binary's usage fetch falls back to a header-seeded object carrying only five_hour/seven_day, indistinguishable downstream from a full reply; a refresh is now merged into the last one by window key.
  • Plan limits get their own responsive row under the status line, one labelled bar per window.
  • An "Other models" group in the picker with the previous generations, set_model correlated so a refusal restores the previous model.
  • Fixed: a quota notification announcing 100% at ~1% real usage (a 0..1/0..100 scale guess); nimbus_quill hidden on both ingestion paths.

Full detail in CHANGELOG.md; user-facing summary in RELEASE_NOTES.md.

Verification

Gates run clean locally (clean … --rerun-tasks): 780 JVM tests, koverVerify/detekt/spotlessCheck, verifyPlugin Compatible IC-251 → IU-262, buildPlugin with both artifact assertions, 111 frontend tests, lint/format clean, npm audit --omit=dev 0 vulnerabilities. CI green on #46. Manually validated in PyCharm 2026.2 against a live session.

🤖 Generated with Claude Code

Fable usage is reported. Per-model windows arrive in rate_limits.model_scoped, an array alongside
the keyed windows, which parseUsageReport walked past entirely. Reading it is necessary and not
sufficient: the binary does not relay that key, it synthesises it behind its own remote config
(IUt(limits, jJe()) returns an empty list when tengu_usage_overage_included_models is empty, and the
key is spliced in only when the projection yielded something), so in a --print session it never
arrived. The raw rate_limits.limits[] array it projects from does arrive untouched, so the
weekly_scoped entries that name a model are read from there too, with the binary's filter and
without its allowlist -- that list selects overage billing, not which limits meter you. resets_at is
epoch seconds there as often as a string and is normalised rather than deserialized.

A refresh is now merged into the last one instead of replacing it. loadPlanRateLimits gives the
usage endpoint 5s and falls back to seedUtilization(), an object rebuilt from the rate-limit
response headers that can only carry five_hour and seven_day; it is flagged "seeded" and accepted
identically downstream, so a failed poll was indistinguishable from one saying the per-model window
is gone, and the bar blinked out and back. Merged by key over the whole set, since the opus and
sonnet windows are missing from a seeded object for the same reason. The extra-credit balance is
deliberately not carried.

The plan limits moved out of the readout into their own responsive row under the status line, one
labelled bar per window. Inline they trailed a wrapping row of unrelated metrics, so the windows
nearest their cap were the first to wrap out of sight.

Also in this cycle: an "Other models" group in the picker holding previous generations, with
set_model sent as a correlated control request so a refusal restores the previous model instead of
leaving the tab pointed at one every turn would fail on; the nimbus_quill window hidden on both
ingestion paths rather than only the report; and quota notifications titled through
UsageWindow.title(key) so a per-model window announces "Fable", not its synthetic key.

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
…ion-100-usage

feat(usage): report per-model plan limits in their own bar row
Merge pull request #44 from serialexperimentslainnnn/develop
@serialexperimentslainnnn
serialexperimentslainnnn merged commit c05f9cc into main Aug 10, 2026
12 checks passed
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