Part of #455.
Summary
User-facing documentation and changelog for the status-taxonomy realignment. Breaking change — must be clearly flagged for consumers.
Scope
gem/bsv-wallet/CHANGELOG.md
gem/bsv-wallet/README.md
docs/gems/wallet.md
Skip: no CLAUDE.md edits needed.
Changes
gem/bsv-wallet/CHANGELOG.md
Add an entry under the next unreleased version (0.8.x or 0.9.0 — TBD by release tagger):
gem/bsv-wallet/README.md
Add or expand a "Status values" section with a table matching the HLR taxonomy:
| Status |
Meaning |
'nosend' |
Caller explicitly opted into no_send: true; transaction built but not broadcast. |
'unprocessed' |
(Reserved for async queue between enqueue and dispatch — currently unused in inline path.) |
'sending' |
Async queue has accepted the job; worker has not yet attempted broadcast. |
'unproven' |
Broadcast succeeded; awaiting merkle proof. |
'completed' |
Merkle proof received and stored. |
'failed' |
Broadcast attempted and rejected by the network. |
Document the broadcaster requirement: create_action requires either a broadcaster: passed to WalletClient.new, a broadcast_queue: whose adapter has an embedded broadcaster, or options: { no_send: true } per call.
docs/gems/wallet.md
Add a "Status meanings" section mirroring the README table. Additionally:
Acceptance criteria
Files modified
gem/bsv-wallet/CHANGELOG.md
gem/bsv-wallet/README.md
docs/gems/wallet.md
Sequencing
Can be written in parallel with Tasks 1-5 (no code dependency). Must land before release (Task 7).
Part of #455.
Summary
User-facing documentation and changelog for the status-taxonomy realignment. Breaking change — must be clearly flagged for consumers.
Scope
gem/bsv-wallet/CHANGELOG.mdgem/bsv-wallet/README.mddocs/gems/wallet.mdSkip: no
CLAUDE.mdedits needed.Changes
gem/bsv-wallet/CHANGELOG.mdAdd an entry under the next unreleased version (0.8.x or 0.9.0 — TBD by release tagger):
'completed'now means "proven on-chain" (merkle proof stored). Post-broadcast success is now'unproven'until a proof arrives.WalletErrornow raised whencreate_action/sign_actionis called without a broadcaster and withoutno_send: true.list_actions(status: 'completed'): they will see fewer results until a proof-watcher lands (out of scope per HLR). To find successfully-broadcast actions, querystatus: 'unproven'.gem/bsv-wallet/README.mdAdd or expand a "Status values" section with a table matching the HLR taxonomy:
'nosend'no_send: true; transaction built but not broadcast.'unprocessed''sending''unproven''completed''failed'Document the broadcaster requirement:
create_actionrequires either abroadcaster:passed toWalletClient.new, abroadcast_queue:whose adapter has an embedded broadcaster, oroptions: { no_send: true }per call.docs/gems/wallet.mdAdd a "Status meanings" section mirroring the README table. Additionally:
list_actions(status: 'completed')returns fewer results until a proof-watcher lands (follow-up; out of scope for HLR [HLR] Align action status taxonomy with reference SDK; fail loudly on broadcast misconfiguration #455).SolidQueueAdaptercarrying an embedded broadcaster satisfy the broadcaster requirement even if theWalletClientitself hasbroadcaster: nil.Acceptance criteria
CHANGELOG.mdhas a breaking-change entry citing HLR [HLR] Align action status taxonomy with reference SDK; fail loudly on broadcast misconfiguration #455 and the upstream incidents (x402-rack [Task 3] S1: Use BN.mod_add in PrivateKey#derive_child #148, [Task 2] Testing: SymmetricKey specs with cross-SDK vectors #158; x402-doom [HLR] Implement BRC-100 Wallet Interface as bsv-wallet companion gem #196).docs/gems/wallet.mdexplains the consumer-visible impact of the'completed'semantic shift.Files modified
gem/bsv-wallet/CHANGELOG.mdgem/bsv-wallet/README.mddocs/gems/wallet.mdSequencing
Can be written in parallel with Tasks 1-5 (no code dependency). Must land before release (Task 7).