Skip to content

fix(execution): clear omitted payload envelope optionals - #3439

Merged
tac0turtle merged 2 commits into
evstack:mainfrom
elonfliter:feature_for_elon
Aug 31, 2026
Merged

fix(execution): clear omitted payload envelope optionals#3439
tac0turtle merged 2 commits into
evstack:mainfrom
elonfliter:feature_for_elon

Conversation

@elonfliter

@elonfliter elonfliter commented Aug 31, 2026

Copy link
Copy Markdown
Contributor

Overview

When an Engine API payload envelope is decoded into a reused object, omitted Requests/Override fields can retain values from an earlier response. I propose clearing those optionals during decoding and adding a regression test in execution/evm.

Clear stale Requests and Override optionals when an Engine API payload envelope is reused, and add regression coverage for the reuse case.

Summary by CodeRabbit

  • Bug Fixes

    • Corrected payload processing so omitted execution request and builder override fields are properly reset when decoding new data.
    • Prevented stale values from being carried over between payloads.
  • Tests

    • Added coverage verifying field population when values are provided and clearing when they are omitted.

Signed-off-by: elonfliter <elonfliter@outlook.com>
@coderabbitai

coderabbitai Bot commented Aug 31, 2026

Copy link
Copy Markdown
Contributor

Review Change Stack

No actionable comments were generated in the recent review. 🎉

ℹ️ Recent review info
⚙️ Run configuration

Configuration used: defaults

Review profile: CHILL

Plan: Pro Plus

Run ID: 0b000e3a-0277-436e-889d-64f549eb948b

📥 Commits

Reviewing files that changed from the base of the PR and between 670af4e and 8754b43.

📒 Files selected for processing (2)
  • execution/evm/engine_payload.go
  • execution/evm/engine_rpc_client_test.go

Included review availability: Your plan provides up to 2 included reviews per hour; 1 remains after this review.


📝 Walkthrough

Walkthrough

EnginePayloadEnvelope unmarshalling now clears omitted executionRequests and shouldOverrideBuilder values. A test verifies both populated and omitted field cases.

Changes

Engine payload unmarshalling

Layer / File(s) Summary
Reset omitted payload fields
execution/evm/engine_payload.go, execution/evm/engine_rpc_client_test.go
UnmarshalJSON resets Requests before conditional population and sets Override from the decoded pointer. The test verifies values are populated when present and cleared when omitted.

Estimated code review effort: 1 (Trivial) | ~5 minutes

Merge Risk: ⚪ Minimal · up to 8754b

The change clears omitted optional response fields so reused Engine API payload objects cannot retain stale values from an earlier response. No actionable merge-blocking risk remains beyond normal checks and review.

Suggested reviewers: tac0turtle

🚥 Pre-merge checks | ✅ 4 | ❌ 1

❌ Failed checks (1 warning)

Check name Status Explanation Resolution
Docstring Coverage ⚠️ Warning Docstring coverage is 0.00% which is insufficient. The required threshold is 80.00%. Docstring coverage is scoped to functions touched by this diff. Analyzed 3 functions across 2 files. Write docstrings for the functions missing them to satisfy the coverage threshold.
✅ Passed checks (4 passed)
Check name Status Explanation
Linked Issues check ✅ Passed Check skipped because no linked issues were found for this pull request.
Out of Scope Changes check ✅ Passed Check skipped because no linked issues were found for this pull request.
Title check ✅ Passed The title follows the conventional commit format and clearly summarizes the primary change: clearing omitted payload envelope optionals.
Description check ✅ Passed The description includes the required Overview section and explains the defect, fix, and regression test. It provides sufficient context for review.
  • Fix all pre-merge checks with AI
✨ Finishing Touches
🧪 Generate unit tests (beta)
  • Create PR with unit tests

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.

@codecov

codecov Bot commented Aug 31, 2026

Copy link
Copy Markdown

Codecov Report

✅ All modified and coverable lines are covered by tests.
✅ Project coverage is 69.25%. Comparing base (21b58df) to head (9a51f90).

Additional details and impacted files
@@            Coverage Diff             @@
##             main    #3439      +/-   ##
==========================================
- Coverage   69.26%   69.25%   -0.01%     
==========================================
  Files         121      121              
  Lines       11948    11948              
==========================================
- Hits         8276     8275       -1     
- Misses       3672     3673       +1     
Flag Coverage Δ
combined 69.25% <ø> (-0.01%) ⬇️

Flags with carried forward coverage won't be shown. Click here to find out more.

☔ View full report in Codecov by Harness.
📢 Have feedback on the report? Share it here.

🚀 New features to boost your workflow:
  • ❄️ Test Analytics: Detect flaky tests, report on failures, and find test suite problems.

@tac0turtle
tac0turtle enabled auto-merge August 31, 2026 11:01
@tac0turtle
tac0turtle added this pull request to the merge queue Aug 31, 2026
Merged via the queue into evstack:main with commit 8768ca2 Aug 31, 2026
21 of 24 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants