Skip to content

test(plugins): sync release contracts#102777

Merged
steipete merged 2 commits into
mainfrom
codex/release-plugin-contract-tests
Jul 9, 2026
Merged

test(plugins): sync release contracts#102777
steipete merged 2 commits into
mainfrom
codex/release-plugin-contract-tests

Conversation

@steipete

@steipete steipete commented Jul 9, 2026

Copy link
Copy Markdown
Contributor

What Problem This Solves

Full Release Validation at e2a112a5565ee40a6caf2a53e004d9efa49038ab exposed two deterministic Plugin Prerelease failures:

  • the bundled startup-plugin baseline omitted codex-supervisor after its manifest adopted startup activation;
  • the Canvas entrypoint test still expected one registered tool after show_widget became the second capability-gated tool.
  • the Codex client-capability test omitted the lightweight runtime-plan fixture used by adjacent tests, causing full provider/plugin normalization and a 120-second Plugin Prerelease timeout.

Why This Change Was Made

The runtime and manifests are correct. This updates the stale contracts and strengthens Canvas coverage: the test now asserts both registrations, the show_widget registration name and required client capability, lazy loading for both implementations, and forwarded session/agent context. The Codex test now supplies the same deterministic runtime-plan fixture as neighboring dynamic-tool tests instead of increasing its timeout.

User Impact

No runtime behavior changes. Plugin prerelease validation no longer blocks release preparation on stale expectations, and future Canvas tool additions must update explicit registration/laziness coverage.

Evidence

No docs or changelog change: test-contract repair only.

@openclaw-barnacle openclaw-barnacle Bot added size: S maintainer Maintainer-authored PR labels Jul 9, 2026
@clawsweeper

clawsweeper Bot commented Jul 9, 2026

Copy link
Copy Markdown
Contributor

Codex review: needs maintainer review before merge. Reviewed July 9, 2026, 8:25 AM ET / 12:25 UTC.

Summary
The PR updates plugin contract tests for Canvas show_widget registration, the Codex dynamic-tool runtime-plan fixture, and the bundled startup-plugin baseline.

PR surface: Tests +42. Total +42 across 3 files.

Reproducibility: yes. source-reproducible: linked release-validation failures match current main's stale Canvas, Codex, and bundled startup test contracts. I did not rerun tests locally because this read-only review relied on source inspection and the PR's linked Testbox evidence.

Review metrics: none identified.

Merge readiness
Overall: 🐚 platinum hermit
Proof: 🐚 platinum hermit ✨ media proof bonus
Patch quality: 🐚 platinum hermit
Result: ready for maintainer review.

Overall follows the weaker of proof and patch quality, so missing proof can cap an otherwise strong patch.

Rank-up moves:

  • [P2] Land through the repo-native maintainer exact-head validation path if the release owner accepts the repair.

Risk before merge

  • [P1] The remaining risk is workflow ownership: the PR carries the protected maintainer label and repairs release-validation contracts, so it should land only through the normal maintainer exact-head validation path.

Maintainer options:

  1. Decide the mitigation before merge
    Land the focused test-contract sync through the maintainer prepare/merge path after exact-head validation; no runtime, docs, config, or changelog change is needed.
  2. Pause or close
    Do not merge this PR until maintainers decide whether the risk is worth taking.

Next step before merge

  • [P2] Protected maintainer label and release-validation ownership make this a human landing decision, not a ClawSweeper repair job.

Maintainer decision needed

  • Question: Should the release owner land this test-only plugin contract sync after exact-head CI/Testbox validation?
  • Rationale: The patch is small and source-backed, but the protected maintainer label and release-validation context require human release ownership before landing.
  • Likely owner: steipete — He owns the related merged widget/capability change and authored the release-contract repair branch.
  • Options:
    • Land After Exact-Head Validation (recommended): Keep the patch as-is and land it once the normal maintainer validation path is green for the current head.
    • Hold For Release-Lane Rerun: Leave the PR open until Plugin Prerelease is rerun if release owners want direct release-lane proof before merge.
    • Close If Superseded: Close only if a newer merged change updates these same contracts or removes the need for this baseline sync.

Security
Cleared: The diff only changes tests and does not add dependencies, workflow permissions, package metadata, secrets handling, or runtime code execution surface.

Review details

Best possible solution:

Land the focused test-contract sync through the maintainer prepare/merge path after exact-head validation; no runtime, docs, config, or changelog change is needed.

Do we have a high-confidence way to reproduce the issue?

Yes, source-reproducible: linked release-validation failures match current main's stale Canvas, Codex, and bundled startup test contracts. I did not rerun tests locally because this read-only review relied on source inspection and the PR's linked Testbox evidence.

Is this the best way to solve the issue?

Yes. This is the narrow maintainable fix because it syncs stale tests to already-merged runtime and manifest contracts instead of changing correct runtime behavior or masking the Codex timeout with a larger timeout.

AGENTS.md: found and applied where relevant.

Codex review notes: model internal, reasoning high; reviewed against 053567908316.

Label changes

Label justifications:

  • P2: This is a bounded release-validation test repair with no runtime user behavior change and no evidence of a live user-facing outage.
  • rating: 🐚 platinum hermit: Overall readiness is 🐚 platinum hermit; proof is 🐚 platinum hermit and patch quality is 🐚 platinum hermit.
  • status: 👀 ready for maintainer look: ClawSweeper has no concrete contributor-facing blocker left for this PR. Sufficient (linked_artifact): The PR body links failing release-validation jobs and includes a Testbox focused-run summary for the changed tests plus formatting, which is sufficient real validation proof for this test-only repair.
  • proof: sufficient: Contributor real behavior proof is sufficient. The PR body links failing release-validation jobs and includes a Testbox focused-run summary for the changed tests plus formatting, which is sufficient real validation proof for this test-only repair.
Evidence reviewed

PR surface:

Tests +42. Total +42 across 3 files.

View PR surface stats
Area Files Added Removed Net
Source 0 0 0 0
Tests 3 53 11 +42
Docs 0 0 0 0
Config 0 0 0 0
Generated 0 0 0 0
Other 0 0 0 0
Total 3 53 11 +42

What I checked:

Likely related people:

  • steipete: He authored and merged the related widget/capability PR that introduced the runtime contracts this PR syncs, and authored the current focused test repair branch. (role: feature owner and release-contract follow-up owner; confidence: high; commits: 3ccf2a07393e, 46cf696eae15, b4748338df3c; files: extensions/canvas/index.ts, extensions/canvas/src/tool-schema.ts, extensions/canvas/index.test.ts)
  • vincentkoc: Recent release-stabilization history touched all three central test files, making him a plausible adjacent owner for release-validation contract fallout. (role: recent release-validation test contributor; confidence: medium; commits: e085fa1a3ffd; files: extensions/canvas/index.test.ts, extensions/codex/src/app-server/dynamic-tool-build.test.ts, src/plugins/bundled-plugin-metadata.test.ts)
What the crustacean ranks mean
  • 🦀 challenger crab: rare, exceptional readiness with strong proof, clean implementation, and convincing validation.
  • 🦞 diamond lobster: very strong readiness with only minor maintainer review expected.
  • 🐚 platinum hermit: good normal PR, likely mergeable with ordinary maintainer review.
  • 🦐 gold shrimp: useful signal, but proof or patch confidence is still limited.
  • 🦪 silver shellfish: thin signal; proof, validation, or implementation needs work.
  • 🧂 unranked krab: not merge-ready because proof is missing/unusable or there are serious correctness or safety concerns.
  • 🌊 off-meta tidepool: rating does not apply to this item.

Shiny media proof means a screenshot, video, or linked artifact directly shows the changed behavior. Runtime, network, CSP, and security claims still need visible diagnostics.

How this review workflow works
  • ClawSweeper keeps one durable marker-backed review comment per issue or PR.
  • Re-runs edit this comment so the latest verdict, findings, and automation markers stay together instead of adding duplicate bot comments.
  • A fresh review can be triggered by eligible @clawsweeper re-review comments, exact-item GitHub events, scheduled/background review runs, or manual workflow dispatch.
  • PR/issue authors and users with repository write access can comment @clawsweeper re-review or @clawsweeper re-run on an open PR or issue to request a fresh review only.
  • Maintainers can also comment @clawsweeper review to request a fresh review only.
  • Fresh-review commands do not start repair, autofix, rebase, CI repair, or automerge.
  • Maintainer-only repair and merge flows require explicit commands such as @clawsweeper autofix, @clawsweeper automerge, @clawsweeper fix ci, or @clawsweeper address review.
  • Maintainers can comment @clawsweeper explain to ask for more context, or @clawsweeper stop to stop active automation.
Review history (1 earlier review cycle)
  • reviewed 2026-07-09T12:17:28.490Z sha b474833 :: needs maintainer review before merge. :: none

@clawsweeper clawsweeper Bot added proof: sufficient ClawSweeper judged the real behavior proof convincing. rating: 🐚 platinum hermit Good normal PR readiness with ordinary maintainer review expected. status: 👀 ready for maintainer look ClawSweeper has no concrete contributor-facing blocker left for this PR. P2 Normal backlog priority with limited blast radius. labels Jul 9, 2026
@steipete

steipete commented Jul 9, 2026

Copy link
Copy Markdown
Contributor Author

Land-ready verification complete at b4748338df3c821e924906711fa48230f471bc91.

  • Testbox tbx_01kx3ckertkz7npw090hp9naem: 89/89 focused tests passed; the Codex file completed in 1.538s. The unisolated reproduction took 112.8s, confirming the existing runtime-plan fixture is the correct fix rather than timeout inflation.
  • Exact-selected-ref Plugin Prerelease 29017453410: success, including all ten Docker shards and bundled plugin install/uninstall 1–23.
  • Standard PR CI 29017365919: success.
  • Fresh autoreview: no findings, 0.99 correctness confidence. Exact three-file oxfmt and git diff --check passed.
  • Repo-native OPENCLAW_TESTBOX=1 scripts/pr prepare-run 102777: hosted exact-head gates passed; prepare head and PR head match.

Codex contract checked directly at upstream dc23c7bcc8fd543fe727c7b4447a3d785836932f: thread.rs:127-133 keeps dynamic_tools optional, and thread_processor.rs:1196-1232 validates and forwards the supplied tools. No known proof gaps remain.

@steipete
steipete merged commit 124119a into main Jul 9, 2026
141 of 146 checks passed
@steipete
steipete deleted the codex/release-plugin-contract-tests branch July 9, 2026 12:57
@steipete

steipete commented Jul 9, 2026

Copy link
Copy Markdown
Contributor Author

Merged via squash.

github-actions Bot pushed a commit to Desicool/openclaw that referenced this pull request Jul 10, 2026
* test(plugins): sync release contracts

* test(codex): isolate dynamic tool capability test
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

extensions: codex maintainer Maintainer-authored PR P2 Normal backlog priority with limited blast radius. proof: sufficient ClawSweeper judged the real behavior proof convincing. rating: 🐚 platinum hermit Good normal PR readiness with ordinary maintainer review expected. size: S status: 👀 ready for maintainer look ClawSweeper has no concrete contributor-facing blocker left for this PR.

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant