@@ -17,7 +17,7 @@ scenario:
|
17 | 17 | successCriteria: |
18 | 18 | - The npm Kitchen Sink package installs, enables, and inspects as loaded. |
19 | 19 | - Kitchen Sink command inventory, MCP tool, and channel status work after gateway restart. |
20 | | - - A live OpenAI turn still completes while the Kitchen Sink plugin is installed. |
| 20 | + - A live OpenAI turn either completes or surfaces the Kitchen Sink plugin's before-agent-run block without hanging. |
21 | 21 | - Gateway logs and process metrics are captured and stay under broad anomaly thresholds. |
22 | 22 | docsRefs: |
23 | 23 | - docs/concepts/qa-e2e-automation.md |
@@ -29,7 +29,7 @@ scenario:
|
29 | 29 | - scripts/e2e/kitchen-sink-plugin-docker.sh |
30 | 30 | execution: |
31 | 31 | kind: flow |
32 | | -summary: Install @openclaw/kitchen-sink, restart the gateway, exercise command inventory/tool/channel/OpenAI paths, and record CPU/RSS/log evidence. |
| 32 | +summary: Install @openclaw/kitchen-sink, restart the gateway, exercise command inventory/tool/channel/OpenAI-or-block paths, and record CPU/RSS/log evidence. |
33 | 33 | config: |
34 | 34 | requiredProviderMode: live-frontier |
35 | 35 | requiredProvider: openai |
@@ -84,6 +84,7 @@ scenario:
|
84 | 84 | agentTurnTimeoutMs: 120000 |
85 | 85 | outboundTimeoutMs: 60000 |
86 | 86 | livePrompt: "Kitchen Sink OpenAI marker. Reply exactly: KITCHEN-SINK-OPENAI-OK" |
| 87 | +blockedReplyNeedle: "blocked by openclaw-kitchen-sink-fixture" |
87 | 88 | expectedAdversarialDiagnostics: |
88 | 89 | - agent event subscription registration requires id and handle |
89 | 90 | - agent tool result middleware must be a function |
@@ -388,8 +389,15 @@ flow:
|
388 | 389 | - ref: state |
389 | 390 | - lambda: |
390 | 391 | params: [candidate] |
391 | | -expr: "candidate.conversation.id === 'qa-operator' && candidate.text.includes('KITCHEN-SINK-OPENAI-OK')" |
| 392 | +expr: "candidate.conversation.id === 'qa-operator' && (candidate.text.includes('KITCHEN-SINK-OPENAI-OK') || normalizeLowercaseStringOrEmpty(candidate.text).includes(config.blockedReplyNeedle))" |
392 | 393 | - expr: liveTurnTimeoutMs(env, config.outboundTimeoutMs) |
| 394 | + - set: normalizedOpenAiReply |
| 395 | +value: |
| 396 | +expr: "normalizeLowercaseStringOrEmpty(openaiReply.text)" |
| 397 | + - assert: |
| 398 | +expr: "openaiReply.text.includes('KITCHEN-SINK-OPENAI-OK') || normalizedOpenAiReply.includes(config.blockedReplyNeedle)" |
| 399 | +message: |
| 400 | +expr: "`Kitchen Sink live turn neither completed nor surfaced the plugin block: ${openaiReply.text}`" |
393 | 401 | detailsExpr: "{ openaiReply: openaiReply.text }" |
394 | 402 | |
395 | 403 | - name: records gateway CPU RSS and log anomaly evidence |
|