Skip to content
7 changes: 7 additions & 0 deletions ARCHITECTURE.md
Original file line number Diff line number Diff line change
Expand Up @@ -121,6 +121,13 @@ The `CredentialService` mostly just forwards events over to the UI service, minu
any details that are not necessary for the UI to know (like the response
channels mentioned above, which cannot be serialized over D-Bus anyway).

USB, hybrid, and NFC handler events pass through shared request lifecycle
handling, while each transport keeps its own public states. All selected
transports share one snapshot of their originating request. Terminal events
are scoped to that request, so stale streams cannot complete a newer request.
Cancellation wakes pending streams. If every selected transport ends without
a terminal event, the request fails instead of remaining pending.

Actual interaction I/O is performed using the [libwebauthn][libwebauthn] library.

[libwebauthn]: https://github.com/linux-credentials/libwebauthn
Expand Down
3 changes: 3 additions & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,9 @@

## Improvements

- daemon: Fail credential discovery when all selected transports stop without a result.
- daemon: Wake pending credential streams when their request is cancelled.
- daemon: Ignore stale authenticator results from completed requests.
- ui: Remove process ID from credential prompt.

# 0.3.0 [2026-08-27]
Expand Down
Loading