Files
openclaw/.github/codex/prompts/mantis-recipes/callback-data-payload-proof.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.0 KiB

Callback data payload proof

Use when a button looks identical but its callback bytes or follow-up Bot API payload changed.

lane="$OPENCLAW_TELEGRAM_MANTIS_LANE_CMD"
$lane start --lane baseline --repo-root "$MANTIS_BASELINE_ROOT" --config "$config"
$lane turn --lane baseline --text '@{sut} show the callback button' --observe-seconds 30
$lane press --lane baseline --message-id "$bot_message_id" --button 0
$lane observe --lane baseline --seconds 60 --until-events "$expected_event_count"
$lane botapi-requests --lane baseline --method answerCallbackQuery --limit 20
$lane botapi-requests --lane baseline --method editMessageText --limit 20
$lane finish --lane baseline --focus-message-id "$bot_message_id"

Repeat for candidate, using each lane's returned bot message id. Proof facts: compare parsed requestBody values for answerCallbackQuery and editMessageText, including exact callback-related strings and whitespace. Screenshots establish identical visible context; a material recorded payload-byte difference is the comparison evidence.