---
tags:
- leanSpec
- weekly-report
- ethereum/consensus
created: "2026-05-02"
period: "2026-04-25 ~ 2026-05-02"
repo: leanEthereum/leanSpec
pr_count: 13
---
# leanSpec Weekly Report (Apr 25 – May 2, 2026)
> Auto-generated weekly summary of merged PRs in [leanEthereum/leanSpec](https://github.com/leanEthereum/leanSpec)
## Overview
This is an automated summary of 13 merged PRs.
## Merged PRs
### Other
| PR | Title | Author | Merged | Changes |
|----|-------|--------|--------|---------|
| [#700](https://github.com/leanEthereum/leanSpec/pull/700) | refactor(forks): rename GOSSIP_DIGEST from devnet0 to 12345678 | @Andrurachi | May 2 | +5 -5 |
| [#695](https://github.com/leanEthereum/leanSpec/pull/695) | refactor(forks): move fork-stable types to lean_spec.types (Stage 2 of #686) | @tcoratger | May 1 | +269 -395 |
| [#691](https://github.com/leanEthereum/leanSpec/pull/691) | feat: add BlocksByRange req/resp protocol | @akronim26 | Apr 30 | +1946 -43 |
| [#694](https://github.com/leanEthereum/leanSpec/pull/694) | refactor(forks): tighten ForkProtocol surface (Stage 1 of #686) | @tcoratger | Apr 30 | +77 -45 |
| [#638](https://github.com/leanEthereum/leanSpec/pull/638) | feat: add multi-fork architecture with ForkProtocol and SpecRunner | @tcoratger | Apr 30 | +1190 -800 |
| [#692](https://github.com/leanEthereum/leanSpec/pull/692) | test(fc): tighten non-zero finality and equivocation test vectors | @tcoratger | Apr 29 | +60 -16 |
| [#690](https://github.com/leanEthereum/leanSpec/pull/690) | test: add fork choice and block production test vectors for non-zero finality and equivocation | @uink45 | Apr 29 | +417 -0 |
| [#682](https://github.com/leanEthereum/leanSpec/pull/682) | forkchoice: tighten validate_attestation future-slot bound | @tcoratger | Apr 28 | +411 -49 |
| [#687](https://github.com/leanEthereum/leanSpec/pull/687) | refactor(client): split event_source.py into a package | @tcoratger | Apr 27 | +630 -577 |
| [#684](https://github.com/leanEthereum/leanSpec/pull/684) | refactor: order Checkpoint by slot to drop max() lambda noise | @tcoratger | Apr 26 | +82 -12 |
| [#683](https://github.com/leanEthereum/leanSpec/pull/683) | chore: sweep dead helpers across subspecs | @tcoratger | Apr 26 | +43 -1197 |
| [#678](https://github.com/leanEthereum/leanSpec/pull/678) | test(fc): store from anchor rejects mismatched state root | @mananuf | Apr 26 | +104 -2 |
| [#680](https://github.com/leanEthereum/leanSpec/pull/680) | forkchoice: use only the "new" pool for update_safe_target | @ch4r10t33r | Apr 25 | +38 -63 |
**Summary**: PRs could not be automatically categorized.
## Key Themes
Unable to generate themes due to analysis error.
## Stats
- Total PRs: 13
- Contributors: 6
- Lines changed: +5272 / -3204