From 27ca4685ec7c25849e9cc149b64edd7faedd5b3f Mon Sep 17 00:00:00 2001 From: Steven Coaila Date: Sun, 20 Sep 2026 22:13:02 -0500 Subject: [PATCH 1/4] feat(history): show upcoming weekly resets in calendar --- .../Resources/en.lproj/Localizable.strings | 3 + .../Resources/es.lproj/Localizable.strings | 3 + .../TokenGaugeApp/Support/HistoryReset.swift | 23 ++++++++ .../Views/HistoryCalendarView.swift | 40 +++++++++++-- .../Views/HistoryDayCardView.swift | 10 +++- .../Views/HistoryPanelView.swift | 59 +++++++++++++++++-- Sources/TokenGaugeApp/Views/PopoverView.swift | 13 +++- .../HistoryResetTests.swift | 48 +++++++++++++++ 8 files changed, 186 insertions(+), 13 deletions(-) create mode 100644 Sources/TokenGaugeApp/Support/HistoryReset.swift create mode 100644 Tests/TokenGaugeAppTests/HistoryResetTests.swift diff --git a/Sources/TokenGaugeApp/Resources/en.lproj/Localizable.strings b/Sources/TokenGaugeApp/Resources/en.lproj/Localizable.strings index f9a74d5..9c0ba71 100644 --- a/Sources/TokenGaugeApp/Resources/en.lproj/Localizable.strings +++ b/Sources/TokenGaugeApp/Resources/en.lproj/Localizable.strings @@ -191,3 +191,6 @@ "pace.info_retention" = "When no new usage is recorded, the last active pace stays available with its date. Measurements are stored only on this Mac."; "pace.info_saved" = "Showing the last measurement with usage while waiting for new data."; "account.current" = "Account: %@"; + +"history.upcoming_resets" = "Upcoming weekly resets"; +"history.reset" = "Reset"; diff --git a/Sources/TokenGaugeApp/Resources/es.lproj/Localizable.strings b/Sources/TokenGaugeApp/Resources/es.lproj/Localizable.strings index 360a00a..0032f51 100644 --- a/Sources/TokenGaugeApp/Resources/es.lproj/Localizable.strings +++ b/Sources/TokenGaugeApp/Resources/es.lproj/Localizable.strings @@ -191,3 +191,6 @@ "pace.info_retention" = "Si no se registra consumo nuevo, conservamos el último ritmo activo con su fecha. Las mediciones se guardan solo en este Mac."; "pace.info_saved" = "Mostramos la última medición con consumo mientras llegan datos nuevos."; "account.current" = "Cuenta: %@"; + +"history.upcoming_resets" = "Próximos reinicios semanales"; +"history.reset" = "Reinicio"; diff --git a/Sources/TokenGaugeApp/Support/HistoryReset.swift b/Sources/TokenGaugeApp/Support/HistoryReset.swift new file mode 100644 index 0000000..7e624cf --- /dev/null +++ b/Sources/TokenGaugeApp/Support/HistoryReset.swift @@ -0,0 +1,23 @@ +import Foundation +import TokenGaugeCore + +struct HistoryReset: Identifiable, Equatable { + let provider: UsageProvider + let window: QuotaWindow + let date: Date + var id: String { provider.rawValue + ":" + window.id } + + static func upcoming(provider: UsageProvider, windows: [QuotaWindow], now: Date = Date()) -> [Self] { + windows.compactMap { window in + guard window.durationMinutes == 10080, let date = window.resetsAt, date > now else { return nil } + return Self(provider: provider, window: window, date: date) + }.sorted { $0.date < $1.date } + } + + @MainActor var label: String { + let locale = Locale(identifier: LocalizationManager.shared.language.rawValue) + let name = (provider == .codex ? "provider.codex" : "provider.claude_short").localized + return name + " · " + UsageFormatters.windowName(window) + " · " + + date.formatted(.dateTime.weekday(.abbreviated).day().month(.abbreviated).hour().minute().locale(locale)) + } +} diff --git a/Sources/TokenGaugeApp/Views/HistoryCalendarView.swift b/Sources/TokenGaugeApp/Views/HistoryCalendarView.swift index b062dc4..5af03dd 100644 --- a/Sources/TokenGaugeApp/Views/HistoryCalendarView.swift +++ b/Sources/TokenGaugeApp/Views/HistoryCalendarView.swift @@ -9,6 +9,7 @@ struct HistoryCalendarView: NSViewRepresentable { let focusID: String var hoverEnabled = true var accent: Color = Color(nsColor: .labelColor) + var resets: [HistoryReset] = [] var pinnedDayKey: String? var pinSafeFrames: [CGRect] = [] var onHoverCard: @MainActor (String?, HistoryDayCardAnchor?) -> Void = { _, _ in } @@ -83,6 +84,7 @@ final class HistoryCalendarScrollView: NSScrollView { final class HistoryCalendarCanvas: NSView { private var days: [HistoryCalendarDay] = [] private var providers: [UsageProvider] = [] + private var resets: [HistoryReset] = [] private var selected: String? private var pinned: String? private var hoverEnabled = true @@ -137,6 +139,7 @@ final class HistoryCalendarCanvas: NSView { let newToday = Calendar.current.startOfDay(for: Date()) let changed = providers != value.providers || locale != language || today != newToday + || resets != value.resets || accentColor != value.accent || days.count != value.days.count || !zip(days, value.days).allSatisfy { $0.id == $1.id && $0.date == $1.date && $0.totals == $1.totals } @@ -144,6 +147,7 @@ final class HistoryCalendarCanvas: NSView { selected = value.selectedDayKey guard changed || selectionChanged else { return } if changed { + resets = value.resets days = value.days providers = value.providers accentColor = value.accent @@ -286,6 +290,24 @@ final class HistoryCalendarCanvas: NSView { NSColor.labelColor.setFill() NSBezierPath(ovalIn: rect.insetBy(dx: 3, dy: 3)).fill() } + let resetProviders = providers.filter { provider in + resets.contains { $0.provider == provider && Calendar.current.isDate($0.date, inSameDayAs: day.date) } + } + if !resetProviders.isEmpty { + for (part, provider) in resetProviders.enumerated() { + NSGraphicsContext.saveGraphicsState() + NSBezierPath( + rect: NSRect( + x: rect.minX - 1 + CGFloat(part) * (rect.width + 2) / CGFloat(resetProviders.count), + y: rect.minY - 1, width: (rect.width + 2) / CGFloat(resetProviders.count), + height: rect.height + 2) + ).addClip() + color(provider).setStroke() + path.lineWidth = 2 + path.stroke() + NSGraphicsContext.restoreGraphicsState() + } + } } } @@ -334,7 +356,7 @@ final class HistoryCalendarCanvas: NSView { override func mouseDown(with event: NSEvent) { guard let index = index(at: convert(event.locationInWindow, from: nil)), days.indices.contains(index), - days[index].date <= today + isEnabled(at: index) else { onDismissCard?() cancelHoverCard() @@ -402,7 +424,7 @@ final class HistoryCalendarCanvas: NSView { guard hoverIndex != index else { return } cancelHoverCard() hoverIndex = index - guard days.indices.contains(index), days[index].date <= today else { return } + guard days.indices.contains(index), isEnabled(at: index) else { return } let key = days[index].id let work = DispatchWorkItem { [weak self] in MainActor.assumeIsolated { @@ -430,7 +452,7 @@ final class HistoryCalendarCanvas: NSView { } func select(_ index: Int) { - guard days.indices.contains(index), days[index].date <= today, days[index].id != selected else { return } + guard days.indices.contains(index), isEnabled(at: index), days[index].id != selected else { return } onSelect?(days[index].id) } @@ -453,11 +475,19 @@ final class HistoryCalendarCanvas: NSView { } else { usage = "" } - return prefix + date + ": " + totals + usage + let resetText = resets.filter { Calendar.current.isDate($0.date, inSameDayAs: day.date) } + .map { "history.reset".localized + " · " + $0.label }.joined(separator: "\n") + return prefix + date + ": " + totals + usage + (resetText.isEmpty ? "" : "\n" + resetText) } func accessibilityLabel(at index: Int) -> String { descriptions.indices.contains(index) ? descriptions[index] : "" } - func isEnabled(at index: Int) -> Bool { days.indices.contains(index) && days[index].date <= today } + func isEnabled(at index: Int) -> Bool { + days.indices.contains(index) + && (days[index].date <= today + || resets.contains { + Calendar.current.isDate($0.date, inSameDayAs: days[index].date) + }) + } func isSelected(at index: Int) -> Bool { days.indices.contains(index) && days[index].id == selected } } diff --git a/Sources/TokenGaugeApp/Views/HistoryDayCardView.swift b/Sources/TokenGaugeApp/Views/HistoryDayCardView.swift index e6f116f..5d28667 100644 --- a/Sources/TokenGaugeApp/Views/HistoryDayCardView.swift +++ b/Sources/TokenGaugeApp/Views/HistoryDayCardView.swift @@ -38,6 +38,7 @@ enum HistoryDayCardPlacement { struct HistoryDayCardView: View { let day: HistoryCalendarDay let providers: [UsageProvider] + var resets: [HistoryReset] = [] let isToday: Bool let isPinned: Bool let currentStreak: Int @@ -51,7 +52,14 @@ struct HistoryDayCardView: View { var body: some View { VStack(alignment: .leading, spacing: 8) { header - if rows.isEmpty { + ForEach(resets) { reset in + Text("history.reset".localized + " · " + reset.label) + .font(.system(size: 10)).foregroundStyle(color(reset.provider)) + .fixedSize(horizontal: false, vertical: true) + } + if day.date > Date() { + EmptyView() + } else if rows.isEmpty { Text("history.no_activity".localized).font(.system(size: 10)).foregroundStyle(.secondary) } else { let percentages = HistoryDayCardPlacement.percentages(rows.map { day.tokens(for: $0) ?? 0 }) diff --git a/Sources/TokenGaugeApp/Views/HistoryPanelView.swift b/Sources/TokenGaugeApp/Views/HistoryPanelView.swift index 5df66aa..0596137 100644 --- a/Sources/TokenGaugeApp/Views/HistoryPanelView.swift +++ b/Sources/TokenGaugeApp/Views/HistoryPanelView.swift @@ -6,6 +6,7 @@ struct HistoryPanelView: View { @ObservedObject var model: HistoryDashboardModel @Binding var mode: HistoryMode let providers: [UsageProvider] + var resets: [HistoryReset] = [] var compact = false @State private var calendarFocusRequest = 0 @State private var showingDetails = false @@ -26,7 +27,7 @@ struct HistoryPanelView: View { private var calendarProviders: [UsageProvider] { let recorded = [UsageProvider.codex, .claude].filter { provider in - model.days.contains { $0.tokens(for: provider) != nil } + model.days.contains { $0.tokens(for: provider) != nil } || resets.contains { $0.provider == provider } } return recorded.isEmpty ? [.codex, .claude] : recorded } @@ -91,6 +92,7 @@ struct HistoryPanelView: View { } .animation(motion, value: model.loadedMode) .animation(motion, value: model.periodStart) + resetLegend selectionSummary } } @@ -124,7 +126,7 @@ struct HistoryPanelView: View { { let streak = model.streak(for: providers) HistoryDayCardView( - day: day, providers: calendarProviders, + day: day, providers: calendarProviders, resets: resetsOn(day), isToday: Calendar.current.isDate(day.date, inSameDayAs: today), isPinned: selection.isPinned, currentStreak: streak.current, longestStreak: streak.longest, onClose: dismissDayCard @@ -232,6 +234,17 @@ struct HistoryPanelView: View { .font(.system(size: 9, weight: selectedID == day.id ? .semibold : .regular)) .foregroundStyle(selectedID == day.id ? .primary : .secondary) .frame(height: 18).frame(maxWidth: .infinity) + .overlay(alignment: .top) { + HStack(spacing: 2) { + ForEach( + providers.filter { provider in resetsOn(day).contains { $0.provider == provider } }, + id: \.self + ) { provider in + RoundedRectangle(cornerRadius: 1).stroke(color(provider), lineWidth: 1) + .frame(width: 4, height: 4) + } + }.offset(y: -3) + } .background { if selectedID == day.id { RoundedRectangle(cornerRadius: 5).fill(accent.opacity(0.14)) @@ -245,7 +258,7 @@ struct HistoryPanelView: View { .frame(maxWidth: .infinity).contentShape(Rectangle()) } .buttonStyle(.plain) - .disabled(day.date > today) + .disabled(day.date > today && resetsOn(day).isEmpty) .onContinuousHover { phase in guard case .active = phase else { return } let pointer = NSEvent.mouseLocation @@ -280,7 +293,7 @@ struct HistoryPanelView: View { days: model.days, providers: calendarProviders, selectedDayKey: model.selectedDay?.id, focusID: "\(model.periodStart.timeIntervalSince1970):\(calendarFocusRequest)", hoverEnabled: !showingDetails && !model.isLoading, - accent: accent, pinnedDayKey: pinnedDayKey, pinSafeFrames: pinSafeFrames, + accent: accent, resets: resets, pinnedDayKey: pinnedDayKey, pinSafeFrames: pinSafeFrames, onHoverCard: { key, anchor in guard let key else { model.hideDayCard() @@ -306,6 +319,38 @@ struct HistoryPanelView: View { .frame(height: Theme.Layout.historyCalendarHeight) } + private func resetsOn(_ day: HistoryCalendarDay) -> [HistoryReset] { + resets.filter { Calendar.current.isDate($0.date, inSameDayAs: day.date) } + } + + @ViewBuilder private var resetLegend: some View { + if !resets.isEmpty { + VStack(alignment: .leading, spacing: 3) { + Text("history.upcoming_resets".localized) + .font(.system(size: 9, weight: .medium)).foregroundStyle(.secondary) + HStack(alignment: .top, spacing: 8) { + ForEach(providers, id: \.self) { provider in + if let reset = resets.first(where: { $0.provider == provider }) { + HStack(spacing: 4) { + RoundedRectangle(cornerRadius: 1).stroke(color(provider), lineWidth: 1.5) + .frame(width: 6, height: 6) + Text( + name(provider) + " · " + + reset.date.formatted( + .dateTime.weekday(.abbreviated).day().month(.abbreviated).hour().minute() + .locale(locale)) + ) + .font(.system(size: 9)).lineLimit(2) + } + .frame(maxWidth: .infinity, alignment: .leading) + .help(resets.filter { $0.provider == provider }.map(\.label).joined(separator: "\n")) + } + } + } + } + } + } + private func weekdayLabel(_ weekday: Int) -> String { var calendar = Calendar.current calendar.locale = locale @@ -420,7 +465,9 @@ struct HistoryPanelView: View { } private func select(_ day: HistoryCalendarDay) { - guard !showingDetails, !model.isLoading, day.date <= today, model.selectedDayKey != day.id else { return } + guard !showingDetails, !model.isLoading, (day.date <= today || !resetsOn(day).isEmpty), + model.selectedDayKey != day.id + else { return } withAnimation(motion) { model.selectedDayKey = day.id } } @@ -429,7 +476,7 @@ struct HistoryPanelView: View { let totals = providers.map { provider in name(provider) + " " + (day.tokens(for: provider).map(exact) ?? "history.unknown".localized) }.joined(separator: " · ") - return date + ": " + totals + return date + ": " + totals + resetsOn(day).map { " · " + $0.label }.joined() } private var streakLine: String { diff --git a/Sources/TokenGaugeApp/Views/PopoverView.swift b/Sources/TokenGaugeApp/Views/PopoverView.swift index 8f5b1c6..2be0f58 100644 --- a/Sources/TokenGaugeApp/Views/PopoverView.swift +++ b/Sources/TokenGaugeApp/Views/PopoverView.swift @@ -76,7 +76,7 @@ struct PopoverView: View { .animation(store.animateChanges && !reduceMotion ? Theme.Motion.content : nil, value: store.panelStyle) HistoryPanelView( model: history, mode: $store.historyMode, - providers: store.displayMode.providers, compact: store.panelStyle != .standard) + providers: store.displayMode.providers, resets: upcomingResets, compact: store.panelStyle != .standard) } .padding(.horizontal, Theme.Layout.panelPadding) .padding(.top, 12) @@ -87,6 +87,17 @@ struct PopoverView: View { .id(localization.language) } + private var upcomingResets: [HistoryReset] { + store.displayMode.providers.flatMap { provider in + let state = store.state(for: provider) + guard state.status == .ready, let snapshot = state.snapshot else { return [HistoryReset]() } + let windows = WindowVisibility.visible( + snapshot.windows, provider: provider, showLunaReserve: store.showLunaReserve, + hiddenClaudeWindows: store.hiddenClaudeWindows) + return HistoryReset.upcoming(provider: provider, windows: windows) + }.sorted { $0.date < $1.date } + } + private var providerPicker: some View { HStack(spacing: 3) { ForEach(UsageDisplayMode.allCases) { mode in diff --git a/Tests/TokenGaugeAppTests/HistoryResetTests.swift b/Tests/TokenGaugeAppTests/HistoryResetTests.swift new file mode 100644 index 0000000..fc64117 --- /dev/null +++ b/Tests/TokenGaugeAppTests/HistoryResetTests.swift @@ -0,0 +1,48 @@ +import AppKit +import TokenGaugeCore +import XCTest + +@testable import TokenGaugeApp + +@MainActor +final class HistoryResetTests: XCTestCase { + func testOnlyKnownFutureWeeklyResetsAreScheduled() { + let now = Date(timeIntervalSince1970: 1_800_000_000) + let future = now.addingTimeInterval(86400) + let windows = [ + Fixture.window(id: "expired", resetsAt: now, durationMinutes: 10080), + Fixture.window(id: "unknown", durationMinutes: 10080), + Fixture.window(id: "session", resetsAt: future, durationMinutes: 300), + Fixture.window(id: "weekly", resetsAt: future, durationMinutes: 10080), + ] + let resets = HistoryReset.upcoming(provider: .codex, windows: windows, now: now) + XCTAssertEqual(resets.map(\.window.id), ["weekly"]) + XCTAssertEqual(resets.map(\.date), [future]) + } + + func testFutureResetCanBeSelectedAndRefreshRemovesItsMarker() throws { + let calendar = Calendar.current + let tomorrow = try XCTUnwrap(calendar.date(byAdding: .day, value: 1, to: Date())) + let date = calendar.startOfDay(for: tomorrow) + let day = HistoryCalendarDay(id: HistoryDashboardModel.dayKey(date), date: date, totals: [:], efforts: []) + let resets = [UsageProvider.codex, .claude].map { + HistoryReset(provider: $0, window: Fixture.window(id: "weekly", durationMinutes: 10080), date: tomorrow) + } + let canvas = HistoryCalendarCanvas() + var selected: String? + canvas.update( + HistoryCalendarView( + days: [day], providers: [.codex, .claude], selectedDayKey: nil, focusID: "test", resets: resets + ) { selected = $0 }) + XCTAssertTrue(canvas.isEnabled(at: 0)) + XCTAssertTrue(canvas.accessibilityLabel(at: 0).contains("Codex")) + XCTAssertTrue(canvas.accessibilityLabel(at: 0).contains("Claude")) + canvas.select(0) + XCTAssertEqual(selected, day.id) + canvas.update( + HistoryCalendarView( + days: [day], providers: [.codex, .claude], selectedDayKey: nil, focusID: "test" + ) { selected = $0 }) + XCTAssertFalse(canvas.isEnabled(at: 0)) + } +} From e08eea9ef9283124affd2925b49dc9e46cba606b Mon Sep 17 00:00:00 2001 From: Steven Coaila Date: Sun, 20 Sep 2026 22:23:24 -0500 Subject: [PATCH 2/4] feat(history): simplify weekly resets and project future weeks --- AGENTS.md | 3 +- .../Resources/en.lproj/Localizable.strings | 5 +- .../Resources/es.lproj/Localizable.strings | 5 +- .../TokenGaugeApp/Support/HistoryReset.swift | 31 +++++++--- Sources/TokenGaugeApp/Support/Theme.swift | 2 +- .../Views/HistoryCalendarView.swift | 23 ++++---- .../Views/HistoryDayCardView.swift | 48 ++++++++------- .../Views/HistoryPanelView.swift | 9 ++- Sources/TokenGaugeApp/Views/PopoverView.swift | 2 +- .../HistoryResetTests.swift | 58 ++++++++++++++++++- .../PopoverLayoutTests.swift | 5 +- .../QuotaRingLayoutTests.swift | 12 +++- .../TokenGaugeAppTests/ScreenshotTests.swift | 20 +++++++ 13 files changed, 169 insertions(+), 54 deletions(-) diff --git a/AGENTS.md b/AGENTS.md index adb452b..ad7b2cf 100644 --- a/AGENTS.md +++ b/AGENTS.md @@ -30,6 +30,7 @@ - Archive quota only from successful original provider results with a capture timestamp, never from mixed UI fallbacks. Archive tokens independently after a successful activity read. Preserve explicit zero days; missing days remain unknown. Never fill missing Claude days from an empty scan. - Effort scans run in the bounded `TokenGaugeCapture --record-effort-history` subprocess, never the resident UI. Decode only allowlisted metadata; hash response IDs before storage. Deduplicate events using MAX counters and preserve known model/effort values. The daily total is MAX(provider aggregate, summed model rows, summed effort events), never a sum of overlapping sources. Effort events and daily totals have no expiry. - Weekly pace requires at least three verified, same-reset observations spanning 30 minutes within the last hour, with a latest reading no older than 20 minutes. Reset, decrease, invalid reading, or a gap over 30 minutes breaks continuity. Reset timestamps may vary by at most one second against a persisted continuity anchor; larger changes break continuity. Legacy quota rows remain unverified. Archive valid estimates in `pace_samples` without expiry, including idle readings; only newly increased usage updates the last active pace. A current pace must match both the latest verified quota timestamp in SQLite and the visible snapshot capture timestamp. Show retained pace as historical with its measurement date, never as a fresh reading. Never attribute quota pace to a reasoning effort from token counts. +- Calendar reset markers group coincident weekly quotas per provider. The next live date is confirmed; later weeks project the same seven-day interval for a year and are labelled expected. Only ready, visible quotas contribute; cancellation or unavailable data removes the forecast. Future reset cards omit activity and streaks. - History queries run off the main actor and load only the selected date range; hover and selection never query SQLite or scan logs. Calendar weeks begin Monday. Unknown days must not become zero-use days. Preview/test stores must never read or write the real user history. - History hover updates the selected detail only on actual pointer movement; layout/scroll/refresh must not select the date beneath a stationary cursor. The annual view centers today on entry and on Today, preserves the viewport during refresh, and highlights today independently of selection. The native calendar positions its canvas synchronously before drawing. Verify real hover, opening, past-date selection, Today and refresh; suppress gutters with `.scrollIndicators(.never)` in SwiftUI and native scroller flags in the calendar. - Query the history with `scripts/usage_history.sh {status|daily|models|weekly|monthly|quota|export|sql}`; the `daily_totals`, `weekly_totals` (ISO week Monday) and `monthly_totals` views exist so both Steven and an agent read the same aggregation. @@ -44,7 +45,7 @@ - No continuous menu bar or hidden-popover animations. The seven-day chart uses one or two native bars per day according to display mode and per-day hover/click targets; hidden providers never affect its legend, summary or scale; never rebuild its data for every cursor pixel. Skip status-item image/title assignment when unchanged. - Panel style and menu-bar style persist independently; existing installs default to classic panels and numeric indicators. Compact/ring styles retain exact quota and reset data, historical provenance, and provider/window selection. Graphics never show stale values as live; exact menu values remain in tooltip/accessibility. Animations are brief, event-driven, optional, and honor Reduce Motion. - Use the native segmented control for history modes so selection and labels share one renderer. Year/week transitions must be checked in actual pixels after parent resizing; aligned accessibility frames alone cannot prove that the selection background stayed attached. -- Ring grids must cap columns at the number of visible windows and distribute the occupied row across the card. Two quotas must never leave a reserved third slot; cover this with a wide two-cell render check. Unified ring width follows visible quotas within its bounds. +- Ring grids must cap columns at the number of visible windows and distribute the occupied row across the card. Two quotas must never leave a reserved third slot; cover this with a wide two-cell render check. Unified ring width follows visible quotas up to 604 pt, enough for one Codex ring and three Claude rings in a single row. - Centralize visual constants in `Theme.swift`; individual panels are 340 pt wide and Unified is 560 pt wide; the panel grows to fit its content, with the layout matrix verified below 700 pt. Never wrap the entire popover in a vertical scroll view; only unusually long provider lists scroll within their own bounded area. Individual views show only their own provider; Unified shows two titled cards side by side. Scroll only when real provider content exceeds its bounded height. - The popover closes on any click outside it: `.transient` alone does not dismiss an accessory app's popover when the click lands in another application (Steven, 2026-08-27). `StatusItemController` arms a global mouse-down monitor plus `didResignActiveNotification` while the popover is shown and tears both down in `popoverDidClose`. Keep the monitor to MOUSE events only — a global key monitor would demand Accessibility, which this app must never request. - Reset lines scale with distance: under an hour shows minutes plus the clock time, under a day shows hours plus the clock time, the next calendar day shows `mañana` plus the clock time, and anything further shows whole days only. Far distances count the real remaining duration, never midnight crossings — 3.4 days away reads `3 d`, not `4 d`. diff --git a/Sources/TokenGaugeApp/Resources/en.lproj/Localizable.strings b/Sources/TokenGaugeApp/Resources/en.lproj/Localizable.strings index 9c0ba71..7c6fc8d 100644 --- a/Sources/TokenGaugeApp/Resources/en.lproj/Localizable.strings +++ b/Sources/TokenGaugeApp/Resources/en.lproj/Localizable.strings @@ -192,5 +192,6 @@ "pace.info_saved" = "Showing the last measurement with usage while waiting for new data."; "account.current" = "Account: %@"; -"history.upcoming_resets" = "Upcoming weekly resets"; -"history.reset" = "Reset"; +"history.weekly_reset" = "Weekly reset"; +"history.projected" = "Expected"; +"history.projection_help" = "Later weeks follow the current schedule. Dates update with each reading and disappear when tracking is cancelled."; diff --git a/Sources/TokenGaugeApp/Resources/es.lproj/Localizable.strings b/Sources/TokenGaugeApp/Resources/es.lproj/Localizable.strings index 0032f51..326d604 100644 --- a/Sources/TokenGaugeApp/Resources/es.lproj/Localizable.strings +++ b/Sources/TokenGaugeApp/Resources/es.lproj/Localizable.strings @@ -192,5 +192,6 @@ "pace.info_saved" = "Mostramos la última medición con consumo mientras llegan datos nuevos."; "account.current" = "Cuenta: %@"; -"history.upcoming_resets" = "Próximos reinicios semanales"; -"history.reset" = "Reinicio"; +"history.weekly_reset" = "Reinicio semanal"; +"history.projected" = "Previsto"; +"history.projection_help" = "Las semanas siguientes se calculan con el horario actual. Se actualizan con cada lectura y se ocultan al cancelar el seguimiento."; diff --git a/Sources/TokenGaugeApp/Support/HistoryReset.swift b/Sources/TokenGaugeApp/Support/HistoryReset.swift index 7e624cf..4075e9e 100644 --- a/Sources/TokenGaugeApp/Support/HistoryReset.swift +++ b/Sources/TokenGaugeApp/Support/HistoryReset.swift @@ -3,21 +3,36 @@ import TokenGaugeCore struct HistoryReset: Identifiable, Equatable { let provider: UsageProvider - let window: QuotaWindow let date: Date - var id: String { provider.rawValue + ":" + window.id } + var isProjected = false + var id: String { provider.rawValue + ":" + String(date.timeIntervalSince1970) } - static func upcoming(provider: UsageProvider, windows: [QuotaWindow], now: Date = Date()) -> [Self] { - windows.compactMap { window in + static func upcoming( + provider: UsageProvider, windows: [QuotaWindow], now: Date = Date(), through end: Date? = nil + ) -> [Self] { + let end = end ?? now.addingTimeInterval(366 * 86400) + let dates = windows.compactMap { window -> Date? in guard window.durationMinutes == 10080, let date = window.resetsAt, date > now else { return nil } - return Self(provider: provider, window: window, date: date) - }.sorted { $0.date < $1.date } + return date + }.sorted() + var result: [Self] = [] + for start in dates { + var date = start + while date <= max(end, start) { + if let index = result.firstIndex(where: { abs($0.date.timeIntervalSince(date)) < 60 }) { + if date == start { result[index].isProjected = false } + } else { + result.append(Self(provider: provider, date: date, isProjected: date != start)) + } + date = date.addingTimeInterval(7 * 86400) + } + } + return result.sorted { $0.date < $1.date } } @MainActor var label: String { let locale = Locale(identifier: LocalizationManager.shared.language.rawValue) let name = (provider == .codex ? "provider.codex" : "provider.claude_short").localized - return name + " · " + UsageFormatters.windowName(window) + " · " - + date.formatted(.dateTime.weekday(.abbreviated).day().month(.abbreviated).hour().minute().locale(locale)) + return name + " · " + date.formatted(.dateTime.hour().minute().locale(locale)) } } diff --git a/Sources/TokenGaugeApp/Support/Theme.swift b/Sources/TokenGaugeApp/Support/Theme.swift index a8af7f4..a355292 100644 --- a/Sources/TokenGaugeApp/Support/Theme.swift +++ b/Sources/TokenGaugeApp/Support/Theme.swift @@ -17,7 +17,7 @@ enum Theme { static let compactPanelWidth: CGFloat = 320 static let compactUnifiedWidth: CGFloat = 360 static let ringPanelWidth: CGFloat = 360 - static let ringUnifiedWidth: CGFloat = 560 + static let ringUnifiedWidth: CGFloat = 604 static let activityChartHeight: CGFloat = 64 static let historyCalendarGridTop: CGFloat = 22 static let historyCalendarHeight: CGFloat = historyCalendarGridTop + 87 diff --git a/Sources/TokenGaugeApp/Views/HistoryCalendarView.swift b/Sources/TokenGaugeApp/Views/HistoryCalendarView.swift index 5af03dd..d9f8301 100644 --- a/Sources/TokenGaugeApp/Views/HistoryCalendarView.swift +++ b/Sources/TokenGaugeApp/Views/HistoryCalendarView.swift @@ -85,6 +85,7 @@ final class HistoryCalendarCanvas: NSView { private var days: [HistoryCalendarDay] = [] private var providers: [UsageProvider] = [] private var resets: [HistoryReset] = [] + private var resetsByDay: [String: [HistoryReset]] = [:] private var selected: String? private var pinned: String? private var hoverEnabled = true @@ -148,6 +149,7 @@ final class HistoryCalendarCanvas: NSView { guard changed || selectionChanged else { return } if changed { resets = value.resets + resetsByDay = Dictionary(grouping: resets) { HistoryDashboardModel.dayKey($0.date) } days = value.days providers = value.providers accentColor = value.accent @@ -291,7 +293,7 @@ final class HistoryCalendarCanvas: NSView { NSBezierPath(ovalIn: rect.insetBy(dx: 3, dy: 3)).fill() } let resetProviders = providers.filter { provider in - resets.contains { $0.provider == provider && Calendar.current.isDate($0.date, inSameDayAs: day.date) } + (resetsByDay[day.id] ?? []).contains { $0.provider == provider } } if !resetProviders.isEmpty { for (part, provider) in resetProviders.enumerated() { @@ -302,8 +304,10 @@ final class HistoryCalendarCanvas: NSView { y: rect.minY - 1, width: (rect.width + 2) / CGFloat(resetProviders.count), height: rect.height + 2) ).addClip() - color(provider).setStroke() - path.lineWidth = 2 + let projected = (resetsByDay[day.id] ?? []).filter { $0.provider == provider }.allSatisfy( + \.isProjected) + color(provider).withAlphaComponent(projected ? 0.55 : 1).setStroke() + path.lineWidth = projected ? 1.5 : 2 path.stroke() NSGraphicsContext.restoreGraphicsState() } @@ -475,18 +479,17 @@ final class HistoryCalendarCanvas: NSView { } else { usage = "" } - let resetText = resets.filter { Calendar.current.isDate($0.date, inSameDayAs: day.date) } - .map { "history.reset".localized + " · " + $0.label }.joined(separator: "\n") + let resetText = (resetsByDay[day.id] ?? []) + .map { + "history.weekly_reset".localized + " · " + $0.label + + ($0.isProjected ? " · " + "history.projected".localized : "") + }.joined(separator: "\n") return prefix + date + ": " + totals + usage + (resetText.isEmpty ? "" : "\n" + resetText) } func accessibilityLabel(at index: Int) -> String { descriptions.indices.contains(index) ? descriptions[index] : "" } func isEnabled(at index: Int) -> Bool { - days.indices.contains(index) - && (days[index].date <= today - || resets.contains { - Calendar.current.isDate($0.date, inSameDayAs: days[index].date) - }) + days.indices.contains(index) && (days[index].date <= today || resetsByDay[days[index].id] != nil) } func isSelected(at index: Int) -> Bool { days.indices.contains(index) && days[index].id == selected } } diff --git a/Sources/TokenGaugeApp/Views/HistoryDayCardView.swift b/Sources/TokenGaugeApp/Views/HistoryDayCardView.swift index 5d28667..6d40b45 100644 --- a/Sources/TokenGaugeApp/Views/HistoryDayCardView.swift +++ b/Sources/TokenGaugeApp/Views/HistoryDayCardView.swift @@ -52,29 +52,37 @@ struct HistoryDayCardView: View { var body: some View { VStack(alignment: .leading, spacing: 8) { header - ForEach(resets) { reset in - Text("history.reset".localized + " · " + reset.label) - .font(.system(size: 10)).foregroundStyle(color(reset.provider)) - .fixedSize(horizontal: false, vertical: true) + if !resets.isEmpty { + Text("history.weekly_reset".localized) + .font(.system(size: 10)).foregroundStyle(.secondary) + ForEach(resets) { reset in + HStack(spacing: 6) { + ProviderLogo(provider: reset.provider, size: 13) + Text(reset.label).font(.system(size: 11, weight: .medium)) + if reset.isProjected { + Text("history.projected".localized).font(.system(size: 9)).foregroundStyle(.secondary) + } + } + } } - if day.date > Date() { - EmptyView() - } else if rows.isEmpty { - Text("history.no_activity".localized).font(.system(size: 10)).foregroundStyle(.secondary) - } else { - let percentages = HistoryDayCardPlacement.percentages(rows.map { day.tokens(for: $0) ?? 0 }) - VStack(alignment: .leading, spacing: 8) { - ForEach(Array(rows.enumerated()), id: \.element) { index, provider in - providerRow(provider, percentage: percentages[index]) + if day.date <= Date() { + if rows.isEmpty { + Text("history.no_activity".localized).font(.system(size: 10)).foregroundStyle(.secondary) + } else { + let percentages = HistoryDayCardPlacement.percentages(rows.map { day.tokens(for: $0) ?? 0 }) + VStack(alignment: .leading, spacing: 8) { + ForEach(Array(rows.enumerated()), id: \.element) { index, provider in + providerRow(provider, percentage: percentages[index]) + } } } + Divider() + Text( + "history.streak_current".localized(String(currentStreak)) + " · " + + "history.streak_longest".localized(String(longestStreak)) + ) + .font(.system(size: 10)).foregroundStyle(.secondary) } - Divider() - Text( - "history.streak_current".localized(String(currentStreak)) + " · " - + "history.streak_longest".localized(String(longestStreak)) - ) - .font(.system(size: 10)).foregroundStyle(.secondary) } .padding(11) .frame(width: HistoryDayCardPlacement.width, alignment: .leading) @@ -87,7 +95,7 @@ struct HistoryDayCardView: View { private var header: some View { HStack(spacing: 6) { - Text(day.date.formatted(.dateTime.weekday(.wide).day().month(.wide).year().locale(locale))) + Text(day.date.formatted(.dateTime.weekday(.wide).day().month(.abbreviated).locale(locale))) .font(.system(size: 11, weight: .semibold)).lineLimit(2).fixedSize(horizontal: false, vertical: true) if isToday { Text("history.today".localized) diff --git a/Sources/TokenGaugeApp/Views/HistoryPanelView.swift b/Sources/TokenGaugeApp/Views/HistoryPanelView.swift index 0596137..f98cd96 100644 --- a/Sources/TokenGaugeApp/Views/HistoryPanelView.swift +++ b/Sources/TokenGaugeApp/Views/HistoryPanelView.swift @@ -102,6 +102,7 @@ struct HistoryPanelView: View { .onPreferenceChange(HistoryFrameKey.self) { frames = $0 } .onPreferenceChange(HistoryDayCardHeightKey.self) { if $0 > 0 { cardHeight = $0 } } .onChange(of: providers) { _, _ in dismissDayCard() } + .onChange(of: resets) { _, _ in dismissDayCard() } .onChange(of: mode) { _, newValue in model.offset = 0 model.selectedDayKey = nil @@ -326,7 +327,7 @@ struct HistoryPanelView: View { @ViewBuilder private var resetLegend: some View { if !resets.isEmpty { VStack(alignment: .leading, spacing: 3) { - Text("history.upcoming_resets".localized) + Text("history.weekly_reset".localized) .font(.system(size: 9, weight: .medium)).foregroundStyle(.secondary) HStack(alignment: .top, spacing: 8) { ForEach(providers, id: \.self) { provider in @@ -343,7 +344,7 @@ struct HistoryPanelView: View { .font(.system(size: 9)).lineLimit(2) } .frame(maxWidth: .infinity, alignment: .leading) - .help(resets.filter { $0.provider == provider }.map(\.label).joined(separator: "\n")) + .help("history.projection_help".localized) } } } @@ -358,7 +359,9 @@ struct HistoryPanelView: View { } @ViewBuilder private var selectionSummary: some View { - if let day = model.selectedDay { + if let selected = model.selectedDay, + let day = selected.date > today ? model.days.first(where: { $0.date == today }) : selected + { VStack(alignment: .leading, spacing: 7) { HStack { VStack(alignment: .leading, spacing: 2) { diff --git a/Sources/TokenGaugeApp/Views/PopoverView.swift b/Sources/TokenGaugeApp/Views/PopoverView.swift index 2be0f58..0fde5ec 100644 --- a/Sources/TokenGaugeApp/Views/PopoverView.swift +++ b/Sources/TokenGaugeApp/Views/PopoverView.swift @@ -87,7 +87,7 @@ struct PopoverView: View { .id(localization.language) } - private var upcomingResets: [HistoryReset] { + var upcomingResets: [HistoryReset] { store.displayMode.providers.flatMap { provider in let state = store.state(for: provider) guard state.status == .ready, let snapshot = state.snapshot else { return [HistoryReset]() } diff --git a/Tests/TokenGaugeAppTests/HistoryResetTests.swift b/Tests/TokenGaugeAppTests/HistoryResetTests.swift index fc64117..c72b6d7 100644 --- a/Tests/TokenGaugeAppTests/HistoryResetTests.swift +++ b/Tests/TokenGaugeAppTests/HistoryResetTests.swift @@ -15,18 +15,70 @@ final class HistoryResetTests: XCTestCase { Fixture.window(id: "session", resetsAt: future, durationMinutes: 300), Fixture.window(id: "weekly", resetsAt: future, durationMinutes: 10080), ] - let resets = HistoryReset.upcoming(provider: .codex, windows: windows, now: now) - XCTAssertEqual(resets.map(\.window.id), ["weekly"]) + let resets = HistoryReset.upcoming(provider: .codex, windows: windows, now: now, through: future) XCTAssertEqual(resets.map(\.date), [future]) } + func testSharedWeeklyQuotasProduceOneResetPerWeek() { + let now = Date(timeIntervalSince1970: 1_800_000_000) + let first = now.addingTimeInterval(3600) + let windows = ["weekly", "fable"].map { + Fixture.window(id: $0, resetsAt: first, durationMinutes: 10080) + } + let resets = HistoryReset.upcoming( + provider: .claude, windows: windows, now: now, + through: first.addingTimeInterval(21 * 86400)) + XCTAssertEqual(resets.count, 4) + XCTAssertEqual(resets.map(\.isProjected), [false, true, true, true]) + XCTAssertEqual(Set(resets.map(\.id)).count, 4) + XCTAssertEqual(resets.last?.date, first.addingTimeInterval(21 * 86400)) + XCTAssertTrue(HistoryReset.upcoming(provider: .claude, windows: [], now: now).isEmpty) + } + + func testDifferentWeeklySchedulesRemainSeparateAndConfirmedDatesWin() { + let now = Date(timeIntervalSince1970: 1_800_000_000) + let first = now.addingTimeInterval(3600) + let next = first.addingTimeInterval(7 * 86400) + let windows = [ + Fixture.window(id: "general", resetsAt: first, durationMinutes: 10080), + Fixture.window(id: "reserve", resetsAt: next, durationMinutes: 10080), + Fixture.window(id: "different", resetsAt: first.addingTimeInterval(86400), durationMinutes: 10080), + ] + let resets = HistoryReset.upcoming(provider: .codex, windows: windows, now: now, through: next) + XCTAssertEqual(resets.count, 3) + XCTAssertTrue(resets.allSatisfy { !$0.isProjected }) + } + + func testCancellationRemovesOnlyThatProvidersEntireForecast() throws { + try withDefaults { defaults in + let snapshots = UsageProvider.allCases.map { provider in + Fixture.snapshot( + provider, + windows: [ + Fixture.window( + id: provider == .codex ? "codex.primary" : "seven_day", + resetsAt: Date().addingTimeInterval(86400), durationMinutes: 10080) + ]) + } + let store = Fixture.store(defaults: defaults, snapshots: snapshots) + store.displayMode = .unified + let view = PopoverView(store: store, showSettings: {}, showAbout: {}) + XCTAssertGreaterThan(view.upcomingResets.filter { $0.provider == .claude }.count, 3) + store.setCancelled(true, for: .claude) + XCTAssertFalse(view.upcomingResets.contains { $0.provider == .claude }) + XCTAssertGreaterThan(view.upcomingResets.filter { $0.provider == .codex }.count, 3) + store.setCancelled(true, for: .codex) + XCTAssertTrue(view.upcomingResets.isEmpty) + } + } + func testFutureResetCanBeSelectedAndRefreshRemovesItsMarker() throws { let calendar = Calendar.current let tomorrow = try XCTUnwrap(calendar.date(byAdding: .day, value: 1, to: Date())) let date = calendar.startOfDay(for: tomorrow) let day = HistoryCalendarDay(id: HistoryDashboardModel.dayKey(date), date: date, totals: [:], efforts: []) let resets = [UsageProvider.codex, .claude].map { - HistoryReset(provider: $0, window: Fixture.window(id: "weekly", durationMinutes: 10080), date: tomorrow) + HistoryReset(provider: $0, date: tomorrow) } let canvas = HistoryCalendarCanvas() var selected: String? diff --git a/Tests/TokenGaugeAppTests/PopoverLayoutTests.swift b/Tests/TokenGaugeAppTests/PopoverLayoutTests.swift index b47fe3b..12160a3 100644 --- a/Tests/TokenGaugeAppTests/PopoverLayoutTests.swift +++ b/Tests/TokenGaugeAppTests/PopoverLayoutTests.swift @@ -138,7 +138,10 @@ final class PopoverLayoutTests: XCTestCase { let view = NSHostingView(rootView: PopoverView(store: store, showSettings: {}, showAbout: {})) let budget = Theme.Layout.maximumPanelHeight + UpdateBannerView.height(for: UpdateManager.shared.phase) XCTAssertGreaterThanOrEqual(view.fittingSize.width, Theme.Layout.compactPanelWidth, file: file, line: line) - XCTAssertLessThanOrEqual(view.fittingSize.width, Theme.Layout.unifiedPanelWidth, file: file, line: line) + XCTAssertLessThanOrEqual( + view.fittingSize.width, + store.panelStyle == .rings ? Theme.Layout.ringUnifiedWidth : Theme.Layout.unifiedPanelWidth, + file: file, line: line) XCTAssertLessThanOrEqual( view.fittingSize.height, budget, "\(LocalizationManager.shared.language.rawValue) / \(store.displayMode.rawValue) / \(store.panelStyle.rawValue) / \(UpdateManager.shared.phase)", diff --git a/Tests/TokenGaugeAppTests/QuotaRingLayoutTests.swift b/Tests/TokenGaugeAppTests/QuotaRingLayoutTests.swift index c94885d..8185c57 100644 --- a/Tests/TokenGaugeAppTests/QuotaRingLayoutTests.swift +++ b/Tests/TokenGaugeAppTests/QuotaRingLayoutTests.swift @@ -42,8 +42,8 @@ final class QuotaRingLayoutTests: XCTestCase { (individual, 3, .rows), (narrowCard, 1, .single), (narrowCard, 2, .rows), - (halfCard, 2, .rows), - (wideCard, 3, .rows), + (halfCard, 2, .grid(columns: 2)), + (wideCard, 3, .grid(columns: 3)), (wideCard, 2, .grid(columns: 2)), ] for (width, windows, mode) in matrix { @@ -75,6 +75,14 @@ final class QuotaRingLayoutTests: XCTestCase { } } + func testSingleCodexAndThreeClaudeWindowsFitACompleteGrid() { + let width = QuotaRingLayout.unifiedPanelWidth(codexCells: 1, claudeCells: 3) + let claude = + width - Theme.Layout.panelPadding * 2 - spacing + - Theme.Layout.minimumRingCardWidth - Theme.Layout.cardPadding * 2 + XCTAssertEqual(QuotaRingLayout.choose(availableWidth: claude, windows: 3), .grid(columns: 3)) + } + func testUnifiedPanelWidthStaysWithinItsBounds() { XCTAssertEqual( QuotaRingLayout.unifiedPanelWidth(codexCells: 1, claudeCells: 1), Theme.Layout.minimumRingUnifiedWidth) diff --git a/Tests/TokenGaugeAppTests/ScreenshotTests.swift b/Tests/TokenGaugeAppTests/ScreenshotTests.swift index 276da8f..6ba9513 100644 --- a/Tests/TokenGaugeAppTests/ScreenshotTests.swift +++ b/Tests/TokenGaugeAppTests/ScreenshotTests.swift @@ -113,6 +113,26 @@ final class ScreenshotTests: XCTestCase { } } + LocalizationManager.shared.language = .spanish + store.displayMode = .unified + store.panelStyle = .rings + store.historyMode = .calendar + store.showLunaReserve = false + let resetHistory = HistoryDashboardModel(previewSnapshots: snapshots, mode: .calendar, now: now) + try render( + PopoverView(store: store, showSettings: {}, showAbout: {}, history: resetHistory), + to: output.appendingPathComponent("weekly-resets-three-claude.png")) + let resetDate = now.addingTimeInterval(21 * 86400) + try render( + HistoryDayCardView( + day: HistoryCalendarDay( + id: HistoryDashboardModel.dayKey(resetDate), date: resetDate, + totals: [:], efforts: []), providers: [.codex, .claude], + resets: [HistoryReset(provider: .claude, date: resetDate, isProjected: true)], + isToday: false, isPinned: true, currentStreak: 37, longestStreak: 51, onClose: {}), + to: output.appendingPathComponent("weekly-reset-card.png")) + store.showLunaReserve = true + LocalizationManager.shared.language = .english for historyMode in [HistoryMode.week, .calendar] { store.historyMode = historyMode From a42825cd154ef83679f290f359146e8f6d1e4b16 Mon Sep 17 00:00:00 2001 From: Steven Coaila Date: Sun, 20 Sep 2026 22:30:25 -0500 Subject: [PATCH 3/4] style(ui): align recovery toggle and move streak above calendar --- .../Views/HistoryPanelView.swift | 43 +++++++++++++++---- .../TokenGaugeApp/Views/SettingsView.swift | 9 +++- 2 files changed, 41 insertions(+), 11 deletions(-) diff --git a/Sources/TokenGaugeApp/Views/HistoryPanelView.swift b/Sources/TokenGaugeApp/Views/HistoryPanelView.swift index f98cd96..c527077 100644 --- a/Sources/TokenGaugeApp/Views/HistoryPanelView.swift +++ b/Sources/TokenGaugeApp/Views/HistoryPanelView.swift @@ -68,14 +68,12 @@ struct HistoryPanelView: View { var body: some View { VStack(alignment: .leading, spacing: 6) { - HStack(spacing: 8) { - if mode == .recent { - Text("history.heading".localized).font(.system(size: 11, weight: .semibold)) - } else { - navigation + ViewThatFits(in: .horizontal) { + historyToolbar(showsStreak: true) + VStack(alignment: .leading, spacing: 3) { + historyToolbar(showsStreak: false) + streakBadge } - Spacer(minLength: 0) - modePicker } if model.loadFailed { Text("history.load_failed".localized).font(.caption).foregroundStyle(.secondary) @@ -121,6 +119,35 @@ struct HistoryPanelView: View { } } + private func historyToolbar(showsStreak: Bool) -> some View { + HStack(spacing: 8) { + if mode == .recent { + Text("history.heading".localized).font(.system(size: 11, weight: .semibold)) + .fixedSize() + } else { + navigation + } + Spacer(minLength: 0) + if showsStreak { + streakBadge + Spacer(minLength: 0) + } + modePicker + } + } + + private var streakBadge: some View { + HStack(spacing: 4) { + Image(systemName: "flame.fill").foregroundStyle(accent) + Text(streakLine).foregroundStyle(.secondary) + } + .font(.system(size: 9, weight: .medium)) + .padding(.horizontal, 7).padding(.vertical, 3) + .background(Capsule().fill(Color.primary.opacity(0.045))) + .fixedSize() + .accessibilityElement(children: .ignore).accessibilityLabel(streakLine) + } + @ViewBuilder private var dayCard: some View { if let selection = model.daySelection, let frame = cardFrame, let panel = frames[.panel], let day = model.days.first(where: { $0.id == selection.dayKey }) @@ -368,8 +395,6 @@ struct HistoryPanelView: View { Text(day.date.formatted(.dateTime.weekday(.wide).day().month(.abbreviated).locale(locale))) .font(.system(size: 10)).foregroundStyle(.secondary) .contentTransition(.opacity) - Text(streakLine) - .font(.system(size: 10)).foregroundStyle(.secondary) } todayBadge .opacity(Calendar.current.isDate(day.date, inSameDayAs: today) ? 1 : 0) diff --git a/Sources/TokenGaugeApp/Views/SettingsView.swift b/Sources/TokenGaugeApp/Views/SettingsView.swift index 01bd78e..5c5b0bb 100644 --- a/Sources/TokenGaugeApp/Views/SettingsView.swift +++ b/Sources/TokenGaugeApp/Views/SettingsView.swift @@ -228,8 +228,13 @@ struct SettingsView: View { } else { Divider() VStack(alignment: .leading, spacing: 8) { - Toggle("settings.claude_recovery".localized, isOn: $store.claudeAutomaticRecovery) - .toggleStyle(.switch).controlSize(.small) + HStack(spacing: 12) { + Text("settings.claude_recovery".localized).font(.callout) + .fixedSize(horizontal: false, vertical: true) + Spacer(minLength: 0) + Toggle("settings.claude_recovery".localized, isOn: $store.claudeAutomaticRecovery) + .labelsHidden().toggleStyle(.switch).controlSize(.small) + }.frame(minHeight: 24) Text("settings.claude_recovery_help".localized) .font(.caption).foregroundStyle(.secondary) .fixedSize(horizontal: false, vertical: true) From 3cbef1e64971a351724bef6019dcd7573bb0a7fb Mon Sep 17 00:00:00 2001 From: Steven Coaila Date: Sun, 20 Sep 2026 22:42:22 -0500 Subject: [PATCH 4/4] chore(release): prepare version 1.5.0 --- CHANGELOG.md | 16 ++++++++++++++++ README.md | 2 +- Resources/Info.plist | 4 ++-- docs/images/weekly-resets.png | Bin 0 -> 163426 bytes 4 files changed, 19 insertions(+), 3 deletions(-) create mode 100644 docs/images/weekly-resets.png diff --git a/CHANGELOG.md b/CHANGELOG.md index 02fde68..4052910 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -7,6 +7,22 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0 ## [Unreleased] +## [1.5.0] - 2026-09-20 + +### Added + +- Weekly reset dates in the activity calendar, with provider colors, local times, and expected dates for later weeks. Cancelling tracking removes that provider's forecast. + +### Changed + +- Coincident weekly quotas share a compact reset card without repeated labels or empty activity details. +- The unified ring panel fits one Codex ring alongside three Claude quota rings. +- Current and best streaks appear above the calendar, keeping the daily summary focused on usage. + +### Fixed + +- Automatic reconnection aligns with the other provider settings switches. + ## [1.4.0] - 2026-09-18 ### Added diff --git a/README.md b/README.md index 5c7cd3f..7028bc0 100644 --- a/README.md +++ b/README.md @@ -18,7 +18,7 @@ TokenGauge lives in your Mac’s menu bar and shows how much Claude Code or Code
Classic panels, yearly history, and Settings -

Yearly local activity calendar beneath the ring quota panel

+

Weekly reset forecasts and streaks above the local activity calendar

Classic Unified panel with separate provider quotas

Codex view showing only Codex quota and token activity diff --git a/Resources/Info.plist b/Resources/Info.plist index dc825e0..f3ed138 100644 --- a/Resources/Info.plist +++ b/Resources/Info.plist @@ -17,9 +17,9 @@ CFBundlePackageType APPL CFBundleShortVersionString - 1.4.0 + 1.5.0 CFBundleVersion - 5 + 7 LSMinimumSystemVersion 14.0 LSUIElement diff --git a/docs/images/weekly-resets.png b/docs/images/weekly-resets.png new file mode 100644 index 0000000000000000000000000000000000000000..4fb9e65cf17157bfa38a5db3ee140b83144993b6 GIT binary patch literal 163426 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 EA8hFYNB{r; literal 0 HcmV?d00001