Repository navigation
Releases: devore07/codex-reset-watcher
Release list
v0.11.0
Changelog
v0.11.0
- Add a saved Show Dock icon toggle in Settings. Turn it off to hide the
watcher from the Dock and Command-Tab while keeping its menu bar available.
Changes apply immediately and survive app restarts; the default remains on. - Keep the dashboard, Settings, and Quit accessible from the menu bar in either
mode, including after the desktop window is closed.
v0.10.0
- Adopt a subtly translucent system window background, native Liquid Glass
action buttons on macOS 26+, and softer shared card/row corners. - Remove opaque sidebar, detail, popover and picker layers that hid the system
material. Keep usage cards solid and preserve compact/detailed menu sizing. - Honor Reduce Transparency and Increase Contrast with opaque root surfaces;
retain macOS 14 support and native bordered buttons on earlier systems. - Build CI and release artifacts with Xcode 26.3 so downloads include the modern
macOS controls, with layout checks covering increased-contrast appearances.
v0.9.0
- Mark old/failed Codex readings consistently with Claude and hide menu-title
percentages after their reset time passes. - Add usage reset countdowns and last-updated labels to Compact mode, preserving
missing timing, failed readings and passed-reset states. - Add opt-in, silent local alerts for low overall capacity and Codex resets
expiring within 24 hours. Deduplicate warnings across refreshes and restarts;
ignore old, failed and cached data. - Add native launch at login and notification settings, accessible from the
dropdown gear or Command-comma. Both features are off by default.
v0.8.0
- Add a saved Compact / Detailed switch to the dropdown opened from the menu bar.
- Compact defaults to a 600-point popover with remaining usage, banked Codex reset
counts and expiration dates; Detailed expands to larger rows, timing and advice. - Both layouts hug their contents without scrolling or blank viewport space.
Preserve missing, blocked, old and expired readings and shared appearance. - Keep the desktop dashboard layout unchanged.
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
% | weekwhen weekly timing is missing and--% | weekwhen 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.mdfor 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/5hmenu-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 produced3 resetsin 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, orViewThatFitssizing 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
...
v0.10.0
Changelog
v0.10.0
- Adopt a subtly translucent system window background, native Liquid Glass
action buttons on macOS 26+, and softer shared card/row corners. - Remove opaque sidebar, detail, popover and picker layers that hid the system
material. Keep usage cards solid and preserve compact/detailed menu sizing. - Honor Reduce Transparency and Increase Contrast with opaque root surfaces;
retain macOS 14 support and native bordered buttons on earlier systems. - Build CI and release artifacts with Xcode 26.3 so downloads include the modern
macOS controls, with layout checks covering increased-contrast appearances.
v0.9.0
- Mark old/failed Codex readings consistently with Claude and hide menu-title
percentages after their reset time passes. - Add usage reset countdowns and last-updated labels to Compact mode, preserving
missing timing, failed readings and passed-reset states. - Add opt-in, silent local alerts for low overall capacity and Codex resets
expiring within 24 hours. Deduplicate warnings across refreshes and restarts;
ignore old, failed and cached data. - Add native launch at login and notification settings, accessible from the
dropdown gear or Command-comma. Both features are off by default.
v0.8.0
- Add a saved Compact / Detailed switch to the dropdown opened from the menu bar.
- Compact defaults to a 600-point popover with remaining usage, banked Codex reset
counts and expiration dates; Detailed expands to larger rows, timing and advice. - Both layouts hug their contents without scrolling or blank viewport space.
Preserve missing, blocked, old and expired readings and shared appearance. - Keep the desktop dashboard layout unchanged.
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
% | weekwhen weekly timing is missing and--% | weekwhen 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.mdfor 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/5hmenu-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 produced3 resetsin 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, orViewThatFitssizing 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 s...
v0.9.0
Changelog
v0.9.0
- Mark old/failed Codex readings consistently with Claude and hide menu-title
percentages after their reset time passes. - Add usage reset countdowns and last-updated labels to Compact mode, preserving
missing timing, failed readings and passed-reset states. - Add opt-in, silent local alerts for low overall capacity and Codex resets
expiring within 24 hours. Deduplicate warnings across refreshes and restarts;
ignore old, failed and cached data. - Add native launch at login and notification settings, accessible from the
dropdown gear or Command-comma. Both features are off by default.
v0.8.0
- Add a saved Compact / Detailed switch to the dropdown opened from the menu bar.
- Compact defaults to a 600-point popover with remaining usage, banked Codex reset
counts and expiration dates; Detailed expands to larger rows, timing and advice. - Both layouts hug their contents without scrolling or blank viewport space.
Preserve missing, blocked, old and expired readings and shared appearance. - Keep the desktop dashboard layout unchanged.
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
% | weekwhen weekly timing is missing and--% | weekwhen 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.mdfor 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/5hmenu-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 produced3 resetsin 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, orViewThatFitssizing 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 sharedCodexPalette/CodexStyledesign 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, ...
v0.7.3
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
% | weekwhen weekly timing is missing and--% | weekwhen 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.mdfor 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/5hmenu-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 produced3 resetsin 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, orViewThatFitssizing 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 sharedCodexPalette/CodexStyledesign 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_reachedusage 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 versu...
v0.7.2
Changelog
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
% | weekwhen weekly timing is missing and--% | weekwhen 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.mdfor 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/5hmenu-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 produced3 resetsin 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, orViewThatFitssizing 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 sharedCodexPalette/CodexStyledesign 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_reachedusage 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_secondsis 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.
...
v0.7.0
Changelog
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
% | weekwhen weekly timing is missing and--% | weekwhen 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.mdfor 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/5hmenu-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 produced3 resetsin 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, orViewThatFitssizing 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 sharedCodexPalette/CodexStyledesign 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_reachedusage 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_secondsis 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 checkedtime 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...
v0.6.1
Changelog
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
% | weekwhen weekly timing is missing and--% | weekwhen 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.mdfor 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/5hmenu-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 produced3 resetsin 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, orViewThatFitssizing 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 sharedCodexPalette/CodexStyledesign 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_reachedusage 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_secondsis 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 checkedtime 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 stalevisible whenever stale cached snapshots exist. - Shows elapsed reset windows as
nowinstead of rounding expired cached reset
tim...
v0.6.0
Changelog
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
% | weekwhen weekly timing is missing and--% | weekwhen 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.mdfor 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/5hmenu-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 produced3 resetsin 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, orViewThatFitssizing 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 sharedCodexPalette/CodexStyledesign 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_reachedusage 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_secondsis 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 checkedtime 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 stalevisible whenever stale cached snapshots exist. - Shows elapsed reset windows as
nowinstead of rounding expired cached reset
timers up to1m. - 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
theCodexTone/ reusable component layer for future visual changes. - Tightens the GitHub release workflow so tagged releases run tests, package t...
v0.5.1
Changelog
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
% | weekwhen weekly timing is missing and--% | weekwhen 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.mdfor 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/5hmenu-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 produced3 resetsin 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, orViewThatFitssizing 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 sharedCodexPalette/CodexStyledesign 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_reachedusage 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_secondsis 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 checkedtime 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 stalevisible whenever stale cached snapshots exist. - Shows elapsed reset windows as
nowinstead of rounding expired cached reset
timers up to1m. - 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
theCodexTone/ 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 staleaction in the desktop sidebar, desktop footer,
and menu dropdown so stale cached snapshots can be removed without cle...
v0.5.0
Changelog
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
% | weekwhen weekly timing is missing and--% | weekwhen 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.mdfor 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/5hmenu-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 produced3 resetsin 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, orViewThatFitssizing 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 sharedCodexPalette/CodexStyledesign 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_reachedusage 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_secondsis 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 checkedtime 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 stalevisible whenever stale cached snapshots exist. - Shows elapsed reset windows as
nowinstead of rounding expired cached reset
timers up to1m. - 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
theCodexTone/ 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 staleaction 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 staleso 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 wind...