Skip to content

feat: add structured errors, recovery workflows, and read caching - #495

Merged
Just-Bamford merged 2 commits into
Sorokit:mainfrom
investify2826-ctrl:main
Aug 27, 2026
Merged

feat: add structured errors, recovery workflows, and read caching#495
Just-Bamford merged 2 commits into
Sorokit:mainfrom
investify2826-ctrl:main

Conversation

@investify2826-ctrl

Copy link
Copy Markdown
Contributor

Summary
This PR delivers four Sorokit improvements for safer account recovery, more actionable failures, and efficient read-only Soroban calls.

Changes
Add structured error categories, sanitized operation context, and actionable recovery guidance while preserving existing error codes.
Add guardian/delegated recovery workflows with validated contacts, approval thresholds, time locks, cancellation, expiry, replay protection, and private-key-free progressive signer replacement plans.
Add network-scoped read-result cache keys, configurable TTL support, explicit per-request cache bypass, deterministic invalidation, and regression coverage while retaining successful-only caching and concurrent deduplication.
Propagate the structured error model through existing account, network, token, and public package APIs.
Validation
Focused Vitest suites: 54 tests passed.
git diff --check passed.
Full typecheck remains blocked by pre-existing unrelated errors in NFT metadata, transaction bundles, and price subscriptions.
Closes #465
Closes #467
Closes #477
Closes #478

investify2826-ctrl and others added 2 commits August 27, 2026 12:34
@drips-wave

drips-wave Bot commented Aug 27, 2026

Copy link
Copy Markdown

@investify2826-ctrl Great news! 🎉 Based on an automated assessment of this PR, the linked Wave issue(s) no longer count against your application limits.

You can now already apply to more issues while waiting for a review of this PR. Keep up the great work! 🚀

Learn more about application limits

@Just-Bamford
Just-Bamford merged commit c74c3fd into Sorokit:main Aug 27, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

2 participants