diff --git a/ClaudeChecker/ClaudeCheckerApp.swift b/ClaudeChecker/ClaudeCheckerApp.swift index 1181488..3b9e66e 100644 --- a/ClaudeChecker/ClaudeCheckerApp.swift +++ b/ClaudeChecker/ClaudeCheckerApp.swift @@ -60,6 +60,11 @@ class AppDelegate: NSObject, NSApplicationDelegate { .sink { [weak self] _ in self?.updateStatusItem() } .store(in: &cancellables) + updateManager.$updateAvailable + .receive(on: DispatchQueue.main) + .sink { [weak self] _ in self?.updateStatusItem() } + .store(in: &cancellables) + // Refresh timer scheduleTimer(interval: usageViewModel.refreshInterval) @@ -166,7 +171,13 @@ class AppDelegate: NSObject, NSApplicationDelegate { let sdStr = sd.map { "\(Int($0.usedPercent.rounded()))%" } ?? "—" button.image = nil button.attributedTitle = NSAttributedString(string: "") - button.title = "◔ \(fhStr) \(sdStr)" + let updatePrefix = updateManager.updateAvailable ? "↑ Update " : "◔ " + button.title = "\(updatePrefix)\(fhStr) \(sdStr)" + button.font = NSFont.monospacedDigitSystemFont(ofSize: 12, weight: .medium) + } else if updateManager.updateAvailable { + button.image = nil + button.attributedTitle = NSAttributedString(string: "") + button.title = "↑ Update" button.font = NSFont.monospacedDigitSystemFont(ofSize: 12, weight: .medium) } else { button.title = "" diff --git a/ClaudeChecker/ContentView.swift b/ClaudeChecker/ContentView.swift index 0fef2b9..80e228e 100644 --- a/ClaudeChecker/ContentView.swift +++ b/ClaudeChecker/ContentView.swift @@ -1032,12 +1032,6 @@ struct UpdateBanner: View { Button("Update") { showSheet = true } .buttonStyle(.borderedProminent) .controlSize(.small) - Button { updater.updateAvailable = false } label: { - Image(systemName: "xmark") - .font(.system(size: 10, weight: .medium)) - .foregroundColor(.secondary) - } - .buttonStyle(.plain) } .padding(.horizontal, 16) .padding(.vertical, 10) diff --git a/ClaudeChecker/Info.plist b/ClaudeChecker/Info.plist index 373403b..a131391 100644 --- a/ClaudeChecker/Info.plist +++ b/ClaudeChecker/Info.plist @@ -15,9 +15,9 @@ CFBundlePackageType APPL CFBundleShortVersionString - 1.0.10 + 1.0.11 CFBundleVersion - 30 + 31 LSMinimumSystemVersion 13.0 LSUIElement diff --git a/RELEASE_NOTES.md b/RELEASE_NOTES.md index c291891..7ae638b 100644 --- a/RELEASE_NOTES.md +++ b/RELEASE_NOTES.md @@ -1,4 +1,7 @@ -## What's new in v1.0.10 +## What's new in v1.0.11 -### Main window always opens on click -Closing the app while Settings was open would cause the next click to reopen straight to Settings. The app now always returns to the main window when reopened. +### Update indicator in menubar +When an update is available, the menubar now shows **↑ Update** alongside your usage percentages — so you can see there's an update without opening the app. + +### Update banner can't be dismissed +The × close button has been removed from the update banner. The banner stays visible until you install the update.