What's Changed
- consolidate operations and prepare for multisig routing by @alysiahuggins in #3875
- fix(sequencer): disable default features in dependent crates by @sveitser in #3917
- feat(staking-cli): add OpenMetrics support and fix flaky tests by @sveitser in #3926
- refactor(staking-cli): simplify metadata args and add preview command by @sveitser in #3928
- fix(staking-cli): eliminate anvil port race condition in tests by @sveitser in #3929
- fix(staking-cli): improve metadata fetching robustness and error messages by @sveitser in #3933
- [Bot] Audit fixes by @github-actions[bot] in #3924
- refactor(staking-cli): move skip-metadata-validation to command args by @sveitser in #3937
- Nix shell changes by @ss-es in #3919
- Add .envrc sourcing .envrc.local by @ss-es in #3940
- staking cli: Limit parallel futures for tx receipts to 32 by @imabdulbasit in #3946
- increase catchup timeout to 2s and make it an env variable by @imabdulbasit in #3947
- Spawn membership catchup every 100 views by @ss-es in #3959
- fix(types): store unauthenticated validators by @sveitser in #3903
- Add vote participation api by @lukaszrzasik in #3916
- Fix Unnecessary Timeouts when View Change happens before Proposal Handling by @bfish713 in #3967
- Remove portpicker race condition by @sveitser in #3932
- fix(test): flaky CI fire fighting by @sveitser in #3972
- fix: process-compose fails for v1.90.0 by @mrain in #3974
- feat: mass (un)delegation in stake table contract by @sveitser in #3825
- Add tests for vote participation by @lukaszrzasik in #3973
- fix: disallow testing feature for release by @sveitser in #3982
- add
--stake-table-onlyflag to reset-storage binary to clear stake table data only by @imabdulbasit in #3979 - fix(migrations): resolve duplicate migration version numbers after merge by @sveitser in #3985
- truncate legacy tables by @imabdulbasit in #3989
- make state query compatible with postgres 15 by @imabdulbasit in #3991
- versions by @twittner in #3943
- Use workspace dependencies everywhere. by @twittner in #3953
- chore: retry another flaky test by @sveitser in #3984
- CI: improve cargo audit fix bot by @sveitser in #3583
- refactor(utils): centralize build/version info in sequencer-utils by @sveitser in #3988
- Merge release candidate into main by @ss-es in #3993
- Remove useless retries from upsert by @jbearer in #3999
- expose ESPRESSO_SEQUENCER_LIBP2P_BOOTSTRAP_NODES in public env vars by @imabdulbasit in #4018
- Fix SignerConfig parsing by @lukaszrzasik in #4006
- Redesign
sync_statusand proactive scanner to minimize performance impact by @jbearer in #4017 - [Bot] Audit fixes by @github-actions[bot] in #4023
- Remove View and Epoch types from NodeTypes by @bfish713 in #3939
- feat: storage backed reward Merkle tree by @mrain in #3936
- Break sync_status query into multiple smaller transactions by @jbearer in #4029
- Backport: Use proposal chain_config on version change in state update loop by @imabdulbasit in #4033
- chore: batch friendly VID share validation by @mrain in #4038
- Update to 2024 edition by @twittner in #3952
- fix: activeness check before submitting light client state vote by @mrain in #4014
- fix: ubuntu install without nix by @mrain in #4045
- feat: deployment info tool for L1 deployments by @sveitser in #3795
- chore: fix cargo fmt by @sveitser in #4049
- Add an option to disable the scanner task by @jbearer in #4042
- Backport some fixes to cliquenet. by @twittner in #4009
- Use
parking_lot::RwLockinUpgradeLock. by @twittner in #4050 - Remove
upgradefromHotShotConfigby @ss-es in #4046 - feat(staking-cli): add --no-config flag to skip config file loading by @sveitser in #4057
- fix(staking-cli): don't require --account-index with --private-key by @sveitser in #4007
- Compatibility network layer and peer update handling. by @twittner in #3964
- doc: VID common consistency check by @mrain in #4061
- chore: update alloy and foundry by @sveitser in #4058
- Merge release-mainnet-1.0.1-rc into main by @ss-es in #4055
- fix: update rustls-webpki to 0.103.10 to resolve RUSTSEC-2026-0049 by @sveitser in #4066
- Deduplicate payloads and VID common in database by @jbearer in #4043
- Set default bind address for cliquenet by @jbearer in #4077
- fix(go-sdk): replace external network dependencies with local dev node in tests by @sveitser in #4081
- Support key generation from a mnemonic by @jbearer in #4078
- refactor: remove Node.js dependency, replace with Rust calldata export by @sveitser in #4051
- fix(test): use binary() filter for cross_tests! macro in nextest config by @sveitser in #4082
- ci: add Claude Code GitHub Actions for PR review and interactive @claude by @sveitser in #4073
- Initial Code Structure for Fast Finality RFC by @bfish713 in #4047
- Ensure cliquenet uses at least 1 for channel capacity by @jbearer in #4089
- doc: rephrase
sequencerwith proper words by @mrain in #4062 - Add Timeouts and ViewChange by @bfish713 in #4084
- Claude code review tweaks v1 by @sveitser in #4090
- [new-protocol]: Use the current thread runtime in tokio tests. by @twittner in #4093
- fix(ci): add GH_TOKEN to claude review fetch comments step by @sveitser in #4095
- Try all L1 providers when missing transaction receipts by @imabdulbasit in #4097
- fix(ci): correct bot login names in PR comment filter by @sveitser in #4098
- Make batch requests when backfilling old data in query service by @jbearer in #4064
- Add proposal validator by @twittner in #4102
- Add DRB fix to 0.5 upgrade by @ss-es in #4100
- Exclude VID shares from sync status by @jbearer in #4101
- Break Merkle proof GC into batches by @jbearer in #4103
- refactor!: crates/binaries/dockerfiles renaming by @mrain in #4075
- fix: add missing repo checkout action by @mrain in #4107
- ci(contracts): add mutation testing with dregs for RewardClaim by @sveitser in #4041
- Fall back to individually fetching VID common if ranged fetching is not available by @jbearer in #4109
- [Fast Finality] Initial version of block building by @akonring in #4088
- Add sub-second support for node-metrics and the Explorer by @Ayiga in #4059
- Refactor test assertions. by @twittner in #4113
- Revert change to deployed migrations by @jbearer in #4112
- Add database endpoint for SQL table metadata by @ss-es in #4104
- [Backport main] Adjust participation endpoints by @github-actions[bot] in #4063
- [Fast Finality] Epoch Change Logic by @bfish713 in #4096
- Switch from per block to per epoch reward distribution ( V5 Upgrade) by @imabdulbasit in #3879
- Fix test version by @bfish713 in #4118
- [Fast Finality] Fix flackly timeout test by @bfish713 in #4119
- [new-protocol]: Minor tweaks by @twittner in #4117
- fix(stake-table): query Transfer events instead of fetching tx receipts by @sveitser in #4120
- chore(types): remove unused Serialize/Deserialize impls from EthKeypair by @sveitser in #4127
- Move more proposal validation out of consensus. by @twittner in #4114
- Cache and serialize
sync_statusby @jbearer in #4094 - [new-protocol]: Certificate handling by @akonring in #4121
- Fix pruner height serialization error by using separate transaction, change default batch size to 1000 by @imabdulbasit in #4123
- Add EspressoBuilderClient by @zacshowa in #4012
- prune state tables in separate tx and add local timeout by @imabdulbasit in #4129
- Remove unwraps by @ss-es in #4132
- [new-protocol]: Modify builder parameters and state by @akonring in #4135
- Pruner improvements by @jbearer in #4141
- Delay pruning on startup by @jbearer in #4139
- feat(api): add circulating supply endpoints by @sveitser in #4074
- [new-protocol]: Timeout handling by @akonring in #4131
- Reorder migrations for compatibility with release branch by @jbearer in #4143
- Replace window function with EXISTS subquery for state table pruning by @imabdulbasit in #4133
- fix(persistence): backward-compatible bincode deserialization for stake tables by @sveitser in #4147
- fix: missing checks on VID by @mrain in #4140
- track validated state delta in new-protocol by @imabdulbasit in #4122
- feat(api): add total-issued-supply and total-reward-distributed endpoints by @sveitser in #4152
- fix: store genesis reward tree at height 0 by @imabdulbasit in #4155
- Exclude placeholder rows in payload migration by @jbearer in #4156
- Replace Permanent Errors with Ephemeral (SDK) by @jjeangal in #4151
- Rebase on main by @jbearer in #4157
- fix: persist reward tree at every epoch boundary for epoch reward version by @imabdulbasit in #4158
- Avoid upserting with conflicting rows by @jbearer in #4160
- feat(node): make x25519 key optional, generate random fallback by @sveitser in #4161
- fix(sdk): use dynamic ports for Go SDK integration tests by @sveitser in #4163
- [new-protocol] Initial multi-node test over MemoryNetwork by @akonring in #4154
- [Fast Finality] Epoch Integration Tests by @bfish713 in #4128
- Make RewardMerkleTreeV2 permits configurable by @ss-es in #4167
- Retry on Postgres serialization error by @lukaszrzasik in #4115
- chore: update deployment info by @github-actions[bot] in #4166
- chore(deployment-info): re-run to avoid future reordering by @sveitser in #4175
- Refactor query service types into their own crate by @jbearer in #4169
- Lr/epoch change participation by @lukaszrzasik in #4037
- [new-protocol] Benchmark binary by @akonring in #4177
- fix(test): reduce node count for epoch reward upgrade test by @sveitser in #4168
- [new-protocol] Adjust tracing levels on frequent logging by @akonring in #4180
- chore: reduce build times, cleanup by @sveitser in #3994
- Naive parallelization in avidm_gf2 by @akonring in #4188
- fix(ci): update renamed crate in clippy exclude by @sveitser in #4192
- chore(ci): use more rust caches and fix cache sharing by @sveitser in #4164
- docs: add software release versioning proposal by @sveitser in #4150
New Contributors
Full Changelog: 20260203-staking-cli-mainnet...20000101-test-release-workflow-3