Skip to content

Releases: rarf/hermes-quota-plugin

Hermes Quota 3.0.0 — Agent Monitor

Choose a tag to compare

@rarf rarf released this 23 Oct 17:30

Hermes Quota 3.0.0 — Agent Monitor

A huge thank-you to @Asimatasert for bringing Agent Monitor into Hermes Quota, including the backend, Desktop views, localization, tests and follow-up fixes. This contribution made the 3.0 milestone possible. See the original proposal #83.

What's new

  • Live Hermes sessions, attention and context indicators inside Desktop.
  • Model health, fallback visibility and recorded usage estimates.
  • Quota history and burn-rate forecasts when sufficient readings exist.
  • Status-bar agent chips, context guard and configurable notifications.
  • Localized monitor UI in English, Turkish, German, Spanish, French, Russian, Japanese, Simplified Chinese, Traditional Chinese and Arabic (RTL).
  • Updated README, acknowledgements and monitor documentation.
  • Existing native Hermes plugin updates and per-card Codex reset notices preserved.

Scope and privacy

Monitor collection is off by default and limited to the active profile. Existing quota functionality remains available without enrollment.

hermes config set plugins.entries.quota.settings.monitorEnabled true

Use hermes -p <profile> config set ... for a named profile. Set the value to false to stop collection; existing history is not erased.

This release retains the hardened read-only trial scope: no sibling-profile or external CLI transcript collection, shared Kanban reads, new credential-pool metadata reads, account/budget backend mutations or monitor agent tools. Widget budgets remain local. Usage costs are estimated API-price equivalents, not invoices; month-end spending projection is unavailable. Existing provider authentication disclosures still apply.

For remote Desktop setups, update the widget on the Desktop computer and the backend on the gateway separately. The evaluation widget is not automatically replaced by this release.

Shipped monitor contract · Installation

Verification

  • Final local suite: 1,087 tests executed successfully, 11 skipped.
  • Independent review of release blockers passed after corrections.
  • GitHub CI passed on the release commit: Python 3.9–3.12, Desktop/TUI widgets, shell regressions on Ubuntu and macOS, manifest checks and plugin scanner.

CI run

v2.12.0

Choose a tag to compare

@rarf rarf released this 23 Oct 11:10
  • Desktop: one card per saved credential for multi-account providers, grouped
    by provider in the status bar; the pane keeps a card per account and the
    Codex announcement once above the group (#71).
  • Skill: bundle quota-check (quota:quota-check) so agents check quota
    before long work and ask before splitting tasks or switching models (#69).

v2.11.5

Choose a tag to compare

@rarf rarf released this 23 Oct 11:00
  • Codex: a pooled account's saved upstream base URL is preserved for usage
    requests, so a local inference proxy no longer turns a valid account into
    http-404 (#81).
  • Grok: reuse the Hermes xai-oauth bearer before the browser-cookie chain;
    Windows Chrome v20 App-Bound cookie decryption is supported (#82).

v2.11.4

Choose a tag to compare

@rarf rarf released this 23 Oct 10:52
  • Desktop: a legacy single connection reports an owner without a registry
    connectionId; the widget now routes through the live gateway instead of
    failing with "focused quota profile unavailable". A null owner still keeps
    the query disabled, so an ambiguous multi-connection never guesses a profile
    (#79).

v2.11.3

Choose a tag to compare

@rarf rarf released this 23 Oct 10:52
  • Cache: a carried record (incomplete sweep) now drops its windows and balances,
    so the CLI cannot render stale percentages under a fresh cache timestamp; the
    note is deduplicated instead of growing on every sweep.
  • TUI: rememberable tolerates a non-array selection, and a test pins the
    persisted preference as the single string the picker resolves.

v2.11.2

Choose a tag to compare

@rarf rarf released this 23 Oct 10:52
  • Cache: a sweep whose provider registry is incomplete no longer deletes the
    providers it never tried — they are carried forward and marked
    not-refreshed.
  • Tests: the shared-cache refresh test patches its own cache path, so a test
    run can no longer rewrite the live quota_cache.json with a synthetic
    single-provider cache.
  • Desktop: WIDGET_VERSION synced with the manifest (2.11.1 shipped a skew).

v2.11.1

Choose a tag to compare

@rarf rarf released this 23 Oct 10:52
  • TUI: /quota-select opens on the provider/account saved by the previous run
    and marks that row · current; Enter keeps it instead of silently switching
    to the first cached row.
  • TUI: a stale panel can no longer overwrite the saved preference with a
    selector the cache does not resolve.
  • Tests: the picker test uses a temporary HERMES_HOME, so a test run never
    rewrites the live quota-panel.state.json.

v2.11.0 - readable quota dashboard + Codex special reset

Choose a tag to compare

@rarf rarf released this 22 Oct 14:41

Hermes Quota 2.11.0

A dashboard you can read in one pass

  • /quota and hermes quota list only providers with a saved account.
  • Friendly provider/account names and plan; one 10-cell remaining bar per window; worst quota first; relative reset times.
  • Filters accept claude, codex, google, account names (conta 2) and the full friendly name.
  • Other failures (config-invalid, rate-limited, no-data) stay visible with their actionable detail.

Codex special-reset announcements

  • Public announcement channel (codex-resets.com) in the CLI, JSON, Desktop pane/tooltip and the TUI chip/picker.
  • Shows the publisher's scheduled estimate (scheduled Oct 22 18:00) and the post time. The estimate is announcement metadata, never proof that a reset ran.

Timezone

  • Every timestamp uses the Hermes timezone setting (fallback: system zone), not the process TZ: CLI, Desktop and TUI.

Terminal UI

  • Optional quota dock with saved startup preference and a compact special-reset notice.

Fixes

  • Non-finite used_percent now renders unknown instead of a silent 100% left.
  • Account-id filters work when a record has no account_label.
  • ISO timestamps with a trailing lowercase z parse on Python 3.9.

v2.8.2 — installs work again: scanner-clean tree, MiniMax OAuth, hardened CI gate

Choose a tag to compare

@rarf rarf released this 04 Oct 10:05

Installs work again

The tree no longer trips the Hermes install-time security scanner. The two
GOCSPX- Google installed-app client constants were renamed to say what they
are (_PUBLIC_CLIENT_CREDENTIAL / _PUBLIC_CLIENT_ID), which clears the two
critical / credential_exposure / hardcoded_secret findings that made
hermes plugins install refuse the plugin outright (issue #51). Values stay in
the clear — grep-able and auditable — only the name stopped claiming to be a
secret. Two new tests assert the exchange still sends the right client id and
credential, so a future rename cannot silently swap them. (@thileman, #52)

Verified with the real scanner: 46c047b → dangerous, 2 critical;
this tree → safe, 0 high, 0 critical.

Fixes

  • MiniMax OAuth works. Hermes registers the provider as oauth_minimax, an
    auth_type the resolver's allowlist never matched, so the one provider holding
    a token was skipped and the card read no-credentials. (@thileman, #57)
  • The footer's checked timestamp, the Cursor credential handling, the
    Antigravity opt-in and several parser-honesty regressions that landed between
    releases are all included in this pin.

CI

  • The plugin scanner now runs in CI with parity to the installer: pinned to a
    Hermes release rather than main, failing on any critical or on high in
    credential_exposure, and preceded by a --self-test that proves the gate can
    still see the blocking class. The previous job tracked main, which had
    demoted those literals to high, so it stayed green on the tree that refused
    to install. (@thileman for the job, #56; hardening on top.)

Thanks

  • @Vsemagush for the precise report in #51 — the reproduction (plugin version,
    commit, exact scanner output) is what made this quick to pin down.
  • @thileman for #52, #56 and #57.

v2.8.1 — review remediation fixes

Choose a tag to compare

@rarf rarf released this 02 Oct 09:49
46c047b

This patch release incorporates the four requested review remediations from PRs #46–#49:

  • Cursor quota reads are read-only; expired sessions now direct users to cursor-agent login.
  • Antigravity is disabled by default and requires explicit opt-in.
  • Documentation discloses Antigravity credential sources, OAuth client identity, and User-Agent.
  • Public installed-app OAuth client constants are documented and declared plainly.

The widget and manifest versions are synchronized at 2.8.1. PR #45 is not included.