Conversation
Accept atomic tracked-asset-lock writes with either full wallet restore or the narrower tracked-asset-lock restore capability. SQLite attests only the latter, matching its public load and manager hydration paths. Preserve the typed consumption report, nonterminal recovery marker, proof, and persistence failure behavior. Co-Authored-By: Codex GPT-6 <noreply@openai.com> <sub>🤖 Co-authored by [Claudius the Magnificent](https://github.com/lklimek/claudius) AI Agent</sub>
Contributor
|
Important Draft PR not reviewedDraft PRs are not automatically reviewed by default.
To automatically review draft PRs, update your CodeRabbit configuration: reviews:
auto_review:
drafts: trueThanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out. Comment |
This was referenced Sep 29, 2026
Collaborator
|
🕓 Review not started yet because this PR is a draft.
Commit f19cc0a. Normal review starts when eligible; priority review starts as soon as a slot is available. |
Make the existing tracked-lock capability cover persistence and nonterminal restart restore, and require only that contract plus atomic changesets for reconciliation. Admit the FFI bit only with persistence and paired restore callbacks. Fail Swift wallet restore if its tracked-lock fetch fails. Co-Authored-By: Codex <noreply@openai.com> <sub>🤖 Co-authored by [Claudius the Magnificent](https://github.com/lklimek/claudius) AI Agent</sub>
Require only atomic tracked-lock persistence for reconciliation of an already-loaded wallet. Preserve existing capability meanings and FFI host admission behavior, with wallet restore work outside this change. Keep regression coverage for SQLite reopen/hydration, typed consumption errors, and persistence failure handling. Co-Authored-By: Codex <noreply@openai.com> <sub>🤖 Co-authored by [Claudius the Magnificent](https://github.com/lklimek/claudius) AI Agent</sub>
This was referenced Sep 29, 2026
…et-lock-reconciliation
…et-lock-reconciliation
This branch has not been deployed
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.
TL;DR
When a saved funding deposit is reported as already used, retain its recovery state and return the specific result instead of failing on an unrelated storage requirement.
User story
As a wallet user, I can understand why a saved deposit cannot fund another payment and check the earlier payment or choose another deposit.
Scenario
Choose Fund for a restored deposit that the network reports as already used. The recovery step updates the loaded deposit and saves that update atomically. It must not fail merely because the storage backend cannot restore unrelated wallet data.
Detailed discussion
Issue being fixed or feature implemented
Stacked on #5150 (
fix/pr-5126). Integrated in dashpay/dash-evo-tool#1036. SQLite restores tracked asset locks but does not declare the broaderWALLET_RESTOREcapability. Asset-lock reconciliation previously required that capability despite operating on an already-loaded record.What was done?
ATOMIC_CHANGESETS | TRACKED_ASSET_LOCKSfor asset-lock reconciliation, changing the operation mask from0x281to0x201.WALLET_RESTORE; full Core wallet restoration is implemented separately in stacked feat(wallet-storage): restore complete Core wallet snapshots from SQLite #5210, reusing fix(platform-wallet-storage)!: harden wallet history restore after #5150 review #5208.Compatibility
No callback layout, capability version, or Swift/iOS integration changes. Backends need atomic writes and tracked asset-lock persistence for this operation.
How Has This Been Tested?
--no-deps -D warnings, and diff checks passed.Breaking Changes
None.
Checklist
🤖 Co-authored by Claudius the Magnificent AI Agent