Skip to content

fix(docs): bound dispatch payload properties - #209

Merged
soheimam merged 2 commits into
mainfrom
fix/docs-dispatch-payload-limit
Aug 25, 2026
Merged

fix(docs): bound dispatch payload properties#209
soheimam merged 2 commits into
mainfrom
fix/docs-dispatch-payload-limit

Conversation

@soheimam

Copy link
Copy Markdown
Contributor

Summary

  • keep each repository_dispatch client payload at GitHub's 10-property limit by omitting empty transport fields
  • add a local payload-width guard before dispatching
  • trim and validate manually pasted commit SHAs before computing the diff

Root cause

The first live replay reached the GitHub API successfully but was rejected with HTTP 422 because the original client_payload contained 12 top-level properties.

Compatibility

The currently merged docs receiver already treats omitted diff and artifact-reference fields as empty, so no docs-side change is required.

Validation

GitHub repository_dispatch accepts at most ten top-level client_payload properties. Omit empty transport fields so inline and artifact dispatches each send ten properties, and validate the count before the API call. Trim and validate manually supplied commit SHAs to handle pasted whitespace.
@github-actions

github-actions Bot commented Aug 25, 2026

Copy link
Copy Markdown

📊 Forge Coverage (src/lib/)

🟡 ≥95% across all metrics — some metrics below 99%.

File Lines Stmts Branches Funcs
🟡 B20FactoryLib.sol 97.70% 98.00% 100.00% 95.00%
🔴 test/lib/ForceFeeder.sol 0.00% 0.00% 100.00% 0.00%
🔴 test/lib/PrecompileProbe.sol 0.00% 0.00% 0.00% 0.00%
🟢 MockActivationRegistry.sol 100.00% 100.00% 100.00% 100.00%
🟢 MockActivationRegistryStorage.sol 100.00% 100.00% 100.00% 100.00%
🟢 MockB20.sol 100.00% 100.00% 100.00% 100.00%
🟢 MockB20Asset.sol 100.00% 100.00% 100.00% 100.00%
🟡 MockB20Factory.sol 98.96% 99.10% 100.00% 100.00%
🟢 MockB20Stablecoin.sol 100.00% 100.00% 100.00% 100.00%
🟢 MockB20Storage.sol 100.00% 100.00% 100.00% 100.00%
🟡 MockPolicyRegistry.sol 100.00% 99.54% 97.67% 100.00%
🟢 MockPolicyRegistryStorage.sol 100.00% 100.00% 100.00% 100.00%
Total 97.07% 97.52% 98.16% 97.00%

Full report: download artifact. To browse locally: make coverage (runs forge coverage + genhtml + opens the HTML report).

@github-actions

Copy link
Copy Markdown

Interface Coverage

✅ All interface functions have test coverage.

GitHub-hosted runners use a jq parser that requires the client_payload object addition to be parenthesized. Keep the ten-property payload construction compatible with that parser.
@github-actions

github-actions Bot commented Aug 25, 2026

Copy link
Copy Markdown

✅ Fork tests: all 721 passed

base/base is fully in sync with the base-std spec.

@soheimam
soheimam merged commit 4cc3008 into main Aug 25, 2026
10 checks passed
@soheimam
soheimam deleted the fix/docs-dispatch-payload-limit branch August 25, 2026 17:17
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.

1 participant