fix(sdk): preserve empty metadata in existing wallet histories - #591
Conversation
|
Codecov Report✅ All modified and coverable lines are covered by tests. 📢 Thoughts on this report? Let us know! |
ty-everett
left a comment
There was a problem hiding this comment.
Maintainer final review of cfd573e77e4d1cf35561dabdb77f293c493cf632: no blocking findings. The change admits the established empty display-metadata sentinel without converting values, expanding nonempty description limits, changing request validation, altering byte encoding, or bypassing script/value/label checks. Regression tests fail before the fix and pass after it; old 2.4.0/2.5.0/2.7.1 client/processor pairings preserve exact wire bytes in both directions. SDK coverage, consumer packaging, browser/mobile builds, conformance and documentation gates passed. Hosted CI 35961279899 is successful including merge-gate; CodeQL 35961279893 passed with no open PR-ref alerts; exact-head Sonar independently reports zero new findings and unreviewed hotspots. There are no review threads. This is the authoring maintainer's review, not an independent approval. Proceeding with the authorized maintainer integration after these gates; protected SDK-only publication remains separate, and #569 is excluded.



Program and scope
listActionsfrom existing Knex, IndexedDB and native SQLite wallets can contain empty descriptions on generated change and empty basket names on unassigned outputs. Hardened SDK result validation rejects the whole history. This patch preserves those stored strings instead of inventing metadata or requiring wallet-data rewrites.cfd573e77(full SHA on this PR).Impact
@bsv/sdk2.8.4 candidate.Verification
pnpm health:check,pnpm lint,pnpm format:check,pnpm typecheck,pnpm audit:security,pnpm build: pass; audit reports no known vulnerabilities.pnpm --filter @bsv/sdk pack:checkandtest:browser: pass. Exact tarball ESM/CJS, export and type-resolution checks pass. Browser raw sizes: Vite 1,093,280; esbuild 836,098; UMD 827,825 bytes, within unchanged governed limits.pnpm --filter @bsv/wallet-toolbox-mobile test:mobile: pass. Metro raw 2,360,501; Hermes raw 4,609,827 bytes, within unchanged limits.pnpm docs:build(129 HTML pages) andpnpm docs:examples(8 examples / 21 tarballs): pass.Security and dependencies
Release and operations
Completion evidence
Final maintainer self-review found no blocking correctness, security, compatibility, artifact or release issue at cfd573e. No review threads are open. CI/security gates passed; protected publication and downstream release acceptance remain separate steps.