docs(agents): record per-row OAuth routing, /login picker, and _meta.connected contract
This commit is contained in:
@@ -168,6 +168,16 @@ edges stay deterministic Rust. The harness appends a terminal
|
|||||||
are built generically from advertised methods (`AuthMethodKind::
|
are built generically from advertised methods (`AuthMethodKind::
|
||||||
ApiKeyPlatform`), so new registry rows appear in the picker with no TUI
|
ApiKeyPlatform`), so new registry rows appear in the picker with no TUI
|
||||||
changes.
|
changes.
|
||||||
|
- Every OAuth picker row carries ITS OWN method id (`PendingMenuItem::Login
|
||||||
|
{ method_id }` → `Action::LoginWith`); an unknown id fails closed. The
|
||||||
|
id-less `Action::Login` (auto-login, 401 re-auth) resolves the first
|
||||||
|
interactive method. `/login` opens the picker (`Action::OpenLoginPicker`),
|
||||||
|
never a flow directly; mid-session its last row is Cancel, not Quit.
|
||||||
|
- `_meta.connected` on an advertised method is DISPLAY state (green badge on
|
||||||
|
the picker): stamped at `initialize()` from stored credentials
|
||||||
|
(`connected_method_ids` + `stamp_connected_meta`), kept fresh TUI-side
|
||||||
|
after in-session logins (`auth_in_flight_method` → `AuthComplete`). It is
|
||||||
|
never an authorization input.
|
||||||
- Refreshable-OAuth providers beyond Kimi Code use a GENERIC path, NOT Kimi's
|
- Refreshable-OAuth providers beyond Kimi Code use a GENERIC path, NOT Kimi's
|
||||||
bespoke wire. A `uses_oauth` platform carrying `oauth: Some(&OAuthConfig)`
|
bespoke wire. A `uses_oauth` platform carrying `oauth: Some(&OAuthConfig)`
|
||||||
(client id / auth host / start+token paths / `token_host` / `scope` /
|
(client id / auth host / start+token paths / `token_host` / `scope` /
|
||||||
|
|||||||
Reference in New Issue
Block a user