feat(platform): introduce protocol version 14 - #4267
Conversation
Activation gate for the shared-prefix aggregate index fix (an aggregating countable / summable index whose terminal property also prefixes a compound index registers today but rejects document inserts). v14 is functionally identical to v13 at introduction — the same component version structs, no behavior change. The consensus change that consumes this gate (a bumped drive document methods struct with v2 index walkers) lands in a follow-up; keeping v14 == v13 here lets mixed-version validators agree until that change activates. Bumping LATEST_VERSION also extends every bounded state-transition activation range (contract-create V1 9..=LATEST, address transitions 11..=LATEST, shielded transitions 12..=LATEST) to cover v14, exactly as the v13 introduction did. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
|
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 configurationConfiguration used: Path: .coderabbit.yaml Review profile: CHILL Plan: Pro Plus Run ID: 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 29ef386) |
thepastaclaw
left a comment
There was a problem hiding this comment.
Final validation — Codex + Sonnet
PR #4267 introduces protocol version 14 as a pure activation gate, following the exact pattern used for v13's introduction. PLATFORM_V14 is field-for-field identical to PLATFORM_V13 (verified directly via diff — only doc comments differ, no component version constants changed), and all bounded state-transition activation ranges (9..=LATEST_VERSION, 11..=LATEST_VERSION, 12..=LATEST_VERSION) automatically extend to cover v14 through the shared LATEST_VERSION constant with no manual edits required. The crate builds cleanly. Both Claude and Codex found no issues, and independent verification against the actual diff confirms this is a minimal, low-risk, behavior-free change.
Review provenance
- Codex reviewers:
gpt-5.6-sol— general (completed) - Verifier:
claude-sonnet-5— final-verifier - Sonnet reviewers:
claude-sonnet-5— general (completed)
Codecov Report✅ All modified and coverable lines are covered by tests. Additional details and impacted files@@ Coverage Diff @@
## v4.2-dev #4267 +/- ##
==========================================
Coverage 87.54% 87.55%
==========================================
Files 2670 2671 +1
Lines 338763 338891 +128
==========================================
+ Hits 296583 296707 +124
- Misses 42180 42184 +4
🚀 New features to boost your workflow:
|
|
Reviewed |
Issue being fixed or feature implemented
Creates protocol version 14 as a standalone, behavior-free gate — the same pattern as #4143 (protocol version 13). The consensus change that consumes this gate is the shared-prefix aggregate index fix (#3960, currently #4265): an aggregating
countable/summableindex whose terminal property also prefixes a compound index registers today but rejects document inserts. That fix lands in a follow-up PR that bumps the drive document methods struct at v14.What was done?
Three files, mirroring the v13 introduction:
v14.rs:PLATFORM_V14with the exact same component version structs asPLATFORM_V13— no behavior change at introduction, so mixed-version validators agree until a follow-up activates real changes.protocol_version.rs: registersPLATFORM_V14and movesLATEST_PLATFORM_VERSIONto it.version/mod.rs: bumpsLATEST_VERSIONtoPROTOCOL_VERSION_14, which also extends every bounded state-transition activation range (contract-create V19..=LATEST, address transitions11..=LATEST, shielded transitions12..=LATEST) to cover v14 — exactly as the v13 introduction did. This is consensus-safe: the ranges are checked against the runtime protocol version, so nothing changes for nodes running at v13 and below.How Has This Been Tested?
With v14 == v13, everything that passes at latest simply runs at 14: dpp (3806), rs-drive lib (3251) and drive-abci lib (2629) suites green on this branch.
Breaking Changes
Adds a protocol version; nodes on binaries without v14 cannot participate once the network votes it in. Behavior at v14 is identical to v13 until a follow-up consumes the gate.
Checklist:
🤖 Generated with Claude Code