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:
Ayaan Zaidi
2026-08-22 15:58:12 +05:30
committed by GitHub
parent 2d0fff4ac5
commit da0cb592dd
9 changed files with 797 additions and 253 deletions
@@ -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