Files
openclaw/.github/codex/prompts/mantis-recipes/busy-queue-scripted-provider.md
Ayaan Zaidi 10e0e690df feat(mantis): programmable proof boundaries with recipe library (#127782)
Makes the Mantis Telegram Desktop proof agent programmable at its trust boundaries: declarative Bot API fault rules (drop/status per method), per-request scripted mock-provider responses, observe-until predicates (post-cursor events/text, cumulative provider count), and bounded proxy-side recording of outbound Bot API requests as trusted lane facts. Adds a reusable recipe library under .github/codex/prompts/mantis-recipes/ and raises the proof agent's reasoning effort to high.

Security: the SUT container shadows proxy-control with an inaccessible tmpfs so candidate PR code sharing the mantis-sut uid cannot read or rewrite the proxy's recorded evidence; unmount is blocked by cap-drop/no-new-privileges. Proof doctrine now treats proxy-recorded Bot API facts as trusted comparison evidence and provider request logs as diagnostics.

Follow-up named in PR: move the mock OpenAI server out of the SUT container so provider request facts also become candidate-tamper-proof.
2026-08-22 11:06:06 +05:30

1.2 KiB

Busy queue with scripted provider responses

Use when two turns overlap and response order or queue draining is under test.

Write provider-script.json:

{
  "responses": [
    { "text": "slow first response", "chunkDelayMs": 5000 },
    { "text": "distinct second response" }
  ]
}

Then run each lane without changing provider controls mid-flight:

sha="$(sha256sum "$MANTIS_OUTPUT_DIR/provider-script.json" | cut -d ' ' -f1)"
lane="$OPENCLAW_TELEGRAM_MANTIS_LANE_CMD"
$lane start --lane baseline --repo-root "$MANTIS_BASELINE_ROOT" --config "$config"
$lane mock --lane baseline --script "$MANTIS_OUTPUT_DIR/provider-script.json" "$sha"
$lane send --lane baseline --text '@{sut} turn one'
$lane send --lane baseline --text '@{sut} turn two'
$lane observe --lane baseline --seconds 60 --until-text 'distinct second response' --until-provider-requests 2
$lane requests --lane baseline
$lane finish --lane baseline

Repeat for candidate. Proof facts: session events and recorded Bot API messages show the slow first and distinct second outcomes without a control-file race. The provider request log (scriptEntry 0 then 1, turn order in bodies) is diagnostic context, not the comparison evidence.