Skip to content

chore: merge v5.0-dev into v5.1-dev - #5432

Merged
lklimek merged 35 commits into
v5.1-devfrom
chore/merge-v5.0-into-v5.1-20261014
Oct 16, 2026
Merged

lklimek merged 35 commits into
v5.1-devfrom
chore/merge-v5.0-into-v5.1-20261014

Conversation

@Claudius-Maginificent

@Claudius-Maginificent Claudius-Maginificent commented Oct 14, 2026 •

Copy link
Copy Markdown
Collaborator

Basic explanation

What this does: Brings v5.1-dev up to date with v5.0-dev by merging the 26 PRs that landed on v5.0-dev since the last forward merge (#5404, at 7f7ed87), and moves the rust-dashcore pin to dev at 626c91d1.

Value: v5.1-dev gets the 5.0.0-rc.1/rc.2/rc.3 fixes: Core v24 support (getblockchaininfo without 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 is afbe5515 plus the #1112 commits) without changing how asset lock proofs are decoded.

Risks: Moderate.

Issue being fixed or feature implemented

v5.1-dev was 26 PRs behind v5.0-dev. Its rust-dashcore pin (90359ed5) also lacks Transaction::deserialize_with_legacy_asset_lock_framing, which #5423 depends on.

What was done?

Merged origin/v5.0-dev (51ee8a7) into origin/v5.1-dev (5b5daf6). Incoming PRs:

Resolved by hand:

  • Cargo.toml: GroveDB comes from v5.0-dev (fc7028d8, 6.1.0, two commits ahead of v5.1-dev's 5cb0962a). Every rust-dashcore crate is pinned to dev at 626c91d1 (see below).
  • Cargo.lock: started from v5.1-dev's lockfile and ran cargo 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 names 626c91d1, rust-dashcore#1167 and feat(dpp): better json schema error messages for data contracts #1175.

Merge fixes for v5.0-dev code written against APIs that v5.1-dev changed (part of the merge commit):

  • rs-drive-abci/examples/generate_wasm_{contract_cache,state_transition_wait}_vectors.rs and wasm-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_bytes and the context-free PublicKey::from_secret_key. Moved from the removed dpp::bls_signatures re-export to dpp::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 at PlatformVersion::latest(), which is protocol 15 on v5.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 on v5.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 → 626c91d1

v5.0-dev pins edc4d430, a branch off rust-dashcore dev that backports 16 commits. Each one is on dev at 626c91d1:

What 626c91d1 adds on top of 90359ed5 and how it touches Platform:

Asset lock proof decoding and the Core RPC code are identical to v5.0-dev. instant_asset_lock_proof.rs, rpc/core.rs and dash_core_client.rs have no diff against origin/v5.0-dev.

PLATFORM_V15 still points at the same sub-version tables as PLATFORM_V14 after 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.yml
  • Dockerfile
  • packages/rs-sdk-trusted-context-provider/src/provider.rs
  • packages/rs-sdk/src/sdk.rs
  • packages/wasm-sdk/src/context_provider.rs
  • packages/wasm-sdk/src/state_transitions/broadcast.rs
  • packages/js-evo-sdk/README.md and the package.json version bumps

Other effects on v5.1-dev:

  • The workspace version moves from 5.0.0-beta.6 to 5.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-dev history stays shared with v5.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 as test_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 on 626c91d1, including persisted_core_transactions (it fails on afbe5515, before feat(dpp): better json schema error messages for data contracts #1175). cargo check --workspace --all-targets --locked passes on that pin.
  • Compared the non-comment field assignments of PLATFORM_V14 and PLATFORM_V15: they are identical apart from the protocol version number.

Known limitations

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 to dev at 626c91d1.

Checklist:

  • I have performed a self-review of my own code
  • I have commented my code, particularly in hard-to-understand areas
  • I have added or updated relevant unit/integration/functional/e2e tests
  • I have added "!" to the title and described breaking changes in the corresponding section if my code contains any
  • I have made corresponding changes to the documentation if needed
  • If I added or changed GroveDB structure, I described it in the area's structure.rs, regenerated grovedb-structure.json, and checked the structure viewer link posted on this pull request

For repository code-owners and collaborators only

  • I have assigned this pull request to a milestone

🤖 Co-authored by Claudius the Magnificent AI Agent

🤖 Generated with Claude Code

https://claude.ai/code/session_01PSi8cX229kW2fmLxKW6ir4

PR Hygiene · 73bf039

  • Bots — coderabbitai not yet · thepastaclaw ✓ — /skip-bots proceeds without the ones not yet reported
  • Self-review — not asked of a bot author
  • Build running
  • Approvals
    • github (.github/workflows/milestone.yml, .github/workflows/pr.yml, .github/workflows/tests-rs-workspace.yml and 1 more) — ktechmidas or shumkov
    • files with no dedicated owner (CHANGELOG.md, Cargo.lock, Cargo.toml and 28 more) — QuantumExplorer or shumkov
    • dashmate (packages/dashmate/configs/defaults/getBaseConfigFactory.js, packages/dashmate/configs/getConfigFileMigrationsFactory.js, packages/dashmate/docs/config/index.md and 3 more) — ktechmidas or shumkov
    • system-contracts (packages/dashpay-contract/package.json, packages/document-history-contract/package.json, packages/dpns-contract/package.json and 5 more) — QuantumExplorer or shumkov
    • js-wasm-sdk (packages/js-dash-sdk/package.json, packages/js-evo-sdk/README.md, packages/js-evo-sdk/package.json and 24 more) — shumkov
    • dpp (packages/rs-dpp/src/identity/state_transition/asset_lock_proof/instant/instant_asset_lock_proof.rs) — QuantumExplorer or shumkov
    • rs-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.rs and 14 more) — QuantumExplorer or shumkov
    • rs-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 shumkov
    • rs-platform-wallet-ffi (packages/rs-platform-wallet-ffi/src/core_wallet_types.rs) — HashEngineering or ZocoLini or llbartekll or romchornyi
    • wallet-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.rs and 157 more) — lklimek
    • rs-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 romchornyi
    • rust-sdk (packages/rs-sdk/src/core/dash_core_client.rs, packages/rs-sdk/src/mock/sdk.rs, packages/rs-sdk/src/platform/query.rs and 5 more) — lklimek or shumkov
    • swift-sdk (packages/swift-sdk/schema-releases.json) — llbartekll or romchornyi

When every merge requirement is met, the PR Hygiene check passes. Reviewer limits do not block merging; other required GitHub checks and protections still apply.

github-actions Bot and others added 24 commits October 11, 2026 05:32
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 Sonnet 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>
@coderabbitai

coderabbitai Bot commented Oct 14, 2026 •

Copy link
Copy Markdown
Contributor

Important

Review skipped

Auto reviews are disabled on base/target branches other than the default branch.

Please check the settings in the CodeRabbit UI or the .coderabbit.yaml file in this repository. To trigger a single review, invoke the @coderabbitai review command.

⚙️ Run configuration
  • Configuration used: Repository: dashpay/platform/.coderabbit.yaml
  • Review profile: CHILL
  • Plan: Advanced
  • Run ID: 02df77b2-723a-47ad-a33d-d9dd7fbe709e

You can disable this status message by setting the reviews.review_status to false in the CodeRabbit configuration file.

Use the checkbox below for a quick retry:

  • 🔍 Trigger review
  • Autofix · Keep fixing CodeRabbit findings and required CI, and resolving merge conflicts

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.

❤️ Share

Comment @coderabbitai help to get the list of available commands.

@thepastaclaw

thepastaclaw commented Oct 14, 2026 •

Copy link
Copy Markdown
Collaborator

✅ Final review complete — no blockers (commit 73bf039) · triage: critical

@github-actions github-actions Bot added this to the v5.1.0 milestone Oct 14, 2026
@github-actions

github-actions Bot commented Oct 14, 2026 •

Copy link
Copy Markdown
Contributor

📖 Book Preview built successfully.

Download the preview from the workflow artifacts.
To view locally: download the artifact, unzip, and open index.html.

Updated at 2026-10-16T07:25:28.995Z

romchornyi and others added 2 commits October 14, 2026 20:12
…ord (#5393)

Co-authored-by: Roman <51091564+jeanpierreroma@users.noreply.github.com>
Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com>
…ease defaults on update (#5433)

Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com>
@github-actions

github-actions Bot commented Oct 15, 2026 •

Copy link
Copy Markdown
Contributor

Ready for review — wallet-storage: lklimek · swift-sdk: llbartekll or romchornyi.
Full checklist in the description.

@github-actions github-actions Bot added ready-for-human Bots have reported, the author has self-reviewed, and the build is green: this needs a human. bot-review-skipped A required review bot did not report; it was skipped by the window or by a person. and removed waiting-bots Waiting for the review bots to report on this head labels Oct 15, 2026

@thepastaclaw thepastaclaw left a comment

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

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: critical by gpt-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); agent phase1-reviewer, muse-spark-1.3-contributor — rust-quality (completed, effort xhigh); agent phase1-reviewer
  • Phase 1 model: muse-spark-1.3-contributor — not quota-gated; passed over gemini-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; agent sol-verifier
  • Phase 2 reviewers: gpt-6.1-sol — general (completed, effort xhigh); agent phase2-reviewer, gpt-6.1-sol — architecture-layering (completed, effort xhigh); agent phase2-reviewer, gpt-6.1-sol — ffi-engineer (completed, effort xhigh); agent phase2-reviewer, gpt-6.1-sol — platform-versioning (completed, effort xhigh); agent phase2-reviewer, gpt-6.1-sol — rust-quality (completed, effort xhigh); agent phase2-reviewer, gpt-6.1-sol — security-auditor (completed, effort xhigh); agent phase2-reviewer, gpt-6-astra — general (completed, effort xhigh); agent phase2-reviewer, gpt-6-astra — architecture-layering (completed, effort xhigh); agent phase2-reviewer, gpt-6-astra — ffi-engineer (completed, effort xhigh); agent phase2-reviewer, gpt-6-astra — platform-versioning (completed, effort xhigh); agent phase2-reviewer, gpt-6-astra — rust-quality (completed, effort xhigh); agent phase2-reviewer, gpt-6-astra — security-auditor (completed, effort xhigh); agent phase2-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.

Comment thread packages/wasm-sdk/src/sdk.rs
shumkov
shumkov previously approved these changes Oct 15, 2026
PastaPastaPasta and others added 6 commits October 15, 2026 19:51
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
@lklimek
lklimek force-pushed the chore/merge-v5.0-into-v5.1-20261014 branch from 1becbcb to 73bf039 Compare October 16, 2026 07:22
@github-actions

github-actions Bot commented Oct 16, 2026 •

Copy link
Copy Markdown
Contributor

Waiting for bot review — coderabbitai not yet · thepastaclaw ✓. Wait for the missing reviews, or a writer can post /skip-bots to proceed without them; blocking findings still need addressing.
Full checklist in the description.

@github-actions github-actions Bot added waiting-bots Waiting for the review bots to report on this head and removed ready-for-human Bots have reported, the author has self-reviewed, and the build is green: this needs a human. bot-review-skipped A required review bot did not report; it was skipped by the window or by a person. labels Oct 16, 2026

@thepastaclaw thepastaclaw left a comment

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

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: critical by gpt-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); agent phase1-reviewer, gemini-3.8-flash-high — rust-quality (completed, effort high); agent phase1-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; agent sol-verifier
  • Phase 2 reviewers: gpt-6.1-sol — general (completed, effort xhigh); agent phase2-reviewer, gpt-6.1-sol — architecture-layering (completed, effort xhigh); agent phase2-reviewer, gpt-6.1-sol — ffi-engineer (completed, effort xhigh); agent phase2-reviewer, gpt-6.1-sol — platform-versioning (completed, effort xhigh); agent phase2-reviewer, gpt-6.1-sol — rust-quality (completed, effort xhigh); agent phase2-reviewer, gpt-6.1-sol — security-auditor (completed, effort xhigh); agent phase2-reviewer, gpt-6.1-sol — general (completed, effort xhigh); agent phase2-reviewer, gpt-6.1-sol — architecture-layering (completed, effort xhigh); agent phase2-reviewer, gpt-6.1-sol — ffi-engineer (completed, effort xhigh); agent phase2-reviewer, gpt-6.1-sol — platform-versioning (completed, effort xhigh); agent phase2-reviewer, gpt-6.1-sol — rust-quality (completed, effort xhigh); agent phase2-reviewer, gpt-6.1-sol — security-auditor (completed, effort xhigh); agent phase2-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.

@lklimek

lklimek commented Oct 16, 2026

Copy link
Copy Markdown
Contributor

/skip-bots

@lklimek
lklimek merged commit b2d7d42 into v5.1-dev Oct 16, 2026
82 of 83 checks passed
@lklimek
lklimek deleted the chore/merge-v5.0-into-v5.1-20261014 branch October 16, 2026 09:58
@shumkov shumkov mentioned this pull request Oct 17, 2026
10 of 21 tasks
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

waiting-bots Waiting for the review bots to report on this head

Projects

None yet

Development

Successfully merging this pull request may close these issues.

8 participants