Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
1185 commits
Select commit Hold shift + click to select a range
5af770e
Merge remote-tracking branch 'origin/main' into refactor/account-refe…
sea-snake Sep 7, 2026
d9034cf
Merge branch 'refactor/account-reference-write-path' into refactor/mo…
sea-snake Sep 7, 2026
1d5f317
Merge branch 'feat/account-principal-index' into feat/account-princip…
sea-snake Sep 7, 2026
20d3228
Merge branch 'feat/account-principal-index-backfill' into feat/sessio…
sea-snake Sep 7, 2026
9a1cf63
Merge branch 'feat/session-record-storage' into feat/session-devices-…
sea-snake Sep 7, 2026
896741a
Merge branch 'feat/session-devices-registry' into feat/session-device…
sea-snake Sep 7, 2026
c652d54
Merge branch 'feat/session-device-key-proof' into feat/session-create
sea-snake Sep 7, 2026
25f94ef
Merge branch 'feat/session-create' into feat/session-cap-per-identity
sea-snake Sep 7, 2026
30a1f23
Merge branch 'feat/track-default-accounts' into feat/account-principa…
sea-snake Sep 7, 2026
bb31ab4
Merge branch 'refactor/monotonic-application-numbers' into fix/read-a…
sea-snake Sep 7, 2026
3d9a4bf
Merge branch 'fix/read-account-empty-list-is-not-default' into feat/t…
sea-snake Sep 7, 2026
51c46dd
Merge branch 'feat/session-cap-per-identity' into feat/sign-in-create…
sea-snake Sep 7, 2026
3d84dfe
Merge branch 'feat/sign-in-creates-a-session' into feat/app-delegatio…
sea-snake Sep 7, 2026
5163d3d
Merge branch 'feat/app-delegation-from-session' into feat/session-ref…
sea-snake Sep 7, 2026
ab271d8
Merge branch 'feat/session-refresh-stamps' into feat/app-revoke-session
sea-snake Sep 7, 2026
79d3bce
Merge branch 'feat/app-revoke-session' into feat/revoke-sessions-from…
sea-snake Sep 7, 2026
89d5b69
Merge branch 'feat/revoke-sessions-from-settings' into fe/authorizati…
sea-snake Sep 7, 2026
47abea1
fix(internet_identity): a backfill timer that fires after finishing i…
sea-snake Sep 8, 2026
876205e
Merge branch 'feat/account-principal-index-backfill' into feat/sessio…
sea-snake Sep 8, 2026
2281b22
Merge branch 'feat/session-record-storage' into feat/session-devices-…
sea-snake Sep 8, 2026
4a81fcd
Merge branch 'feat/session-devices-registry' into feat/session-device…
sea-snake Sep 8, 2026
483271c
Merge branch 'feat/session-device-key-proof' into feat/session-create
sea-snake Sep 8, 2026
d403a93
Merge branch 'feat/session-create' into feat/session-cap-per-identity
sea-snake Sep 8, 2026
aea8765
Merge branch 'feat/session-cap-per-identity' into feat/sign-in-create…
sea-snake Sep 8, 2026
869e615
Merge branch 'feat/sign-in-creates-a-session' into feat/app-delegatio…
sea-snake Sep 8, 2026
bc88105
Merge branch 'feat/app-delegation-from-session' into feat/session-ref…
sea-snake Sep 8, 2026
1190ac3
Merge branch 'feat/session-refresh-stamps' into feat/app-revoke-session
sea-snake Sep 8, 2026
7b31025
Merge branch 'feat/app-revoke-session' into feat/revoke-sessions-from…
sea-snake Sep 8, 2026
5e403aa
Merge branch 'feat/revoke-sessions-from-settings' into fe/authorizati…
sea-snake Sep 8, 2026
66b2d67
docs(internet_identity): the backfill re-running is a cost, not a pur…
sea-snake Sep 8, 2026
18f27c7
docs(internet_identity): the index sync gives up redundancy, not repair
sea-snake Sep 8, 2026
a6d4823
Merge branch 'feat/account-principal-index' into feat/account-princip…
sea-snake Sep 8, 2026
8c7ae3e
Merge branch 'feat/account-principal-index-backfill' into feat/sessio…
sea-snake Sep 8, 2026
9a88ba0
Merge branch 'feat/session-record-storage' into feat/session-devices-…
sea-snake Sep 8, 2026
e39f89d
Merge branch 'feat/session-devices-registry' into feat/session-device…
sea-snake Sep 8, 2026
f71af57
Merge branch 'feat/session-device-key-proof' into feat/session-create
sea-snake Sep 8, 2026
d3e06c5
Merge branch 'feat/session-create' into feat/session-cap-per-identity
sea-snake Sep 8, 2026
46844f5
Merge branch 'feat/session-cap-per-identity' into feat/sign-in-create…
sea-snake Sep 8, 2026
20a7042
Merge branch 'feat/sign-in-creates-a-session' into feat/app-delegatio…
sea-snake Sep 8, 2026
16ba374
Merge branch 'feat/app-delegation-from-session' into feat/session-ref…
sea-snake Sep 8, 2026
5e96af0
Merge branch 'feat/session-refresh-stamps' into feat/app-revoke-session
sea-snake Sep 8, 2026
51dd896
Merge branch 'feat/app-revoke-session' into feat/revoke-sessions-from…
sea-snake Sep 8, 2026
8feada4
Merge branch 'feat/revoke-sessions-from-settings' into fe/authorizati…
sea-snake Sep 8, 2026
327c8dd
fix(internet_identity): report the application-number allocator's memory
sea-snake Sep 8, 2026
7528b6e
Merge branch 'refactor/monotonic-application-numbers' into fix/read-a…
sea-snake Sep 8, 2026
8fa092d
Merge branch 'fix/read-account-empty-list-is-not-default' into feat/t…
sea-snake Sep 8, 2026
14243f1
Merge branch 'feat/track-default-accounts' into feat/account-principa…
sea-snake Sep 8, 2026
f103d6b
Merge branch 'feat/account-principal-index' into feat/account-princip…
sea-snake Sep 8, 2026
7cfb05f
Merge branch 'feat/account-principal-index-backfill' into feat/sessio…
sea-snake Sep 8, 2026
7e69b08
Merge branch 'feat/session-record-storage' into feat/session-devices-…
sea-snake Sep 8, 2026
d1f36ff
Merge branch 'feat/session-devices-registry' into feat/session-device…
sea-snake Sep 8, 2026
951ae05
Merge branch 'feat/session-device-key-proof' into feat/session-create
sea-snake Sep 8, 2026
d5218b4
fix(internet_identity): report the session index and id allocator's m…
sea-snake Sep 8, 2026
943d540
Merge branch 'feat/session-create' into feat/session-cap-per-identity
sea-snake Sep 8, 2026
9cc4a2c
Merge branch 'feat/session-cap-per-identity' into feat/sign-in-create…
sea-snake Sep 8, 2026
6ebfec9
Merge branch 'feat/sign-in-creates-a-session' into feat/app-delegatio…
sea-snake Sep 8, 2026
55d23f4
Merge branch 'feat/app-delegation-from-session' into feat/session-ref…
sea-snake Sep 8, 2026
6bd40c1
Merge branch 'feat/session-refresh-stamps' into feat/app-revoke-session
sea-snake Sep 8, 2026
5b47532
Merge branch 'feat/app-revoke-session' into feat/revoke-sessions-from…
sea-snake Sep 8, 2026
3bca026
Merge branch 'feat/revoke-sessions-from-settings' into fe/authorizati…
sea-snake Sep 8, 2026
63a8eba
Merge remote-tracking branch 'origin/main' into refactor/account-refe…
sea-snake Sep 8, 2026
0ce06a9
Merge branch 'refactor/account-reference-write-path' into refactor/mo…
sea-snake Sep 8, 2026
a148eab
Merge branch 'refactor/monotonic-application-numbers' into fix/read-a…
sea-snake Sep 8, 2026
06d1abe
Merge branch 'fix/read-account-empty-list-is-not-default' into feat/t…
sea-snake Sep 8, 2026
bb415ab
Merge branch 'feat/track-default-accounts' into feat/account-principa…
sea-snake Sep 8, 2026
8a27173
Merge branch 'feat/account-principal-index' into feat/account-princip…
sea-snake Sep 8, 2026
054326a
Merge branch 'feat/account-principal-index-backfill' into feat/sessio…
sea-snake Sep 8, 2026
d417061
Merge branch 'feat/session-record-storage' into feat/session-devices-…
sea-snake Sep 8, 2026
5d4215f
Merge branch 'feat/session-device-key-proof' into feat/session-create
sea-snake Sep 8, 2026
2bc8aa1
Merge branch 'feat/session-devices-registry' into feat/session-device…
sea-snake Sep 8, 2026
8ba87e6
Merge branch 'feat/session-create' into feat/session-cap-per-identity
sea-snake Sep 8, 2026
7392f16
Merge branch 'feat/session-cap-per-identity' into feat/sign-in-create…
sea-snake Sep 8, 2026
eb1769b
Merge branch 'feat/sign-in-creates-a-session' into feat/app-delegatio…
sea-snake Sep 8, 2026
28e3556
Merge branch 'feat/app-delegation-from-session' into feat/session-ref…
sea-snake Sep 8, 2026
eeefcec
Merge branch 'feat/session-refresh-stamps' into feat/app-revoke-session
sea-snake Sep 8, 2026
2c2bcea
Merge branch 'feat/app-revoke-session' into feat/revoke-sessions-from…
sea-snake Sep 8, 2026
5332d1f
Merge branch 'feat/revoke-sessions-from-settings' into fe/authorizati…
sea-snake Sep 8, 2026
864dcfc
chore: record main as merged after the bottom six landed
sea-snake Sep 8, 2026
a9d363b
chore: merge feat/session-record-storage
sea-snake Sep 8, 2026
c132027
chore: merge feat/session-device-key-proof
sea-snake Sep 8, 2026
0b5876b
chore: merge feat/session-create
sea-snake Sep 8, 2026
02a3d66
chore: merge feat/session-cap-per-identity
sea-snake Sep 8, 2026
44a046a
chore: merge feat/sign-in-creates-a-session
sea-snake Sep 8, 2026
ff07585
chore: merge feat/session-devices-registry
sea-snake Sep 8, 2026
2a5fcac
chore: merge feat/app-delegation-from-session
sea-snake Sep 8, 2026
605712a
chore: merge feat/session-refresh-stamps
sea-snake Sep 8, 2026
97fa7b8
chore: merge feat/app-revoke-session
sea-snake Sep 8, 2026
1b25ccf
chore: merge feat/revoke-sessions-from-settings
sea-snake Sep 8, 2026
9819730
refactor(internet_identity): a session records the browser it came from
sea-snake Sep 8, 2026
d8d8edb
chore: merge feat/session-record-storage
sea-snake Sep 8, 2026
fc15af3
chore: merge feat/session-device-key-proof
sea-snake Sep 8, 2026
712c7e1
chore: merge feat/session-create
sea-snake Sep 8, 2026
f7599da
chore: merge feat/session-cap-per-identity
sea-snake Sep 8, 2026
b98c222
chore: merge feat/sign-in-creates-a-session
sea-snake Sep 8, 2026
ed87fc1
chore: merge feat/app-delegation-from-session
sea-snake Sep 8, 2026
b5afb48
chore: merge feat/session-devices-registry
sea-snake Sep 8, 2026
eea36e5
chore: merge feat/session-refresh-stamps
sea-snake Sep 8, 2026
b825c28
chore: merge feat/app-revoke-session
sea-snake Sep 8, 2026
2e6918b
chore: merge feat/revoke-sessions-from-settings
sea-snake Sep 8, 2026
8ca86a0
feat(internet_identity): count each browser's sessions where they are…
sea-snake Sep 8, 2026
e845284
chore: merge feat/session-create
sea-snake Sep 8, 2026
b95e3d4
chore: merge feat/session-cap-per-identity
sea-snake Sep 8, 2026
f39368f
chore: merge feat/sign-in-creates-a-session
sea-snake Sep 8, 2026
5189983
chore: merge feat/app-delegation-from-session
sea-snake Sep 8, 2026
54250c7
chore: merge feat/session-refresh-stamps
sea-snake Sep 8, 2026
b413a4a
chore: merge feat/app-revoke-session
sea-snake Sep 8, 2026
eacfa85
chore: merge feat/revoke-sessions-from-settings
sea-snake Sep 8, 2026
ef8c218
chore(internet_identity): retire the account principal index backfill
sea-snake Sep 8, 2026
024e35f
chore: merge chore/retire-account-principal-index-backfill
sea-snake Sep 8, 2026
3a8668d
chore: merge feat/session-record-storage
sea-snake Sep 8, 2026
d97094f
chore: merge feat/session-devices-registry
sea-snake Sep 8, 2026
c06643d
chore: merge feat/session-device-key-proof
sea-snake Sep 8, 2026
93b8c50
chore: merge feat/session-create
sea-snake Sep 8, 2026
2992f6b
chore: merge feat/session-cap-per-identity
sea-snake Sep 8, 2026
46ecf8b
chore: merge feat/sign-in-creates-a-session
sea-snake Sep 8, 2026
3b5a84a
chore: merge feat/app-delegation-from-session
sea-snake Sep 8, 2026
f6eb0a1
chore: merge feat/session-refresh-stamps
sea-snake Sep 8, 2026
9a5b12e
chore: merge feat/app-revoke-session
sea-snake Sep 8, 2026
8695ff8
chore: merge feat/revoke-sessions-from-settings
sea-snake Sep 8, 2026
4835dcf
feat(internet_identity): a browser describes itself in tokens, not a …
sea-snake Sep 8, 2026
f72c880
chore: merge feat/session-devices-registry
sea-snake Sep 8, 2026
32cb0fe
chore: merge feat/session-device-key-proof, and take the description …
sea-snake Sep 8, 2026
3d62641
chore: merge feat/session-cap-per-identity
sea-snake Sep 8, 2026
b78e6b4
chore: merge feat/sign-in-creates-a-session
sea-snake Sep 8, 2026
e2a39ff
chore: merge feat/session-create
sea-snake Sep 8, 2026
681ae7e
chore: merge feat/app-delegation-from-session
sea-snake Sep 8, 2026
7aaf2d3
chore: merge feat/session-refresh-stamps
sea-snake Sep 8, 2026
ffb4328
chore: merge feat/app-revoke-session
sea-snake Sep 8, 2026
3643505
chore: merge feat/revoke-sessions-from-settings
sea-snake Sep 8, 2026
38532bc
feat(internet_identity): a sign-in reports what the browser is, in to…
sea-snake Sep 8, 2026
c8b4484
chore: merge feat/app-delegation-from-session
sea-snake Sep 8, 2026
6e7b795
chore: merge feat/sign-in-creates-a-session
sea-snake Sep 8, 2026
477551e
chore: merge feat/session-refresh-stamps
sea-snake Sep 8, 2026
8493482
chore: merge feat/app-revoke-session
sea-snake Sep 8, 2026
9c0f370
chore: merge feat/revoke-sessions-from-settings
sea-snake Sep 8, 2026
e4e03b7
docs(internet_identity): state why one write, without narrating the loop
sea-snake Sep 8, 2026
7b775e8
docs(internet_identity): say why the property test exists, not what p…
sea-snake Sep 8, 2026
3e0fa1a
chore: merge feat/session-cap-per-identity
sea-snake Sep 8, 2026
0b1ced9
chore: merge feat/session-refresh-stamps
sea-snake Sep 8, 2026
07ddad8
chore: merge feat/app-delegation-from-session
sea-snake Sep 8, 2026
b06ed08
chore: merge feat/sign-in-creates-a-session
sea-snake Sep 8, 2026
6277d0b
chore: merge feat/session-create
sea-snake Sep 8, 2026
a5533cd
chore: merge feat/app-revoke-session
sea-snake Sep 8, 2026
87d7125
chore: merge feat/revoke-sessions-from-settings
sea-snake Sep 8, 2026
22e4612
feat(internet_identity): name the six browsers that earn an icon
sea-snake Sep 9, 2026
fd3c05a
chore: merge feat/session-device-key-proof
sea-snake Sep 9, 2026
cdc36fb
chore: merge feat/session-devices-registry
sea-snake Sep 9, 2026
7e253e4
chore: merge feat/session-cap-per-identity
sea-snake Sep 9, 2026
1379a80
chore: merge feat/session-refresh-stamps
sea-snake Sep 9, 2026
898ee3b
chore: merge feat/app-delegation-from-session
sea-snake Sep 9, 2026
01394df
chore: merge feat/sign-in-creates-a-session
sea-snake Sep 9, 2026
4691bed
chore: merge feat/app-revoke-session
sea-snake Sep 9, 2026
2a13622
chore: merge feat/revoke-sessions-from-settings
sea-snake Sep 9, 2026
4375096
chore: merge feat/session-create
sea-snake Sep 9, 2026
8e7f065
test(internet_identity): pick a named brand that still exists
sea-snake Sep 9, 2026
9c1c949
chore: merge feat/session-refresh-stamps
sea-snake Sep 9, 2026
ac16c02
chore: merge feat/app-delegation-from-session
sea-snake Sep 9, 2026
6f72e85
chore: merge feat/sign-in-creates-a-session
sea-snake Sep 9, 2026
4be4fee
chore: merge feat/app-revoke-session
sea-snake Sep 9, 2026
4286eea
chore: merge feat/revoke-sessions-from-settings
sea-snake Sep 9, 2026
9de8210
fix(be): a sign-in writes its own origin, and the gate sweeps the rest
sea-snake Sep 9, 2026
54fa5f7
chore: merge feat/session-create
sea-snake Sep 9, 2026
bdd4d47
fix(be): the write gate reclaims sessions, and counts them in i64
sea-snake Sep 9, 2026
8e431f8
Merge branch 'feat/session-refresh-stamps' into feat/app-revoke-session
sea-snake Sep 9, 2026
45d602d
Merge branch 'feat/app-delegation-from-session' into feat/session-ref…
sea-snake Sep 9, 2026
e1fd056
Merge branch 'feat/session-cap-per-identity' into feat/sign-in-create…
sea-snake Sep 9, 2026
47a3fcd
Merge branch 'feat/sign-in-creates-a-session' into feat/app-delegatio…
sea-snake Sep 9, 2026
c63138f
chore: merge feat/app-revoke-session
sea-snake Sep 9, 2026
ba5df5b
Merge branch 'feat/revoke-sessions-from-settings' into fe/authorizati…
sea-snake Sep 9, 2026
0e39da4
Merge branch 'feat/session-refresh-stamps' into feat/app-revoke-session
sea-snake Sep 9, 2026
ac2855c
fix(be): the refresh write passes the clock the gate now takes
sea-snake Sep 9, 2026
2ab2f07
fix(be): signing a session out passes the clock the gate now takes
sea-snake Sep 9, 2026
61ce5b7
Merge branch 'feat/app-revoke-session' into feat/revoke-sessions-from…
sea-snake Sep 9, 2026
97c47a0
Merge branch 'feat/revoke-sessions-from-settings' into fe/authorizati…
sea-snake Sep 9, 2026
d7be132
refactor(be): name what a session record answers
sea-snake Sep 9, 2026
fbfeed3
Merge branch 'feat/session-record-storage' into feat/session-devices-…
sea-snake Sep 9, 2026
1000beb
Merge branch 'feat/session-devices-registry' into feat/session-device…
sea-snake Sep 9, 2026
0e945b1
Merge branch 'feat/session-create' into feat/session-cap-per-identity
sea-snake Sep 9, 2026
d2276f9
chore: merge feat/session-device-key-proof
sea-snake Sep 9, 2026
3a3539c
chore: rename the session record accessors at their call sites
sea-snake Sep 9, 2026
669fe75
Merge branch 'feat/session-cap-per-identity' into feat/sign-in-create…
sea-snake Sep 9, 2026
ca502b6
Merge branch 'feat/sign-in-creates-a-session' into feat/app-delegatio…
sea-snake Sep 9, 2026
5e02f93
Merge branch 'feat/app-delegation-from-session' into feat/session-ref…
sea-snake Sep 9, 2026
cff441b
chore: rename the session record accessors at their call sites
sea-snake Sep 9, 2026
917486c
chore: rename the session record accessors at their call sites
sea-snake Sep 9, 2026
f36c1d3
chore: merge feat/session-refresh-stamps
sea-snake Sep 9, 2026
9b04429
Merge branch 'feat/app-revoke-session' into feat/revoke-sessions-from…
sea-snake Sep 9, 2026
93c2c87
Merge branch 'feat/revoke-sessions-from-settings' into fe/authorizati…
sea-snake Sep 9, 2026
7e047a8
chore: merge main
sea-snake Sep 9, 2026
fa1bf88
Merge branch 'feat/session-record-storage' into feat/session-devices-…
sea-snake Sep 9, 2026
1d5952a
Merge branch 'feat/session-devices-registry' into feat/session-device…
sea-snake Sep 9, 2026
226012e
chore: merge feat/session-device-key-proof
sea-snake Sep 9, 2026
a7d0b8d
Merge branch 'feat/session-create' into feat/session-cap-per-identity
sea-snake Sep 9, 2026
ca76344
Merge branch 'feat/session-cap-per-identity' into feat/sign-in-create…
sea-snake Sep 9, 2026
1c05288
Merge branch 'feat/sign-in-creates-a-session' into feat/app-delegatio…
sea-snake Sep 9, 2026
21f2acd
Merge branch 'feat/app-delegation-from-session' into feat/session-ref…
sea-snake Sep 9, 2026
36393e6
Merge branch 'feat/session-refresh-stamps' into feat/app-revoke-session
sea-snake Sep 9, 2026
58bb716
Merge branch 'feat/app-revoke-session' into feat/revoke-sessions-from…
sea-snake Sep 9, 2026
3b1b310
Merge branch 'feat/revoke-sessions-from-settings' into fe/authorizati…
sea-snake Sep 9, 2026
709ce21
refactor(session): name the session type Session
sea-snake Sep 9, 2026
a13f19e
Merge branch 'feat/session-record-storage' into feat/session-devices-…
sea-snake Sep 9, 2026
a727d29
refactor(browsers): the anchor decides what a browser reveals
sea-snake Sep 9, 2026
3c050de
Merge branch 'feat/session-devices-registry' into feat/session-device…
sea-snake Sep 9, 2026
6ef8323
feat(browser-key): verifying yields evidence, and one encoding per key
sea-snake Sep 9, 2026
185a381
Merge branch 'feat/session-device-key-proof' into feat/session-create
sea-snake Sep 9, 2026
dbe4a13
refactor(session): a locator, verified keys, and the illegal state sa…
sea-snake Sep 9, 2026
9c6abda
Merge branch 'feat/session-create' into feat/session-cap-per-identity
sea-snake Sep 9, 2026
d010c40
feat(session): scope the session credential, and refuse instead of tr…
sea-snake Sep 9, 2026
926c53a
Merge branch 'feat/sign-in-creates-a-session' into feat/app-delegatio…
sea-snake Sep 9, 2026
baa46c0
refactor(session): passing the checks is a type, not a tuple
sea-snake Sep 9, 2026
bf3625d
Merge branch 'feat/app-delegation-from-session' into feat/session-ref…
sea-snake Sep 9, 2026
4af979e
fix(session): a stamp that matched nothing is a refusal, not an Ok
sea-snake Sep 9, 2026
2adc60a
Merge branch 'feat/session-refresh-stamps' into feat/app-revoke-session
sea-snake Sep 9, 2026
8f703bb
feat(session): sign-out answers, and one pass removes the session
sea-snake Sep 9, 2026
183bcbd
Merge branch 'feat/app-revoke-session' into feat/revoke-sessions-from…
sea-snake Sep 9, 2026
0d19439
chore(session): drop the scaffolding allowances the callers arrive with
sea-snake Sep 9, 2026
b9e93ca
Merge branch 'feat/sign-in-creates-a-session' into feat/app-delegatio…
sea-snake Sep 9, 2026
a570c48
Merge branch 'feat/app-delegation-from-session' into feat/session-ref…
sea-snake Sep 9, 2026
0b94f9e
Merge branch 'feat/app-revoke-session' into feat/revoke-sessions-from…
sea-snake Sep 9, 2026
043927c
Merge branch 'feat/session-refresh-stamps' into feat/app-revoke-session
sea-snake Sep 9, 2026
7e96ddd
Merge branch 'feat/revoke-sessions-from-settings' into fe/authorizati…
sea-snake Sep 9, 2026
f626fdd
chore(storage): drop the account-principal helper that grew a twin
sea-snake Sep 9, 2026
246e75e
Merge branch 'feat/session-create' into feat/session-cap-per-identity
sea-snake Sep 9, 2026
3b42ab6
Merge branch 'feat/session-cap-per-identity' into feat/sign-in-create…
sea-snake Sep 9, 2026
a105ec0
refactor(session): one name for one fact across both error types
sea-snake Sep 9, 2026
0f4b97f
Merge branch 'feat/sign-in-creates-a-session' into feat/app-delegatio…
sea-snake Sep 9, 2026
dcc6ae6
feat(session): a wrong expiration is a missing delegation, not a miss…
sea-snake Sep 9, 2026
1ccedc5
Merge branch 'feat/app-delegation-from-session' into feat/session-ref…
sea-snake Sep 9, 2026
2453bfc
fix(session): a session lost to a race is not an internal fault
sea-snake Sep 9, 2026
1b94844
Merge branch 'feat/app-revoke-session' into feat/revoke-sessions-from…
sea-snake Sep 9, 2026
d123601
Merge branch 'feat/session-refresh-stamps' into feat/app-revoke-session
sea-snake Sep 9, 2026
3e48508
feat(session): stamp the access method that signs the browsers out, a…
sea-snake Sep 9, 2026
7024565
Merge branch 'feat/revoke-sessions-from-settings' into fe/authorizati…
sea-snake Sep 9, 2026
93628e2
Merge remote-tracking branch 'origin/main' into feat/sign-in-creates-…
sea-snake Sep 9, 2026
61be3d4
Merge branch 'feat/sign-in-creates-a-session' into feat/app-delegatio…
sea-snake Sep 9, 2026
d064768
Merge branch 'feat/app-delegation-from-session' into feat/session-ref…
sea-snake Sep 9, 2026
0b155a4
Merge branch 'feat/session-refresh-stamps' into feat/app-revoke-session
sea-snake Sep 9, 2026
1d209ce
Merge branch 'feat/app-revoke-session' into feat/revoke-sessions-from…
sea-snake Sep 9, 2026
d4d0339
Merge branch 'feat/revoke-sessions-from-settings' into fe/authorizati…
sea-snake Sep 9, 2026
2699f79
fix(storage): an origin too long to store has nothing to read
sea-snake Sep 10, 2026
cfc7352
Merge branch 'feat/sign-in-creates-a-session' into feat/app-delegatio…
sea-snake Sep 10, 2026
d0efa42
Merge branch 'feat/app-delegation-from-session' into feat/session-ref…
sea-snake Sep 10, 2026
82ec8f5
Merge branch 'feat/session-refresh-stamps' into feat/app-revoke-session
sea-snake Sep 10, 2026
49fec8c
Merge branch 'feat/app-revoke-session' into feat/revoke-sessions-from…
sea-snake Sep 10, 2026
76b4414
Merge branch 'feat/revoke-sessions-from-settings' into fe/authorizati…
sea-snake Sep 10, 2026
5363e32
test(session): drop a refresh test for a state that cannot occur
sea-snake Sep 10, 2026
3c4b910
Merge branch 'feat/session-refresh-stamps' into feat/app-revoke-session
sea-snake Sep 10, 2026
4901f0f
Merge branch 'feat/app-revoke-session' into feat/revoke-sessions-from…
sea-snake Sep 10, 2026
52aac82
Merge branch 'feat/revoke-sessions-from-settings' into fe/authorizati…
sea-snake Sep 10, 2026
378cf13
Merge remote-tracking branch 'origin/main' into fe/authorization-requ…
sea-snake Sep 10, 2026
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
14 changes: 2 additions & 12 deletions src/frontend/src/lib/stores/channelHandlers/delegation.ts
Original file line number Diff line number Diff line change
Expand Up @@ -26,17 +26,7 @@ import {
attributeConsentStore,
} from "$lib/stores/attributeConsent.store";
import { get } from "svelte/store";

/** Serialize delegation requests so a malicious dapp sending several in
* parallel can't race the authorization state (effective origin, auth
* flow, authorized account) against itself. */
let delegationQueueTail: Promise<unknown> = Promise.resolve();
const serializeDelegationRequest = <T>(fn: () => Promise<T>): Promise<T> => {
const prev = delegationQueueTail;
const next = prev.then(fn);
delegationQueueTail = next.catch(() => {});
return next;
};
import { serializeAuthorizationRequest } from "$lib/stores/channelHandlers/serialize";

/**
* ICRC-34: handle a delegation request from the relying party.
Expand Down Expand Up @@ -66,7 +56,7 @@ export const handleDelegationRequest =
return;
}

await serializeDelegationRequest(async () => {
await serializeAuthorizationRequest(async () => {
try {
const params = result.data;

Expand Down
17 changes: 17 additions & 0 deletions src/frontend/src/lib/stores/channelHandlers/serialize.ts
Original file line number Diff line number Diff line change
@@ -0,0 +1,17 @@
/**
* Runs authorization-bearing requests one at a time.
*
* Several handlers drive the same authorization state — the effective origin, the auth
* flow, the authorized account — so a dapp sending requests in parallel could otherwise
* race them against each other and have the user approve a screen naming one origin
* while another is answered.
*/
let queueTail: Promise<unknown> = Promise.resolve();

export const serializeAuthorizationRequest = <T>(
run: () => Promise<T>,
): Promise<T> => {
const next = queueTail.then(run);
Comment thread
sea-snake marked this conversation as resolved.
queueTail = next.catch(() => {});
return next;
};
Loading