Repository navigation
fix(sdk): preserve BRC100 discovery and signed action history - #587
Merged
Merged
Conversation
Codecov Report✅ All modified and coverable lines are covered by tests. 📢 Thoughts on this report? Let us know! |
|
ty-everett
commented
Sep 24, 2026
ty-everett
left a comment
Collaborator
Author
There was a problem hiding this comment.
Maintainer review of exact head fbb1ca135fc57d4d263ee4183580f73cb0098ba6:
- Discovery preserves the configured originator, existing transport order, bounded probes and separate operation timeouts; custom HTTP clients are unchanged. Native browser fetch retains its required receiver.
- The signed-int64 exception is restricted to the action-history net amount. It preserves legacy bytes and existing JSON range semantics. Frame limits, canonical counts/lengths, output-value checks and unsafe-integer rejection remain intact. No public API, data migration or new wire format is introduced.
- Regression evidence includes old-behavior failures, real HTTP and browser/native discovery, 40 synthetic signed-history boundary/interoperability cases, 7,393 SDK tests and 100% changed-code coverage. Older valid callers preserve bytes; the known affected 2.8.x clients are explicitly identified rather than claimed compatible.
- Exact-head repository merge gate, zero-new-Sonar gate, CodeQL, dependent tests, browser/mobile gates, conformance and Codecov all succeeded. Scope-based skips are validated by merge-gate. No unresolved review threads exist.
No blocking finding remains in this review. This is the maintainer's review under the repository's admin-facilitation policy, not a claim of independent reviewer approval. SDK-only protected publication and npm provenance verification remain separate steps; no consumer rollout is claimed by this merge.
ty-everett
marked this pull request as ready for review
September 24, 2026 02:52
ty-everett
requested review from
BraydenLangley,
sirdeggen and
tonesnotes
as code owners
September 24, 2026 02:52
This was referenced Sep 24, 2026
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.



Program and scope
new WalletClient('auto', 'app.example')fails to discover an installed HTTP wallet: the version probe omits the configured originator, so WalletWire rejects the caller mismatch before network access. The browser JSON fallback also invokes an unbound nativefetchand throwsIllegal invocation.Pass the configured originator through discovery and bind the default JSON fetch receiver. Also restore signed
listActionsnet amounts: the binary transport rejects negative action history accepted by existing JSON validation and older published SDKs. Preserve the historical signed int64 encoding with a field-specific reader; counts, lengths and individual output values retain their unsigned checks. Preserve custom HTTP clients, transport preference, bounded probes, operational timeouts, existing caller binding and response validation. All discovery paths already use a deadline; the helper now requires it and always clears its timer.Impact
@bsv/sdk2.8.3 candidate.Verification
Security and dependencies
Release and operations
Applications affected by these SDK client defects can update their bundled SDK without changing calls. Wallets should include the patch so older clients can read signed action history; applications already using an affected 2.8.x binary client also need the SDK patch. Wallets continue to support the established BRC100 contract; this does not require an ecosystem-wide application migration.
Completion evidence