Compare commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
c72a7923e3 | ||
|
|
42e36372db | ||
|
|
ce1b5c0a50 | ||
|
|
30b64683e0 |
@@ -774,14 +774,16 @@ struct SettingsView: View {
|
|||||||
.padding(.vertical, 2)
|
.padding(.vertical, 2)
|
||||||
.background(Color.blue)
|
.background(Color.blue)
|
||||||
.cornerRadius(4)
|
.cornerRadius(4)
|
||||||
|
.fixedSize()
|
||||||
} else if updater.betaAvailable {
|
} else if updater.betaAvailable {
|
||||||
Text("v\(updater.latestBetaVersion) beta")
|
Text("v\(updater.latestBetaVersion) available")
|
||||||
.font(.system(size: 10, weight: .medium))
|
.font(.system(size: 10, weight: .medium))
|
||||||
.foregroundColor(.white)
|
.foregroundColor(.white)
|
||||||
.padding(.horizontal, 6)
|
.padding(.horizontal, 6)
|
||||||
.padding(.vertical, 2)
|
.padding(.vertical, 2)
|
||||||
.background(Color.orange)
|
.background(Color.orange)
|
||||||
.cornerRadius(4)
|
.cornerRadius(4)
|
||||||
|
.fixedSize()
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
Text("Built by superdooper86 & claude")
|
Text("Built by superdooper86 & claude")
|
||||||
|
|||||||
@@ -15,9 +15,9 @@
|
|||||||
<key>CFBundlePackageType</key>
|
<key>CFBundlePackageType</key>
|
||||||
<string>APPL</string>
|
<string>APPL</string>
|
||||||
<key>CFBundleShortVersionString</key>
|
<key>CFBundleShortVersionString</key>
|
||||||
<string>3.0.0</string>
|
<string>1.0.0</string>
|
||||||
<key>CFBundleVersion</key>
|
<key>CFBundleVersion</key>
|
||||||
<string>18</string>
|
<string>19</string>
|
||||||
<key>LSMinimumSystemVersion</key>
|
<key>LSMinimumSystemVersion</key>
|
||||||
<string>13.0</string>
|
<string>13.0</string>
|
||||||
<key>LSUIElement</key>
|
<key>LSUIElement</key>
|
||||||
|
|||||||
@@ -46,6 +46,8 @@ class UpdateManager: ObservableObject {
|
|||||||
@Published var updateComplete = false
|
@Published var updateComplete = false
|
||||||
@Published var justUpdated = false
|
@Published var justUpdated = false
|
||||||
|
|
||||||
|
private var notifiedVersion: String = ""
|
||||||
|
|
||||||
@Published var betaChannel: Bool = false {
|
@Published var betaChannel: Bool = false {
|
||||||
didSet {
|
didSet {
|
||||||
UserDefaults.standard.set(betaChannel, forKey: "beta_channel")
|
UserDefaults.standard.set(betaChannel, forKey: "beta_channel")
|
||||||
@@ -70,14 +72,13 @@ class UpdateManager: ObservableObject {
|
|||||||
if let stable = await stableResult {
|
if let stable = await stableResult {
|
||||||
print("[UpdateManager] Stable remote=\(stable.version), isNewer=\(isNewer(stable.version, than: currentVersion))")
|
print("[UpdateManager] Stable remote=\(stable.version), isNewer=\(isNewer(stable.version, than: currentVersion))")
|
||||||
if isNewer(stable.version, than: currentVersion) {
|
if isNewer(stable.version, than: currentVersion) {
|
||||||
let wasAvailable = updateAvailable
|
|
||||||
latestVersion = stable.version
|
latestVersion = stable.version
|
||||||
releaseNotes = stable.notes ?? ""
|
releaseNotes = stable.notes ?? ""
|
||||||
downloadURL = stable.url
|
downloadURL = stable.url
|
||||||
updateAvailable = true
|
updateAvailable = true
|
||||||
print("[UpdateManager] updateAvailable set to true")
|
print("[UpdateManager] updateAvailable set to true")
|
||||||
// Only notify once — when first detected
|
if notifiedVersion != stable.version {
|
||||||
if !wasAvailable {
|
notifiedVersion = stable.version
|
||||||
NotificationCenter.default.post(name: .updateDetected, object: stable.version)
|
NotificationCenter.default.post(name: .updateDetected, object: stable.version)
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
@@ -98,10 +99,19 @@ class UpdateManager: ObservableObject {
|
|||||||
releaseNotes = beta.notes ?? ""
|
releaseNotes = beta.notes ?? ""
|
||||||
downloadURL = beta.url
|
downloadURL = beta.url
|
||||||
updateAvailable = true
|
updateAvailable = true
|
||||||
|
if notifiedVersion != beta.version {
|
||||||
|
notifiedVersion = beta.version
|
||||||
|
NotificationCenter.default.post(name: .updateDetected, object: beta.version)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
} else {
|
||||||
|
betaAvailable = false
|
||||||
|
latestBetaVersion = ""
|
||||||
|
}
|
||||||
} else {
|
} else {
|
||||||
print("[UpdateManager] Beta fetch returned nil")
|
print("[UpdateManager] Beta fetch returned nil")
|
||||||
|
betaAvailable = false
|
||||||
|
latestBetaVersion = ""
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -8,7 +8,7 @@
|
|||||||
|
|
||||||
[](https://www.apple.com/macos/)
|
[](https://www.apple.com/macos/)
|
||||||
[](https://swift.org)
|
[](https://swift.org)
|
||||||
[](https://github.com/superdooper86/claudechecker/releases)
|
[](https://github.com/superdooper86/claudechecker/releases)
|
||||||
[](LICENSE)
|
[](LICENSE)
|
||||||
|
|
||||||
</div>
|
</div>
|
||||||
|
|||||||
@@ -1,5 +0,0 @@
|
|||||||
{
|
|
||||||
"version": "3.1.0-beta",
|
|
||||||
"url": "https://github.com/superdooper86/claudechecker/releases/download/v3.0.0/ClaudeChecker.zip",
|
|
||||||
"notes": "Beta test build."
|
|
||||||
}
|
|
||||||
+3
-3
@@ -1,5 +1,5 @@
|
|||||||
{
|
{
|
||||||
"version": "3.0.0",
|
"version": "1.0.0",
|
||||||
"url": "https://github.com/superdooper86/claudechecker/releases/download/v3.0.0/ClaudeChecker.zip",
|
"url": "https://github.com/superdooper86/claudechecker/releases/download/v1.0.0/ClaudeChecker.zip",
|
||||||
"notes": "Limit notifications for 80% and 95% usage, and on quota reset."
|
"notes": "Initial release."
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user