feat: connection page - #755
Draft
coplat wants to merge 54 commits into
Draft
Conversation
…nt_screens' into feat/connection-page
…nt_screens' into feat/connection-page
There was a problem hiding this comment.
Pull request overview
Introduces a redesigned connection-acceptance flow shared across SIOPv2, OID4VP, and OID4VCI, including connection history and certification details.
Changes:
- Adds connection trust, interaction, domain-validation, and certification interfaces.
- Refactors QR processing through an acceptance stage and extends prompt metadata.
- Adds localization, generated bindings, mocks, and utility tests.
Reviewed changes
Copilot reviewed 60 out of 60 changed files in this pull request and generated 19 comments.
Show a summary per file
| File | Description |
|---|---|
unime/src/routes/prompt/share-credentials/+page.svelte |
Updates logo presentation. |
unime/src/routes/prompt/credential-offer/+page.svelte |
Updates issuer logo presentation. |
unime/src/routes/prompt/accept-connection/SectionHeader.svelte |
Adds reusable section headings. |
unime/src/routes/prompt/accept-connection/InteractionTiles.svelte |
Displays interaction counts. |
unime/src/routes/prompt/accept-connection/DomainPill.svelte |
Displays domain status badges. |
unime/src/routes/prompt/accept-connection/CertificationsSummary.svelte |
Adds collapsed certification count. |
unime/src/routes/prompt/accept-connection/certifications/+page.ts |
Configures certification-list layout. |
unime/src/routes/prompt/accept-connection/certifications/+page.svelte |
Adds certification list page. |
unime/src/routes/prompt/accept-connection/certifications/[id]/CertificationOverview.svelte |
Adds certification status overview. |
unime/src/routes/prompt/accept-connection/certifications/[id]/+page.ts |
Configures certification-detail layout. |
unime/src/routes/prompt/accept-connection/certifications/[id]/+page.svelte |
Adds certification detail page. |
unime/src/routes/prompt/accept-connection/CertificationCard.svelte |
Adds certification cards. |
unime/src/routes/prompt/accept-connection/+page.svelte |
Redesigns the connection prompt. |
unime/src/routes/prompt/accept-connection/+layout.svelte |
Manages prompt cancellation across subroutes. |
unime/src/routes/+layout.svelte |
Preserves prompt subroute navigation. |
unime/src/lib/utils/url.ts |
Adds safe hostname parsing. |
unime/src/lib/utils/history.ts |
Adds interaction aggregation. |
unime/src/lib/utils/history.test.ts |
Tests interaction aggregation. |
unime/src/lib/utils.ts |
Adds optional relative-date capitalization. |
unime/src/lib/utils.test.ts |
Tests uncapitalized relative dates. |
unime/src/lib/icons/index.ts |
Exports a shield icon. |
unime/src/lib/dev/mocks/resolve.ts |
Resolves development connection fixtures. |
unime/src/lib/dev/mocks/accept-connection.ts |
Adds connection-page fixtures. |
unime/src/i18n/sv-FI/index.ts |
Adds Swedish translations. |
unime/src/i18n/nl-NL/index.ts |
Adds Dutch translations. |
unime/src/i18n/i18n-types.ts |
Updates generated translation types. |
unime/src/i18n/fi-FI/index.ts |
Adds Finnish translations. |
unime/src/i18n/es-ES/index.ts |
Adds Spanish translations. |
unime/src/i18n/en/index.ts |
Adds English translations. |
unime/src/i18n/de-DE/index.ts |
Adds German translations. |
unime/src-tauri/tests/tests/qr_code_scanned.rs |
Changes QR integration-test execution. |
unime/src-tauri/tests/tests/credential_offer.rs |
Changes offer integration-test execution. |
unime/src-tauri/tests/fixtures/states/accept_connection.json |
Updates prompt fixture shape. |
unime/.typesafe-i18n.json |
Updates the translation schema reference. |
identity-wallet/src/state/user_prompt.rs |
Extends connection prompt data models. |
identity-wallet/src/state/search/reducers/search_query.rs |
Updates credential fixtures for issuer logos. |
identity-wallet/src/state/qr_code/reducers/search_query.rs |
Updates credential fixtures for issuer logos. |
identity-wallet/src/state/qr_code/reducers/read_credential_offer.rs |
Processes accepted credential offers. |
identity-wallet/src/state/qr_code/reducers/read_authorization_request.rs |
Processes accepted OID4VP requests. |
identity-wallet/src/state/qr_code/reducers/mod.rs |
Exports the acceptance reducer. |
identity-wallet/src/state/qr_code/reducers/accept_connection.rs |
Adds the shared QR trust stage. |
identity-wallet/src/state/qr_code/actions/qrcode_scanned.rs |
Routes scans through connection acceptance. |
identity-wallet/src/state/did/validate_linked_verifiable_presentations.rs |
Builds detailed certification records. |
identity-wallet/src/state/did/validate_domain_linkage.rs |
Includes validated URLs in results. |
identity-wallet/src/state/credentials/reducers/share_to_linkedin.rs |
Renames a test environment variable. |
identity-wallet/src/state/credentials/reducers/send_token_request.rs |
Generalizes credential-status lookup. |
identity-wallet/src/state/credentials/reducers/send_interactive_authorization_request_follow_up.rs |
Propagates history-update failures. |
identity-wallet/src/state/credentials/reducers/send_credential_request.rs |
Uses asynchronous client metadata. |
identity-wallet/src/state/credentials/reducers/refresh_credential_status.rs |
Resolves status through Subject. |
identity-wallet/src/state/credentials/reducers/handle_oid4vp_authorization_request.rs |
Refactors metadata and VC handling. |
identity-wallet/src/state/credentials/mod.rs |
Adds issuer logos to display credentials. |
identity-wallet/src/state/credentials/actions/credential_offers_selected.rs |
Documents temporary connection sorting. |
identity-wallet/src/state/connections/reducers/handle_siopv2_authorization_request.rs |
Refactors SIOPv2 client metadata. |
identity-wallet/src/state/connections/actions/connection_accepted.rs |
Continues accepted protocol flows. |
identity-wallet/bindings/user_prompt/ValidationResult.ts |
Adds validation URLs. |
identity-wallet/bindings/user_prompt/Member.ts |
Adds generated member binding. |
identity-wallet/bindings/user_prompt/LinkedVerifiableCredentialData.ts |
Expands certification binding. |
identity-wallet/bindings/user_prompt/EcosystemProfile.ts |
Adds ecosystem binding. |
identity-wallet/bindings/user_prompt/CurrentUserPrompt.ts |
Updates generated prompt union. |
identity-wallet/bindings/user_prompt/ConnectionData.ts |
Adds connection-history binding. |
identity-wallet/bindings/credentials/DisplayCredential.ts |
Adds issuer-logo binding. |
Suppressed comments (4)
unime/src-tauri/tests/tests/qr_code_scanned.rs:63
- This disables the OID4VP scan integration test while the reducer/action sequence is being substantially changed. Adapt it to assert the new accept-connection prompt before credential selection, then re-enable it so the end-to-end flow remains covered.
#[ignore = "TODO: fix this test"]
unime/src-tauri/tests/tests/credential_offer.rs:127
- Ignoring this test removes the only integration coverage shown here for issuer-logo metadata handling while that logic is being rewritten. Update its state/setup for the new connection stage and re-enable it.
#[ignore = "TODO: fix this test"]
unime/src-tauri/tests/tests/credential_offer.rs:211
- Ignoring this test removes coverage for the no-logo metadata path while the same metadata parsing is changing. Adapt it to the new active-flow/accept-prompt contract and keep it active.
#[ignore = "TODO: fix this test"]
identity-wallet/src/state/qr_code/reducers/accept_connection.rs:48
- The active flow contains the complete authorization request/credential offer, so this info-level debug dump persists protocol request material in production logs. Replace it with a variant-only message.
info!("Initializing active flow: {active_flow:?}");
💡 Add a code-review agent skill or configure MCP servers for context-aware, tailored reviews. Learn more in the docs.
Comment on lines
+162
to
+166
| let did_doc = get_http_client() | ||
| .await | ||
| .get(format!( | ||
| "{}/.well-known/did.json", | ||
| credential_issuer_url.to_string().trim_end_matches('/') |
Comment on lines
+114
to
+118
| let origin = credential_issuer_url.origin().ascii_serialization(); | ||
| let connection_url = if origin == "null" { | ||
| credential_issuer_url.to_string() | ||
| } else { | ||
| origin |
…/identity-wallet into backend/connection-page
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.
Description of change
Please write a summary of your changes and why you made them.
Links to any relevant issues
Be sure to reference any related issues by adding
fixes issue #.How the change has been tested
Describe the tests that you ran to verify your changes.
Make sure to provide instructions for the maintainer as well as any relevant configurations.
Definition of Done checklist
Add an
xto the boxes that are relevant to your changes.