SECTION 05 / SIGNAL FLOW
Routing model
Candidate order
- The agent that most recently completed a signature for the requested key.
- Explicit registrations, newest first, followed by discovered sockets in stable path order.
- Explicitly configured static agents, including local 1Password.
Listing identities never promotes an agent. Only a completed signature is evidence that a signer is useful right now.
Identity requests
Lanyard asks every reachable candidate, unions their public identities, and deduplicates equal keys. A slow or broken candidate cannot prevent healthy agents from contributing within the configured request budget.
Signature requests
Current candidates are tried in order; Lanyard does not cache identity-list results because agent ownership and availability can change. A timeout or ordinary agent failure advances to the next candidate. Success promotes that candidate for the exact requested public-key blob. Exhaustion returns an SSH agent failure response.
OpenSSH extensions
query and session-bind@openssh.com are understood. Session bindings are replayed to candidate agents before a signature is requested, preserving OpenSSH’s destination-bound authentication behavior. Unknown extensions fail closed.
| Budget | Default |
|---|---|
| Connect | 500 ms |
| Identity listing | 2 s / agent |
| Signing | 30 s / agent |
| Message size | 256 KiB |
| Candidates | 32 |