Skip to content

test(ci): repair plugin prerelease contracts#105272

Merged
steipete merged 3 commits into
mainfrom
codex/plugin-shard1-test-contracts
Jul 12, 2026
Merged

test(ci): repair plugin prerelease contracts#105272
steipete merged 3 commits into
mainfrom
codex/plugin-shard1-test-contracts

Conversation

@steipete

Copy link
Copy Markdown
Contributor

What Problem This Solves

Plugin Prerelease shard 1 failed deterministically on current main with 21 Codex extension test failures. The test SDK helper omitted the new session-catalog registration method, shared prompt assertions lagged the compressed contract, and three context-engine lifecycle cases still used pre-SQLite transcript fixtures.

Why This Change Was Made

  • Add the missing registerSessionCatalog no-op and structurally check the complete test API shape so future SDK additions fail typecheck instead of failing plugin tests at runtime.
  • Align Codex prompt assertions with the canonical compressed shared guidance.
  • Exercise lifecycle finalization with SQLite markers, runtime session identity, and a user-turn recorder while preserving the user/assistant and ingestion assertions.
  • Record the Testbox checkout-ownership and sparse-worktree commit invocation rules.

User Impact

No production behavior change. Plugin prerelease validation becomes deterministic and the Codex lifecycle tests continue to cover the current SQLite runtime contract.

Evidence

@steipete
steipete force-pushed the codex/plugin-shard1-test-contracts branch from 831e1f6 to ecb99e1 Compare July 12, 2026 10:05

@chatgpt-codex-connector chatgpt-codex-connector Bot left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

💡 Codex Review

Here are some automated review suggestions for this pull request.

Reviewed commit: ecb99e1bc6

ℹ️ About Codex in GitHub

Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you

  • Open a pull request for review
  • Mark a draft as ready
  • Comment "@codex review".

If Codex has suggestions, it will comment; otherwise it will react with 👍.

Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".

Comment on lines +107 to +111
params.userTurnTranscriptRecorder = {
message,
resolveMessage: async () => message,
markRuntimePersisted() {},
} as EmbeddedRunAttemptParams["userTurnTranscriptRecorder"];

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

P2 Badge Stub the recorder persistence hooks

In the SQLite cases that use createSqliteParams, this cast hides that the recorder is missing required UserTurnTranscriptRecorder methods, especially markRuntimePersistencePending. mirrorPromptAtTurnStartBestEffort calls that method as soon as the turn starts, so these tests now take the caught "prompt mirror failed" path and leave the SQLite prompt mirror detached instead of exercising the normal pending-persistence path; add at least a no-op markRuntimePersistencePending (or a complete recorder stub) rather than asserting this partial object as the full type.

Useful? React with 👍 / 👎.

@steipete

Copy link
Copy Markdown
Contributor Author

Land-ready proof for ecb99e1bc60a927771f034ff02d7bac99a3225f0:

  • Exact-head CI: https://github.com/openclaw/openclaw/actions/runs/29188565174 — 50 successful jobs, no failures.
  • Exact failed Plugin Prerelease shard command on Testbox tbx_01kxatrb6e1md5d0frhazrr5gy: all 257 files passed; Codex 105 files / 2421 tests.
  • Post-rebase NUIA extension typecheck plus focused Codex set on Testbox tbx_01kxawcg6xt3keanapzj1qk7b6: 197 tests passed.
  • pnpm check:changed passed, including format, generated SDK surfaces, typechecks, lint, and guards.
  • Fresh autoreview: no accepted/actionable findings.
  • OPENCLAW_TESTBOX=1 scripts/pr prepare-run 105272: passed.

Known proof gaps: none for this test/internal-maintainer-guidance change.

@steipete
steipete merged commit 0350b87 into main Jul 12, 2026
107 checks passed
@steipete
steipete deleted the codex/plugin-shard1-test-contracts branch July 12, 2026 10:13
@steipete

Copy link
Copy Markdown
Contributor Author

Merged via squash.

github-actions Bot pushed a commit to Desicool/openclaw that referenced this pull request Jul 13, 2026
* test(ci): repair plugin prerelease contracts

* docs(agents): clarify stale Testbox recovery

* docs(agents): require Bash for Testbox compounds
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant