Clone this repository
For self-hosted knots, clone URLs may differ based on your setup.
Download tar.gz
Implements multi-identity monitoring that:
- Lists all managed identities from IdentityStore
- Calls check_for_changes for each identity sequentially
- Aggregates results into IdentityStatus list
- Returns complete state in one call, avoiding N+1 IPC calls
Verifies AC6.1-AC6.2 for multi-identity variant.
Implements the core monitoring logic that:
- Fetches audit logs from plc.directory via PdsClient
- Diffs against cached state stored in IdentityStore
- Classifies operations as authorized (signed by device key) or unauthorized
- Identifies signing keys by testing rotation keys from previous ops
- Gracefully handles network errors and empty logs
- Updates cache for next monitoring cycle
Verifies AC6.1-AC6.8 via unit tests for serialization and error handling.
Critical fixes:
- ClaimSuccessScreen: use plcDoc.did (PLC format) instead of .id (W3C)
- IdentityListHome: push degraded card on inner catch instead of dropping
Important fixes:
- IdentityListHome: show error state when listIdentities() fails
- EmailVerificationScreen: differentiate UNAUTHORIZED from generic errors
- +page.svelte: log Keychain errors in onMount catch block
- CLAUDE.md: correct sign_and_verify_claim signature (did, not device_key_id)
- normalizePlcDocToW3c: fix JSDoc, handle verificationMethods map, use did??id
Code quality (suggestions):
- Extract truncateDid, extractHandle, isCodedError, normalizePlcDocToW3c to
shared did-doc-utils.ts (eliminates duplication across 6 components)
- Remove dead selectedDid state from +page.svelte
- Add console.error in all structured catch blocks for diagnostic trail
- Include error code in default switch messages
- Fix step comment numbering in lib.rs (was 1,2,4,5,6 → now 1,2,3,4,5)
- Fix startPdsAuth JSDoc (resolves promise, not emits event)
- Fix IdentityStoreError TS type (add message to KEYCHAIN/KEY_GEN/SERIALIZATION)
- ClaimSuccessScreen: strip at:// prefix from handle display
- Fixed function signature line length in get_stored_did_doc (apps/identity-wallet/src-tauri/src/lib.rs:683)
- Fixed .map_err chain formatting (apps/identity-wallet/src-tauri/src/lib.rs:687-690)
- Applied cargo fmt --all to automatically fix all formatting issues
Verified with cargo fmt --all --check (no violations remain)