What's Changed
- Remove tide-disco from hotshot-query-service, drop surf by @imabdulbasit in #4800
- downgrade sqlx from 0.8.6 to 0.8.3 by @imabdulbasit in #4826
- fix(consensus): persist high QC and restore lock on restart (V0.5) by @lukaszrzasik in #4598
- test(cliquenet): partition and address-rotation coverage by @bfish713 in #4799
- bigint hash-id migration followup by @imabdulbasit in #4821
- fix(stake-table): persist the epoch root header on both protocols by @sveitser in #4825
- fix(telemetry): stop logging L1 provider credentials by @sveitser in #4783
- test: validator key and address rotation at 0.6 by @bfish713 in #4819
- chore(deps): update alloy 1.8.3 -> 2.4.1 by @sveitser in #4843
- fix(stake-table): store the epoch root header before the early return by @sveitser in #4844
- fix(node): skip legacy network wait once new-protocol cutover is decided by @bfish713 in #4818
- fix broken main build by @imabdulbasit in #4848
- ci(agents): weekly Claude job to maintain AGENTS.md by @sveitser in #4832
- chore(audit): ignore RUSTSEC-2026-0258, h2 0.3 has no patched release by @imabdulbasit in #4849
- Fixes builder health check probe and events API error logging by @imabdulbasit in #4853
- feat(api): serve healthcheck under each version prefix by @imabdulbasit in #4854
- fix(stake-table): drop off-by-one in Initialized event scan range by @lukaszrzasik in #4852
- Begin formalising consensus and check conformance by @twittner in #4824
- Fetch a missing payload from peers by @twittner in #4850
- Pass
NetAddrtotry_connect. by @twittner in #4862 - chore(crypto-helper): remove unused dependencies by @sveitser in #4861
- fix(new-protocol): stop orphaning state requests (gc abort, fetched proposals) by @bfish713 in #4865
- feat(api): generate v2 from protobuf, serve status and token only by @imabdulbasit in #4841
- fix: alloy provider responses handling after alloy upgrade by @sveitser in #4863
- fix(new-protocol): adopt parked proposals; validate fetched ones without a payload size by @bfish713 in #4872
- feat(stake-table): hardcode the ESP initial supply for known chains by @sveitser in #4868
- fix: rate limit forever by @sveitser in #4869
- Display IPv6 addresses as socket addresses, and validate addresses by @twittner in #4870
- fix(ci): pin foundry to v1.7.1 for contract docs by @sveitser in #4877
- chore: hardcode initial supply follow up by @sveitser in #4878
- feat(ci): report compile-time and binary-size metrics per PR by @sveitser in #4888
- fix(ci): find the main compile-metrics baseline by @sveitser in #4891
- fix(ci): alert on binary size and memory, not timing by @sveitser in #4893
- chore: base64-bytes 0.1.0 -> 0.1.1 by @sveitser in #4901
- fix(ci): temporarily remove PR alerts on compile metrics by @sveitser in #4898
- refactor(http-wire): drop the WireFormat trait for a shared version and WireError by @imabdulbasit in #4801
- take the LCV3 requirement from the upgrade lock by @alysiahuggins in #4903
- fix(slow-tests): box rotate_validator to bound test stack use by @lukaszrzasik in #4899
- fix(state-cert): bind fetched certs to their block height's epoch by @alysiahuggins in #4902
- perf(types): serialize DA payloads in one call, not one per byte by @sveitser in #4906
- feat: staking-cli pull stake table config of address from L1 by @sveitser in #4860
- deploy: decaf, stake table v3 proposals by @sveitser in #4650
- deploy: mainnet, stake table v3 proposals by @sveitser in #4815
- chore(deps): bump the all group across 1 directory with 13 updates by @dependabot[bot] in #4915
- chore(deps): clear five RustSec advisories by @imabdulbasit in #4917
- chore(deps): replace backoff with backon in the query service by @imabdulbasit in #4918
- fix(ci): regenerate allocator patches against current sources by @sveitser in #4916
- fix(ci): build diff-test and skip network tests in ubuntu install test by @sveitser in #4919
- chore: move remaining root crates under crates/ by @imabdulbasit in #4864
- chore(deps): bump actions/checkout from 6 to 7 in the all group by @dependabot[bot] in #4923
- fix: flaky tests by @sveitser in #4900
- Weekly PR to bump flake.nix by @github-actions[bot] in #4922
- refactor(api): erase API state generic in routers by @sveitser in #4895
- chore: update bindings for foundry 1.8 by @sveitser in #4924
- optimize catchup: Batch scanner fetches for missing blocks and VID by @imabdulbasit in #4879
- fix(ci): paginate the artifact listing behind /compile-metrics by @sveitser in #4930
- chore: update deployment info by @github-actions[bot] in #4754
- Keep the data when state validation fails by @twittner in #4880
- feat(staking-cli): derive validator keys from the node key mnemonic by @sveitser in #4933
- chore: improve test/CI runtime by @sveitser in #4883
- insert the state_cert if it is an epoch_root proposal by @alysiahuggins in #4920
- Drop pre V6 demo genesis files and the integration tests by @imabdulbasit in #4937
- fix(epoch-membership): recover from wedged epoch stake-table catchup by @lukaszrzasik in #4866
- Check a proposal's epoch against its height by @twittner in #4897
- chore(genesis): set mainnet base version to v6 by @sveitser in #4960
- fix(node): prefetch stake table events before the update loop and bootstrap walk by @sveitser in #4957
- Add V2 node module APIs by @imabdulbasit in #4908
- feat(l1): default the finalized safety margin to 100 blocks by @sveitser in #4964
- fix(node): always record the x25519 key in the validator config by @bfish713 in #4947
- Enable state pruning for archival nodes by @imabdulbasit in #4764
- Make the empty block delay configurable by @imabdulbasit in #4971
- fix(query-service): skip empty height spans when pruning by @lukaszrzasik in #4932
- feat(node): probe storage filesystem and fsync latency at startup by @sveitser in #4975
- fix(ci): point the memory soak at demo-ff genesis by @sveitser in #4979
- feat: release workflow by @sveitser in #4977
Full Changelog: 2026081...0.6.3.0