From a775a42fdceb41d6eee933fb972dafab5e456136 Mon Sep 17 00:00:00 2001 From: Sebastian Lobbe Date: Mon, 24 Aug 2026 02:01:36 +0200 Subject: [PATCH 1/2] Add banked reset confirmation dialog --- Makefile | 1 + package-lock.json | 4 +- package.json | 2 +- src/background/monitor.js | 56 ++++++++++++++--- src/codex/banked-resets/api.js | 17 +---- src/metadata.json | 2 +- src/panel/indicator.js | 31 +++++++++- src/panel/menu.js | 13 ++-- src/panel/reset-confirmation.js | 106 ++++++++++++++++++++++++++++++++ src/stylesheet.css | 36 +++++++++++ 10 files changed, 232 insertions(+), 36 deletions(-) create mode 100644 src/panel/reset-confirmation.js diff --git a/Makefile b/Makefile index 9573b11..3d57006 100644 --- a/Makefile +++ b/Makefile @@ -42,6 +42,7 @@ reload: gnome-extensions disable codex-meter@slobbe.github.io $(MAKE) install gnome-extensions enable codex-meter@slobbe.github.io + $(MAKE) clean clean: @rm -f $(ZIP) diff --git a/package-lock.json b/package-lock.json index ce7125c..b3d6360 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1,12 +1,12 @@ { "name": "codex-meter", - "version": "0.9.2", + "version": "0.9.3", "lockfileVersion": 3, "requires": true, "packages": { "": { "name": "codex-meter", - "version": "0.9.2", + "version": "0.9.3", "license": "GPL-3.0-or-later", "devDependencies": { "prettier": "^3.9.6", diff --git a/package.json b/package.json index 3efb19e..9c93f71 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "codex-meter", - "version": "0.9.2", + "version": "0.9.3", "description": "Monitor and manage Codex usage limits", "type": "module", "private": true, diff --git a/src/background/monitor.js b/src/background/monitor.js index 72ff6a6..c548321 100644 --- a/src/background/monitor.js +++ b/src/background/monitor.js @@ -12,9 +12,11 @@ import { listCodexBankedResets, readCachedCodexBankedResets, redeemCodexBankedReset, - redeemNextCodexBankedReset, } from "../codex/banked-resets/api.js"; -import { selectCreditExpiringWithin } from "../codex/banked-resets/response.js"; +import { + selectCreditExpiringWithin, + selectCreditToRedeem, +} from "../codex/banked-resets/response.js"; import { PeriodicTask } from "./periodic-task.js"; import { formatRefreshFailure } from "./refresh-error-message.js"; @@ -49,6 +51,8 @@ export class CodexMonitor { this._lastBankedResetRefreshAt = null; this._bankedResetRefreshPromise = null; this._bankedResetRefreshCancellable = null; + this._preparingBankedReset = false; + this._prepareBankedResetCancellable = null; this._redeemingBankedReset = false; this._redeemBankedResetCancellable = null; this._stopped = false; @@ -63,6 +67,7 @@ export class CodexMonitor { errorMessage: this._errorMessage, cachedFailureMessage: this._cachedFailureMessage, bankedResetCount: this._bankedResetCount, + preparingBankedReset: this._preparingBankedReset, redeemingBankedReset: this._redeemingBankedReset, }; } @@ -85,6 +90,8 @@ export class CodexMonitor { this._refreshCancellable = null; this._bankedResetRefreshCancellable?.cancel(); this._bankedResetRefreshCancellable = null; + this._prepareBankedResetCancellable?.cancel(); + this._prepareBankedResetCancellable = null; this._redeemBankedResetCancellable?.cancel(); this._redeemBankedResetCancellable = null; this._settings.disconnect(this._autoApplyChangedId); @@ -126,18 +133,46 @@ export class CodexMonitor { } } - async redeemBankedReset() { - if (this._stopped || this._redeemingBankedReset) return; - if (this._bankedResetCount !== null && this._bankedResetCount <= 0) { - this._notify("No banked Codex resets are available to redeem."); - return; + async prepareBankedReset() { + if (this._stopped || this._preparingBankedReset || this._redeemingBankedReset) return null; + const cancellable = new Gio.Cancellable(); + this._preparingBankedReset = true; + this._prepareBankedResetCancellable = cancellable; + this._emitChange(); + try { + const response = await listCodexBankedResets({ cancellable }); + if (this._stopped) return null; + this._bankedResetCount = Math.max(0, response.available_count); + this._lastBankedResetRefreshAt = Math.floor(Date.now() / 1000); + const credit = selectCreditToRedeem(response.credits); + if (!credit) { + this._bankedResetCount = 0; + this._notify("No banked Codex resets are available to redeem."); + } + return credit; + } catch (error) { + if (isCancellationError(error) || this._stopped) return null; + this._notify(formatBankedResetPreparationFailure(error)); + return null; + } finally { + if (this._prepareBankedResetCancellable === cancellable) { + this._prepareBankedResetCancellable = null; + } + if (!this._stopped) { + this._preparingBankedReset = false; + this._emitChange(); + } } + } + + async redeemBankedReset(creditId) { + if (this._stopped || this._redeemingBankedReset) return; const cancellable = new Gio.Cancellable(); this._redeemingBankedReset = true; this._redeemBankedResetCancellable = cancellable; this._emitChange(); try { - await redeemNextCodexBankedReset({ cancellable }); + await redeemCodexBankedReset(creditId, { cancellable }); if (this._stopped) return; this._notify("Banked Codex reset redeemed."); await this.refreshBankedResets(cancellable); @@ -328,6 +363,11 @@ export class CodexMonitor { } } +function formatBankedResetPreparationFailure(error) { + if (isCodexError(error)) return error.message; + return "Unable to load banked Codex reset details. Try again later."; +} + function formatBankedResetFailure(error) { if (isCodexError(error)) return error.message; const message = diff --git a/src/codex/banked-resets/api.js b/src/codex/banked-resets/api.js index 6026955..d2068d5 100644 --- a/src/codex/banked-resets/api.js +++ b/src/codex/banked-resets/api.js @@ -1,9 +1,8 @@ import GLib from "gi://GLib"; import { fetchJson } from "../../io/http.js"; -import { CodexError } from "../error.js"; import { readBankedResetSnapshot, writeBankedResetSnapshot } from "./store.js"; import { getCodexCredentials } from "../auth/auth.js"; -import { selectCreditToRedeem, toListResponse } from "./response.js"; +import { toListResponse } from "./response.js"; const CODEX_BANKED_RESETS_URL = "https://chatgpt.com/backend-api/wham/rate-limit-reset-credits"; @@ -41,20 +40,6 @@ export async function readCachedCodexBankedResets() { return await readBankedResetSnapshot(); } -export async function redeemNextCodexBankedReset(options = {}) { - const list = await listCodexBankedResets(options); - const credit = selectCreditToRedeem(list.credits); - if (!credit) { - throw new CodexError( - "unexpected-response", - "No banked Codex resets are available to redeem.", - "Codex banked reset redemption was requested with zero available credits.", - ); - } - await redeemCodexBankedReset(credit.id, options); - return credit; -} - export async function redeemCodexBankedReset(creditId, options = {}) { const response = await consumeCodexBankedReset(creditId, options); try { diff --git a/src/metadata.json b/src/metadata.json index b0793ab..c0c3c44 100644 --- a/src/metadata.json +++ b/src/metadata.json @@ -6,5 +6,5 @@ "settings-schema": "org.gnome.shell.extensions.codex-meter", "url": "https://github.com/slobbe/codex-meter", "license": "GPL-3.0-or-later", - "version-name": "0.9.2" + "version-name": "0.9.3" } diff --git a/src/panel/indicator.js b/src/panel/indicator.js index 8173cd1..aa567d7 100644 --- a/src/panel/indicator.js +++ b/src/panel/indicator.js @@ -6,6 +6,7 @@ import St from "gi://St"; import * as PanelMenu from "resource:///org/gnome/shell/ui/panelMenu.js"; import { readSettings } from "../preferences/settings.js"; import { CodexMeterPopupMenu } from "./menu.js"; +import { showBankedResetConfirmation } from "./reset-confirmation.js"; import { UsageBar } from "./usage-bar.js"; import { createMenuViewModel, createPanelBarViewModel } from "./view-model.js"; @@ -26,6 +27,7 @@ export class CodexMeterIndicator extends PanelMenu.Button { }; this._refreshSpinId = 0; this._menuSyncId = 0; + this._resetConfirmationDialog = null; this._destroyed = false; this._panelBox = new St.BoxLayout({ y_align: Clutter.ActorAlign.CENTER, @@ -91,6 +93,8 @@ export class CodexMeterIndicator extends PanelMenu.Button { this._settings.disconnect(this._settingsChangedId); this._settingsChangedId = 0; } + this._resetConfirmationDialog?.destroy(); + this._resetConfirmationDialog = null; super.destroy(); } @@ -101,7 +105,7 @@ export class CodexMeterIndicator extends PanelMenu.Button { void this._refreshUsage(); }, onRedeemBankedReset: () => { - void this._redeemBankedReset(); + void this._confirmBankedReset(); }, onOpenPreferences: () => { this.menu.close(); @@ -147,11 +151,30 @@ export class CodexMeterIndicator extends PanelMenu.Button { } } - async _redeemBankedReset() { + async _confirmBankedReset() { + if (this._destroyed || this._resetConfirmationDialog) return; + const credit = await this._monitor.prepareBankedReset(); + if (this._destroyed || !credit) return; + this.menu.close(); + let dialog = null; + const clearDialog = () => { + if (this._resetConfirmationDialog === dialog) this._resetConfirmationDialog = null; + }; + dialog = showBankedResetConfirmation(credit, { + onConfirm: () => { + clearDialog(); + void this._redeemBankedReset(credit.id); + }, + onCancel: clearDialog, + }); + this._resetConfirmationDialog = dialog; + } + + async _redeemBankedReset(creditId) { if (this._destroyed) return; this._startRefreshSpin(); try { - await this._monitor.redeemBankedReset(); + await this._monitor.redeemBankedReset(creditId); } finally { if (!this._destroyed) this._stopRefreshSpin(); } @@ -220,6 +243,7 @@ export class CodexMeterIndicator extends PanelMenu.Button { errorMessage, cachedFailureMessage, bankedResetCount, + preparingBankedReset, redeemingBankedReset, } = this._monitor.state; const viewModel = createMenuViewModel( @@ -241,6 +265,7 @@ export class CodexMeterIndicator extends PanelMenu.Button { this._popupMenu.setTrend(viewModel.trend); this._popupMenu.setBankedResets({ count: bankedResetCount, + preparing: preparingBankedReset, redeeming: redeemingBankedReset, }); this._popupMenu.footerItem.planLabel.text = viewModel.plan; diff --git a/src/panel/menu.js b/src/panel/menu.js index be93b08..4333b93 100644 --- a/src/panel/menu.js +++ b/src/panel/menu.js @@ -91,15 +91,18 @@ export class CodexMeterPopupMenu { this.statusItem.messageLabel.text = message ?? ""; } - setBankedResets({ count, redeeming }) { - const canRedeem = !redeeming && count !== null && count > 0; + setBankedResets({ count, preparing, redeeming }) { + const busy = preparing || redeeming; + const canRedeem = !busy && count !== null && count > 0; this.headerItem.redeemButton.visible = count !== null; this.headerItem.redeemButton.reactive = canRedeem; this.headerItem.redeemButton.can_focus = canRedeem; this.headerItem.redeemButton.opacity = canRedeem ? 255 : 150; - this.headerItem.redeemButtonLabel.text = redeeming - ? "Resetting…" - : `Reset limits (${count ?? 0})`; + this.headerItem.redeemButtonLabel.text = preparing + ? "Loading…" + : redeeming + ? "Resetting…" + : `Reset limits (${count ?? 0})`; } _createUsageItem(title) { diff --git a/src/panel/reset-confirmation.js b/src/panel/reset-confirmation.js new file mode 100644 index 0000000..d6325a7 --- /dev/null +++ b/src/panel/reset-confirmation.js @@ -0,0 +1,106 @@ +import Clutter from "gi://Clutter"; +import St from "gi://St"; +import * as ModalDialog from "resource:///org/gnome/shell/ui/modalDialog.js"; + +export function showBankedResetConfirmation(credit, { onConfirm, onCancel }) { + const dialog = new ModalDialog.ModalDialog({ destroyOnClose: true }); + const content = new St.BoxLayout({ + vertical: true, + style_class: "cx-reset-dialog-content", + }); + const title = createWrappingLabel("Apply banked reset?", "cx-reset-dialog-title"); + const message = createWrappingLabel( + "This will consume the following reset and reset your current Codex usage limits. This action cannot be undone.", + "cx-reset-dialog-message", + ); + const creditTitle = createWrappingLabel( + credit.title || "Usage limit reset", + "cx-reset-dialog-credit-title", + ); + + content.add_child(title); + content.add_child(message); + content.add_child(creditTitle); + + if (credit.description) { + content.add_child(createWrappingLabel(credit.description, "cx-reset-dialog-description")); + } + + const details = new St.BoxLayout({ + vertical: true, + style_class: "cx-reset-dialog-details", + }); + addDetail(details, "Type", formatResetType(credit.reset_type)); + addDetail(details, "Granted", formatDate(credit.granted_at)); + addDetail(details, "Expires", formatDate(credit.expires_at)); + if (details.get_n_children() > 0) content.add_child(details); + + dialog.contentLayout.add_child(content); + dialog.setButtons([ + { + label: "Cancel", + action: () => { + dialog.close(); + onCancel(); + }, + key: Clutter.KEY_Escape, + }, + { + label: "Apply reset", + action: () => { + dialog.close(); + onConfirm(); + }, + default: true, + }, + ]); + dialog.open(); + return dialog; +} + +function addDetail(container, label, value) { + if (!value) return; + const row = new St.BoxLayout({ + style_class: "cx-reset-dialog-detail-row", + }); + row.add_child( + new St.Label({ + text: label, + y_align: Clutter.ActorAlign.START, + style_class: "cx-reset-dialog-detail-label", + }), + ); + row.add_child(createWrappingLabel(value, "cx-reset-dialog-detail-value")); + container.add_child(row); +} + +function createWrappingLabel(text, styleClass) { + const label = new St.Label({ + text, + x_expand: true, + style_class: styleClass, + }); + label.clutter_text.line_wrap = true; + label.clutter_text.ellipsize = 0; + return label; +} + +function formatResetType(value) { + if (!value) return null; + const words = value.replaceAll("_", " "); + return `${words.charAt(0).toUpperCase()}${words.slice(1)}`; +} + +function formatDate(value) { + if (!value) return null; + const date = new Date(value); + if (!Number.isFinite(date.getTime())) return null; + return date.toLocaleString("en-GB", { + day: "2-digit", + month: "short", + year: "numeric", + hour: "2-digit", + minute: "2-digit", + hour12: false, + }); +} diff --git a/src/stylesheet.css b/src/stylesheet.css index 4c542bb..20ce350 100644 --- a/src/stylesheet.css +++ b/src/stylesheet.css @@ -222,3 +222,39 @@ .cx-reset-button:active { background-color: rgba(255, 255, 255, 0.24); } + +.cx-reset-dialog-content { + width: 28em; + spacing: 12px; +} + +.cx-reset-dialog-title { + font-size: 1.2em; + font-weight: 700; +} + +.cx-reset-dialog-message, +.cx-reset-dialog-description, +.cx-reset-dialog-detail-label { + opacity: 0.75; +} + +.cx-reset-dialog-credit-title { + font-weight: 700; +} + +.cx-reset-dialog-details { + spacing: 6px; +} + +.cx-reset-dialog-detail-row { + spacing: 12px; +} + +.cx-reset-dialog-detail-label { + min-width: 5.5em; +} + +.cx-reset-dialog-detail-value { + text-align: right; +} From 26d733487506c790a5466a645f4913c285e45da1 Mon Sep 17 00:00:00 2001 From: Sebastian Lobbe Date: Tue, 25 Aug 2026 22:02:32 +0200 Subject: [PATCH 2/2] Center README title and add preferences screenshot --- README.md | 8 ++++---- docs/assets/screens/preferences.png | Bin 0 -> 56731 bytes 2 files changed, 4 insertions(+), 4 deletions(-) create mode 100644 docs/assets/screens/preferences.png diff --git a/README.md b/README.md index e268a37..7a6d5a8 100644 --- a/README.md +++ b/README.md @@ -1,7 +1,7 @@ -# Codex Meter - -Monitor and manage Codex usage limits. - +
+

Codex Meter

+

Monitor and manage Codex usage limits.

+

Codex Meter popup preview

diff --git a/docs/assets/screens/preferences.png b/docs/assets/screens/preferences.png new file mode 100644 index 0000000000000000000000000000000000000000..a5a83a9b58c5ff0a15808cd7eab932456641a299 GIT binary patch literal 56731 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