feat: show the current request identity in the panel - #108
Merged
Merged
Conversation
Add a native Identity component showing authenticated request facts and exact declared scopes, with explicit unknown and empty states. Discover mounted passkey ceremonies and return to Identity without moving them behind the panel gate. Ignore query claims and remount stale component envelopes. English and Spanish catalogues, terminal state and boundary tests accompany Greenhouse decisions 0322 and 0323, evidence 0639.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Add an Identity section showing the authenticated actor and declared scopes of the current request. The component distinguishes missing scope data from an empty list, marks request-specific HTML no-store, ignores query claims and remounts supplied state so an old envelope cannot display another visitor. Passkey links are discovered from mounted routes and return to Identity; their ceremony stays outside the panel gate. English and Spanish copy and the existing terminal projection share the component.
When app-runtime is installed, require >=0.154.1 through a conditional conflict: its shared passkey resolver renews scopes from the current enrollment ledger. The panel itself neither reads enrollment files nor grants permissions.
Greenhouse decisions 0322/0323 and evidence 0639: 12 real HTTP controls pass on fresh cattle, including actor separation, query forgery, gate and asset protection, public ceremonies, scope reduction and revocation. Chrome DevTools MCP verified English/Spanish rendering and the narrow viewport; no console warnings/errors or external resource requests.
Validation: 279 tests / 3089 assertions; 93.74% coverage (floor 93%); PHPStan, code style, DocBlocks, Composer and attribution checks pass. This slice does not add enrollment editing or a directory of identities.