-
Notifications
You must be signed in to change notification settings - Fork 13
fix(identity): close two rounds of key-placement-resolution review findings #948
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Merged
Merged
Changes from all commits
Commits
Show all changes
82 commits
Select commit
Hold shift + click to select a range
efee42d
feat(model): add the legacy identity recovery plan and additive merge
lklimek 3bab9a9
feat(database): read one legacy identity row through the shared row d…
lklimek b677776
feat(identity): restore keys stranded in the previous version's saved…
lklimek c2e859f
feat(masternodes): offer the previous version's stranded keys on the …
lklimek c274558
feat(identities): offer stranded legacy keys on the Key Info screen
lklimek e484589
docs(identity): record the legacy-key recovery flow and close the mig…
lklimek 63991b7
fix(model): only offer legacy keys that still correspond to the identity
lklimek f405098
fix(identity): stop holding the storage guard across the password prompt
lklimek 7caf529
fix(ui): keep the restore offer and the record it wrote in step
lklimek fc125f4
docs(identity): record what the recovery flow actually shipped
lklimek 24d3081
fix(model): stop the legacy blob from vouching for its own voter key
lklimek 4c42e55
fix(identity): gate the recovery offer on legacy rows, not on data.db…
lklimek cdde7f1
fix(ui): re-read the key screen on arrival and attribute a finished r…
lklimek be5299b
test(identity): pin the mid-flight protection guard against regression
lklimek ad22a2c
fix(model): stop the legacy blob from vouching for its own operator key
lklimek bff08f7
fix(masternodes): drop the missing-voter message that can never be shown
lklimek 171c512
fix(ui): let the recovery section read as a whole when it can restore…
lklimek 1612fc7
docs(identity): stop promising a voting-key restore that cannot happen
lklimek 2ade1b8
fix(identity): give the identity keys list a way into each key
lklimek 8db5341
test(identity): pin the restore outcome and the key naming on the key…
lklimek b1e2f28
test(identity): report both restore outcomes on the keys list in the …
lklimek ef665b1
fix(identity): make the keys list and Key Info agree on where a key i…
lklimek a237497
fix(identity): return from a key to a current list, in the identity's…
lklimek cb5b0de
fix(identity): one attribution rule for both hosts of the recovery offer
lklimek f36b4ca
fix(identity): identify a key by its public half, and name it the sam…
lklimek aa1234f
fix(identity): find a key's private half where it is filed, not where…
lklimek 2dbc996
fix(identity): Key Info names a user's keys the way the keys list does
lklimek d39457b
fix(identity): a disabled key the device holds is still reported as held
lklimek 3228b2a
fix(identity): resolve a key's store on demand instead of threading i…
lklimek 91fbc73
fix(masternodes): a key opened from a node's page keeps the name the …
lklimek 66a80a8
refactor(identity): make the key map private so the resolver cannot b…
lklimek 5f82b74
docs(identity): record the key-placement resolution design and the fix
lklimek 4042c01
refactor(identity): one held-key resolution rule for every Manage key…
lklimek a028d7e
refactor(identity): make an upstream key field a build failure, not a…
lklimek c95f067
Merge fix/889-key-info-navigation into the key-placement resolver
lklimek c898a70
test(identity): pin that removing one key spares a different key shar…
lklimek 001b3d5
Merge fix/889-key-info-navigation: port the key-field exhaustiveness …
lklimek 0e41d5d
fix(masternodes): resolve the Add-protection CTA's held key like ever…
lklimek 15f2729
fix(identity): a removed key takes its stored secret with it
lklimek fd78713
fix(wallet): check the key a placement names before signing with it
lklimek 1a944eb
Merge remote-tracking branch 'origin/v1.0-dev' into fix/889-key-info-…
lklimek 6eb40cb
docs(identity): drop dead review-finding IDs from key-storage doc com…
lklimek 66995fe
refactor(masternodes): narrow first_protectable_key to the key it finds
lklimek 8d72cdc
docs(identity): correct who asks placement_of and why
lklimek b60ccd2
fix(identity): refuse a key write that would destroy another key's pr…
lklimek b5c927b
refactor(identity): give every synchronous key lookup one placement rule
lklimek f334875
fix(identity): reach Key Info's re-read, share the restore offer, nam…
lklimek 2c264bb
docs(user-stories): point IDN-008 at the key list that shipped
lklimek d9cd6b1
fix(identity): place a key by the whole key, not by its material alone
lklimek 6d5b2f7
fix(identity): find a key's wallet under any placement it is filed at
lklimek 7341b12
fix(identity): decide a pasted key is storable before calling it held
lklimek a737d62
fix(identity): tell the user what to do about a key that cannot be used
lklimek c5247f3
fix(identity): stop re-prompting for a key whose password prompt was …
lklimek 2934eaa
refactor(identity): name the two placement questions after their answers
lklimek 50cbd97
refactor(identity): keep the placement-naming key store API inside th…
lklimek 12eeece
test(identity): pin same_key's carve-out and restrict it to this crate
lklimek 1020e6b
docs(grovestark): record the published-key precondition proof generat…
lklimek 17feeea
Merge remote-tracking branch 'origin/fix/889-key-info-navigation' int…
lklimek 22ee879
fix(identity): route legacy-recovery test fixtures through insert_at/has
lklimek 9c99fe6
Merge remote-tracking branch 'origin/v1.0-dev' into fix/889-key-targe…
lklimek c48aacd
fix(identity): let a cancelled prompt outrank an earlier placement's …
lklimek 09ead27
fix(identity): settle the persist before calling a pasted key held
lklimek e289151
fix(identity): let Show and Sign failures carry their own remedy
lklimek 18459fc
fix(identity): let the identities list's Keys popup find a legacy-fil…
lklimek 982f6fb
fix(identity): give the occupied-slot refusal a remedy that exists
lklimek c9e38c4
refactor(identity): keep the placement helpers on candidates' three-p…
lklimek d7d765a
docs(identity): true up the design record and mark the triaged residuals
lklimek 905e262
style(identity): apply fmt and clippy polish to the triage follow-up …
lklimek a880354
style(identity): fix a fmt-check miss left after the triage follow-up
lklimek 9fc99b5
Merge remote-tracking branch 'origin/fix/889-key-target-derivation-co…
lklimek 20b979f
Merge remote-tracking branch 'origin/v1.0-dev' into fix/889-key-resol…
lklimek dca6916
Merge remote-tracking branch 'origin/fix/889-key-vault-secret-lifecyc…
lklimek 6a904d0
fix(identity): resolve resident key bytes before any placement that p…
lklimek bc5c2cc
fix(identity): serve a live sibling when Show or Sign names a dead va…
lklimek 4d1755a
fix(identity): word the placement errors for the read path as well as…
lklimek 7e84f84
docs(changelog): note the resident-first resolution and the Show/Sign…
lklimek e95b6b8
fix(identity): make key paste and removal a locked read-modify-write …
lklimek 0cda98b
fix(identity): stop the Keys popup cloning key material to answer a b…
lklimek 599dd56
feat(identity): list held keys that no on-chain key list publishes
lklimek 31689a9
docs(identity): qualify the design record's pub-surface claim to what…
lklimek 3cf1d15
style(identity): fold the key row's caption pair and apply fmt across…
lklimek fcdde0f
docs(identity): true up the Show/Sign dispatch notes to the fallthrou…
lklimek File filter
Filter by extension
Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
There are no files selected for viewing
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
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
Oops, something went wrong.
Oops, something went wrong.
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.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
📐 Maintainability & Code Quality | 🟡 Minor | ⚡ Quick win
Stale caveat elsewhere in the same release now contradicts these entries.
The unchanged "One known limitation" paragraph (around lines 225-233) still tells users that saving or removing a voting key can affect a same-numbered key on a linked voting identity, and points at an "in-progress key-placement resolution fix" — which is this change. Please drop or rewrite that paragraph so the release notes don't warn about the behaviour they also announce as fixed.
🤖 Prompt for AI Agents