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.