improve(qa): execute runtime scenarios through Docker#99705
Conversation
|
Codex review: needs maintainer review before merge. Reviewed July 3, 2026, 9:07 PM ET / 01:07 UTC. Summary PR surface: Tests +37, Other +33. Total +70 across 8 files. Reproducibility: not applicable. as a user-facing bug reproduction; this is a QA automation PR. Source inspection confirms current main uses Vitest execution for representative scenarios, the PR-head maps them to Docker script lanes, and exact-head CI reproduces the separate QA Smoke orchestration failure tracked in #99734. Review metrics: 1 noteworthy metric.
Merge readiness Overall follows the weaker of proof and patch quality, so missing proof can cap an otherwise strong patch. Rank-up moves:
Risk before merge
Maintainer options:
Next step before merge
Security Review detailsBest possible solution: Land this PR after the QA Smoke orchestration race is fixed or consciously accepted, keeping the scenario mappings on the existing script runner and Docker lane registry rather than adding a parallel QA path. Do we have a high-confidence way to reproduce the issue? Not applicable as a user-facing bug reproduction; this is a QA automation PR. Source inspection confirms current main uses Vitest execution for representative scenarios, the PR-head maps them to Docker script lanes, and exact-head CI reproduces the separate QA Smoke orchestration failure tracked in #99734. Is this the best way to solve the issue? Yes, the PR uses the existing script scenario runner and shared Docker lane registry, which is the narrow maintainable shape for this coverage gap. The safer merge path is to fix or explicitly accept the separate QA Smoke scheduler race rather than changing these lane mappings back to helper tests. AGENTS.md: found and applied where relevant. Codex review notes: model internal, reasoning high; reviewed against 1f499b01c425. Label changesLabel changes:
Label justifications:
Evidence reviewedPR surface: Tests +37, Other +33. Total +70 across 8 files. View PR surface stats
What I checked:
Likely related people:
What the crustacean ranks mean
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
|
4aefa4d to
37783c3
Compare
* test(qa): run Docker runtime scenarios end to end * test(qa): keep plugin lifecycle probe runtime-only
What Problem This Solves
Resolves a QA coverage gap where six runtime and plugin scenarios reported helper-level Vitest proof instead of exercising their existing Docker runtime topology and product-facing APIs.
Why This Change Was Made
Routes the six scenario definitions through the shared Docker E2E lane adapter, preserving the existing lane implementations and focused helper tests. The native web-search assertion scenario intentionally shares the same runtime lane as the minimal web-search scenario because that lane emits and validates both the successful native Responses request and the minimal-reasoning rejection evidence.
The plugin lifecycle runtime probe also keeps its temporary-directory cleanup local so the package-installed bare Docker image does not need the Vitest-only test helper dependency.
User Impact
No product behavior changes. Maintainers now receive real container/runtime evidence for OpenAI-compatible chat tools, OpenAI native web search, OpenWebUI compatibility, plugin lifecycle operations, and packaged bundled-plugin install/uninstall coverage when these QA scenarios run.
Evidence
28688381529passed at37783c3502e427b47a24370af24fb4c50ef0c625:openai-chat-toolsopenai-web-search-minimal(covers both minimal and native-request assertion scenarios)openwebuiplugin-lifecycle-matrixbundled-plugin-install-uninstall(all scheduler-expanded shards)docker-e2e-packagefrom run28568249540because currentmainand the initial exact-head run both fail package preparation at the same pre-existingwrite-plugin-sdk-entry-dtsbuild step. The source run's package preparation job succeeded; this PR changes no package contents or Docker lane implementations.node scripts/run-vitest.mjs test/e2e/qa-lab/plugins/plugin-lifecycle-probe.e2e.test.ts extensions/qa-lab/src/scenario-catalog.test.ts test/e2e/qa-lab/runtime/docker-e2e-lane.fixture.test.ts --reporter=verbose— 47 tests passed after the final rebase.oxfmt --checkandgit diff --checkpassed.tbx_01kwn62778hx14fh400ahcjq78(Actions run28688249628).Known CI gap: exact-head CI run
28688380283failedQA Smoke CIbecause Docker script scenarios and QA flow partitions concurrently mutate/read the shareddist/build. The single failed-job rerun reproduced the race (dist/index.jsmissing, then a generated chunk missing). CurrentmainQA Smoke passes without these newly script-backed scenarios. This shared QA-runner orchestration fix is intentionally not mixed into this PR and has been requested as a separate micro-fix.