Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
1941 commits
Select commit Hold shift + click to select a range
0c2db47
chore: merge fe/ii-session-delegation-handler
sea-snake Sep 8, 2026
eedeabc
chore: merge fe/describe-browser
sea-snake Sep 8, 2026
0509078
chore: merge fe/browser-key-store
sea-snake Sep 8, 2026
20aec53
chore: merge fe/app-session-store
sea-snake Sep 8, 2026
190c5d7
chore: merge feat/session-devices-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
786f1ba
chore: merge fe/authorization-request-queue
sea-snake Sep 9, 2026
0012355
chore: merge fe/ii-session-delegation-handler
sea-snake Sep 9, 2026
9dd96d0
chore: merge fe/describe-browser
sea-snake Sep 9, 2026
b6dacb0
chore: merge fe/browser-key-store
sea-snake Sep 9, 2026
2a2e5d3
chore: merge fe/app-session-store
sea-snake Sep 9, 2026
7376cd8
chore: merge feat/session-devices-settings
sea-snake Sep 9, 2026
8e7f065
test(internet_identity): pick a named brand that still exists
sea-snake Sep 9, 2026
6213822
feat(frontend): resolve the six named brands, and name the rest
sea-snake Sep 9, 2026
deccd00
chore: merge fe/ii-session-delegation-handler
sea-snake Sep 9, 2026
5fe7ee2
chore: merge fe/describe-browser
sea-snake Sep 9, 2026
19fad37
chore: merge fe/browser-key-store
sea-snake Sep 9, 2026
6955c79
chore: merge fe/app-session-store
sea-snake Sep 9, 2026
c00d95e
chore: merge feat/session-devices-settings
sea-snake Sep 9, 2026
c409042
feat(frontend): name only the six, and let the rest arrive as tokens
sea-snake Sep 9, 2026
db374c6
chore: merge fe/ii-session-delegation-handler
sea-snake Sep 9, 2026
4e28335
chore: merge feat/session-devices-settings
sea-snake Sep 9, 2026
2e79018
test(frontend): fork against a brand that is still named
sea-snake Sep 9, 2026
d4f1f37
chore: merge fe/browser-key-store
sea-snake Sep 9, 2026
667fa9d
chore: merge fe/app-session-store
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
cab6208
chore: merge fe/ii-session-delegation-handler
sea-snake Sep 9, 2026
8f0c7e8
chore: merge feat/session-devices-settings
sea-snake Sep 9, 2026
ab54c58
chore: merge fe/authorization-request-queue
sea-snake Sep 9, 2026
be1ac87
chore: merge fe/describe-browser
sea-snake Sep 9, 2026
7a21b9f
chore: merge fe/browser-key-store
sea-snake Sep 9, 2026
89319bb
chore: merge fe/app-session-store
sea-snake Sep 9, 2026
4286eea
chore: merge feat/revoke-sessions-from-settings
sea-snake Sep 9, 2026
e9a932f
feat: give signed-in browsers their own page
sea-snake Sep 9, 2026
e55e5fe
Merge branch 'feat/session-devices-settings' into feat/authorize-prom…
sea-snake Sep 9, 2026
22fef02
test: type the two new cases against the generated interface
sea-snake Sep 9, 2026
93ae5c5
Merge branch 'feat/session-devices-settings' into feat/authorize-prom…
sea-snake Sep 9, 2026
5680c83
fix(fe): handle the absent form-factor hint explicitly
sea-snake Sep 9, 2026
6ec18f3
Merge branch 'fe/describe-browser' into fe/browser-key-store
sea-snake Sep 9, 2026
1c764f3
Merge branch 'fe/browser-key-store' into fe/app-session-store
sea-snake Sep 9, 2026
e4d2605
Merge branch 'fe/app-session-store' into fe/ii-session-delegation-han…
sea-snake Sep 9, 2026
95477cb
Merge branch 'fe/ii-session-delegation-handler' into feat/session-dev…
sea-snake Sep 9, 2026
3d2d456
Merge branch 'feat/session-devices-settings' into feat/authorize-prom…
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
0dc6938
Merge branch 'fe/authorization-request-queue' into fe/describe-browser
sea-snake Sep 9, 2026
76519f3
Merge branch 'fe/describe-browser' into fe/browser-key-store
sea-snake Sep 9, 2026
72c71ed
Merge branch 'fe/browser-key-store' into fe/app-session-store
sea-snake Sep 9, 2026
b402663
Merge branch 'fe/app-session-store' into fe/ii-session-delegation-han…
sea-snake Sep 9, 2026
3bd8f90
Merge branch 'fe/ii-session-delegation-handler' into feat/session-dev…
sea-snake Sep 9, 2026
d5cda27
Merge branch 'feat/session-devices-settings' into feat/authorize-prom…
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
9b29e4c
Merge branch 'fe/authorization-request-queue' into fe/describe-browser
sea-snake Sep 9, 2026
abe58e1
Merge branch 'fe/describe-browser' into fe/browser-key-store
sea-snake Sep 9, 2026
b4ba3d5
Merge branch 'fe/browser-key-store' into fe/app-session-store
sea-snake Sep 9, 2026
9a398c9
Merge branch 'fe/app-session-store' into fe/ii-session-delegation-han…
sea-snake Sep 9, 2026
ca13887
Merge branch 'fe/ii-session-delegation-handler' into feat/session-dev…
sea-snake Sep 9, 2026
7c29a9f
Merge branch 'feat/session-devices-settings' into feat/authorize-prom…
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
6dc3b56
Merge branch 'fe/authorization-request-queue' into fe/describe-browser
sea-snake Sep 9, 2026
edd5e61
Merge branch 'fe/describe-browser' into fe/browser-key-store
sea-snake Sep 9, 2026
60f9433
Merge branch 'fe/browser-key-store' into fe/app-session-store
sea-snake Sep 9, 2026
3d5847c
Merge branch 'fe/app-session-store' into fe/ii-session-delegation-han…
sea-snake Sep 9, 2026
6d05a21
Merge branch 'fe/ii-session-delegation-handler' into feat/session-dev…
sea-snake Sep 9, 2026
b7f5ef8
Merge branch 'feat/session-devices-settings' into feat/authorize-prom…
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
c496493
Merge branch 'fe/authorization-request-queue' into fe/describe-browser
sea-snake Sep 9, 2026
3b1b310
Merge branch 'feat/revoke-sessions-from-settings' into fe/authorizati…
sea-snake Sep 9, 2026
9953678
Merge branch 'fe/describe-browser' into fe/browser-key-store
sea-snake Sep 9, 2026
6c730f9
Merge branch 'fe/browser-key-store' into fe/app-session-store
sea-snake Sep 9, 2026
5df61c7
Merge branch 'fe/ii-session-delegation-handler' into feat/session-dev…
sea-snake Sep 9, 2026
beb78b9
Merge branch 'fe/app-session-store' into fe/ii-session-delegation-han…
sea-snake Sep 9, 2026
887bba1
Merge branch 'feat/session-devices-settings' into feat/authorize-prom…
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
479ba86
Merge branch 'fe/ii-session-delegation-handler' into feat/session-dev…
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
b547365
Merge branch 'fe/authorization-request-queue' into fe/describe-browser
sea-snake Sep 9, 2026
7e96ddd
Merge branch 'feat/revoke-sessions-from-settings' into fe/authorizati…
sea-snake Sep 9, 2026
c157b27
Merge branch 'fe/describe-browser' into fe/browser-key-store
sea-snake Sep 9, 2026
e54916f
Merge branch 'fe/browser-key-store' into fe/app-session-store
sea-snake Sep 9, 2026
617a50a
Merge branch 'fe/app-session-store' into fe/ii-session-delegation-han…
sea-snake Sep 9, 2026
9caed01
Merge branch 'feat/session-devices-settings' into feat/authorize-prom…
sea-snake Sep 9, 2026
af7287c
feat(devices): group browsers by the device they run on
sea-snake Sep 9, 2026
0669afc
Merge branch 'feat/session-devices-settings' into feat/authorize-prom…
sea-snake Sep 9, 2026
b66d4de
feat(devices): group browsers by the device they run on
sea-snake Sep 9, 2026
d07f5cc
Merge branch 'feat/session-devices-settings' into feat/authorize-prom…
sea-snake Sep 9, 2026
6318708
fix(devices): do not draw the synthetic row before the id read finishes
sea-snake Sep 9, 2026
24fbce9
Merge branch 'feat/session-devices-settings' into feat/authorize-prom…
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
fe02515
Merge branch 'fe/authorization-request-queue' into fe/describe-browser
sea-snake Sep 9, 2026
7024565
Merge branch 'feat/revoke-sessions-from-settings' into fe/authorizati…
sea-snake Sep 9, 2026
c4fe9c3
Merge branch 'fe/describe-browser' into fe/browser-key-store
sea-snake Sep 9, 2026
07798d7
Merge branch 'fe/browser-key-store' into fe/app-session-store
sea-snake Sep 9, 2026
f58f71c
Merge branch 'fe/app-session-store' into fe/ii-session-delegation-han…
sea-snake Sep 9, 2026
ff17f9f
Merge branch 'fe/ii-session-delegation-handler' into feat/session-dev…
sea-snake Sep 9, 2026
2cec759
Merge branch 'feat/session-devices-settings' into feat/authorize-prom…
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
8b42ad9
Merge branch 'fe/authorization-request-queue' into fe/describe-browser
sea-snake Sep 9, 2026
d4d0339
Merge branch 'feat/revoke-sessions-from-settings' into fe/authorizati…
sea-snake Sep 9, 2026
1befa72
Merge branch 'fe/describe-browser' into fe/browser-key-store
sea-snake Sep 9, 2026
395bb26
Merge branch 'fe/browser-key-store' into fe/app-session-store
sea-snake Sep 9, 2026
b2cec72
Merge branch 'fe/app-session-store' into fe/ii-session-delegation-han…
sea-snake Sep 9, 2026
03f452d
Merge branch 'fe/ii-session-delegation-handler' into feat/session-dev…
sea-snake Sep 9, 2026
af8f8bf
Merge branch 'feat/session-devices-settings' into feat/authorize-prom…
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
022f107
Merge branch 'fe/authorization-request-queue' into fe/describe-browser
sea-snake Sep 10, 2026
76b4414
Merge branch 'feat/revoke-sessions-from-settings' into fe/authorizati…
sea-snake Sep 10, 2026
5a5035f
Merge branch 'fe/describe-browser' into fe/browser-key-store
sea-snake Sep 10, 2026
dfc21e3
Merge branch 'fe/browser-key-store' into fe/app-session-store
sea-snake Sep 10, 2026
a6003c5
Merge branch 'fe/app-session-store' into fe/ii-session-delegation-han…
sea-snake Sep 10, 2026
0801a20
Merge branch 'fe/ii-session-delegation-handler' into feat/session-dev…
sea-snake Sep 10, 2026
e4ce64d
Merge branch 'feat/session-devices-settings' into feat/authorize-prom…
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
d192e97
Merge branch 'fe/authorization-request-queue' into fe/describe-browser
sea-snake Sep 10, 2026
52aac82
Merge branch 'feat/revoke-sessions-from-settings' into fe/authorizati…
sea-snake Sep 10, 2026
b07e825
Merge branch 'fe/describe-browser' into fe/browser-key-store
sea-snake Sep 10, 2026
3829487
Merge branch 'fe/browser-key-store' into fe/app-session-store
sea-snake Sep 10, 2026
a60b970
Merge branch 'fe/app-session-store' into fe/ii-session-delegation-han…
sea-snake Sep 10, 2026
dad7629
Merge branch 'fe/ii-session-delegation-handler' into feat/session-dev…
sea-snake Sep 10, 2026
0d5b9c1
Merge branch 'feat/session-devices-settings' into feat/authorize-prom…
sea-snake Sep 10, 2026
0ffa028
refactor(browser): name a browser by the token it gives, wherever it …
sea-snake Sep 10, 2026
b9d5f7b
Merge branch 'fe/describe-browser' into fe/browser-key-store
sea-snake Sep 10, 2026
ee0a03f
refactor(browser-key): the store rotates, rather than asking to be to…
sea-snake Sep 10, 2026
ed03c7a
Merge branch 'fe/browser-key-store' into fe/app-session-store
sea-snake Sep 10, 2026
f7b6eb5
fix(app-sessions): finish removing an identity before leaving the page
sea-snake Sep 10, 2026
bb25bf4
Merge branch 'fe/app-session-store' into fe/ii-session-delegation-han…
sea-snake Sep 10, 2026
1d1860d
fix(session-delegation): a duration it cannot read is an error, not s…
sea-snake Sep 10, 2026
f42ffcc
Merge branch 'fe/ii-session-delegation-handler' into feat/session-dev…
sea-snake Sep 10, 2026
6947c13
Merge branch 'feat/session-devices-settings' into feat/authorize-prom…
sea-snake Sep 10, 2026
262b812
fix(devices): follow describeBrowser to where it moved
sea-snake Sep 10, 2026
78a3b6e
Merge branch 'feat/session-devices-settings' into feat/authorize-prom…
sea-snake Sep 10, 2026
378cf13
Merge remote-tracking branch 'origin/main' into fe/authorization-requ…
sea-snake Sep 10, 2026
b6a514e
Merge branch 'fe/authorization-request-queue' into fe/describe-browser
sea-snake Sep 10, 2026
b0e1a39
Merge branch 'fe/describe-browser' into fe/browser-key-store
sea-snake Sep 10, 2026
17a9ae4
Merge branch 'fe/app-session-store' into fe/ii-session-delegation-han…
sea-snake Sep 10, 2026
86fb881
Merge branch 'fe/ii-session-delegation-handler' into feat/session-dev…
sea-snake Sep 10, 2026
fa8d2f1
Merge branch 'feat/session-devices-settings' into feat/authorize-prom…
sea-snake Sep 10, 2026
135064c
Merge branch 'fe/browser-key-store' into fe/app-session-store
sea-snake Sep 10, 2026
7dfa92c
fix(session-delegation): keep the targets the canister signed
sea-snake Sep 10, 2026
e073aa4
Merge branch 'fe/ii-session-delegation-handler' into feat/session-dev…
sea-snake Sep 10, 2026
3999dc3
feat(devices): this browser is a row about the present, and the page …
sea-snake Sep 10, 2026
51d2b63
Merge branch 'feat/session-devices-settings' into feat/authorize-prom…
sea-snake Sep 10, 2026
c46153f
fix(describe-browser): name only the form factors the canister has
sea-snake Sep 10, 2026
8728364
Merge branch 'fe/describe-browser' into fe/browser-key-store
sea-snake Sep 10, 2026
7771951
refactor(browser-key): name the successor the record holds
sea-snake Sep 10, 2026
2b3fa02
Merge branch 'fe/browser-key-store' into fe/app-session-store
sea-snake Sep 10, 2026
0baa7d6
fix(sessions): answer undefined for a key the parser cannot read
sea-snake Sep 10, 2026
0803107
Merge branch 'fe/app-session-store' into fe/ii-session-delegation-han…
sea-snake Sep 10, 2026
e371f37
fix(transport): accept only decimal digits as a nat64
sea-snake Sep 10, 2026
ee75749
Merge branch 'fe/ii-session-delegation-handler' into feat/session-dev…
sea-snake Sep 10, 2026
8cbc044
fix(devices): lay the list out for the pane it sits in
sea-snake Sep 10, 2026
439017c
Merge branch 'feat/session-devices-settings' into feat/authorize-prom…
sea-snake Sep 10, 2026
d66c325
fix(silent-reauth): choose among the sessions that are still live
sea-snake Sep 10, 2026
c83b3e0
style(describe-browser): format the test file
sea-snake Sep 10, 2026
80c7e09
Merge branch 'fe/describe-browser' into fe/browser-key-store
sea-snake Sep 10, 2026
662935d
Merge branch 'fe/browser-key-store' into fe/app-session-store
sea-snake Sep 10, 2026
c9a3465
refactor(sessions): separate forgetting an identity from revoking it
sea-snake Sep 10, 2026
e0044a5
Merge branch 'fe/app-session-store' into fe/ii-session-delegation-han…
sea-snake Sep 10, 2026
da90517
Merge branch 'fe/ii-session-delegation-handler' into feat/session-dev…
sea-snake Sep 10, 2026
920a3f7
Merge branch 'feat/session-devices-settings' into feat/authorize-prom…
sea-snake Sep 10, 2026
65bad09
test(e2e): drive the sign-out dialog by its current labels
sea-snake Sep 10, 2026
d9c9241
Merge branch 'feat/session-devices-settings' into feat/authorize-prom…
sea-snake Sep 10, 2026
9ec4fcd
test(e2e): read the signed-out identity from what remains
sea-snake Sep 10, 2026
80d8da3
Merge branch 'feat/session-devices-settings' into feat/authorize-prom…
sea-snake Sep 10, 2026
40ac656
Merge remote-tracking branch 'origin/main' into feat/authorize-prompt…
sea-snake Sep 10, 2026
d31f27f
test(sessions): cover the ceremony's request and the id it stores
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
9 changes: 9 additions & 0 deletions src/canister_tests/src/api/internet_identity/api_v2.rs
Original file line number Diff line number Diff line change
Expand Up @@ -773,6 +773,15 @@ pub fn get_account_session(
query_candid_as(env, canister_id, sender, "get_account_session", (request,)).map(|(x,)| x)
}

/// The II frontend's liveness check, called as the query it is declared as.
pub fn check_session(
env: &PocketIc,
canister_id: CanisterId,
sender: Principal,
) -> Result<bool, RejectResponse> {
query_candid_as(env, canister_id, sender, "check_session", ()).map(|(x,)| x)
}

pub fn app_prepare_delegation(
env: &PocketIc,
canister_id: CanisterId,
Expand Down
1 change: 1 addition & 0 deletions src/frontend/src/lib/generated/internet_identity_idl.js
Original file line number Diff line number Diff line change
Expand Up @@ -1067,6 +1067,7 @@ export const idlFactory = ({ IDL }) => {
],
[],
),
'check_session' : IDL.Func([], [IDL.Bool], ['query']),
'config' : IDL.Func([], [InternetIdentityInit], ['query']),
'create_account' : IDL.Func(
[UserNumber, FrontendHostname, IDL.Text],
Expand Down
7 changes: 7 additions & 0 deletions src/frontend/src/lib/generated/internet_identity_types.d.ts
Original file line number Diff line number Diff line change
Expand Up @@ -2143,6 +2143,13 @@ export interface _SERVICE {
{ 'Ok' : IdRegNextStepResult } |
{ 'Err' : CheckCaptchaError }
>,
/**
* Whether the calling session is still usable. For the II frontend's silent
* re-auth path, which must decide whether it can answer without rendering
* anything. Advisory: a query reply is not certified, and every mint enforces
* the same conditions regardless of the answer here.
*/
'check_session' : ActorMethod<[], boolean>,
'config' : ActorMethod<[], InternetIdentityInit>,
'create_account' : ActorMethod<
[UserNumber, FrontendHostname, string],
Expand Down
20 changes: 0 additions & 20 deletions src/frontend/src/lib/stores/app-session.store.test.ts
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,6 @@ import { createStore, set as idbSet } from "idb-keyval";
import {
appAccountsForOrigin,
appSessionsForOrigin,
discardAppSession,
purgeAppSessions,
rememberAppAccount,
storeAppSession,
Expand Down Expand Up @@ -65,16 +64,6 @@ describe("app session store", () => {
]);
});

it("keeps the account mapping when the session is discarded", async () => {
const key = { identityNumber: BigInt(10_000), origin: ORIGIN };
await rememberAppAccount(key, { accountPrincipal: "2vxsx-fae" });
await storeAppSession(key, record(anHourFromNow()));

await discardAppSession(key);

await expect(appAccountsForOrigin(ORIGIN)).resolves.toHaveLength(1);
});

it("keeps accounts of one identity apart", async () => {
const identityNumber = BigInt(10_000);
await storeAppSession(
Expand All @@ -99,15 +88,6 @@ describe("app session store", () => {
await expect(appSessionsForOrigin(ORIGIN)).resolves.toEqual([]);
});

it("discards a session", async () => {
const key = { identityNumber: BigInt(10_000), origin: ORIGIN };
await storeAppSession(key, record(anHourFromNow()));

await discardAppSession(key);

await expect(appSessionsForOrigin(ORIGIN)).resolves.toEqual([]);
});

it("lists every identity holding a session at one origin", async () => {
await storeAppSession(
{ identityNumber: BigInt(10_000), origin: ORIGIN },
Expand Down
8 changes: 0 additions & 8 deletions src/frontend/src/lib/stores/app-session.store.ts
Original file line number Diff line number Diff line change
Expand Up @@ -115,14 +115,6 @@ export const rememberAppAccount = async (
}
};

export const discardAppSession = async (key: SessionKey): Promise<void> => {
try {
await idbDel(sessionKey(key), APP_SESSION_STORE);
} catch {
// A session that cannot be discarded locally is still revocable canister-side.
}
};

/** Every session this identity holds, for the sibling lookup and for sign-out.
*
* Each carries the principal its account is known by, which lives in the other store
Expand Down
12 changes: 12 additions & 0 deletions src/frontend/src/lib/stores/authorization.store.ts
Original file line number Diff line number Diff line change
Expand Up @@ -33,6 +33,18 @@ export type Authorized = {
const contextInternal = writable<AuthorizationContext | undefined>();
const authorizedInternal = writable<Authorized | undefined>();

export type AuthorizationPromptContext = {
prompt?: "none" | "login";
hint?: string;
resumable?: boolean;
};

/** Kept out of `AuthorizationContext`, whose presence is what makes the sign-in UI
* render: URL state must not paint anything before there is a request to answer. */
export const authorizationPromptStore = writable<AuthorizationPromptContext>(
{},
);

export const authorizationStore = {
/** Called by the channel handler once the delegation request is parsed.
* Sets the effective origin and the app's requested session duration in a
Expand Down
Loading
Loading