Skip to content

release: v5.1.1 — plan limits refresh off-screen, reset countdown in chat - #51

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.1 (patch). Merging this publishes to the JetBrains Marketplace: release.yml cuts the tag, builds once, attests and publishes.

Contents

  • Fixed — the plan limits only refreshed while the chat was on screen. The poll was gated on isShowing, so a collapsed tool window or an unselected tab asked for nothing at all, and a quota window is not this plugin's state: other sessions, other devices and claude.ai spend the same windows, and a reset is a wall-clock event. The figure on screen was whatever the last probe happened to catch, moving again only when a turn or the dashboard triggered one. Gate removed, period 30 s, event-driven refreshes unchanged.
  • Added — the reset countdown in the chat, Reset time: 4h 18m under each window's bar, sharing one implementation with the dashboard card.
  • Changed — every get_usage poll logs its reply verbatim at INFO, which is the only thing that can distinguish a stale number from a server still reporting it. A live capture already used it to show two of three consecutive polls returning the binary's header-seeded fallback.
  • Process — docs/RELEASE_PROCEDURE.md §6 now states that the release PR is closed to late commits, cosmetic ones above all: they invalidate the gates that passed on the earlier tree, and main publishes.

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

Verification

Gates run clean locally (clean … --rerun-tasks): 781 JVM tests, koverVerify/detekt/spotlessCheck, verifyPlugin Compatible IC-251 → IU-262, buildPlugin with both artifact assertions, 113 frontend tests, lint/format clean, npm audit --omit=dev 0 vulnerabilities. CI green on #50. Manually validated in IntelliJ IDEA 2026.2, including the case that failed: tool window collapsed, different tab selected.

🤖 Generated with Claude Code

The poll was gated on isShowing, so a collapsed tool window or a chat tab that was not the selected
one asked for nothing at all. A quota window is not this plugin's state: other sessions, other
devices and claude.ai spend the same windows, and a reset is a wall-clock event that owes nothing to
the IDE. So the figure on screen was whatever the last probe happened to catch, and it only moved
again when something else triggered one -- a turn, or opening the dashboard. "It only updates when I
talk to the agent" is what a visibility-gated poll looks like from outside. The gate is gone and the
period is 30s; the event-driven refreshes are unchanged.

The bar row now carries the countdown: "Reset time: 4h 18m" on its own line under each window's bar,
with the sentence in the tooltip. A percentage alone does not say whether it is urgent -- 90% with
eight minutes left and 90% with six hours left are different situations, and only the dashboard was
answering that. Under the bar rather than beside it, because the row is already three items wide per
window and a fourth made the countdown the first thing to be squeezed out. One implementation in
app-core (CC.resetIn/resetInShort), shared with the dashboard card, and RateLimitInfo.resetsAtIso()
puts the epoch-to-ISO conversion on the model so an event-sourced window and a report-sourced one
are interchangeable to both surfaces.

Every get_usage poll now logs the reply verbatim at INFO. The derived per-window lines cannot say
whether a number is stale, because a window the reply omits leaves no line and a carried-forward one
looks fresh. It earned its place immediately: a live capture showed two of three consecutive polls
returning the header-seeded shape (five_hour/seven_day only, no limits[]), which is the degraded
reply 5.1.0's merge exists for, and confirmed the binary does not cache the endpoint.

The release procedure now states that the release PR is closed to late commits, cosmetic ones above
all: a commit pushed onto an open release PR invalidates the gates that passed on it, and main
publishes.

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
chore: sync develop with main after v5.1.0
fix(usage): poll the plan limits even when the chat is not on screen
@serialexperimentslainnnn
serialexperimentslainnnn merged commit 189d7b4 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