Depolama modeli
Mantis üç depolama katmanı kullanır:- Sağlayıcı imajı - Crabbox’a aittir ve bulut sağlayıcısı hesabında depolanır. Makine yeteneklerini (Chrome/Chromium, ffmpeg, scrot, Node/corepack/pnpm, yerel derleme araçları) ve boş önbellek dizinlerini içerir.
- Sıcak kiralama durumu - mevcut operatör oturumuna aittir. Kiralama etkin olduğu sürece
oturum açılmış bir tarayıcı profili,
/var/cache/crabbox/pnpmve hazırlanmış bir kaynak çalışma kopyası içerebilir. - Mantis yapıtları - OpenClaw çalıştırmasına aittir.
.artifacts/qa-e2e/mantis/...altında bulunur; GitHub Actions bunları yükler ve Mantis GitHub App, PR üzerinde satır içi kanıt yorumu yapar.
node_modules veya dist/ değerlerini asla bir sağlayıcı imajına yerleştirmeyin.
GitHub tetikleme
İş akışınımain üzerinden çalıştırın:
candidate_ref kısıtlanmıştır: geçerli main üst soyuna, bir sürüm etiketine veya
openclaw/openclaw içindeki açık bir PR başına çözümlenmelidir.
İş akışı şunları üretir:
- yüklenen yapıt
mantis-slack-desktop-smoke-<run-id>-<attempt> - Mantis GitHub App tarafından oluşturulan satır içi PR yorumu
slack-desktop-smoke.png,slack-desktop-smoke.mp4slack-desktop-smoke-preview.gif,slack-desktop-smoke-change.mp4mantis-slack-desktop-smoke-summary.json,mantis-slack-desktop-smoke-report.md- uzak günlükler:
slack-desktop-command.log,openclaw-gateway.log,chrome.log,ffmpeg.log
<!-- mantis-slack-desktop-smoke --> işaretçisi aracılığıyla yerinde güncellenir.
Yerel CLI
Soğuk kaynak kanıtı:--hydrate-mode prehydrated seçeneğini yalnızca yeniden kullanılan uzak çalışma alanında zaten
node_modules ve derlenmiş bir dist/ bulunduğunda kullanın; aksi takdirde Mantis güvenli biçimde başarısız olur.
Yerel Slack onay kullanıcı arayüzünü kanıtlayın:
--approval-checkpoints ile --gateway-setup birbirini dışlar. Açık bir onay kontrol noktası --scenario iletmediğiniz sürece
isteğe bağlı slack-approval-exec-native ve slack-approval-plugin-native
senaryolarını çalıştırır; diğer Slack senaryoları VM başlamadan önce reddedilir. Slack QA çalıştırıcısı,
gözlemlediği gerçek Slack API mesajından her kontrol noktası JSON dosyasını yazar; ardından
uzak izleyici bu mesajı
approval-checkpoints/<scenario>-pending.png ve
approval-checkpoints/<scenario>-resolved.png içine işler. Herhangi bir
kontrol noktası JSON’u, mesaj kanıtı, onay JSON’u veya işlenmiş ekran görüntüsü eksik
ya da boşsa çalıştırma başarısız olur.
Soğuk GitHub Actions kiralamalarında Slack Web çerezleri bulunmaz; bu nedenle tarayıcı yakalamaları
Slack oturum açma ekranına ulaşabilir. Onay kontrol noktası kanıtı için
slack-desktop-smoke.png yerine işlenmiş kontrol noktası görüntülerine ve Slack QA yapıtlarına güvenin. Yalnızca tarayıcı ekran görüntüsünün
Slack Web’i göstermesi gerektiğinde, Slack Web’de elle oturum açılmış bir profile sahip ve korunan sıcak bir kiralama kullanın.
Hazırlama modları
GitHub Actions, VM çalıştırmasından önce her zaman aday çalışma kopyasını hazırlar.
pnpm deposu; işletim sistemi, Node sürümü ve kilit dosyasına göre önbelleğe alınır. VM’deki
source çalıştırması da
mevcut olduğunda /var/cache/crabbox/pnpm değerini yeniden kullanır.
Zamanlama yorumu
mantis-slack-desktop-smoke-report.md aşama zamanlamalarını içerir:
crabbox.warmup- bulut sağlayıcısının önyüklenmesi, masaüstü/tarayıcı hazırlığı, SSH.crabbox.inspect- kiralama meta verisi araması.credentials.prepare- Convex kimlik bilgisi kiralamasının alınması.crabbox.remote_run- eşitleme, tarayıcının başlatılması, OpenClaw kurulumu/derlemesi veya hazırlama doğrulaması, gateway başlatma, ekran görüntüsü ve video yakalama.artifacts.copy- VM’den geri rsync aktarımı.
crabbox.remote_run içinde accepted gösterilebilir.
accepted değerini başarısız bir senaryo olarak değil, açıklamalı başarı olarak değerlendirin.
Bir çalıştırma yavaşsa:
- Isınma baskınsa: daha iyi bir Crabbox sağlayıcı imajını önceden oluşturun veya terfi ettirin.
sourceiçinderemote_runbaskınsa: sıcak bir kiralama kullanın, pnpm deposunun yeniden kullanımını iyileştirin veya makine ön koşullarını sağlayıcı imajına taşıyın.prehydratediçinderemote_runbaskınsa: uzak çalışma alanı gerçekte hazır değildir veya gateway/tarayıcı/Slack kurulumu yavaştır.- Yapıt kopyalama baskınsa: video boyutunu ve yapıt dizininin içeriğini inceleyin.
Kanıt kontrol listesi
İyi bir PR yorumu şunları gösterir:- senaryo kimliği ve aday SHA
- GitHub Actions çalıştırma URL’si ve yapıt URL’si
- satır içi onay kontrol noktası ekran görüntüsü veya oturum açılmış sıcak bir kiralamadan alınan Slack Web ekran görüntüsü
- mevcut olduğunda satır içi animasyonlu önizleme
- tam MP4 ve kırpılmış MP4 bağlantıları
- başarı/başarısızlık durumu ve raporun zamanlama özeti
Hata yönetimi
İş akışı VM çalıştırmasından önce başarısız olursa önce Actions işini inceleyin. Tipik nedenler: güvenilmeyencandidate_ref, eksik ortam gizli bilgileri veya
aday kurulum/derleme hatası.
VM çalıştırması başarısız olur ancak ekran görüntüleri geri kopyalanırsa şunları inceleyin:
crabbox vnc ...
komutuyla VNC’yi açın, ardından işiniz bittiğinde kiralamayı durdurun:
--lease-id ile yeniden çalıştırın. Bu tarayıcı profilini bir sağlayıcı imajına yerleştirmeyin.