test(ci): repair plugin prerelease contracts#105272
Conversation
831e1f6 to
ecb99e1
Compare
There was a problem hiding this comment.
💡 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".
| params.userTurnTranscriptRecorder = { | ||
| message, | ||
| resolveMessage: async () => message, | ||
| markRuntimePersisted() {}, | ||
| } as EmbeddedRunAttemptParams["userTurnTranscriptRecorder"]; |
There was a problem hiding this comment.
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 👍 / 👎.
|
Land-ready proof for
Known proof gaps: none for this test/internal-maintainer-guidance change. |
|
Merged via squash.
|
* test(ci): repair plugin prerelease contracts * docs(agents): clarify stale Testbox recovery * docs(agents): require Bash for Testbox compounds
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
registerSessionCatalogno-op and structurally check the complete test API shape so future SDK additions fail typecheck instead of failing plugin tests at runtime.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
tbx_01kxatrb6e1md5d0frhazrr5gy: focused Codex tests, 197 passed.pnpm check:changed, including format, SDK baselines, typechecks, lint, and guards.