Repository navigation
chore: merge v5.0-dev into v5.1-dev - #5432
Conversation
Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com>
…ary (#5397) Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com>
…to the integration binary (#5415) Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com>
Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com>
Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com>
…it (#5424) Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com>
…rks in getblockchaininfo (#5422)
…legacy asset lock decoder (#5423)
|
Important Review skippedAuto reviews are disabled on base/target branches other than the default branch. Please check the settings in the CodeRabbit UI or the ⚙️ Run configuration
You can disable this status message by setting the Use the checkbox below for a quick retry:
Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out. Comment |
|
✅ Final review complete — no blockers (commit 73bf039) · triage: critical |
|
📖 Book Preview built successfully. Download the preview from the workflow artifacts. Updated at 2026-10-16T07:25:28.995Z |
|
Ready for review — |
thepastaclaw
left a comment
There was a problem hiding this comment.
Final validation — Phase 1 + Phase 2
Verified the supplied findings against head 1becbcb and retained one non-blocking cache-hydration performance issue; no blocking defects were substantiated. Validation was static only, with no local builds or tests run. The supplied CI snapshot reports successful Rust workspace, WASM/JS, Swift, and Docker checks, while the latest platform test suite and both browser shards remained in progress.
🟡 1 suggestion(s)
Review provenance
Source: reviewer 1: gpt-6.1-sol (agent: phase2-reviewer, role: general); reviewer 2: gpt-6.1-sol (agent: phase2-reviewer, role: architecture-layering); reviewer 3: gpt-6.1-sol (agent: phase2-reviewer, role: ffi-engineer); reviewer 4: gpt-6.1-sol (agent: phase2-reviewer, role: platform-versioning); reviewer 5: gpt-6.1-sol (agent: phase2-reviewer, role: rust-quality); reviewer 6: gpt-6.1-sol (agent: phase2-reviewer, role: security-auditor); reviewer 7: gpt-6-astra (agent: phase2-reviewer, role: general); reviewer 8: gpt-6-astra (agent: phase2-reviewer, role: architecture-layering); reviewer 9: gpt-6-astra (agent: phase2-reviewer, role: ffi-engineer); reviewer 10: gpt-6-astra (agent: phase2-reviewer, role: platform-versioning); reviewer 11: gpt-6-astra (agent: phase2-reviewer, role: rust-quality); reviewer 12: gpt-6-astra (agent: phase2-reviewer, role: security-auditor); reviewer 13: muse-spark-1.3-contributor (agent: phase1-reviewer, role: general); reviewer 14: muse-spark-1.3-contributor (agent: phase1-reviewer, role: rust-quality); final verifier: gpt-6.1-sol (agent: sol-verifier, role: final-verifier)
- Triage:
criticalbygpt-6.1-sol(effort low) — The large, cross-cutting diff changes consensus-sensitive batch nullifier validation in accepted_token_pool_nullifiers.rs and funds distribution in add_epoch_pool_to_proposers_payout_operations/v1/mod.rs, meeting both the intricacy and critical-surface criteria. - Phase 1 reviewers:
muse-spark-1.3-contributor— general (completed, effort xhigh); agentphase1-reviewer,muse-spark-1.3-contributor— rust-quality (completed, effort xhigh); agentphase1-reviewer - Phase 1 model:
muse-spark-1.3-contributor— not quota-gated; passed overgemini-3.8-flash-high(antigravity below 15% reserve: weekly 14% left, 5h 100% left),glm-5.3-flash(not used above high effort; tier asks max) - Single stage: Phase 1 and Phase 2 reviewed this head side by side, with no blocker gate between them (triage tier)
- Fresh verifier:
gpt-6.1-sol— final-verifier; agentsol-verifier - Phase 2 reviewers:
gpt-6.1-sol— general (completed, effort xhigh); agentphase2-reviewer,gpt-6.1-sol— architecture-layering (completed, effort xhigh); agentphase2-reviewer,gpt-6.1-sol— ffi-engineer (completed, effort xhigh); agentphase2-reviewer,gpt-6.1-sol— platform-versioning (completed, effort xhigh); agentphase2-reviewer,gpt-6.1-sol— rust-quality (completed, effort xhigh); agentphase2-reviewer,gpt-6.1-sol— security-auditor (completed, effort xhigh); agentphase2-reviewer,gpt-6-astra— general (completed, effort xhigh); agentphase2-reviewer,gpt-6-astra— architecture-layering (completed, effort xhigh); agentphase2-reviewer,gpt-6-astra— ffi-engineer (completed, effort xhigh); agentphase2-reviewer,gpt-6-astra— platform-versioning (completed, effort xhigh); agentphase2-reviewer,gpt-6-astra— rust-quality (completed, effort xhigh); agentphase2-reviewer,gpt-6-astra— security-auditor (completed, effort xhigh); agentphase2-reviewer - Model comparison: every Phase-2 reviewer also ran on
gpt-6-astra; the verifier weighed both sets without knowing which model wrote which
🤖 Prompt for all review comments with AI agents
These findings are from an automated code review. Verify each finding against the current code and only fix it if needed.
In `packages/wasm-sdk/src/sdk.rs`:
- [SUGGESTION] packages/wasm-sdk/src/sdk.rs:525-526: Avoid reloading the entire persisted cache for each hydrated contract
Hydration now calls `cache_contract_in_context` for every contract returned by `load_all`. That helper always invokes `store_if_newer`, which serializes the retained contract, synchronously retrieves and parses the entire localStorage JSON map, and decodes the matching stored contract before checking its version. Even with an initially empty in-memory cache, every loaded contract takes this redundant path and returns without changing persistence. For N cached contracts, the complete map is parsed N+1 times instead of once, introducing quadratic parsing and allocation work for similarly sized entries during synchronous SDK construction. The 100-entry storage cap bounds this overhead but does not eliminate it. Keep the monotonic in-memory insertion, but skip persistence when the retained entry is the snapshot just loaded; reconcile newer in-memory entries against a single loaded persistence map.
Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com>
#5469) Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com>
Merge origin/v5.0-dev (51ee8a7) into v5.1-dev (5b5daf6). Conflicts resolved: - Cargo.toml: GroveDB from v5.0-dev (6.1.0, fc7028d8); rust-dashcore pinned to dev afbe5515, which carries the legacy asset lock decoder (#1167) that dpp's instant asset lock proofs need (#5423), plus everything v5.0-dev's edc4d430 backported. - Cargo.lock: v5.1-dev's lockfile plus `cargo update -p dashcore -p grovedb`; no crates.io package changes. - CHANGELOG.md: kept the [Unreleased] section above the rc.1, rc.2 and rc.3 entries, and updated its rust-dashcore pin note. Semantic fixes for code v5.0-dev added against APIs that v5.1-dev changed: - drive-abci wasm vector examples and wasm-sdk cache tests: secp256k1 0.33 (from_secret_bytes, context-free from_secret_key) and dpp::bls instead of the removed dpp::bls_signatures re-export. The quorum public keys come out byte-identical. - wasm-sdk fixtures regenerated with the examples for the latest protocol version (15), as their README prescribes. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01PSi8cX229kW2fmLxKW6ir4
rust-dashcore#1156 inserted three `TransactionPayload` variants before `ClassicalWithNonStandardVersionTypeBytesPayloadType` and `RawPayloadType`, shifting their `serde`/`bincode` variant index. Wallet rows stored with either payload then failed to decode, failing the whole wallet load; platform-wallet-storage's `persisted_core_transactions` test caught it. Pin every rust-dashcore crate to 12e4bd4c (dev afbe5515 plus the fix that moves the new variants after `RawPayloadType`). Cargo.lock changes only the rust-dashcore git packages. TODO: repin to rust-dashcore `dev` once the fix is merged there. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
…rotocol 15 #5411's single-entry characterization tests pin GroveDB roots taken at `PlatformVersion::latest()`, which is protocol 14 on v5.0-dev and 15 on v5.1-dev. The roots differ between those versions, so after the forward merge the settled hashes (which include roots) and the single-entry root no longer matched. Making protocol 14 the latest again reproduced every pinned value, so the protocol version is the only cause. At protocol 15 the validation hashes, execution results, fees and nonces are unchanged, and only the roots differ. This commit repins the root and the nine settled hashes at protocol 15 and notes that these values follow the latest version. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
rust-dashcore#1175, the payload serde variant-order fix pinned before, is merged into dev. Move every rust-dashcore crate to dev at 626c91d1, which also brings #1169 (blocks are checked against their header merkle root and rejected on a repeated txid) and #1168 (ChainLocks verified only with a verified quorum). Only the rust-dashcore revision changes in Cargo.lock. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01PSi8cX229kW2fmLxKW6ir4
1becbcb to
73bf039
Compare
|
Waiting for bot review — coderabbitai not yet · thepastaclaw ✓. Wait for the missing reviews, or a writer can post |
thepastaclaw
left a comment
There was a problem hiding this comment.
Re-review — Final validation — Phase 1 + Phase 2
No blocking defect was confirmed at the exact reviewed head. One non-blocking documentation requirement remains for consensus-inert edits to shipped generations; the Identifier conversion redesign is outside this forward merge’s scope, and the prior cache-hydration concern remains intentionally deferred. Verification was static only: the supplied CI snapshot reports successful Rust workspace, Swift/Kotlin, and build checks, while several JavaScript and platform/browser suites remain pending.
🟡 1 suggestion(s)
1 finding(s) not shown inline (GitHub refused the PR diff as too large)
🟡 Suggestion: Document the permitted in-place edits to shipped generations
packages/rs-drive-abci/src/execution/validation/state_transition/state_transitions/batch/state/v0/mod.rs:438-440
The compatibility argument is supported by the code: every production SystemLimits snapshot caps batches at one before state validation, so the new tracker cannot encounter an earlier accepted candidate. The check_tx_verification/v0 changes likewise affect mempool admission rather than block execution. However, book/src/contributing/coding-conventions.md explicitly requires a PR-description section named "In-place changes to shipped generations", and the supplied description has no such section. Add it listing the affected generations, the protocol versions that select them, and these consensus-inertness arguments. These exceptions do not require new feature slots under the current invariants, but their justification must be recorded as required by the repository’s replay-safety policy.
source: gpt-6.1-sol (phase2-reviewer: general, architecture-layering, ffi-engineer, platform-versioning, rust-quality, security-auditor)
Review provenance
Source: reviewer 1: gpt-6.1-sol (agent: phase2-reviewer, role: general); reviewer 2: gpt-6.1-sol (agent: phase2-reviewer, role: architecture-layering); reviewer 3: gemini-3.8-flash-high (agent: phase1-reviewer, role: general); reviewer 4: gpt-6.1-sol (agent: phase2-reviewer, role: ffi-engineer); reviewer 5: gpt-6.1-sol (agent: phase2-reviewer, role: platform-versioning); reviewer 6: gpt-6.1-sol (agent: phase2-reviewer, role: rust-quality); reviewer 7: gpt-6.1-sol (agent: phase2-reviewer, role: security-auditor); reviewer 8: gemini-3.8-flash-high (agent: phase1-reviewer, role: rust-quality); reviewer 9: gpt-6.1-sol (agent: phase2-reviewer, role: general); reviewer 10: gpt-6.1-sol (agent: phase2-reviewer, role: architecture-layering); reviewer 11: gpt-6.1-sol (agent: phase2-reviewer, role: ffi-engineer); reviewer 12: gpt-6.1-sol (agent: phase2-reviewer, role: platform-versioning); reviewer 13: gpt-6.1-sol (agent: phase2-reviewer, role: rust-quality); reviewer 14: gpt-6.1-sol (agent: phase2-reviewer, role: security-auditor); final verifier: gpt-6.1-sol (agent: sol-verifier, role: final-verifier)
- Triage:
criticalbygpt-6.1-sol(effort low) — The large, intricate diff directly changes consensus validation in identity_create/advanced_structure/v1/mod.rs and batch/state/v0/accepted_token_pool_nullifiers.rs, as well as funds distribution in add_epoch_pool_to_proposers_payout_operations/v1/mod.rs. - Phase 1 reviewers:
gemini-3.8-flash-high— general (completed, effort high); agentphase1-reviewer,gemini-3.8-flash-high— rust-quality (completed, effort high); agentphase1-reviewer - Phase 1 model:
gemini-3.8-flash-high— antigravity quota: weekly 71% left, 5h 100% left - Single stage: Phase 1 and Phase 2 reviewed this head side by side, with no blocker gate between them (triage tier)
- Fresh final gate: an independent Phase-2 review ran after iterative findings were reconciled
- Fresh verifier:
gpt-6.1-sol— final-verifier; agentsol-verifier - Phase 2 reviewers:
gpt-6.1-sol— general (completed, effort xhigh); agentphase2-reviewer,gpt-6.1-sol— architecture-layering (completed, effort xhigh); agentphase2-reviewer,gpt-6.1-sol— ffi-engineer (completed, effort xhigh); agentphase2-reviewer,gpt-6.1-sol— platform-versioning (completed, effort xhigh); agentphase2-reviewer,gpt-6.1-sol— rust-quality (completed, effort xhigh); agentphase2-reviewer,gpt-6.1-sol— security-auditor (completed, effort xhigh); agentphase2-reviewer,gpt-6.1-sol— general (completed, effort xhigh); agentphase2-reviewer,gpt-6.1-sol— architecture-layering (completed, effort xhigh); agentphase2-reviewer,gpt-6.1-sol— ffi-engineer (completed, effort xhigh); agentphase2-reviewer,gpt-6.1-sol— platform-versioning (completed, effort xhigh); agentphase2-reviewer,gpt-6.1-sol— rust-quality (completed, effort xhigh); agentphase2-reviewer,gpt-6.1-sol— security-auditor (completed, effort xhigh); agentphase2-reviewer
🤖 Prompt for all review comments with AI agents
These findings are from an automated code review. Verify each finding against the current code and only fix it if needed.
In `packages/rs-drive-abci/src/execution/validation/state_transition/state_transitions/batch/state/v0/mod.rs`:
- [SUGGESTION] packages/rs-drive-abci/src/execution/validation/state_transition/state_transitions/batch/state/v0/mod.rs:438-440: Document the permitted in-place edits to shipped generations
The compatibility argument is supported by the code: every production SystemLimits snapshot caps batches at one before state validation, so the new tracker cannot encounter an earlier accepted candidate. The check_tx_verification/v0 changes likewise affect mempool admission rather than block execution. However, book/src/contributing/coding-conventions.md explicitly requires a PR-description section named "In-place changes to shipped generations", and the supplied description has no such section. Add it listing the affected generations, the protocol versions that select them, and these consensus-inertness arguments. These exceptions do not require new feature slots under the current invariants, but their justification must be recorded as required by the repository’s replay-safety policy.
Out-of-scope follow-up suggestions (1)
These are valid observations, but they are outside this PR's scope and should be handled in separate issues or author/maintainer-requested PRs rather than blocking this review.
- Centralize IdentifierLike conversion below the query adapters — Outside the stated scope. The shared from_object path and IdentifierWasmVisitor::visit_map already lose wrapper identity in the base revision, and the document and identities-contract-keys callers are unchanged. This merge adds targeted normalization for the group queries advertised by incoming #5405; repairing other query families through a shared conversion redesign is not necessary for that change to work and would expand the forward merge.
- Follow-up: Consider creating a separate issue or author/maintainer-requested PR for this.
|
/skip-bots |
Basic explanation
What this does: Brings
v5.1-devup to date withv5.0-devby merging the 26 PRs that landed onv5.0-devsince the last forward merge (#5404, at 7f7ed87), and moves the rust-dashcore pin todevat626c91d1.Value:
v5.1-devgets the 5.0.0-rc.1/rc.2/rc.3 fixes: Core v24 support (getblockchaininfowithout softforks, #5422), unknown Core payload layouts kept decodable (#5403), instant asset lock proofs decoded with rust-dashcore's legacy asset lock decoder (#5423), GroveDB 6.1.0 (#5414) and the proposer payout fix (#5399) and IdentityCreate proof failures refused before they consume the asset lock (#5431). The new pin includes that legacy decoder, so #5150 can later move to the rust-dashcore#1112 head (d89545c2, which isafbe5515plus the #1112 commits) without changing how asset lock proofs are decoded.Risks: Moderate.
90359ed5to626c91d1. This brings in rust-dashcore feat(drive): graceful shutdown #1154, fix(sdk): missing and invalid types #1156, feat(drive): ensure that chain lock height valid #1157, chore: difference between #1158 and #1123 #1159, feat: remove bad masternodes from validator sets #1160, fix: double process proposal from Tenderdash restart #1165, chore: revert to github-hosted runners #1166, ci: s3 cache #1167, fix(sdk): identifier expects buffer with "in" operator in where query #1168, feat(dashmate): prebuild services dependencies #1169, feat(dashmate): rename other to DMT #1170 and feat(dpp): better json schema error messages for data contracts #1175 (details below). Asset lock proof decoding and the Core RPC code matchv5.0-dev.TransactionPayloadvariants beforeClassicalWithNonStandardVersionTypeBytesPayloadTypeandRawPayloadType. That enum'sserdeencoding is index-based, so wallet rows stored with either of those payloads stopped decoding.platform-wallet-storage'spersisted_core_transactionstest caught it atafbe5515. rust-dashcore#1175, merged intodev, moves the new variants afterRawPayloadTypeand restores the stored indices; the pin includes it.v5.0-devadded was written against APIs thatv5.1-devhas since changed. Those spots needed small fixes, listed below.Issue being fixed or feature implemented
v5.1-devwas 26 PRs behindv5.0-dev. Its rust-dashcore pin (90359ed5) also lacksTransaction::deserialize_with_legacy_asset_lock_framing, which #5423 depends on.What was done?
Merged
origin/v5.0-dev(51ee8a7) intoorigin/v5.1-dev(5b5daf6). Incoming PRs:Resolved by hand:
Cargo.toml: GroveDB comes fromv5.0-dev(fc7028d8, 6.1.0, two commits ahead ofv5.1-dev's5cb0962a). Every rust-dashcore crate is pinned todevat626c91d1(see below).Cargo.lock: started fromv5.1-dev's lockfile and rancargo update -p dashcore -p grovedb. Only the GroveDB and rust-dashcore git packages and the workspace versions changed; no crates.io package moved.CHANGELOG.md: kept the[Unreleased]section on top, followed by the rc.1, rc.2 and rc.3 entries. Its rust-dashcore pin note now names626c91d1, rust-dashcore#1167 and feat(dpp): better json schema error messages for data contracts #1175.Merge fixes for
v5.0-devcode written against APIs thatv5.1-devchanged (part of the merge commit):rs-drive-abci/examples/generate_wasm_{contract_cache,state_transition_wait}_vectors.rsandwasm-sdk/src/state_transitions/contract/cache_tests.rs: moved to secp256k1 0.33 (chore(platform)!: update rust-dashcore (incl secp256k1 0.33) #5307):SecretKey::from_secret_bytesand the context-freePublicKey::from_secret_key. Moved from the removeddpp::bls_signaturesre-export todpp::bls(refactor: share rust-dashcore BLS backend through dpp::bls #5320). The quorum keys derived from the same seeds are byte-identical to the committed ones.rs-drive-abci/.../token/shielded/nullifier_batch_guard.rs(fix(drive-abci): guard accepted token pool nullifiers within batches #5411): its characterization tests pin GroveDB roots computed atPlatformVersion::latest(), which is protocol 15 onv5.1-dev. A separate commit repins the single-entry root and the nine settled hashes. With protocol 14 as latest, the old values reproduce exactly. At 15, validation hashes, fees and refunds are byte-identical; only the roots differ.wasm-sdk/tests/fixtures/{contract-cache,state-transition-waits}/signed-responses.json: the client tests require fixtures recorded at the latest protocol version, which is 15 onv5.1-dev. Both fixtures were regenerated with the examples, following the fixture README. Two runs produced byte-identical output. Only protocol versions, GroveDB proofs, state roots and quorum signatures changed.rust-dashcore pin:
90359ed5→626c91d1v5.0-devpinsedc4d430, a branch off rust-dashcoredevthat backports 16 commits. Each one is ondevat626c91d1:a5ae6375+edc4d430→ ci: s3 cache #1167 + feat(dashmate): rename other to DMT #1170): the code is identical and only the doc comments differ.getblockchaininfo/getdeploymentinfo(379f0574→ fix: double process proposal from Tenderdash restart #1165).7608a012,ca43f079,56feb85b,538522bc,40268cc0):rpc-jsonondevholds the same content. Againstedc4d430, it differs only in the hex-conservative migration and extra tests.What
626c91d1adds on top of90359ed5and how it touches Platform:UnknownPayloadTypebecomesRawPayloadType, and transaction types 10–12 now decode into typed payloads.v5.0-devcode already usesRawPayloadType. This is where the variant-order regression above comes from.dashcore::consensus::Params.Block::check_merkle_rootalso rejects a block with a repeated txid.platform-wallet's asset lock block lookup uses it; honest blocks are unaffected.TransactionPayloadvariant (see Risks).Asset lock proof decoding and the Core RPC code are identical to
v5.0-dev.instant_asset_lock_proof.rs,rpc/core.rsanddash_core_client.rshave no diff againstorigin/v5.0-dev.PLATFORM_V15still points at the same sub-version tables asPLATFORM_V14after the merge (only the protocol version number differs), so protocol version 15 picks up #5399 and #5414.Files changed on both branches and merged automatically (worth a look in review):
.github/workflows/tests-rs-workspace.ymlDockerfilepackages/rs-sdk-trusted-context-provider/src/provider.rspackages/rs-sdk/src/sdk.rspackages/wasm-sdk/src/context_provider.rspackages/wasm-sdk/src/state_transitions/broadcast.rspackages/js-evo-sdk/README.mdand thepackage.jsonversion bumpsOther effects on
v5.1-dev:5.0.0-beta.6to5.0.0-rc.3, and the changelog gains the rc.1, rc.2 and rc.3 entries.Please merge with a merge commit (not squash) so the
v5.0-devhistory stays shared withv5.1-dev.How Has This Been Tested?
Run locally on the merged tree:
cargo check --workspace --all-targets --locked: passes.cargo clippy -p drive-abci -p wasm-sdk --all-targets --locked -- -D warnings: passes.cargo fmt --all -- --check: passes.cargo nextest run -p dpp -E 'test(asset_lock)': 157 passed. This includes the instant asset lock proof tests from fix(platform)!: keep unknown Core payload layouts decodable #5403 and refactor(dpp): decode instant asset lock proofs with rust-dashcore's legacy asset lock decoder #5423, such astest_raw_instant_lock_proof_decodes_every_transaction_as_the_byte_level_decoder_did.cargo nextest run -p drive-abci -E 'test(/rpc::core/) | test(/identity_create::/) | test(/asset_lock/)': 199 passed.cargo nextest run -p wasm-sdk --lib: 189 passed, with the regenerated fixtures.cargo nextest run -p drive-abci -E 'test(/nullifier_batch_guard::/)': 13 passed with the repinned roots.cargo nextest run -p platform-wallet -p platform-wallet-storage: 2226/2226 pass on626c91d1, includingpersisted_core_transactions(it fails onafbe5515, before feat(dpp): better json schema error messages for data contracts #1175).cargo check --workspace --all-targets --lockedpasses on that pin.PLATFORM_V14andPLATFORM_V15: they are identical apart from the protocol version number.Known limitations
v5.0-dev(fix(wasm-sdk): cache verified contract updates without regressing versions #5391): wasm-sdk contract-cache hydration persists every loaded contract throughstore_if_newer, so the stored localStorage map is parsed once per cached contract at SDK construction (bounded by the 100-entry cap). A fix belongs in a follow-up againstv5.0-dev.Breaking Changes
The merge adds none of its own. It carries the already-reviewed breaking changes #5403, #5414, #5399 and #5431 into
v5.1-dev. The rust-dashcore pin moves todevat626c91d1.Checklist:
structure.rs, regeneratedgrovedb-structure.json, and checked the structure viewer link posted on this pull requestFor repository code-owners and collaborators only
🤖 Co-authored by Claudius the Magnificent AI Agent
🤖 Generated with Claude Code
https://claude.ai/code/session_01PSi8cX229kW2fmLxKW6ir4
PR Hygiene ·
73bf039/skip-botsproceeds without the ones not yet reportedgithub(.github/workflows/milestone.yml,.github/workflows/pr.yml,.github/workflows/tests-rs-workspace.ymland 1 more) — ktechmidas or shumkovCHANGELOG.md,Cargo.lock,Cargo.tomland 28 more) — QuantumExplorer or shumkovdashmate(packages/dashmate/configs/defaults/getBaseConfigFactory.js,packages/dashmate/configs/getConfigFileMigrationsFactory.js,packages/dashmate/docs/config/index.mdand 3 more) — ktechmidas or shumkovsystem-contracts(packages/dashpay-contract/package.json,packages/document-history-contract/package.json,packages/dpns-contract/package.jsonand 5 more) — QuantumExplorer or shumkovjs-wasm-sdk(packages/js-dash-sdk/package.json,packages/js-evo-sdk/README.md,packages/js-evo-sdk/package.jsonand 24 more) — shumkovdpp(packages/rs-dpp/src/identity/state_transition/asset_lock_proof/instant/instant_asset_lock_proof.rs) — QuantumExplorer or shumkovrs-drive-abci(packages/rs-drive-abci/examples/generate_wasm_contract_cache_vectors.rs,packages/rs-drive-abci/examples/generate_wasm_state_transition_wait_vectors.rs,packages/rs-drive-abci/src/execution/check_tx/v0/mod.rsand 14 more) — QuantumExplorer or shumkovrs-drive(packages/rs-drive/src/util/batch/drive_op_batch/drive_methods/apply_drive_operations/v1/mod.rs,packages/rs-drive/src/util/batch/drive_op_batch/system.rs) — QuantumExplorer or shumkovrs-platform-wallet-ffi(packages/rs-platform-wallet-ffi/src/core_wallet_types.rs) — HashEngineering or ZocoLini or llbartekll or romchornyiwallet-storage(packages/rs-platform-wallet-storage/SECRETS.md,packages/rs-platform-wallet-storage/src/secrets/mod.rs,packages/rs-platform-wallet-storage/src/secrets/secret.rsand 157 more) — lklimekrs-platform-wallet(packages/rs-platform-wallet/src/changeset/changeset.rs,packages/rs-platform-wallet/src/changeset/core_bridge.rs,packages/rs-platform-wallet/src/wallet/platform_wallet_traits.rs) — HashEngineering or ZocoLini or llbartekll or romchornyirust-sdk(packages/rs-sdk/src/core/dash_core_client.rs,packages/rs-sdk/src/mock/sdk.rs,packages/rs-sdk/src/platform/query.rsand 5 more) — lklimek or shumkovswift-sdk(packages/swift-sdk/schema-releases.json) — llbartekll or romchornyiWhen every merge requirement is met, the
PR Hygienecheck passes. Reviewer limits do not block merging; other required GitHub checks and protections still apply.