Compare commits
15
Commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
c51086c119 | ||
|
|
5840b34b3b | ||
|
|
5a141095e1 | ||
|
|
4b42a631be | ||
|
|
c6d2ed8261 | ||
|
|
747e26e5eb | ||
|
|
b9fd5a27ec | ||
|
|
60336cffa7 | ||
|
|
953c46077c | ||
|
|
3796139178 | ||
|
|
554eb80c0c | ||
|
|
a22bf3a309 | ||
|
|
eaab3eb539 | ||
|
|
323aa174da | ||
|
|
3803cf37f6 |
@@ -75,5 +75,7 @@ jobs:
|
|||||||
git config user.email "github-actions[bot]@users.noreply.github.com"
|
git config user.email "github-actions[bot]@users.noreply.github.com"
|
||||||
git add version-beta.json README.md
|
git add version-beta.json README.md
|
||||||
git commit -m "Beta release ${{ github.ref_name }}"
|
git commit -m "Beta release ${{ github.ref_name }}"
|
||||||
git pull --rebase origin main
|
for i in 1 2 3 4 5; do
|
||||||
git push origin HEAD:main
|
git pull --rebase origin main && git push origin HEAD:main && break
|
||||||
|
echo "Push attempt $i failed, retrying..."; sleep 3
|
||||||
|
done
|
||||||
|
|||||||
@@ -38,7 +38,7 @@ struct DiagnosticsView: View {
|
|||||||
|
|
||||||
Divider()
|
Divider()
|
||||||
|
|
||||||
Text("Email and org IDs are redacted when copied.")
|
Text("Org IDs are redacted when copied.")
|
||||||
.font(.system(size: 10))
|
.font(.system(size: 10))
|
||||||
.foregroundColor(.secondary)
|
.foregroundColor(.secondary)
|
||||||
.frame(maxWidth: .infinity, alignment: .leading)
|
.frame(maxWidth: .infinity, alignment: .leading)
|
||||||
@@ -74,17 +74,6 @@ struct DiagnosticsView: View {
|
|||||||
|
|
||||||
Divider()
|
Divider()
|
||||||
|
|
||||||
// Cookie summary
|
|
||||||
DiagSection(title: "Cookie Store") {
|
|
||||||
DiagRow("Total cookies", "\(vm.diagCookieCount)")
|
|
||||||
DiagRow("claude.ai cookies", "\(vm.diagClaudeCookieCount)")
|
|
||||||
DiagRow("All domains", vm.diagCookieDomains.isEmpty
|
|
||||||
? "(none — never fetched)"
|
|
||||||
: vm.diagCookieDomains.joined(separator: ", "))
|
|
||||||
}
|
|
||||||
|
|
||||||
Divider()
|
|
||||||
|
|
||||||
// Live cookie list
|
// Live cookie list
|
||||||
DiagSection(title: "Live Cookie Names (WKWebsiteDataStore.default)") {
|
DiagSection(title: "Live Cookie Names (WKWebsiteDataStore.default)") {
|
||||||
if loadingCookies {
|
if loadingCookies {
|
||||||
@@ -156,14 +145,16 @@ struct DiagnosticsView: View {
|
|||||||
lines.append("=== ClaudeChecker Diagnostics ===")
|
lines.append("=== ClaudeChecker Diagnostics ===")
|
||||||
lines.append("Version: \(Bundle.main.infoDictionary?["CFBundleShortVersionString"] as? String ?? "?") (\(Bundle.main.infoDictionary?["CFBundleVersion"] as? String ?? "?"))")
|
lines.append("Version: \(Bundle.main.infoDictionary?["CFBundleShortVersionString"] as? String ?? "?") (\(Bundle.main.infoDictionary?["CFBundleVersion"] as? String ?? "?"))")
|
||||||
lines.append("Signed in: \(vm.isSignedIn ? "Yes" : "No")")
|
lines.append("Signed in: \(vm.isSignedIn ? "Yes" : "No")")
|
||||||
|
lines.append("Org ID: \(UserDefaults.standard.string(forKey: \"claude_org_id\") ?? \"(none)\")")
|
||||||
|
lines.append("lastActiveOrg: \(vm.diagLastActiveOrg.isEmpty ? \"(not read)\" : vm.diagLastActiveOrg)")
|
||||||
lines.append("Error: \(vm.errorMessage ?? "(none)")")
|
lines.append("Error: \(vm.errorMessage ?? "(none)")")
|
||||||
lines.append("")
|
lines.append("")
|
||||||
lines.append("Last path: \(vm.diagLastPath)")
|
lines.append("Last path: \(vm.diagLastPath)")
|
||||||
lines.append("Last status: \(vm.diagLastStatus)")
|
lines.append("Last status: \(vm.diagLastStatus)")
|
||||||
lines.append("Last error: \(vm.diagLastError)")
|
lines.append("Last error: \(vm.diagLastError.isEmpty ? \"(none)\" : vm.diagLastError)")
|
||||||
lines.append("Total cookies: \(vm.diagCookieCount)")
|
if let t = vm.diagLastFetch {
|
||||||
lines.append("Claude cookies: \(vm.diagClaudeCookieCount)")
|
lines.append("Time: \(t.formatted(date: .omitted, time: .standard))")
|
||||||
lines.append("Domains: \(vm.diagCookieDomains.joined(separator: ", "))")
|
}
|
||||||
lines.append("")
|
lines.append("")
|
||||||
lines.append("")
|
lines.append("")
|
||||||
lines.append("Live cookies:")
|
lines.append("Live cookies:")
|
||||||
|
|||||||
@@ -15,9 +15,9 @@
|
|||||||
<key>CFBundlePackageType</key>
|
<key>CFBundlePackageType</key>
|
||||||
<string>APPL</string>
|
<string>APPL</string>
|
||||||
<key>CFBundleShortVersionString</key>
|
<key>CFBundleShortVersionString</key>
|
||||||
<string>1.3.3-beta.2</string>
|
<string>1.3.3-beta.4</string>
|
||||||
<key>CFBundleVersion</key>
|
<key>CFBundleVersion</key>
|
||||||
<string>78</string>
|
<string>80</string>
|
||||||
<key>LSMinimumSystemVersion</key>
|
<key>LSMinimumSystemVersion</key>
|
||||||
<string>13.0</string>
|
<string>13.0</string>
|
||||||
<key>LSUIElement</key>
|
<key>LSUIElement</key>
|
||||||
|
|||||||
@@ -12,8 +12,8 @@
|
|||||||
[](LICENSE)
|
[](LICENSE)
|
||||||
<br/>
|
<br/>
|
||||||
[](https://github.com/superdooper86/claudechecker/releases)
|
[](https://github.com/superdooper86/claudechecker/releases)
|
||||||
[](https://github.com/superdooper86/claudechecker/releases/tag/v1.3.3-beta.1) <!-- BETA_BADGE -->
|
[](https://github.com/superdooper86/claudechecker/releases/tag/v1.3.3-beta.3) <!-- BETA_BADGE -->
|
||||||
[](https://github.com/superdooper86/claudechecker/releases/tag/win-v0.0.1-beta.52) <!-- WIN_BETA_BADGE --> <!-- WIN_STABLE_BADGE -->
|
[](https://github.com/superdooper86/claudechecker/releases/tag/win-v0.0.1-beta.54) <!-- WIN_BETA_BADGE -->
|
||||||
|
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
|
|||||||
+1
-5
@@ -1,5 +1 @@
|
|||||||
{
|
{"version": "1.3.3-beta.3", "url": "https://github.com/superdooper86/claudechecker/releases/download/v1.3.3-beta.3/ClaudeChecker.zip", "notes": "## What's new in v1.3.2\n\n### Reliability\n- Data now loads automatically on every app launch without requiring manual re-authentication. The background WebView is anchored in a hidden window so macOS no longer throttles its JavaScript execution."}
|
||||||
"version": "1.3.3-beta.1",
|
|
||||||
"url": "https://github.com/superdooper86/claudechecker/releases/download/v1.3.3-beta.1/ClaudeChecker.zip",
|
|
||||||
"notes": "## What's new in v1.3.2\n\n### Reliability\n- Data now loads automatically on every app launch without requiring manual re-authentication. The background WebView is anchored in a hidden window so macOS no longer throttles its JavaScript execution."
|
|
||||||
}
|
|
||||||
@@ -1,5 +1,5 @@
|
|||||||
{
|
{
|
||||||
"version": "0.0.1-beta.52",
|
"version": "0.0.1-beta.54",
|
||||||
"url": "https://github.com/superdooper86/claudechecker/releases/download/win-v0.0.1-beta.52/ClaudeChecker-Windows.zip",
|
"url": "https://github.com/superdooper86/claudechecker/releases/download/win-v0.0.1-beta.54/ClaudeChecker-Windows.zip",
|
||||||
"notes": "## What's new in beta.49\r\n\r\n### Architecture\r\n- All data (usage, plan, overage, prepaid credits) now fetched via the persistent background WebView2 — the same always-live session as the macOS app, so Cloudflare cookies never expire between refreshes\r\n- HttpClient path kept only as a brief startup fallback before the browser is ready\r\n- Settings file simplified: only stores session signal, burn history, and user preferences — no more cached API responses\r\n\r\n### Bug fixes\r\n- Plan label (e.g. \"Pro\") now updates on every refresh, not just at login\r\n- Extra Usage Credits values now correct (were 100× too large)\r\n- Limit and balance now update live on every refresh\r\n- Refresh interval dropdown now shows \"1 min\", \"2 min\" etc. correctly\r\n- ComboBox no longer flashes bright blue when clicked\r\n- Buttons now show a visible pressed state\r\n- Footer \"Updated X ago\" counter now ticks every second; shows \"X min, Y sec ago\" past 60 s\r\n- Removed stray sparkline bars from the 5 h and 7 d limit cards\r\n- App window now shown on launch\r\n\r\n### UI improvements\r\n- Gauge percentage larger, \"used\" label removed\r\n- Each limit card now shows an \"after reset\" or \"today HH:MM\" badge\r\n- Session Diary card redesigned to match macOS layout (stats row + sparkline, no Claude header)\r\n- Reset date moved inline with time remaining"
|
"notes": "## What's new in beta.49\r\n\r\n### Architecture\r\n- All data (usage, plan, overage, prepaid credits) now fetched via the persistent background WebView2 — the same always-live session as the macOS app, so Cloudflare cookies never expire between refreshes\r\n- HttpClient path kept only as a brief startup fallback before the browser is ready\r\n- Settings file simplified: only stores session signal, burn history, and user preferences — no more cached API responses\r\n\r\n### Bug fixes\r\n- Plan label (e.g. \"Pro\") now updates on every refresh, not just at login\r\n- Extra Usage Credits values now correct (were 100× too large)\r\n- Limit and balance now update live on every refresh\r\n- Refresh interval dropdown now shows \"1 min\", \"2 min\" etc. correctly\r\n- ComboBox no longer flashes bright blue when clicked\r\n- Buttons now show a visible pressed state\r\n- Footer \"Updated X ago\" counter now ticks every second; shows \"X min, Y sec ago\" past 60 s\r\n- Removed stray sparkline bars from the 5 h and 7 d limit cards\r\n- App window now shown on launch\r\n\r\n### UI improvements\r\n- Gauge percentage larger, \"used\" label removed\r\n- Each limit card now shows an \"after reset\" or \"today HH:MM\" badge\r\n- Session Diary card redesigned to match macOS layout (stats row + sparkline, no Claude header)\r\n- Reset date moved inline with time remaining"
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user