Fundamentals
Matris Kalite Güvencesi
Matrix QA hattı, paketle birlikte gelen @openclaw/matrix Plugin'ini Docker içinde tek kullanımlık bir Tuwunel homeserver üzerinde, geçici sürücü, SUT ve gözlemci hesapları ile önceden hazırlanmış odalarla çalıştırır. Matrix için canlı, gerçek taşıma kapsamıdır.
Bu yalnızca bakımcıya yönelik araçtır. Paketlenmiş OpenClaw sürümleri bilinçli olarak qa-lab içermez, bu nedenle openclaw qa yalnızca kaynak kod checkout'undan kullanılabilir. Kaynak kod checkout'ları paketle gelen runner'ı doğrudan yükler - Plugin kurulum adımı gerekmez.
Daha geniş QA framework bağlamı için QA genel bakışı sayfasına bakın.
Hızlı başlangıç
pnpm openclaw qa matrix --profile fast --fail-fast
Düz pnpm openclaw qa matrix, --profile all ile çalışır ve ilk hatada durmaz. Bir sürüm kapısı için --profile fast --fail-fast kullanın; tam envanteri paralel çalıştırırken kataloğu --profile transport|media|e2ee-smoke|e2ee-deep|e2ee-cli ile parçalara ayırın.
Hattın yaptığı işler
- Docker içinde tek kullanımlık bir Tuwunel homeserver sağlar (varsayılan imaj
ghcr.io/matrix-construct/tuwunel:v1.5.1, sunucu adımatrix-qa.test, port28008). - Üç geçici kullanıcı kaydeder -
driver(gelen trafiği gönderir),sut(test edilen OpenClaw Matrix hesabı),observer(üçüncü taraf trafik yakalama). - Seçilen senaryoların gerektirdiği odaları hazırlar (ana, iş parçacığı, medya, yeniden başlatma, ikincil, allowlist, E2EE, doğrulama DM'i vb.).
- SUT hesabıyla sınırlandırılmış gerçek Matrix Plugin'i ile bir alt OpenClaw Gateway başlatır;
qa-channelalt süreçte yüklenmez. - Senaryoları sırayla çalıştırır ve olayları sürücü/gözlemci Matrix istemcileri üzerinden gözlemler.
- Homeserver'ı kapatır, rapor ve özet artefaktlarını yazar, ardından çıkar.
CLI
pnpm openclaw qa matrix [options]
Yaygın bayraklar
| Bayrak | Varsayılan | Açıklama |
|---|---|---|
--profile <profile> |
all |
Senaryo profili. Bkz. Profiller. |
--fail-fast |
kapalı | İlk başarısız kontrolden veya senaryodan sonra dur. |
--scenario <id> |
- | Yalnızca bu senaryoyu çalıştır. Tekrarlanabilir. Bkz. Senaryolar. |
--output-dir <path> |
<repo>/.artifacts/qa-e2e/matrix-<timestamp> |
Raporların, özetin, gözlemlenen olayların ve çıktı günlüğünün yazıldığı yer. Göreli yollar --repo-root temel alınarak çözülür. |
--repo-root <path> |
process.cwd() |
Tarafsız bir çalışma dizininden çağırırken depo kökü. |
--sut-account <id> |
sut |
QA Gateway yapılandırması içindeki Matrix hesap kimliği. |
Sağlayıcı bayrakları
Hat gerçek bir Matrix taşıması kullanır, ancak model sağlayıcısı yapılandırılabilir:
| Bayrak | Varsayılan | Açıklama |
|---|---|---|
--provider-mode <mode> |
live-frontier |
Belirleyici mock gönderimi için mock-openai veya canlı frontier sağlayıcıları için live-frontier. Eski takma ad live-openai hâlâ çalışır. |
--model <ref> |
sağlayıcı varsayılanı | Birincil provider/model ref'i. |
--alt-model <ref> |
sağlayıcı varsayılanı | Senaryolar çalışmanın ortasında geçiş yaptığında kullanılan alternatif provider/model ref'i. |
--fast |
kapalı | Desteklendiği yerlerde sağlayıcı hızlı modunu etkinleştir. |
Matrix QA, --credential-source veya --credential-role kabul etmez. Hat, tek kullanımlık kullanıcıları yerel olarak sağlar; kiralanacak paylaşımlı bir kimlik bilgisi havuzu yoktur.
Profiller
Seçilen profil hangi senaryoların çalışacağını belirler.
| Profil | Kullanım amacı |
|---|---|
all (varsayılan) |
Tam katalog. Yavaş ama kapsamlı. |
fast |
Canlı taşıma sözleşmesini sınayan sürüm kapısı alt kümesi: canary, mention geçitleme, allowlist engeli, yanıt şekli, yeniden başlatma sonrası sürdürme, iş parçacığı takibi, iş parçacığı yalıtımı, tepki gözlemi ve exec onayı meta veri teslimi. |
transport |
Taşıma düzeyinde iş parçacığı, DM, oda, otomatik katılım, mention/allowlist, onay ve tepki senaryoları. |
media |
Görsel, ses, video, PDF, EPUB ek kapsamı. |
e2ee-smoke |
Asgari E2EE kapsamı - temel şifreli yanıt, iş parçacığı takibi, bootstrap başarısı. |
e2ee-deep |
Kapsamlı E2EE durum kaybı, yedekleme, anahtar ve kurtarma senaryoları. |
e2ee-cli |
QA harness üzerinden yürütülen openclaw matrix encryption setup ve verify * CLI senaryoları. |
Kesin eşleme extensions/qa-matrix/src/runners/contract/scenario-catalog.ts içinde yer alır.
Senaryolar
Tam senaryo kimliği listesi, extensions/qa-matrix/src/runners/contract/scenario-catalog.ts:15 içindeki MatrixQaScenarioId union'ıdır. Kategoriler şunları içerir:
- iş parçacığı -
matrix-thread-*,matrix-subagent-thread-spawn - üst düzey / DM / oda -
matrix-top-level-reply-shape,matrix-room-*,matrix-dm-* - akış ve araç ilerlemesi -
matrix-room-partial-streaming-preview,matrix-room-quiet-streaming-preview,matrix-room-tool-progress-*,matrix-room-block-streaming - medya -
matrix-media-type-coverage,matrix-room-image-understanding-attachment,matrix-attachment-only-ignored,matrix-unsupported-media-safe - yönlendirme -
matrix-room-autojoin-invite,matrix-secondary-room-* - tepkiler -
matrix-reaction-* - onaylar -
matrix-approval-*(exec/Plugin meta verileri, parçalı fallback, reddetme tepkileri, iş parçacıkları vetarget: "both"yönlendirmesi) - yeniden başlatma ve yeniden oynatma -
matrix-restart-*,matrix-stale-sync-replay-dedupe,matrix-room-membership-loss,matrix-homeserver-restart-resume,matrix-initial-catchup-then-incremental - mention geçitleme, bot-bota ve allowlist'ler -
matrix-mention-*,matrix-allowbots-*,matrix-allowlist-*,matrix-multi-actor-ordering,matrix-inbound-edit-*,matrix-mxid-prefixed-command-block,matrix-observer-allowlist-override - E2EE -
matrix-e2ee-*(temel yanıt, iş parçacığı takibi, bootstrap, kurtarma anahtarı yaşam döngüsü, durum kaybı varyantları, sunucu yedekleme davranışı, cihaz hijyeni, SAS / QR / DM doğrulaması, yeniden başlatma, artefakt redaksiyonu) - E2EE CLI -
matrix-e2ee-cli-*(şifreleme kurulumu, idempotent kurulum, bootstrap hatası, kurtarma anahtarı yaşam döngüsü, çoklu hesap, gateway-reply gidiş dönüşü, öz doğrulama)
Elle seçilmiş bir kümeyi çalıştırmak için --scenario <id> (tekrarlanabilir) iletin; profil geçitlemesini yok saymak için --profile all ile birleştirin.
Ortam değişkenleri
| Değişken | Varsayılan | Etki |
|---|---|---|
OPENCLAW_QA_MATRIX_TIMEOUT_MS |
1800000 (30 dk) |
Tüm çalıştırma için kesin üst sınır. |
OPENCLAW_QA_MATRIX_CANARY_TIMEOUT_MS |
45000 |
İlk kanarya yanıtı için sınır. Release CI, paylaşılan runner’larda bunu artırır; böylece yavaş bir ilk Gateway turu, senaryo kapsamı başlamadan önce başarısız olmaz. |
OPENCLAW_QA_MATRIX_NO_REPLY_WINDOW_MS |
8000 |
Negatif yanıtsızlık doğrulamaları için sessiz pencere. Çalıştırma zaman aşımına ≤ olacak şekilde sınırlandırılır. |
OPENCLAW_QA_MATRIX_CLEANUP_TIMEOUT_MS |
90000 |
Docker kapatma işlemi için sınır. Hata yüzeyleri, kurtarma docker compose ... down --remove-orphans komutunu içerir. |
OPENCLAW_QA_MATRIX_TUWUNEL_IMAGE |
ghcr.io/matrix-construct/tuwunel:v1.5.1 |
Farklı bir Tuwunel sürümüne karşı doğrulama yaparken homeserver imajını geçersiz kılın. |
OPENCLAW_QA_MATRIX_PROGRESS |
açık | 0, stderr üzerindeki [matrix-qa] ... ilerleme satırlarını susturur. 1 bunları zorla etkinleştirir. |
OPENCLAW_QA_MATRIX_CAPTURE_CONTENT |
redakte edilmiş | 1, ileti gövdesini ve formatted_body alanını matrix-qa-observed-events.json içinde tutar. Varsayılan, CI artifact’larını güvenli tutmak için redakte eder. |
OPENCLAW_QA_MATRIX_DISABLE_FORCE_EXIT |
kapalı | 1, artifact yazımından sonra deterministik process.exit işlemini atlar. Varsayılan çıkışı zorlar çünkü matrix-js-sdk'nin yerel crypto handle’ları, artifact tamamlandıktan sonra event loop’u canlı tutabilir. |
OPENCLAW_RUN_NODE_OUTPUT_LOG |
ayarlanmamış | Dış bir başlatıcı tarafından ayarlandığında (örn. scripts/run-node.mjs), Matrix QA kendi tee işlemini başlatmak yerine bu günlük yolunu yeniden kullanır. |
Çıktı artifact’ları
--output-dir konumuna yazılır:
matrix-qa-report.md- Markdown protokol raporu (nelerin geçtiği, başarısız olduğu, atlandığı ve nedenleri).matrix-qa-summary.json- CI ayrıştırması ve panolar için uygun yapılandırılmış özet.matrix-qa-observed-events.json- Sürücü ve gözlemci istemcilerinden gözlemlenen Matrix event’leri.OPENCLAW_QA_MATRIX_CAPTURE_CONTENT=1olmadığı sürece gövdeler redakte edilir; onay metadataları, seçili güvenli alanlar ve kısaltılmış komut önizlemesiyle özetlenir.matrix-qa-output.log- Çalıştırmadan gelen birleşik stdout/stderr.OPENCLAW_RUN_NODE_OUTPUT_LOGayarlıysa bunun yerine dış başlatıcının günlüğü yeniden kullanılır.
Varsayılan çıktı dizini <repo>/.artifacts/qa-e2e/matrix-<timestamp> olduğundan ardışık çalıştırmalar birbirinin üzerine yazmaz.
Triage ipuçları
- Çalıştırma sona yakın takılıyor:
matrix-js-sdkyerel crypto handle’ları harness’tan daha uzun süre yaşayabilir. Varsayılan, artifact yazımından sonra temiz birprocess.exitzorlar;OPENCLAW_QA_MATRIX_DISABLE_FORCE_EXIT=1ayarını kaldırdıysanız sürecin beklemede kalmasını bekleyin. - Temizleme hatası: yazdırılan kurtarma komutunu (
docker compose ... down --remove-orphansçağrısı) bulun ve homeserver portunu serbest bırakmak için elle çalıştırın. - CI’da kararsız negatif doğrulama pencereleri: CI hızlı olduğunda
OPENCLAW_QA_MATRIX_NO_REPLY_WINDOW_MSdeğerini düşürün (varsayılan 8 sn); yavaş paylaşılan runner’larda artırın. - Hata raporu için redakte edilmiş gövdeler gerekiyor:
OPENCLAW_QA_MATRIX_CAPTURE_CONTENT=1ile yeniden çalıştırın vematrix-qa-observed-events.jsondosyasını ekleyin. Oluşan artifact’ı hassas kabul edin. - Farklı Tuwunel sürümü:
OPENCLAW_QA_MATRIX_TUWUNEL_IMAGEdeğişkenini test edilen sürüme yönlendirin. Hat yalnızca sabitlenmiş varsayılan imajı denetler.
Canlı aktarım sözleşmesi
Matrix, QA genel bakış → Canlı aktarım kapsamı içinde tanımlanan tek bir sözleşme kontrol listesini paylaşan üç canlı aktarım hattından biridir (Matrix, Telegram, Discord). qa-channel geniş sentetik paket olarak kalır ve kasıtlı olarak bu matrisin parçası değildir.
İlgili
- QA genel bakış - genel QA yığını ve canlı aktarım sözleşmesi
- QA Channel - repo destekli senaryolar için sentetik kanal bağdaştırıcısı
- Test Etme - testleri çalıştırma ve QA kapsamı ekleme
- Matrix - test edilen kanal Plugin’i