Skip to content

Release v0.21.0 - #18

Merged
jdogresorg merged 48 commits into
masterfrom
release/v0.21.0
Sep 30, 2026
Merged

jdogresorg merged 48 commits into
masterfrom
release/v0.21.0

Conversation

@jdogresorg

@jdogresorg jdogresorg commented Sep 29, 2026 •

Copy link
Copy Markdown
Contributor

Release v0.21.0

Base: master at 0f5b08f4ceb2f8c37e2f3f13c7cc30dd98b82d82
Head: release/v0.21.0 at 65c472aadf500b31e3f99fcc18b0c954fa00a871

Landed refs

  • 65c472a Merge develop into release/v0.21.0
  • 890ffce Pin CI Node to 22.22.3, the fleet's consensus runtime
  • 9f650a2 Pin CI Node to 22.22.3, the fleet's consensus runtime
  • 58fafee chore(release): v0.21.0
  • d910402 Fix 10 issues found in a code review round
  • d928c32 Merge: sync trunk
  • 982c19b sync trunk
  • 95c0b8a Merge: Refresh suite-title pin for protocol parity test
  • e9d3443 Refresh suite-title pin for protocol parity test
  • 063e8cf test: pin protocol parity canonical path
  • de020a4 test: guard protocol changes against canonical
  • 15e043d Refresh suite-title pin for the taproot native fee test
  • 109aac9 Merge: Pin taproot native fee placement
  • ab9c384 test: relocate taproot native fee placement coverage
  • be367a1 test: pin taproot native fee placement
  • 0636b36 sync trunk
  • f9ce8f4 Merge: Harden activation export identity test
  • 3b829eb Harden activation export identity test
  • 9683b8b split real app test setup into helpers
  • 74eb60a test real JSON-RPC app over HTTP
  • 32b0a08 Extract envelope activation map
  • 4b39093 Merge: Merge develop updates
  • 3d61c38 Merge develop updates
  • 39e0656 Merge: Expose tracker block lookup through RPC dispatch
  • c91c9a9 Expose tracker block lookup through RPC dispatch
  • 43144be Publish tracker block lookup contract
  • 27c5f34 Confirm browser bundle tooling is absent
  • b92bf5e Retire unused browser bundle
  • 79aca0c Keep tracker block proxy within API boundaries
  • 9adfd21 Require tracker readiness for block lookups
  • 8d6c016 Proxy transaction block lookups through tracker
  • 6f991f9 Merge: Test compactSize buffer serialization directly
  • 241f3a1 Test compactSize buffer serialization directly
  • cec17bc Cover script amount helpers
  • 6a28198 Merge: Refresh all-source coverage measurement
  • 190827f Refresh all-source coverage measurement
  • fb0849f Reject encoder-built fees below the node relay floor
  • d6f5747 Merge complete source coverage enforcement
  • e200a10 Merge remote-tracking branch 'origin/master' into level/encoder
  • 898f343 Fold the --all and no-exclude coverage guards into the existing floor test
  • 845d6c5 Split the regtest reset documentation
  • 5dc7265 Document the guarded regtest reset
  • 5087fde Record CI tier durations
  • 79d9e31 Expand scheduled mutation coverage
  • 5ea7e87 Require usable siblings in full CI
  • 74ac11a Regenerate the suite-title pin after retiring the duplicate fee scenarios
  • 6a2745b Retire duplicate fee scenarios and guard regtest reset
  • 5a38301 Enforce complete source coverage ratchet

Run both coverage scripts with c8 --all. Raise synchronized floors from measured venue coverage and reject hidden source exclusions.
Remove the utxo_fee integration scenarios that duplicate end-to-end
coverage. Require explicit opt-in before the regtest prepare hook deletes
local data, isolate it from dotenv configuration, and fix a let that
should be const in the browser entry.
…rios

The pin still listed the thirteen removed utxo_fee suites, so the suite identity gate reported them as dropped.
Export the strict sibling flag before every CI tier so unusable sibling checkouts fail instead of silently reducing coverage.
Include split encoder modules in mutation testing and add a weekly workflow that preserves a nonempty mutation report for review.
Regenerate the tier runner so each pass or failure reports elapsed seconds and slow checks are visible in full CI output.
… test

Keeps the suite title set identical to the pin.
Exercise CompactSize boundaries, satoshi narrowing, and network soft dust floors. Pin the added suite in both unit test collections.
Add the tracker connector request and expose it through the JSON-RPC controller. Preserve hit, miss, and sync payloads while validating txids and sanitizing transport failures.
Run the existing tracker health guard before forwarding transaction block queries. Extend the focused proxy tests to distinguish health checks from lookups and prove stale tracker refusal prevents the lookup.
Expose the lookup as a callable non-enumerable controller method so the published OpenRPC method set remains unchanged. Split proxy coverage into focused suites that satisfy the structure ratchet.
Remove the obsolete entry, build scripts, dependencies, tests, pins, and documentation claims.
Verify that the retired build script was the only uglify-js reference and that no uglify-js dependency existed in the row base or remains in the package manifests.
Document the transaction block proxy in the generated OpenRPC spec and keep the controller method discoverable by the existing drift guard. Pin the new focused test titles so the full suite identity gate remains stable.
Keep the tracker lookup enumerable in the composed controller so the JSON-RPC router can publish the documented method. Require dispatch-key visibility in the focused proxy test.
Move the canonical activation heights into the protocol module and verify CryptoNetworks re-exports the same object.
Exercise the production Express app and router over an ephemeral listener with Node HTTP. Stub backend boundaries and pin the added suite identity.
Keep the real HTTP routing coverage within the repository function-size limit.
Reject a missing protocol export before checking reference equality. Refresh the suite-title pin for the added protocol test.
Verify custom native fee outputs stay on the commit PSBT and remain absent from the reveal transaction.
Add a sibling-aware parity test for the envelope recognition activation map exported by the documentation constants module.
Resolve the documentation canonical from the fixed sibling checkout so callers cannot redirect the parity assertion through an environment variable.
Record the documentation activation parity suite under both test collectors.
Each fix was re-derived from the code, verified against its own tests,
and adversarially re-checked before it was accepted.

- test-quality: sleep-flake in xchain-encoder (2)
- verifyU64 accepts Number values above 2^53-1 that stock verifuint rejects, so precision-lost satoshi amounts ...
- Legacy (non-segwit) inputs: caller-supplied utxos[].value is never checked against the node-fetched previous ...
- utxos[].vout (and envelope-cancel commitVout) have no uint32 upper bound; an out-of-range index passes ...
- getTransactionHex drops the node's JSON-RPC error for anything other than -5, so LTC/DOGE failures show up as ...
- Encoder sanitizeRpcError has drifted from its decoder twin, and its 'kept in sync' comment points to a ...
- getBlockCount turns a null or missing result into chain height 0, so an unknown tip is reported as ...
- entrySize/entryFee doc comment has been separated from its functions and now sits above rpcErrorDetail
- create_tx returns -32603 (internal, retry) for caller validation failures that the registry assigns to -32602
- create_envelope_cancel_tx maps deep build-time TypeError/RangeError to -32602, contradicting create_tx's ...
- Re-pin the at1 suite-title map for the added and renamed tests
@jdogresorg
jdogresorg merged commit 3083725 into master Sep 30, 2026
7 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant