superdooper86
b8826ace9b
fix: NSNumber cast and use .page world in callAsyncJavaScript auth check
...
callAsyncJavaScript returns JS numbers as NSNumber (Double-backed).
'val as? Int' silently returns nil for 200.0, so onAuthenticated never
fired. Fixed with 'val as? NSNumber then .intValue == 200'.
Also switched content world from .defaultClient to .page so the fetch
runs in the same JS context as the loaded page.
2026-05-11 10:22:59 +02:00
superdooper86
ac7ffe81af
fix: use WebView JS fetch for auth detection; send all cookies to API
...
Cookie domain filtering was wrong — the session token domain is unknown
and was never found by claude.ai/anthropic.com filters.
LoginView: replace getAllCookies domain check with callAsyncJavaScript
that fetches /api/bootstrap directly from the WebView. The WebView uses
its own full session (all cookies, any domain) so auth is detected
correctly regardless of where the token lives.
UsageViewModel: claudeCookieHeader now sends all cookies from the app's
WKWebsiteDataStore instead of filtering by domain. checkInitialSignInState
likewise checks for any cookie.
2026-05-11 10:06:33 +02:00
superdooper86
aaed64484c
fix: include anthropic.com cookies in all auth checks and API requests
...
Claude session cookies are on anthropic.com, not claude.ai. The login
window was not detecting auth (Cancel stayed, no Done) and API calls
were sent without the actual session token.
- claudeCookieHeader: include anthropic.com cookies so the token is
sent to the usage/bootstrap endpoints
- checkInitialSignInState: detect anthropic.com cookies on startup
- didFinish in LoginView: fire auth when anthropic.com cookies found
- signOut: clear anthropic.com data alongside claude.ai
- notAuthenticated catch: set isSignedIn = false so Settings stays
in sync with the main panel
2026-05-11 09:49:57 +02:00
superdooper86
e939bdb88b
fix: add browser headers to all API requests to resolve 403 on usage endpoint
...
Claude's usage/prepaid/overage endpoints require Origin, Referer, and
User-Agent headers to pass CORS/auth checks. Without them, bootstrap
succeeds (more permissive) but usage returns 403 -> 'Not signed in'.
Added claudeAPIRequest(for:) helper that sets all required browser-like
headers on every request. Bootstrap, usage, prepaid, overage, and the
orgs fallback all go through it.
2026-05-11 09:36:35 +02:00
superdooper86
de71ec2794
fix: load /login instead of root so premature auth detection is prevented
...
Loading https://claude.ai as the start URL caused didFinish to fire on
the landing page while stale/tracking cookies were already in
WKWebsiteDataStore. The 'any claude.ai cookie' check then fired
immediately, closing the login sheet before the user could sign in.
Loading /login ensures the URL-guard catches the initial page load and
only checks cookies after the real post-login redirect.
2026-05-11 09:25:45 +02:00
SuperDooper
d2eac62897
chore: bump to v1.2.1-beta.4
2026-05-11 08:58:05 +02:00
SuperDooper
8c64fc50ad
fix: checkInitialSignInState uses any claude.ai cookie, not specific names
2026-05-11 08:58:04 +02:00
SuperDooper
b2c138f665
fix: detect auth by any claude.ai cookie, not specific cookie names
2026-05-11 08:58:02 +02:00
SuperDooper
ecbae7d7ca
chore: release notes for v1.2.1-beta.3
2026-05-10 23:40:31 +02:00
SuperDooper
37a039e1d3
chore: bump to v1.2.1-beta.3
2026-05-10 23:40:30 +02:00
SuperDooper
8f3ead2f65
fix: replace stale 'No API key configured' with correct signed-out message
2026-05-10 23:40:29 +02:00
SuperDooper
94430e00ba
chore: release notes for v1.2.1-beta.2
2026-05-10 23:28:40 +02:00
SuperDooper
7b0368b001
chore: bump to v1.2.1-beta.2
2026-05-10 23:28:39 +02:00
SuperDooper
4629aeffbc
fix: load claude.ai instead of /login so already-signed-in users are detected
2026-05-10 23:28:38 +02:00
SuperDooper
73b251a1e9
chore: release notes for v1.2.1-beta.1
2026-05-10 23:14:48 +02:00
SuperDooper
7bab6a0df0
chore: bump to v1.2.1-beta.1
2026-05-10 23:14:47 +02:00
SuperDooper
db6380fa66
fix: detect sign-in state from cookies on startup, add orgs API fallback for org ID
2026-05-10 23:14:45 +02:00
SuperDooper
85ac329d36
chore: release notes for v1.2.0
2026-05-08 23:19:24 +02:00
SuperDooper
a0fb6eabcf
chore: bump to v1.2.0
2026-05-08 23:19:23 +02:00
SuperDooper
13387888b2
chore: release notes for 1.1.4-beta.7
2026-05-08 23:10:35 +02:00
SuperDooper
44be1649a1
chore: bump to 1.1.4-beta.7
2026-05-08 23:10:34 +02:00
SuperDooper
1160712e1b
fix: remove ScrollView from main panel so popover auto-sizes to content
2026-05-08 23:10:22 +02:00
SuperDooper
526752dc36
chore: release notes for 1.1.4-beta.6
2026-05-08 23:04:54 +02:00
SuperDooper
a2d983b555
chore: bump to 1.1.4-beta.6
2026-05-08 23:04:53 +02:00
SuperDooper
0d807c2285
fix: Session Diary — remove Claude icon/header, split stats left/right
2026-05-08 23:04:52 +02:00
SuperDooper
1c42433145
Windows beta release win-v0.0.1-beta.49
2026-05-08 20:46:42 +00:00
SuperDooper
c0ac2e5a66
Windows beta release win-v0.0.1-beta.48
2026-05-08 20:39:17 +00:00
SuperDooper
405e65f9f7
Windows beta release win-v0.0.1-beta.47
2026-05-08 20:28:41 +00:00
SuperDooper
1c7433ebea
Windows beta release win-v0.0.1-beta.46
2026-05-08 20:19:52 +00:00
SuperDooper
a39ef800e8
Windows beta release win-v0.0.1-beta.45
2026-05-08 20:05:58 +00:00
SuperDooper
76dec8b85d
Windows beta release win-v0.0.1-beta.44
2026-05-08 20:00:55 +00:00
SuperDooper
2f04f8581c
Windows beta release win-v0.0.1-beta.42
2026-05-08 19:41:45 +00:00
SuperDooper
788c066a1e
Windows beta release win-v0.0.1-beta.41
2026-05-08 19:39:07 +00:00
SuperDooper
31280d4ab2
Windows beta release win-v0.0.1-beta.40
2026-05-08 19:33:28 +00:00
SuperDooper
7b1c5bbf8e
Windows beta release win-v0.0.1-beta.39
2026-05-08 19:19:11 +00:00
SuperDooper
f2ba44bbaa
Windows beta release win-v0.0.1-beta.38
2026-05-08 19:07:16 +00:00
SuperDooper
de1fffe0e3
Windows beta release win-v0.0.1-beta.37
2026-05-08 19:00:02 +00:00
SuperDooper
e80f07d1b9
Windows beta release win-v0.0.1-beta.36
2026-05-08 17:40:07 +00:00
SuperDooper
63ef2005a4
Update release notes for 1.1.4-beta.5
2026-05-08 19:31:20 +02:00
SuperDooper
5ad7bb26f0
Bump version to 1.1.4-beta.5
2026-05-08 19:31:18 +02:00
SuperDooper
132a2a8f8d
Consolidate bootstrap into single fetchBootstrap() call
2026-05-08 19:31:06 +02:00
SuperDooper
9bcbb2ae7d
Update release notes for 1.1.4-beta.4
2026-05-08 19:26:58 +02:00
SuperDooper
c9384f6424
Bump version to 1.1.4-beta.4
2026-05-08 19:26:57 +02:00
SuperDooper
e4693fc18f
Fix fetchUserEmail return type and capabilities subscript
2026-05-08 19:26:48 +02:00
SuperDooper
84a8592bae
Windows beta release win-v0.0.1-beta.35
2026-05-08 17:24:24 +00:00
SuperDooper
bdd2038364
Update release notes for 1.1.4-beta.3
2026-05-08 19:22:51 +02:00
SuperDooper
fd61face77
Bump version to 1.1.4-beta.3
2026-05-08 19:22:50 +02:00
SuperDooper
1f58a81a26
Parse plan label from bootstrap on every refresh via fetchUserEmail
2026-05-08 19:22:41 +02:00
SuperDooper
b49ac23863
Update release notes for 1.1.4-beta.2
2026-05-08 19:19:50 +02:00
SuperDooper
01d268c3e5
Bump version to 1.1.4-beta.2
2026-05-08 19:19:49 +02:00
SuperDooper
871d5245ac
Parse plan label from capabilities array instead of plan_type
2026-05-08 19:14:53 +02:00
SuperDooper
0524f9b791
Parse plan label from bootstrap API instead of hardcoding
2026-05-08 19:09:06 +02:00
SuperDooper
d55bad01db
Revert workflow to git push now that ruleset is fixed
2026-05-08 17:09:27 +02:00
SuperDooper
7bc72e240b
Revert workflow to git push now that ruleset is fixed
2026-05-08 17:09:26 +02:00
SuperDooper
d77ed23d09
Fix: use GitHub API to update files instead of git push to protected main
2026-05-08 17:06:06 +02:00
SuperDooper
6136b0ded0
Fix: use GitHub API to update files instead of git push to protected main
2026-05-08 17:06:00 +02:00
SuperDooper
aba7168448
Windows beta release win-v0.0.1-beta.33
2026-05-08 15:03:42 +00:00
SuperDooper
a8c2083397
fix: remove hardcoded orgId from cookie primer URL
2026-05-08 16:54:48 +02:00
SuperDooper
ad23446ed4
chore: release notes for v1.1.4-beta.1
2026-05-08 16:52:17 +02:00
SuperDooper
d8b75d279c
chore: bump version to 1.1.4-beta.1
2026-05-08 16:52:16 +02:00
SuperDooper
2658ff7f6a
Windows beta release win-v0.0.1-beta.32
2026-05-08 14:51:18 +00:00
SuperDooper
e10d79e5a6
fix: fetch org ID dynamically from bootstrap instead of hardcoding it
2026-05-08 16:49:44 +02:00
SuperDooper
88daa27630
Windows beta release win-v0.0.1-beta.31
2026-05-08 14:47:27 +00:00
SuperDooper
b7c4958a74
Windows beta release win-v0.0.1-beta.30
2026-05-08 14:38:16 +00:00
SuperDooper
f46b13d967
Windows beta release win-v0.0.1-beta.29
2026-05-08 14:30:44 +00:00
SuperDooper
c449882ec6
Windows beta release win-v0.0.1-beta.28
2026-05-08 14:26:00 +00:00
SuperDooper
3c1a2ef1be
Windows beta release win-v0.0.1-beta.27
2026-05-08 14:17:00 +00:00
SuperDooper
c238db963b
Windows beta release win-v0.0.1-beta.25
2026-05-08 14:07:31 +00:00
SuperDooper
63c9a8582d
Windows beta release win-v0.0.1-beta.24
2026-05-08 14:02:59 +00:00
SuperDooper
6f256b3308
Windows beta release win-v0.0.1-beta.23
2026-05-08 13:51:22 +00:00
SuperDooper
2761b31a12
Windows beta release win-v0.0.1-beta.22
2026-05-08 13:31:58 +00:00
SuperDooper
f9d8abebd5
Windows beta release win-v0.0.1-beta.20
2026-05-08 12:55:50 +00:00
SuperDooper
66ee233b1b
Windows beta release win-v0.0.1-beta.19
2026-05-08 12:41:51 +00:00
SuperDooper
a12c664bde
Windows beta release win-v0.0.1-beta.18
2026-05-08 12:28:14 +00:00
SuperDooper
c7251d8785
Windows beta release win-v0.0.1-beta.17
2026-05-08 12:16:57 +00:00
SuperDooper
7a95b100ef
Windows beta release win-v0.0.1-beta.16
2026-05-08 12:12:23 +00:00
SuperDooper
fb98c69c34
Windows beta release win-v0.0.1-beta.15
2026-05-08 12:06:07 +00:00
SuperDooper
5629c6b61e
Windows beta release win-v0.0.1-beta.14
2026-05-08 11:58:49 +00:00
SuperDooper
4709f5b0f5
Windows beta release win-v0.0.1-beta.12
2026-05-08 11:49:10 +00:00
SuperDooper
5f8aeaa6e9
Windows beta release win-v0.0.1-beta.11
2026-05-08 11:35:50 +00:00
SuperDooper
27f1f45109
Windows beta release win-v0.0.1-beta.10
2026-05-08 11:29:15 +00:00
SuperDooper
7a5512cc28
Windows beta release win-v0.0.1-beta.9
2026-05-08 11:17:01 +00:00
SuperDooper
8c89ce4636
Windows beta release win-v0.0.1-beta.8
2026-05-08 11:08:41 +00:00
SuperDooper
3a964dc2f8
Windows beta release win-v0.0.1-beta.7
2026-05-08 11:00:23 +00:00
SuperDooper
b553d3922a
docs: reorder screenshot grid
2026-05-08 11:38:54 +02:00
SuperDooper
61e8455e5e
docs: update screenshot captions and add release notes screenshot
2026-05-08 11:37:44 +02:00
SuperDooper
c4b9d7454f
docs: add release notes screenshot
2026-05-08 11:37:35 +02:00
SuperDooper
75aeb03332
docs: update banner screenshot
2026-05-08 11:37:34 +02:00
SuperDooper
f5203a0299
docs: update notification screenshot
2026-05-08 11:37:33 +02:00
SuperDooper
fe27e0d4c0
revert: restore version-beta.json to 1.1.3-beta.5
2026-05-08 11:36:33 +02:00
SuperDooper
fb5e1ece25
test: fake beta version for screenshot
2026-05-08 11:31:45 +02:00
SuperDooper
71666224f1
chore: remove outdated settings-v2 screenshot
2026-05-08 11:31:02 +02:00
SuperDooper
bd693cdf94
chore: remove outdated main-v2 screenshot
2026-05-08 11:31:01 +02:00
SuperDooper
d24a354e1c
docs: update README to use v3 screenshots
2026-05-08 11:30:50 +02:00
SuperDooper
9e47041715
docs: add settings screenshot v3
2026-05-08 11:30:36 +02:00
SuperDooper
22151f0af4
docs: add main window screenshot v3
2026-05-08 11:30:35 +02:00
SuperDooper
3508fa1a94
docs: update settings screenshot
2026-05-08 11:29:50 +02:00
SuperDooper
b2fcafd3f0
docs: update main window screenshot
2026-05-08 11:29:48 +02:00
SuperDooper
45215de350
docs: add contributing guidelines
2026-05-08 11:25:46 +02:00
SuperDooper
f969da8006
chore: add feature request issue template
2026-05-08 11:23:46 +02:00