Aller au contenu
1 mois offertRejoignez le Discord UsageMeter et obtenez 1 mois de Pro offertRejoindre le Discord
  • Nouveau

    Chat Bar: ring + tools — new toggle in Settings → Features (off by default) that takes over the "Claude is AI, can make mistakes…" disclaimer bar under the composer and turns it into a compact icon row holding the usage chip + Auto-Reply + Export. Detection is structural (finds the disclaimer container by Tailwind classes, not by language-dependent text), so it works in every locale. On /new (and any page where Anthropic doesn't render a disclaimer) UsageMeter synthesises a styled bar in its place anchored after the composer; on /chat/<id> we override Anthropic's `py-2` to a tighter 4px so the row collapses to icon height

  • Nouveau

    Chat-bar chip switches to the /code ring style when ring mode is on — drops the bar-chart icon for a 12×12 SVG ring on the right with animated stroke-dashoffset gauge, percentage on the left, and the trend arrow (↑↑ / ↑ / = / ↓). The same digital-clock %-roll + arrow flip-blur morph that the chat chip already used now also animates the ring stroke between polls

  • Nouveau

    Setup tutorial redesigned with a 2-column layout — a new persistent ClaudePreview pane on the right shows a faux claude.ai surface that reacts live to every option the user touches on the left (theme color, chat width, font + size, ring mode, disclaimer mode, usage indicator). The right pane derives a full palette from the chosen accent (--cp-accent / -fg / -soft / -tint / -border / -strong) so the WHOLE preview re-themes in 0.4s, not just the send button. Sticky on viewports ≥ 900px, stacks vertically below; container bumped from max-w-2xl to max-w-[1480px] so users get an actual full-screen tutorial instead of a cramped column

  • Nouveau

    WelcomeStep gets the official UsageMeter logo PNG (assets/icons/usagemeter-logo-full.png, exposed via web_accessible_resources) with a subtle breathing animation and a cycled welcome title rotating through 13 languages. The in-step demo carousel moved to the new ClaudePreview so the lang grid has more room — went from 4 cols / 280px-tall to 4 cols / 240px with the scrollbar hidden

  • Nouveau

    CustomizeStep exposes ALL 56 built-in themes (was 16) — same Neutrals / Warm / Cool / Vivid / Pride / Gradients groups as the popup, with a "Voir plus (N)" toggle per group so only the first 6 swatches are visible at a time. Active swatch sticks visible even when collapsed. Pro themes are flagged with a small crown badge but still selectable in the tutorial; the licensing gate kicks in later. Chat width (default / wide / max) now actually changes the preview's conversation max-width with a 0.4s spring transition. Added a "Par défaut" reset button that clears font + restores 16px size, and the ring-mode toggle is now offered in step 2 too with a big iOS-style switch

  • Retiré

    Focus Mode toggle dropped from the setup tutorial — collapsing the sidebar on first run was too aggressive a default. Still available in the popup's Customize → Shortcuts panel

  • Nouveau

    Translations in all 34 locales for every new setup string — preview/demo (10 keys), step badges, chat-bar ring mode (3 keys + ring on/off labels), achievements tier names (Bronze/Silver/Gold/Legendary), reset/seeMore/seeLess (~30 strings × 34 = ~1000 entries) via scripts/add-i18n-v1224b.mjs. Variants (es-AR, es-CL, …) inherit from their base locale automatically

  • Correctif

    BadgeGrid expanded view no longer duplicates the badge name on every tier row — the group title above already says "Zen Master", so the row now shows Tier I + the palier name (Bronze / Silver / Gold / Legendary, coloured per tier) + the unlock criterion description. Description wraps freely instead of being truncate'd

  • Correctif

    Backend gamification cycle-peak detection (web/src/lib/gamification.ts) — Zen Master / Pace Setter were silently mis-counted because processSync() used `prev.utilization` (the value just before reset) as the cycle peak instead of the actual maximum across the cycle. A run like 0% → 80% → 30% → 0% was wrongly counted as "under 50%" (peak appeared as 30). The peak is now tracked per-category as a running max, so consecutiveLow50/80 only increment when the cycle TRULY stayed under the threshold. Added `npm run seed:badges` to web/package.json so tier II/III rows can be re-seeded for users on the old DB schema

  • Correctif

    UsageIndicatorPrefs dropdown no longer hides behind NotificationPrefs — `.glass-card` uses backdrop-filter which creates a stacking context, so the dropdown's z-30 was trapped inside the card. The card is now lifted to z-20 only while a dropdown is open, then drops back to auto so the rest of the layout flow stays intact

  • Amélioré

    Ring-mode modules drop their resting border + tighten to `h-6 px-1` so they look like icon-buttons rather than chips inside the disclaimer bar. Auto-Reply's active-state border is gone too — `on` is signalled by green text + bg fill alone

  • Correctif

    Ring-mode chip no longer flashes in the composer for ~9 seconds on first page load — `loadFeaturePreferences()` is now awaited BEFORE the first `updateUsageDisplay()` call (it was running after, so the first inject ran with `chatBarRingMode=false` and dropped the chip in the composer until the next 15s poll cycle re-applied)

  • Correctif

    Ring-mode chip no longer "teleports" back to the composer between polls — every inject path (chip, Auto-Reply, Export) now BAILS OUT when ring mode is on but the disclaimer-bar host isn't in the DOM yet, instead of falling back to the composer. The master MutationObserver retries inject on every DOM mutation, so the chip lands in the bar on the very first paint when the bar appears

  • Correctif

    Ring-mode chip no longer drifts leftward as the optional Auto-Reply / Export buttons load 100-400ms after the chip — the host now uses a canonical DOM order `[Export, Auto-Reply, Chip]` so the chip is always last (rightmost under `justify-content: flex-end`). New `placeInRingHost()` helper finds the first existing later-sibling and `insertBefore`s, so insertion order doesn't matter

  • Correctif

    Ring-mode host width is forced to `100% box-sizing: border-box` and styles are re-applied on every resolution — without it, some Anthropic flex ancestors made the host shrink-to-fit content, making the modules drift "right" only after the next 10-15s poll. Disclaimer-bar children are double-gated by both a dataset flag and `display: none !important`, idempotently

  • Correctif

    New Claude Code web composer (claude.ai/code rebuild) — Anthropic shipped a fresh layout where the model selector and a new built-in usage gauge sit in a `.ml-auto.flex.items-center.gap-g4` row. Our previous /code injection code looked for `section#turn-form` and `[data-testid="model-selector-dropdown"]`, neither of which exist in the rebuild, so the UsageMeter % indicator silently disappeared. We now detect the rebuild by finding any `button[aria-haspopup="dialog"]` containing the official 12×12 progress-ring SVG (two stroked circles), regardless of language

  • Nouveau

    Replaced Anthropic's minimalist usage button with a richer UsageMeter version on the new Claude Code web — Claude's official chip is just a 12×12 ring with no number. Ours shows the percentage on the LEFT, the matching ring on the RIGHT plus a trend arrow (↑↑ / ↑ / = / ↓), color-coded (green <70% / orange 70-89% / red ≥90%) and animates between values with the digital-clock %-roll + arrow flip-blur the chat chip uses. The official button is hidden via display:none so the layout stays tight; UsageMeter's rich hover popover (5h session, weekly Sonnet/Opus, Claude Design 7d, Extra Usage) replaces Anthropic's sparse one

  • Correctif

    /code chip hover popover was rendering ~120px off-screen — the new composer is wrapped by an ancestor with `contain: layout` (and another with `will-change: transform`) which establishes a containing block for `position: fixed` descendants, so the tooltip's viewport coords resolved against THAT ancestor instead of the actual viewport. The tooltip is now portaled to <body> (escaping the broken containing block) and clamped horizontally + vertically so it never overflows. Tied to the wrapper via a MutationObserver so it cleans up on SPA navigation

  • Correctif

    Tooltip position calculation no longer drifts on the first open — `positionTooltip()` ran while the tooltip still had `display: none`, so `getBoundingClientRect()` returned 0×0 and the height fallback (200px) was off by 129px on real popovers (329px tall). We now reveal the tooltip BEFORE measuring, so the same JS tick paints the correctly-clamped position from the start

  • Nouveau

    Per-page Usage Indicator setting — new section in Settings → Usage Indicator lets you choose, for each of the three Claude pages (chat / Claude Code / Claude Design), which utilization bucket the on-page chip should show: 5h session, Sonnet 7d, Weekly 7d, Opus 7d, or Claude Design 7d. The full breakdown is still always available in the hover popover. Defaults: chat → 5h, Claude Code → 5h, Claude Design → 7d Design

  • Amélioré

    isCodePathname() now matches both `/code` (the new rebuild homepage) and `/code/<session-id>`, so the indicator (and the multi-account compact button) work whether you're on the Claude Code home or inside a session. The previous `.includes('/code/')` test missed the homepage entirely

  • Correctif

    Usage chart reset markers now use the actual resets_at from the API instead of walking backward by a fixed 5h interval — Claude changed the 5h window so a new cycle starts when you send your next message (not on a fixed clock boundary every 5h). Past reset lines in the 24h/7d charts were being drawn on the wrong tiles; they now come from the resets_at values stored on each history point, so every line corresponds to a real reset that actually happened

  • Correctif

    chrome.storage.local quota exceeded errors — an earlier internal bump of MAX_HISTORY_ITEMS (1 000 → 10 000 points per account per category, ×4 categories × multiple accounts) blew past chrome.storage.local's 10MB quota for users with 3+ accounts, causing background syncs to fail with `Resource::kQuotaBytes quota exceeded` and the usagemeter.app sync to time out. Cap is back to 2 000 points per account (~7 days at the 5-min cadence), 4 000 for the global aggregate. Existing oversized arrays get trimmed on first sync, and the save path now retries with progressively smaller caps if the quota errors persist (last-resort: keep only the global aggregate, which the charts can still read)

  • Correctif

    All 56 themes work again on claude.ai — Claude shipped a new color system (data-color-version="v2" on the html element) whose default rules have higher CSS specificity than our themes, so legacy selectors like [data-theme=claude][data-mode=dark] were being silently overridden. Every theme now carries both the legacy selector AND a v2-scoped variant ([data-color-version="v2"][data-theme=claude][data-mode=dark]) so it wins on both the old and new Claude builds

  • Correctif

    Claude Design (/design) chip popover no longer overflows off-page on hover — the tooltip used to open BELOW the chip with a centered transform, which pushed it off the bottom of the viewport since the composer lives at the bottom of the design page. It now opens ABOVE the chip, left-aligned to it (upper-right direction), with a subtle 4px slide-up animation

  • Nouveau

    At MAX usage with pay-as-you-go enabled, the /design chip now surfaces the extra credit burn inline (e.g. "MAX +€0.00") with a gentle 2s pulsing glow animation — previously only a tiny dot hinted that extra credits were being billed. Also fixed the stray double-percent glitch in the chip label ("MAX%" → "MAX", "67%%" → "67%")

  • Correctif

    "Hide Claude note" button works again — the "Claude is AI, verify responses" disclaimer under the composer was no longer being hidden when you picked "Hidden" in Customize → Shortcuts. The content-script handler (applyDisclaimer) had been dropped in a past refactor; the UI kept saving the setting but nothing applied it on claude.ai. Restored with a MutationObserver so it survives SPA navigation between chats

  • Correctif

    Custom disclaimer text now renders — in "Custom" mode the text you type in the popup is actually swapped in place of the default note (empty string falls back to the original). Uses a plain span with no link styling

  • Retiré

    Cache Timer feature retired — the live "Cache: 4m 32s" countdown next to the usage indicator is gone, along with its toggle in Settings → Features and its onboarding card. The 5-minute prompt-cache window is still very real on the API side, but surfacing a fixed clock added more noise than insight (Claude's actual cache hit rate depends on the request, not just elapsed time). Cache Timer translation keys cleaned out across all 34 locales

  • Amélioré

    Removed the custom cursor from usagemeter.app marketing pages (home, pricing, /cgv, /legal, /privacy, /terms, /fair-use, /support, /download, /bug-report) — native browser cursor is used everywhere now for a more standard feel

  • Nouveau

    Translations in all 34 locales for the new Usage Indicator settings (settings.usageIndicator.title/description/chatPage/codePage/designPage + bucketSession/Sonnet/Weekly/Opus/Design) and the Chat-Bar Ring Mode toggle (settings.features.chatBarRingMode + chatBarRingModeDesc, EN + FR; other locales fall back to the EN string)

Toutes les versions