Skip to content

Releases

NotchWatch v0.3.1

Choose a tag to compare

@github-actions github-actions released this 25 Sep 14:33
7cabd01

Fixed

  • No app icon — NotchWatch.app (and the .dmg) shipped with the default generic icon in v0.3.0. The build now rasterizes the brand SVG to every size iconutil needs and packs a real .icns into the bundle before signing.
  • brew install 404 — the repository was private, so unauthenticated release-asset downloads (what brew's cask installer does) always 404'd. The repo is now public.

Notes

  • Homebrew 6.0+ requires a one-time brew trust --cask lixeas/notchwatch/notch-watch before the first install of a non-official tap — documented in the README, not new in this release.

NotchWatch v0.3.0

Choose a tag to compare

@github-actions github-actions released this 25 Sep 13:57
19dd7c5

Added

  • English / French toggle in Settings — switches every user-facing string app-wide (menu bar, dropdown, Settings, error messages), defaults to English.
  • Estimated billing cycle shown below the usage bar in the dropdown — Anthropic's usage API doesn't expose real billing-period dates, so this is a plainly-labeled calendar-month approximation.
  • VoiceOver labels on the menu bar item and refresh button — previously the app's core readout had no accessible name at all.
  • Motion: usage numbers roll instead of snapping on refresh, the progress bar eases to its new width, dropdown states crossfade. Respects Reduce Motion throughout.
  • Custom brand mark (light/dark SVG) replacing the generic cpu SF Symbol in the dropdown header.
  • Issue templates (bug report / feature request forms) and a real MIT LICENSE file (was referenced by name only before).

Changed

  • Menu bar icon redesigned: now shows <percent>% • $<amount> as colored text instead of a filled progress bar — the percentage itself carries the status color (green / orange / red), no separate fill.
  • Settings window title now follows the selected language (was hardcoded to French regardless of setting).
  • README rewritten to match the current app and installation flow.

Fixed

  • Error text contrast (magenta) in dark mode — was under the WCAG AA threshold.
  • Manual token field in Settings no longer writes to the Keychain on every keystroke (debounced).
  • 401/403 API responses now show an actionable "token invalid or expired" message instead of a raw status code.
  • Xcode warning: dead nil-coalescing on a non-optional DateIntervalFormatter result.

Known limitations

  • The billing cycle range is a calendar-month estimate, not Anthropic's actual billing period — there is no API field for it.
  • No custom .icns/app icon in the build yet — the app and .dmg still use the default generic icon (the brand SVGs exist but aren't wired into codesign/dmg packaging).
  • Not notarized (no Apple Developer Program account) — first launch needs a right-click → Open, or xattr -cr.
  • No OAuth refresh-token flow: when the Claude Code token expires, re-run claude login or paste a fresh token in Settings.

ClaudeNotchBar v0.2.0

Choose a tag to compare

@github-actions github-actions released this 24 Sep 22:10

Added

  • Settings window — paste a manual auth token override (auto-saved as you type, useful when the Claude Code token expires or to avoid repeated Keychain prompts), configurable refresh interval (30s–30min), and a "launch at login" toggle (SMAppService).
  • Menu bar icon as a progress pill — shows the consumed amount centered on a color-coded bar (green / orange / red) instead of plain text.
  • Gradient credit bar — the popover's consumption bar now blends green → orange → red across the 50%/80% thresholds instead of jumping between flat colors.
  • 5h / 7-day rate-limit windows displayed in the popover (previously fetched but unused).
  • Host Grotesk typeface and a 3-section popover layout (title / consumption / settings-quit), each following light/dark mode.
  • CI: test.yml (build + swift test on a macOS runner, every push/PR) and release.yml (tag vX.Y.Z → signed .app, .dmg, GitHub Release, Homebrew cask bump).

Fixed

  • Keychain token parsing — the access token is nested under claudeAiOauth.accessToken in Claude Code's stored credentials, not at the top level; the app never authenticated before this fix.
  • Menu bar icon showing no color — MenuBarExtra's label: is hosted by NSStatusItem.button, which silently ignores custom Shape fills and font modifiers (confirmed via Apple Developer Forums). The pill is now pre-rendered to an NSImage via ImageRenderer instead of passed as a live SwiftUI view.
  • "Unable to update Font Descriptor's weight" console warning — chaining .fontWeight() on a custom static font is unreliable; each weight now references its own .ttf by exact PostScript name.
  • Settings window not appearing — .accessory apps (no Dock icon) never become frontmost automatically; openWindow() now pairs with NSApp.activate(ignoringOtherApps:).
  • Illegible buttons in dark mode — the title/bottom section backgrounds used a fixed Color.gray that didn't darken; switched to adaptive Color.primary.opacity().
  • Progress bar losing its color — ProgressView().tint() wasn't reliably applied in this context; replaced by a custom Shape-based bar (also the fix that enabled the gradient above).

Known limitations

  • Not notarized (no Apple Developer Program account) — first launch needs a right-click → Open, or xattr -cr.
  • No reset date shown for the monthly credit limit: Anthropic's /api/oauth/usage doesn't expose one for extra_usage (confirmed) — only the Admin API (different credential entirely) has billing-cycle data.
  • No OAuth refresh-token flow: when the Claude Code token expires, re-run claude login or paste a fresh token in Settings.