mirror of
https://github.com/openclaw/openclaw.git
synced 2026-08-26 04:15:48 -06:00
perf(e2e): reuse one authorized Telegram Desktop session per Mantis run (#127835)
* refactor(mantis): reuse authorized desktop captures * fix(mantis): budget desktop authorization failures * chore(mantis): bound desktop proof retries * fix(e2e): drop unused recorder failure fact type export * fix(ci): route Mantis desktop teardown through the recorder wrapper Cleanup invoked the internal recorder executable as mantis-sut, which is deliberately kept out of the docker group and cannot read the recorder-owned session file; teardown therefore failed and blocked safe_to_release. The cleanup step already runs as the recorder user, so call the public wrapper whose exec shim cds into the session root. * fix(e2e): make recorder failure fact lane-readable; document v2 lifecycle The Mantis workflow runs the recorder as the desktop user while the lane reads the authorization-failure fact as mantis-sut; 0600 made that read fail EACCES and silently disabled the two-attempt retry budget. Write the fact 0644 — the 0770 attempt directory bounds visibility. Update the mantis doc's recorder section for the v2 session lifecycle: required --session handle with healthy-session reuse, capture-only stop, and teardown owning authorization termination and lease release.
This commit is contained in:
@@ -139,7 +139,9 @@ behavior, call `block`; do not call `finish` and describe the block only in pros
|
||||
Inspect `mantis-lane-facts.json`, every returned event/request, the inspection
|
||||
PNG, final PNG, and cropped GIF. Confirm the evaluated message is fully visible
|
||||
near the bottom and the recording covers the behavior—not only its final state.
|
||||
Iterate as needed; all attempts remain recorded.
|
||||
Iteration is allowed, but if `start` reports `desktop-unavailable`, record that
|
||||
fact and use `block`; never retry that lane. Two non-advancing repeats of the
|
||||
same failing step mean classify and stop, not retry. All attempts remain recorded.
|
||||
|
||||
If you design a novel working scenario worth reusing, optionally write
|
||||
`MANTIS_OUTPUT_DIR/recipe-suggestion.md` with its trigger, exact commands, and
|
||||
|
||||
@@ -273,7 +273,7 @@ jobs:
|
||||
needs: resolve_request
|
||||
if: needs.resolve_request.outputs.should_run == 'true' && needs.resolve_request.outputs.publish_artifact_name == ''
|
||||
runs-on: blacksmith-16vcpu-ubuntu-2404
|
||||
timeout-minutes: 360
|
||||
timeout-minutes: 120
|
||||
environment: qa-live-shared
|
||||
outputs:
|
||||
comparison_status: ${{ steps.inspect.outputs.comparison_status }}
|
||||
@@ -934,6 +934,11 @@ jobs:
|
||||
abort --lane "$lane" || result=1
|
||||
fi
|
||||
done
|
||||
# Teardown goes through the public wrapper: this step already runs as the
|
||||
# recorder user, and the internal exec shim cds into the session root where
|
||||
# the recorder-owned session file lives. mantis-sut can do neither.
|
||||
/usr/local/bin/openclaw-telegram-desktop-recorder \
|
||||
teardown --session desktop-recorder.json || result=1
|
||||
if sudo test -f "$lock"; then
|
||||
echo "Mantis harness lock remained after cleanup." >&2
|
||||
result=1
|
||||
|
||||
Reference in New Issue
Block a user