[NONEVM-5742] Ensure ExecuteReport backwards compatibility - #889
Merged
Merged
Conversation
duck-types
force-pushed
the
followup/fix/exec-report-offchainTokenData
branch
from
September 17, 2026 21:32
f83c223 to
229e0df
Compare
duck-types
force-pushed
the
followup/fix/exec-report-offchainTokenData
branch
from
September 17, 2026 21:32
229e0df to
a45fdfb
Compare
Contributor
There was a problem hiding this comment.
🟡 Changes recommended
Critical issues remain in tokenless encoding and the CI workflow configuration.
Get a fresh assessment by requesting another Copilot review.
Pull request overview
This PR adds backwards-compatibility coverage for tokenless TON ExecuteReport encoding.
Changes:
- Updates tokenless encoding behavior.
- Adds golden fixtures, tests, and a legacy encoder.
- Adds CI validation and dependency metadata.
File summaries
| File | Reviewed change |
|---|---|
testdata/golden/execute_report.json |
Adds the golden report fixture. |
go.md |
Updates the module graph. |
cciplib/ccip/codec/executereport_golden_test.go |
Adds golden BOC compatibility tests. |
cciplib/ccip/codec/executecodec.go |
Changes tokenless report encoding. |
cciplib/ccip/codec/executecodec_test.go |
Tests legacy-compatible encoding. |
cciplib/ccip/bindings/ocr/testdata/legacyexecutereport/main.go |
Provides the legacy encoder/decoder CLI. |
cciplib/ccip/bindings/ocr/testdata/legacyexecutereport/go.sum |
Records dependency checksums. |
cciplib/ccip/bindings/ocr/testdata/legacyexecutereport/go.mod |
Pins the legacy dependency. |
.github/workflows/execute-report-golden-boc.yml |
Verifies golden BOC stability. |
.gitattributes |
Marks BOC fixtures as binary. |
Review details
Suppressed comments (2)
.github/workflows/execute-report-golden-boc.yml:42
- This workflow only rebuilds the pinned legacy CLI and compares its BOC; it never runs the current
cciplibtests. Becausecciplibhas its own nestedgo.mod, the rootgo test ./...job does not exerciseexecutecodec.goorexecutereport_golden_test.go, so this backwards-compatibility assertion can remain green while the current codec regresses. Add ago test ./...step withworking-directory: cciplib.
- name: Assert golden BOC was not mutated
run: |
git add testdata/golden/execute_report.boc
if ! git diff --minimal --cached --exit-code; then
testdata/golden/execute_report.json:2
- This fixture description repeats that the legacy binding uses a flat
LispList[SnakeBytes], but the pinned legacy revision uses a hardcoded empty*cell.Cellfor this field. Since this text documents what the byte-for-byte golden check actually compares, please describe the pinned legacy schema accurately rather than claiming coverage of a legacy flat-list codec.
"description": "Tokenless ccipocr3.ExecutePluginReport used to verify that the current cciplib binding (nested LispList[LispList[SnakeBytes]] OffChainTokenData) produces the exact same bag of cells as the legacy binding (flat LispList[SnakeBytes]) when there are no token transfers. No token-transfer messages have happened for TON in production yet, so tokenless reports must encode to the identical BOC. The companion execute_report.boc is the committed golden BOC produced by the legacy binding; CI regenerates it and asserts no mutation, while the Go test in cciplib encodes with the current codec and asserts byte equality, then decodes the golden BOC and asserts the result matches this fixture.",
- Files reviewed: 9/11 changed files
- Comments generated: 3
- Review effort level: Lite
💡 Add a code-review agent skill or configure MCP servers for context-aware, tailored reviews. Learn more in the docs.
vicentevieytes
previously approved these changes
Sep 22, 2026
vicentevieytes
previously approved these changes
Sep 24, 2026
duck-types
enabled auto-merge (squash)
September 24, 2026 13:41
vicentevieytes
approved these changes
Sep 24, 2026
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
NONEVM-5742
followup of #884