Skip to content

v0.7.3

Choose a tag to compare

@github-actions github-actions released this 07 Sep 01:38
· 5 commits to main since this release
29fb8e5

Changelog

v0.7.3

  • Replace generic menu-bar service symbols with the OpenAI knot and Claude
    starburst, rendered as crisp monochrome vector templates.

  • Add a fully redacted, digest-pinned secret scan to CI and an installable local
    pre-push guard; document the public-history and release-archive audit.

v0.7.2

  • Alternate Codex and connected Claude weekly usage in the menu bar every 10
    seconds, with a service symbol, name, remaining percentage and reset weekday.
  • Mark old/failed Claude readings and withhold expired allowances until updated;
    hover for exact reset and receipt times. Disconnected Claude leaves Codex visible.
  • Keep rotation independent of the existing usage refresh schedules.
  • Compare Claude reset epochs directly to avoid date round-trip precision errors
    at the expiry boundary. The v0.7.1 tag failed release validation and was not published.

v0.7.0

  • Add a unified desktop Dashboard with Codex on the left and Claude on the right.
  • Keep provider loading, unavailable, expired and last-reported states independent,
    with shared Refresh and appearance controls.
  • Widen the desktop window to keep usage meters and reset expiry dates readable;
    retain Claude connection settings and cached Codex snapshots in the sidebar.

v0.6.1

  • Show server-reported Fable weekly usage beside Claude's five-hour and overall
    weekly limits, using the existing Desktop request and Keychain connection.
  • Keep Fable reset times independent; show missing/unreported values explicitly
    and never infer an included allowance or paid credit balance from Pro status.
  • Keep the menu compact by placing Claude Details beside the receipt timestamp.
  • Add Fable decoding, invalid/duplicate/expired window, privacy, report-compatibility,
    and three-meter/four-reset layout coverage.

v0.6.0

  • Add optional Claude Desktop usage polling using the existing desktop login;
    no CLI or browser extension is required. Five-hour and weekly limits include
    desktop and web activity on the same subscription.
  • Explain Keychain access in Connect, keep credentials and Desktop reports in
    memory, reject redirects, validate cookie domain hashes, and pause polling on
    rate limits. Preserve terminal status-line setup as an alternative source.
  • Clear prior values when Desktop login changes; retain receipt times on network
    failures. Disconnect stops checks without changing Claude's login.
  • Add synthetic cookie, request, response, and connection lifecycle tests. A live
    read-only request on 2026-09-06 returned both usage windows successfully.

0.5.1 - 2026-09-06

  • Keeps the initial terminal status-line report in Waiting for Claude Code
    until usage fields arrive. Malformed input still produces an unavailable state.
  • Adds a derived waiting flag to distinguish startup from a failed report,
    with backward-compatible reading of existing reports.
  • Updates the release and source-build documentation for this fork.

0.5.0 - 2026-09-06

  • Adds optional Claude Pro/Max five-hour and weekly remaining usage to the menu
    and desktop sidebar through terminal Claude Code's local status-line feed.
  • Adds explicit connection/disconnection, existing-command forwarding, and
    automatic discovery of standard CLI and Claude Desktop's native engine.
  • Labels observations with receipt times, preserves partial/unavailable states,
    and stops showing expired windows as current capacity.
  • Uses a wider connected menu with provider columns and paired Codex reset cards.
    The existing Codex menu-bar title and reset advice remain Codex-specific.
  • Packages a universal, credential-free helper with private atomic reports,
    container tests, and command-forwarding/secret checks in CI.
  • Requires terminal Claude Code activity; desktop-only Code sessions do not
    produce this feed. No Claude credentials, browser cookies, or account mutations
    are involved.

0.4.4 - 2026-07-12

  • Restores the weekly reset weekday to the compact menu bar title, for example
    57% | Sunday.
  • Keeps weekly as the only current menu-title metric while Codex is not
    returning the former 5-hour window.
  • Uses % | week when weekly timing is missing and --% | week when the
    weekly percentage is unavailable, without falling back to reset counts.
  • Documents the dormant 5-hour display design and restoration checklist in
    MENU_BAR_DISPLAY_PLAN.md for when Codex returns that window.

0.4.3 - 2026-07-12

  • Makes the macOS menu bar title show only the weekly remaining percentage.
  • Removes the Week / 5h menu-title selector and its persisted preference;
    weekly is now the single, consistent status metric.
  • Removes reset counts, reset dates, weekdays, and times from the compact menu
    bar title; those details remain available inside the dropdown.
  • Shows --% when Codex returns no trustworthy weekly percentage.
  • Adds regression tests for the reported case where three banked resets and a
    missing 5-hour window incorrectly produced 3 resets in the title.

0.4.2 - 2026-07-11

  • Removes the v0.4.1 screen-sized menu viewport that created large empty bands
    above and below the real content.
  • Lets the menu dropdown use its intrinsic SwiftUI height with no forced frame,
    ScrollView, or ViewThatFits sizing layer.
  • Reorders menu sections to Display settings, Current limits, then
    Banked Resets Expiration, with the usage nudge after the primary sections.
  • Renames the menu's reset section to Banked Resets Expiration.
  • Removes cached snapshots and stale-snapshot cleanup from the menu dropdown;
    those account-management controls remain in the full desktop app.
  • Adds a regression test for the required menu section order and label.

0.4.1 - 2026-07-11

  • Fixes the v0.4.0 menu-bar regression that could reopen the dropdown partway
    down and hide current limits or reset-credit expiry dates.
  • Removes the fixed 620-point dynamic-content cap. The dropdown now uses the
    active screen's available height and shows its full natural content whenever
    that screen can fit it.
  • Keeps scrolling only as a constrained-screen fallback, gives that fallback a
    deterministic viewport height, and resets it to the top whenever it appears
    or live data refreshes.
  • Adds regression tests for tall-screen expansion and short-screen fallback
    sizing.

0.4.0 - 2026-07-11

  • Makes missing data explicit: loading, partial, signed-out, failed, and cached
    states no longer masquerade as zero resets or fresh live limits.
  • Keeps the active account's live data separate from cached snapshots during
    auth changes, endpoint failures, and token rotation, preventing mixed-account
    snapshots and stale timestamps.
  • Uses the server reset count when available, shows missing-expiry rows when
    Codex reports credits without usable expiry details, and shows only available
    reset credits in the active detail view.
  • Improves reset advice for blocked limits, low 5-hour capacity, unknown reset
    counts, and missing timing data; cached snapshots use neutral last-seen copy.
  • Bounds hostile numeric/date/count inputs and validates semantically empty
    successful JSON responses before they can replace valid state.
  • Rejects empty auth tokens, unsafe redirects, and untrusted final response URLs;
    keeps the dedicated network session free of cookies and URL caches.
  • Expands unit coverage to 105 tests across account races, snapshot redaction,
    stale cleanup, hostile input, nudge decisions, endpoint trust, and UI tokens.
  • Makes release CI build universal arm64/x86_64 binaries and adds package scans
    for sensitive strings and tag/version drift.

0.3.8 - 2026-07-02

  • Makes the desktop window roughly 10% larger by default so the usage cards,
    reset expiry rows, nudge, and footer controls fit without the bottom content
    being clipped on first open.
  • Enforces the roomier minimum size on restored macOS windows, so users with an
    older saved too-short window frame get expanded instead of seeing the old
    clipped layout again.
  • Adds a design-system regression test for the desktop window size floor.

0.3.7 - 2026-07-02

  • Tightens the desktop layout so the active usage cards, all reset expiry rows,
    nudge, and footer controls fit in the default-height window without hiding
    the main content behind scrolling.
  • Fixes desktop reset expiry row overlap by separating label/detail text from
    the date column and removing the redundant status pill that could squeeze
    into an empty oval.
  • Makes usage cards, reset rows, header artwork, and the nudge card denser while
    preserving the shared CodexPalette / CodexStyle design system.
  • Rebalances the menu-bar dropdown after real menu QA with a wider popover,
    roomier row heights, and better reset/cached-snapshot breathing room.

0.3.6 - 2026-07-02

  • Refreshes the menu dropdown and desktop window around the uploaded 2026 design
    system: warmer light surfaces, dark gray dark mode surfaces, shared row/card
    styling, and a roomier readable menu scale.
  • Adds Light, Dark, and Auto appearance modes that apply to both SwiftUI content
    and the AppKit menu-bar app appearance.
  • Adds green, amber, and red usage-capacity bars with tested thresholds:
    60% or higher is green, 25-59% is amber, and below 25% is red; blocked usage
    windows still override with danger styling.
  • Moves live usage windows ahead of reset expiry and nudge content in the
    desktop detail view so current capacity is the first thing to scan.
  • Adds compact usage meters to the menu dropdown rows while preserving the
    active menu-bar title selector, reset expiry rows, and cached snapshot rows.
  • Adds design-system tests for appearance-mode mapping and usage-tone
    thresholds.

0.3.5 - 2026-06-30

  • Treats Codex allowed: false / limit_reached usage responses as a first-class
    blocked state in the nudge logic, menu dropdown, desktop usage cards, and
    status icon instead of falling back to ordinary capacity advice.
  • Stops guessing 5-hour versus weekly windows from endpoint order when
    limit_window_seconds is missing, and falls back to generic labeled usage
    rows until Codex returns a trustworthy duration.
  • Hardens cached snapshot date math against implausible reset epochs and marks
    snapshots with no usage or reset signals as stale.
  • Keeps missing-auth refreshes from stamping a fresh last checked time or
    leaving the UI selected on a cached snapshot that cannot be refreshed live.
  • Removes the raw account-id suffix fallback from account labels when Codex does
    not provide an email or name.

0.3.4 - 2026-06-30

  • Restores compact per-snapshot rows in the menu dropdown so cached snapshots
    select their detail view before opening the desktop window.
  • Keeps cached-account detail copy honest by labeling cached usage as last-seen
    data, not live limits.
  • Shows up to four reset expiry rows in the menu and includes the next hidden
    expiry cue when additional reset credits are available.
  • Shows explicit unavailable-expiry rows when Codex reports more available reset
    credits than it returns usable expiry records for.
  • Keeps Clear stale visible whenever stale cached snapshots exist.
  • Shows elapsed reset windows as now instead of rounding expired cached reset
    timers up to 1m.
  • Hardens refresh reliability for same-account token rotation, swapped usage
    window ordering, flexible numeric endpoint fields, exact trusted Codex endpoint
    checks, sanitized live error messages, and reset-credit partial failures that
    should not carry old expiry rows forward as fresh data.
  • Moves routine UI surfaces back onto light shared design tokens and documents
    the CodexTone / reusable component layer for future visual changes.
  • Tightens the GitHub release workflow so tagged releases run tests, package the
    app, verify the bundle version against the tag, check the code signature, and
    validate the versioned zip before upload.
  • Strips release binaries before signing so packaged apps do not retain local
    build/source paths in symbol metadata.
  • Cleans old versioned release zips before packaging so release uploads cannot
    accidentally include stale artifacts.
  • Documents versioned release zip assets in the install instructions.
  • Verifies the packaged app with local UI QA against the menu bar title,
    dropdown metric toggle, cached snapshot selection, and stale cleanup surfaces.

0.3.3 - 2026-06-26

  • Adds an explicit Clear stale action in the desktop sidebar, desktop footer,
    and menu dropdown so stale cached snapshots can be removed without clearing
    every cached snapshot.
  • Renames the selected stale snapshot action to Forget stale so removing a
    single stale record is easier to discover.
  • Adds a regression test for stale-snapshot cleanup persistence.

0.3.2 - 2026-06-25

  • Fixes a menu-dropdown regression where clicking cached accounts could create
    additional main windows instead of focusing the existing window.
  • Replaces the fragile desktop NavigationSplitView shell with a fixed two-pane
    sidebar/detail layout so cached-snapshot navigation cannot hide the sidebar.
  • Renames the former Other accounts sections to Cached snapshots so local
    last-seen records are not confused with linked/live Codex accounts.
  • Adds a small main-window presenter so menu actions reuse the registered main
    window and only create a new one if no main window exists.

0.3.1 - 2026-06-25

  • Fixes a v0.3.0 regression where the active account could be rejected with
    Codex returned a different account than the active login when the usage
    endpoint reported an account identifier in a different namespace than the
    local Codex Desktop auth context.
  • Uses the Codex Desktop auth context as the active snapshot key when available,
    and falls back to the usage response account ID only when auth has no stable
    account ID.
  • Adds a regression test that keeps active usage meters visible when the usage
    endpoint account ID differs from the auth context account ID.

0.3.0 - 2026-06-25

  • Adds local multi-account snapshots: the active Codex account refreshes live,
    while previously seen accounts remain available as cached last-seen records.
  • Adds a desktop sidebar with Active account and Other accounts sections,
    plus cached-account detail views, stale labels, Forget, and Clear cached
    controls.
  • Keeps the menu bar title active-account-only, and adds compact cached-account
    rows in the dropdown that open the desktop window.
  • Refactors refreshes around one loaded auth context so usage and reset-credit
    calls cannot mix account identities during a login switch.
  • Stores only derived snapshot fields under Application Support, with salted
    hashed account keys and no bearer tokens, raw auth JSON, raw endpoint JSON,
    full account IDs, user IDs, or reset credit IDs.
  • Adds tests for redaction, account-switch races, stale snapshots, missing auth,
    partial endpoint failures, duplicate labels across accounts, and deletion.

0.2.6 - 2026-06-25

  • Aligns the menu bar popover and desktop window around the same app identity,
    accent color, rounded type scale, and panel surface treatment.
  • Adds the checked-in header artwork to the menu popover header so both
    surfaces immediately read as Codex Reset Watcher.
  • Moves neutral emphasis away from system blue and back to the shared green
    operational accent used by reset, nudge, and usage-meter states.
  • Keeps usage-meter tracks visible after normalizing menu rows and desktop cards
    to the same panel surface.

0.2.5 - 2026-06-24

  • Adds a shared SwiftUI design-system layer for Codex Reset Watcher spacing,
    radii, typography, row sizing, and panel styling.
  • Updates the menu bar title to show the selected limit's next reset cue, for
    example 57% | Sunday for weekly or 80% | 9:50 PM for 5-hour.
  • Reworks the menu dropdown around stable icon, content, metric, and date
    columns so rows no longer crowd or bleed into the popover edge.
  • Splits reset-credit expiry dates into a deliberate weekday/date line and
    time line in the dropdown.
  • Aligns the main desktop window with the same panel, row, color, and type
    tokens used by the menu bar dropdown.
  • Reduces color drift by routing status colors through shared palette roles and
    removing the multi-color fallback artwork gradient.
  • Adds DESIGN_SYSTEM.md so future visual updates have concrete guardrails.

0.2.4 - 2026-06-24

  • Labels reset-credit expiry rows in the menu bar dropdown, for example
    Reset 1 expires: Fri, Jul 17 at 7:38 PM.
  • Adds reset timing labels under the 5-hour and weekly limit rows in the
    dropdown.
  • Adds weekdays to reset and expiry timestamps and improves the dropdown's
    contrast, row spacing, and type scale.
  • Shows the active Codex account label in the menu bar dropdown and main app.
  • Documents the conservative v0.3.0 multi-account snapshot plan.

0.2.3 - 2026-06-24

  • Adds a menu-bar display toggle in the dropdown so each user can choose
    whether the menu bar follows the weekly or 5-hour usage window.
  • Persists the selected display mode locally with macOS app storage.

0.2.2 - 2026-06-24

  • Fixes the visible macOS menu bar label so the status icon renders beside the
    weekly usage text.
  • Keeps the 0.2.1 weekly percentage behavior, but corrects the actual
    menu-bar presentation that could collapse to icon-only.

0.2.1 - 2026-06-24

  • Updates the menu bar title to show weekly usage remaining.
  • Keeps the status icon in the menu bar so the weekly meter is glanceable without opening the popover.

0.2.0 - 2026-06-19

  • Adds 5-hour and weekly Codex usage windows.
  • Adds a reset-use nudge based on remaining usage, reset timing, reset-credit expiry, and banked reset credits.
  • Adds expiry urgency states for reset rows, including this week, expires soon, ends today, and expired.
  • Adds Codex-adjacent header artwork and a more visual main window.
  • Adds a brighter high-contrast layout and generated reset-button app icon.
  • Adds unit tests for reset-expiry urgency and reset-use nudge thresholds.
  • Keeps usage and reset-credit endpoint failures independent so partial data can still render.

0.1.0

  • Initial public release.
  • Shows Codex reset credits and expiry dates.
  • Adds menu-bar status and manual refresh.
  • Packages as a simple macOS app bundle.