@@ -5,6 +5,34 @@ All notable changes to the `bsv-sdk` gem are documented here.
55The format is based on [ Keep a Changelog] ( https://keepachangelog.com/en/1.1.0/ )
66and this gem adheres to [ Semantic Versioning] ( https://semver.org/spec/v2.0.0.html ) .
77
8+ ## 0.19.0 — 2026-05-11
9+
10+ ### Breaking Changes
11+ - ` Result::Success/Error/NotFound ` replaced by single ` ProtocolResponse ` class composing ` Net::HTTPResponse `
12+ - Predicates renamed: ` success? ` → ` http_success? ` , ` not_found? ` → ` http_not_found? ` , ` error? ` removed (use ` !http_success? ` )
13+ - Constructor keyword ` ok: ` → ` http_success: `
14+ - ARC ` arc_data_from ` key remapping removed — ` .data ` returns raw API JSON with string keys (` 'txid' ` not ` :txid ` )
15+ - Batch broadcast ` .data ` returns raw JSON array (no per-item ` Result ` wrapping)
16+ - ` BroadcastError ` , ` BroadcastResponse ` , ` ChainProviderError ` , deprecated ` BSV::Network::ARC ` and ` BSV::Network::WhatsOnChain ` facades removed
17+
18+ ### Added
19+ - ` ProtocolResponse ` class with progressive enhancement: ` .body ` /` .code ` (raw HTTP) → ` .data ` (parsed) → ` .canonical ` (placeholder)
20+ - ` ProtocolResponse#with(**overrides) ` for escape hatch post-processing
21+ - ` fake_http_response ` shared test helper for building real ` Net::HTTPResponse ` subclass instances
22+ - Debug logging in Protocol (` call ` , ` default_call ` , ` build_response ` ) and ` ProtocolResponse#with `
23+
24+ ### Changed
25+ - ` Protocol#map_response ` renamed to ` build_response `
26+ - Chain trackers raise ` RuntimeError ` instead of deleted ` ChainProviderError `
27+ - ` ChainTracker ` doc rewritten to explain the declarative/imperative split
28+ - MCP tools updated: ` .metadata[:status_code] ` → ` .code ` , symbol keys → string keys
29+
30+ ### Fixed
31+ - ` http_success? ` returns ` false ` (not ` nil ` ) when ` http_response ` is nil
32+ - ` Ordinals#call_get_spend ` rescues ` TypeError ` alongside ` JSON::ParserError `
33+ - ARC malformed-2xx error messages include diagnostic detail
34+ - WoC ` call_is_utxo ` clears stale ` error_message ` when overriding 404 to success
35+
836## 0.18.1 — 2026-05-09
937
1038### Added
0 commit comments