Skip to main content

Documentation Index

Fetch the complete documentation index at: https://docs2.openclaw.ai/llms.txt

Use this file to discover all available pages before exploring further.

Mantis Slack desktop QA è il percorso con UI reale per i bug di classe Slack che richiedono un desktop Linux, recupero VNC, Slack Web, un vero Gateway OpenClaw, screenshot, video e un commento di evidenza sulla PR. Usalo quando i test unitari o il percorso live Slack headless non possono dimostrare il bug.

Modello di archiviazione

Mantis usa tre diversi livelli di archiviazione:
  • Immagine del provider: di proprietà di Crabbox e archiviata nell’account del provider cloud. Contiene capacità della macchina come Chrome/Chromium, ffmpeg, scrot, Node/corepack/pnpm, strumenti di build nativi e directory di cache vuote.
  • Stato del lease caldo: di proprietà della sessione operatore corrente. Può contenere un profilo browser autenticato, /var/cache/crabbox/pnpm e un checkout del sorgente preparato mentre il lease è attivo.
  • Artefatti Mantis: di proprietà dell’esecuzione OpenClaw. Si trovano sotto .artifacts/qa-e2e/mantis/..., poi GitHub Actions li carica e la Mantis GitHub App commenta le evidenze inline sulla PR.
Non inserire mai segreti, cookie del browser, stato di login Slack, checkout del repository, node_modules o dist/ in un’immagine provider precotta.

Dispatch GitHub

Esegui il workflow da main:
gh workflow run mantis-slack-desktop-smoke.yml \
  --ref main \
  -f candidate_ref=<trusted-ref-or-sha> \
  -f pr_number=<pr-number> \
  -f scenario_id=slack-canary \
  -f crabbox_provider=aws \
  -f keep_vm=false \
  -f hydrate_mode=source
I valori candidate_ref consentiti sono intenzionalmente limitati perché il workflow usa credenziali live: ancestry dell’attuale main, tag di release o head di una PR aperta da openclaw/openclaw. Il workflow scrive:
  • artefatto caricato: mantis-slack-desktop-smoke-<run-id>-<attempt>;
  • commento inline sulla PR dalla Mantis GitHub App;
  • slack-desktop-smoke.png;
  • slack-desktop-smoke.mp4;
  • slack-desktop-smoke-preview.gif;
  • slack-desktop-smoke-change.mp4;
  • mantis-slack-desktop-smoke-summary.json;
  • mantis-slack-desktop-smoke-report.md;
  • log remoti come slack-desktop-command.log, openclaw-gateway.log, chrome.log e ffmpeg.log.
Il commento della PR viene aggiornato sul posto dal marker nascosto <!-- mantis-slack-desktop-smoke -->.

CLI locale

Prova sorgente a freddo:
pnpm openclaw qa mantis slack-desktop-smoke \
  --provider aws \
  --class standard \
  --gateway-setup \
  --credential-source convex \
  --credential-role maintainer \
  --provider-mode live-frontier \
  --model openai/gpt-5.4 \
  --alt-model openai/gpt-5.4 \
  --scenario slack-canary \
  --hydrate-mode source
Mantieni la VM per il recupero VNC:
pnpm openclaw qa mantis slack-desktop-smoke \
  --provider aws \
  --class standard \
  --gateway-setup \
  --scenario slack-canary \
  --keep-lease
Apri VNC:
crabbox vnc --provider aws --id <cbx_id> --open
Riutilizza un lease caldo:
pnpm openclaw qa mantis slack-desktop-smoke \
  --provider aws \
  --lease-id <cbx_id-or-slug> \
  --gateway-setup \
  --scenario slack-canary \
  --hydrate-mode source
Usa --hydrate-mode prehydrated solo quando l’area di lavoro remota riutilizzata ha già node_modules e una dist/ compilata. Mantis fallisce in modo chiuso se mancano.

Modalità di idratazione

ModalitàUsala quandoComportamento remotoCompromesso
sourceNormale prova PR, macchine a freddo, CIEsegue pnpm install --frozen-lockfile --prefer-offline e pnpm build dentro la VMPiù lenta, prova più forte del checkout sorgente
prehydratedHai preparato intenzionalmente un lease riutilizzatoRichiede node_modules e dist/ esistenti; salta install/buildVeloce, ma valida solo per lease caldi controllati dall’operatore
GitHub Actions prepara sempre il checkout candidato prima dell’esecuzione della VM. Il suo store pnpm viene memorizzato nella cache per OS, versione Node e lockfile. Anche l’esecuzione sorgente nella VM usa /var/cache/crabbox/pnpm quando presente.

Interpretazione dei tempi

mantis-slack-desktop-smoke-report.md include i tempi delle fasi:
  • crabbox.warmup: avvio del provider cloud, prontezza di desktop/browser e SSH.
  • crabbox.inspect: ricerca dei metadati del lease.
  • credentials.prepare: acquisizione del lease delle credenziali Convex.
  • crabbox.remote_run: sincronizzazione, avvio del browser, install/build OpenClaw o convalida dell’idratazione, avvio del Gateway, screenshot e acquisizione video.
  • artifacts.copy: rsync di ritorno dalla VM.
crabbox.remote_run può essere contrassegnato come accepted quando Crabbox restituisce uno stato remoto diverso da zero dopo che Mantis ha copiato metadati che dimostrano che il Gateway OpenClaw è attivo e la configurazione è stata completata. Tratta accepted come superato con spiegazione, non come scenario fallito. Se l’esecuzione è lenta:
  • domina il warmup: precuoci o promuovi un’immagine provider Crabbox migliore;
  • domina remote_run in source: usa un lease caldo, migliora il riutilizzo dello store pnpm, oppure sposta i prerequisiti della macchina nell’immagine provider;
  • domina remote_run in prehydrated: l’area di lavoro remota non era realmente pronta, oppure la configurazione di Gateway/browser/Slack è lenta;
  • domina la copia degli artefatti: ispeziona la dimensione del video e i contenuti della directory degli artefatti.

Checklist delle evidenze

Un buon commento sulla PR dovrebbe mostrare:
  • ID scenario e SHA candidato;
  • URL dell’esecuzione GitHub Actions;
  • URL dell’artefatto;
  • screenshot inline;
  • anteprima animata inline quando disponibile;
  • link al MP4 completo e al MP4 tagliato;
  • stato pass/fail;
  • riepilogo dei tempi nel report allegato.
Non committare screenshot o video nel repository. Tienili negli artefatti di GitHub Actions o nel commento della PR.

Gestione degli errori

Se il workflow fallisce prima dell’esecuzione della VM, ispeziona prima il job Actions. Le cause tipiche sono candidate_ref non attendibile, segreti dell’ambiente mancanti o errore di install/build del candidato. Se l’esecuzione della VM fallisce ma gli screenshot sono stati copiati indietro, ispeziona:
cat mantis-slack-desktop-smoke-report.md
cat mantis-slack-desktop-smoke-summary.json
cat slack-desktop-command.log
cat openclaw-gateway.log
cat chrome.log
cat ffmpeg.log
Se l’esecuzione ha mantenuto il lease, apri VNC con il comando crabbox vnc ... del report. Ferma il lease quando hai finito:
crabbox stop --provider aws <cbx_id-or-slug>
Se il login Slack è scaduto, riparalo in VNC su un lease mantenuto e riesegui con --lease-id. Non incorporare quel profilo browser in un’immagine provider.

Correlati