test(qa): QA smoke profile fixes and performance improvements#96340
Conversation
|
Codex review: needs maintainer review before merge. Reviewed June 24, 2026, 4:57 AM ET / 08:57 UTC. Summary PR surface: Source +9, Tests +196, Other -41. Total +164 across 10 files. Reproducibility: Source-reproducible, not locally rerun: current main appends all flow partitions before native test-file tasks, and smoke-ci defaults to mock-openai while provider-mode filtering depends on scenario metadata. The PR body supplies the runtime timing evidence for the walltime improvement. Review metrics: 1 noteworthy metric.
Stored data model 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: A faster smoke profile that uses existing provider-mode gating and direct MCP bridge proof, with heavier end-to-end MCP or memory coverage left to non-smoke lanes if maintainers want that depth. Do we have a high-confidence way to reproduce the issue? Source-reproducible, not locally rerun: current main appends all flow partitions before native test-file tasks, and smoke-ci defaults to mock-openai while provider-mode filtering depends on scenario metadata. The PR body supplies the runtime timing evidence for the walltime improvement. Is this the best way to solve the issue? Yes, with a maintainer-owned coverage tradeoff: using existing provider-mode metadata and task ordering is the narrowest maintainable fix. The only safer alternative is to keep the heavier MCP gateway-memory flow in a non-smoke lane if maintainers want that coverage depth. AGENTS.md: found and applied where relevant. Codex review notes: model internal, reasoning high; reviewed against f65aca64fc37. Label changesLabel changes:
Label justifications:
Evidence reviewedPR surface: Source +9, Tests +196, Other -41. Total +164 across 10 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
|
What Problem This Solves
The QA smoke CI profile was exceeding the intended walltime after adding the full smoke profile shard. The slowest cases were not basic smoke coverage: two live Claude CLI provider checks were running in the mock profile, one MCP check booted a full gateway/memory flow for a direct MCP contract, and native test-file proof waited behind isolated flow work.
Why This Change Was Made
live-frontieronly so mocksmoke-ciexcludes them through the existing taxonomy/profile filtering path.mcp-plugin-tools-callfrom a full QA flow to a direct Vitest proof using the real MCP SDK client and in-memory transport againstcreatePluginToolsMcpServer.memory_searchresults, and removes the smoke scenario's over-specificmemory_getassertion frommemory-tools-channel-context.User Impact
The smoke CI profile keeps the same broad smoke coverage intent while avoiding live-provider checks and heavyweight flow setup that do not belong in mock smoke. Local full-profile smoke now finishes in about 3 minutes on this checkout instead of the prior CI run's 8m42s failure tail.
Evidence
node scripts/run-vitest.mjs extensions/qa-lab/src/providers/mock-openai/server.test.ts extensions/qa-lab/src/suite-launch.runtime.test.ts extensions/qa-lab/src/cli.runtime.test.ts src/mcp/plugin-tools-mcp-client.test.ts-> 1 unit test file and 3 extension QA test files passed; 206 tests total.node scripts/run-vitest.mjs extensions/qa-lab/src/scenario-catalog.test.ts extensions/qa-lab/src/test-file-scenario-runner.test.ts extensions/qa-lab/src/coverage-report.test.ts-> 3 extension QA test files passed; 58 tests total../node_modules/.bin/oxfmt --check --threads=1 extensions/qa-lab/src/cli.runtime.test.ts extensions/qa-lab/src/providers/mock-openai/server.test.ts extensions/qa-lab/src/providers/mock-openai/server.ts extensions/qa-lab/src/suite-launch.runtime.test.ts extensions/qa-lab/src/suite-launch.runtime.ts src/mcp/plugin-tools-mcp-client.test.ts-> clean.node scripts/run-oxlint.mjs extensions/qa-lab/src/cli.runtime.test.ts extensions/qa-lab/src/providers/mock-openai/server.test.ts extensions/qa-lab/src/providers/mock-openai/server.ts extensions/qa-lab/src/suite-launch.runtime.test.ts extensions/qa-lab/src/suite-launch.runtime.ts src/mcp/plugin-tools-mcp-client.test.ts-> clean.git diff --check-> clean..agents/skills/autoreview/scripts/autoreview --mode local ...-> clean; no accepted/actionable findings.OPENCLAW_QA_SUITE_PROGRESS=1 OPENCLAW_BUILD_PRIVATE_QA=1 OPENCLAW_ENABLE_PRIVATE_QA_CLI=1 OPENCLAW_DISABLE_BUNDLED_PLUGINS=0 OPENCLAW_QA_REDACT_PUBLIC_METADATA=1 OPENCLAW_QA_TRANSPORT_READY_TIMEOUT_MS=180000 NODE_OPTIONS=--max-old-space-size=8192 node scripts/run-node.mjs qa run --repo-root . --qa-profile smoke-ci --concurrency 8 --output-dir .artifacts/qa-e2e/smoke-ci-speed-full-4-> 78/78 passed; shell walltime2:51.97, QA summary window2:42.694.