Repository navigation
Release v0.21.0 - #51
Merged
Merged
Conversation
…th no key The explorer's federation reads are public since the operator ruling of 2026-09-23, so the refusal no longer tells an operator to set DOGE_INDEXER_API_KEY to a federation read key nobody issues.
Persist newly generated RPC and database credentials under their preferred secret aliases so fresh installs avoid deprecated-name warnings. Preserve legacy sidecars for compatibility and cover generation, reload, and rotation behavior.
Add the conditional peer port mapping so validator hubs expose their network listener while standalone hubs remain unchanged. Pin both modes in the service registry tests.
Keep the new credential coverage within the repository's function-size limit while preserving the existing suite and case titles.
coverage:check previously skipped source files the unit suite never imports, so floors sat far under real coverage. Add --all to both coverage scripts, tighten every floor to within 1.5 points of the full-tree measurement, and pin --all with a sync test.
Cover exact schema, table, multi-table, and size query output, including quote escaping.
Cover chain-wide, network-scoped, manual, and quote escaping outputs.
Run the coverage ratchet with strict sibling checks, matching the CI tier.
Preserve source descriptors while hiding mixed-in methods from enumeration. Cover every database and downloader mixin method with descriptor assertions.
Runs weekly and on demand, and uploads the mutation report as an artifact.
Load benchmark and smoke inputs from tracked public fixtures, and keep CI and secret environment tests off operator config paths. Fail benchmark runs when a scenario reports an error and keep strict sibling checks armed for coverage.
Stops go through the per-module stop budget, docker build matching skips the buildx probe, node and decoder credentials are seeded where the config service reads them, and the test env busts the snake_case config and module service modules so patched directories take effect instead of writing into the repo.
Use requireEncoder for signer broadcasts and chained stake inputs. Align the validator test doubles with the renamed SDK surface.
When a module rebuild succeeds but credential reconciliation fails for another coin, update now reports the partial outcome and exits nonzero.
Each tier's PASS or FAIL line in ci:full now carries its elapsed seconds.
Stryker now mutates the config service too, runs unit and integration tests with a module shim its sandbox needs, and uses a non-dotted temp directory.
The migration precondition scan now checks the migrate CLI's --status answer from the running indexer instead of assuming it, with tests for the probe.
… URL Regtest mapped the stake chain to BTC and the DOGE publisher to DOGE, so regtest stake and unstake output linked mainnet /BTC/validator pages and the default signer encoder pointed at the mainnet /DOGE namespace. Regtest now maps to RBTC and RDOGE, and the tests assert full URLs on every network.
Load the unit suite with a temporary config directory before production configuration is cached. Clean the scratch directory after the run and verify it stays outside the checkout.
…cked-out commit A local module source checked out at a detached HEAD was cloned by branch name, so a deploy picked up the branch tip instead of the checked-out commit. Detect a detached local source, clone it without -b, and skip the branch-tip check for it. A unit test behind the --unit-test entry point proves the deployed commit matches the detached commit.
Prefer the public encoder accessor when available and fall back to the legacy underscore method used by the locked SDK. Cover emitted signer broadcasts and chained stake funding for both supported SDK shapes.
The fold gate is unpinned on regtest, so a deployed venue could not arm it from the host. Carry XC_ANCHOR_FOLD_REGTEST_ACTIVATION to the regtest indexer and the hub beside the mirror admission variable, never to mainnet or testnet.
Create and clean up a fresh temporary node data directory around each update suite while preserving the caller environment.
Each fix was re-derived from the code, verified against its own tests, and adversarially re-checked before it was accepted. - Node's migrationMode twin has drifted from the indexer's: untagged or unknown mode reads as null, not 'manual' - The twin cross-reference in node's migrationMode names an indexer symbol that does not exist - Twin cross-references between node and indexer migration parsers are stale or missing - clear-reorg-halt relay reads err.stdout/err.stderr, but execContainer rejects with a bare callback-style ... - A --reason starting with '-' passes the node's check but the decoder's parseArgs refuses it as a missing ... - Tracker archive height may understate actual snapshot data height - Archive metadata trusted before cryptographic verification - Archive identity (coin/network/module) is not verified at restore time - Stake pre-check doesn't check delegations, so a plan the indexer will reject as 'already delegated' is shown ... - Stake pre-check refuses re-staking a key whose stake has fully cooled down, but the indexer accepts it once ... - Both stake and unstake read only the first 100-row page of getValidators, so a stake off that page reads as ... - Unstake CLI treats any status='valid' stake row as active, so it broadcasts UNSTAKE for stakes already ... - A funding chain that breaks at the final MINT→STAKE hop still broadcasts an unchained STAKE instead of ... - Unstake plan prints one stakes row's amount as the whole stake to be withdrawn and locked - stakeTiming doc cites xchain-indexer/src/actions/unstake.js, which is now the actions/unstake/ directory - reset: decoder/indexer bounce swallows restartContainer failures, so reset exits 0 with the service down - reset (docker DB mode): MariaDB root credential is first resolved after node data and tracker volume are wiped - Stake CLI's 'already staked' check drifts from indexer validateFreeKey: ignores delegations and the key-reuse ... - DEFAULT_STAKE_AMOUNT comment attributes the 25000 floor to the indexer's STAKING.CAPABILITIES; it is the ... - Node execs only src/clear_reorg_halt.js, which decoders v0.16.0–v0.18.x do not have; the shim covers ... - Gate ignores decoder's reorg_halt_parked, so a parked decoder whose halt marker was never written passes the ... - Gate header says an indexer database cannot hold sync_halt, but xchain-sync creates and writes sync_halt in ... - migration_files.js header describes an indexer migrations layout the indexer's runner does not read - clear-reorg-halt is missing from mutatingCommands, so its audited DB write runs without the command lock - skipsPreAction exempts every validator subcommand from the command lock, including key-regenerating init ... - When the UTXO tracker is unreachable, the balance reads 0 and the CLI blocks with 'fund it first' instead of ... - readChainState reads token.mints without unwrapping the one-element array envelope the SDK documents, so a ...
Copy the hosted rail workflows and helper stack. Schedule only proven attest-mirror legs while keeping bridge execution manual.
Remove environment-specific names from hosted runner documentation while preserving workflow behavior.
Replay first-parent develop history against current and narrowed consensus prefixes. Report selection shares and verify required source-to-test mappings.
Fail the plan job before matrix creation when the local driver is missing or the scheduled manifest names an unsupported driver.
Release v0.21.0 manifest
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.
Release v0.21.0
Base:
masterat77c6ad22a369323dbcae81ec2f8808e514b1d88bHead:
release/v0.21.0ateaaa84a53673d3144b2b918b3d6e5ca8ec75d800Landed refs