Rig’ler
Yalnızca olgular. Bunların arkasındaki model için Rig’ler ve yalıtılmış ortamlar sayfasını okuyun; bir makine açmak için rehberi izleyin.
Yüzeyler ve arka uçlar
Bölüm başlığı “Yüzeyler ve arka uçlar”| Yüzey | Yönettiği | Arka uç | Değer | Kapsüllenmiş çıkış |
|---|---|---|---|---|
| Terminal (exec) | VM’in exec kanalı üzerinden bir kabuk | microVM | smolvm |
Evet |
| Tarayıcı | Başsız Chromium (CDP), Firefox (WebDriver BiDi) veya WebKit (W3C WebDriver) | microVM | smolvm |
Evet |
| Bilgisayar | X11 masaüstü: girdi hipervizör üzerinden, yakalama misafir ajanı üzerinden | QEMU | qemu-hvf (macOS), qemu-kvm (Linux), qemu-tcg (hızlandırmasız yedek, asla otomatik seçilmez) |
Evet |
| Android | ADB üzerinden Android | Google’ın emülatörü | android-emulator |
Hayır — emülatör kendi ağını kendisi yönetir |
| iOS | WebDriverAgent üzerinden iOS Simülatörü | CoreSimulator | ios-simulator |
Hayır — ağ ana Mac’i izler |
Terminal ile computer_use yüzeyi computer yüzey değerini paylaşır; terminal,
kendi exec imaj işaretiyle ayırt edilir ve asla sürülebilir bir masaüstü olarak
yeniden kullanılmaz (ya da tersi). Bir konuşma tek bir terminal makinesini
yeniden kullanır.
Tarayıcı motorları
Bölüm başlığı “Tarayıcı motorları”| Motor | Değer | Protokol | Canlı görünüm | Durağan görüntüler |
|---|---|---|---|---|
| Chromium | chromium (varsayılan) |
Chrome DevTools Protokolü | Ekran yayını — sayfa yeniden çizilirken tarayıcı kareleri iter | JPEG |
| Firefox | firefox |
WebDriver BiDi | Yoklanan durağan görüntüler (BiDi’de ekran yayını yoktur), 6 fps ile sınırlı | JPEG |
| WebKit | webkit |
W3C WebDriver (klasik) | Ana makinenin ffmpeg’iyle dönüştürülen yoklanan durağan görüntüler | PNG |
Bir rig, tüm ömrü boyunca tek bir motor çalıştırır. Bir konuşma motor başına bir rig tutabilir; yan yana karşılaştırmayı mümkün kılan da budur: “Firefox (VM)”’i “Chromium (VM)”’in yanında açmak iki makine demektir ve birini kapatmak diğerini çalışır bırakır.
engine değerini rig.open çağrısına ya da browser_use aracına geçirin.
Bilinmeyen bir ad varsayılana düşürülmek yerine reddedilir — bir tarayıcı
isteyip sessizce başkasını almak, uyumluluk sorusunu yanlış yanıtla
yanıtlamaktır.
Motora özgü sınırlar, etrafından dolaşılmak yerine açıkça belirtilir:
- Firefox’ta önbelleği atlayan yeniden yükleme yoktur (BiDi’nin
ignoreCacheseçeneğini doğrudan reddeder), bu yüzden sert yeniden yükleme normal bir yeniden yüklemedir. - WebKit’te de önbelleği atlayan yeniden yükleme yoktur; konsol akışı da
yoktur (çıktı, her gezinmeden sonra
console.*kancalanarak yakalanır, bu yüzden yükleme sırasında günlüğe yazılan her şey kaçırılır — her konsol çıkarımı bunu söyler) ve canlı görünümü için ana makinedeffmpeggerekir. - İkisi de protokolü üzerinden platformun erişilebilirlik ağacını sunmaz;
bu yüzden
extract (a11y), DOM’dan türetilmiş bir yaklaşık değer döndürür ve bunu böyle etiketler. - İkisi de gerçek bir dosya bırakma işlemini kabul edemez; yine de bir dosya girişi makinenin içindeki yollara yöneltilebilir.
Makine imajları
Bölüm başlığı “Makine imajları”| Yüzey | İmaj | Getirilme biçimi |
|---|---|---|
| Terminal | ubuntu:24.04, digest ile sabitlenmiş |
İlk önyüklemede otomatik olarak, makinenin kendi kapılanmış ağı üzerinden |
| Tarayıcı (Chromium, Firefox, WebKit) | debian:trixie-slim, digest ile sabitlenmiş, artı motorun kendi paketleri |
İlk önyüklemede otomatik olarak, ardından ısıtılmış bir paket olarak önbelleğe alınır |
| Bilgisayar | Chromium, Firefox, WebKit içeren ve terminalin ısıttığı aynı GitHub tarafından barındırılan runner CLI temelini taşıyan bir qcow2 masaüstü imajı | Ayarlar → Sunucu → Rigs altında İçe aktar (yayımlandığı yerlerde sağlama toplamıyla sabitlenmiş indirmeler) |
| Android | Google’ın sistem imajları | Android SDK üzerinden |
| iOS | Bir Xcode Simülatör çalışma zamanı artı sağlama toplamıyla sabitlenmiş WebDriverAgent | Çalışma zamanı Xcode üzerinden; otomasyon köprüsü Ayarlar → Sunucu → Rigs üzerinden |
Her microVM türünün ilk önyüklemesinden sonra sunucu, veri dizini altında
önceden çıkarılmış bir kopyayı önbelleğe alır ve sonraki her makineyi oradan
önyükler — paketleri zaten kurulu, önceden ısıtılmış imajlar dahil. Terminal,
GitHub tarafından barındırılan runner tarzı bir CLI araç setini ısıtır (git,
gcc, python3, jq, rsync, arşiv araçları ve apt temelinin geri kalanı;
Docker ya da dil araç önbellekleri değil). Bilgisayar qcow2’si aynı CLI adlarını
imaj derlemesinde, XFCE ile üç tarayıcının yanına gömer. Her tarayıcı kendi
motorunu ısıtır. Üç motor da bir Debian temelini paylaşır ama asla bir paketi
paylaşmaz: önbellek, imaj, motor ve bir ses revizyonu
(audio-v1-<engine>) üzerinden anahtarlanır; çünkü bir motora — ya da PulseAudio
ile ffmpeg iş yükünün parçası olmadan önce — ısıtılmış bir makinede diğeri
yoktur. Terminal paketi de aynı nedenle bir araç seti revizyonu (tools-v1)
üzerinden anahtarlanır: derleyici imajın parçası olmadan önce ısıtılmış bir
paket, derleyicisi olması gereken bir makineye hizmet etmemelidir.
Alınmaya değer, hazır gömülü bir otomasyon imajı yoktur — Chromium’un
chromedp/headless-shell imajı hem ALSA’yı hem PulseAudio’yu dışarıda bırakacak
şekilde derlenir, bu yüzden asla ses üretemez; bakımı yapılan tek Firefox imajı
Debian temelinin 33 katı boyutundadır ve yine de socat içermez; bakımı yapılan
bir WebKit imajı ise hiç yoktur. Bu yüzden her motor ilk başlatmada kurulur
(chromium, firefox-esr ya da webkit2gtk-driver) ve bunu yaparken Debian
arşivlerine (deb.debian.org, security.debian.org, cloudfront.debian.net)
erişir. Chromium, chromium --headless=new olarak başlatılan dağıtım ikilisidir.
Çalışma alanı başına özel imajlar
Bölüm başlığı “Çalışma alanı başına özel imajlar”| Ayar anahtarı | Geçersiz kıldığı ayar |
|---|---|
rigs.smolvm.execImage |
Terminal (VM) imajı |
rigs.smolvm.browserImage |
Chromium Tarayıcı (VM) imajı |
Yönetici kapısından geçen çalışma alanı ayarları deposu üzerinden yazılır (Ayarlar → Sunucu → Rigs → Özel imajlar (bu çalışma alanı)). Değer bir registry referansı olmalıdır — yerel yollar, arşivler ve bayrak benzeri dizeler hem alanda hem de önyüklemede yeniden reddedilir. Geçersiz bir saklanan değer gürültülü biçimde yok sayılır ve yerine varsayılan önyüklenir. İmajın kendi registry’si (artı Docker Hub, GHCR, Quay, GitLab ve GCR için bilinen blob CDN eşlikçileri) çekme işlemi için çıkış kapısından kabul edilir.
Terminal imaj sözleşmesi — bash mevcut; git, curl, socat önceden
kurulu ya da bir Debian/Ubuntu apt temeli (yalıtılmış ortam ilk başlatmada bu
üçünü artı GitHub tarafından barındırılan runner tarzı bir CLI araç setini
kurar: derleyiciler, Python 3, jq, arşiv araçları, rsync. Dil araç
önbellekleri ve Docker kurulmaz).
Tarayıcı imaj sözleşmesi — bash ve socat içeren bir Debian/Ubuntu apt
temeli (ya da paketler zaten kurulu), artı sunucunun kendisinin
chromium --headless=new olarak başlattığı, DevTools misafir loopback’inde
9223’te olup misafir 9222 portuna aktarılan bir chromium ikilisi.
PulseAudio ve ffmpeg, ses kanalı için ilk başlatmada kurulur.
FROM chromedp/headless-shell ile derlemeyin: upstream headless.gn hem
ALSA’yı hem PulseAudio’yu dışarıda bırakacak şekilde derler, bu yüzden o ikili
ses üretemez. Bu geçersiz kılma yalnızca Chromium rig’leri için geçerlidir —
önyüklediği iş yükü komutu Chromium’a aittir ve bunu Firefox ya da WebKit’e
vermek, orada olmayan bir ikiliyi başlatmak olur. Bir Firefox ya da WebKit
rig’i bunu gürültülü biçimde yok sayar ve kendi sabitlenmiş imajını önyükler.
Otomasyon portları — her tarayıcı makinesi, ana makinede tam olarak bir
loopback portunu misafir 9222 portuna yönlendirir. Arkasında: Chromium’un
DevTools’u ve Firefox’un uzak ajanı, önlerinde bir socat aktarımıyla misafir
loopback’inde 9223 üzerinde oturur (ikisi de koşulsuz olarak loopback’e
bağlanır); WebKit’in sürücüsü bir --host alır ve misafir NIC’ine kendisi
bağlanır. Firefox ayrıca Host başlığını kendi portuna göre doğrular; bu yüzden
istemci, aradığı yetki yerine misafir tarafındaki yetkiyi gönderir.
Eylem fiilleri
Bölüm başlığı “Eylem fiilleri”Her eylem eksiksiz ayrıştırılır: bozuk bir yük, alanı adlandıran bir ileti döndürür, asla bir istisna değil. Gözlem eylemleri (○ ile işaretli) bir insan kontrolü elinde tutarken izinli kalır; değiştirici eylemler reddedilir.
computer_use
Bölüm başlığı “computer_use”screenshot○, cursor_position○, mouse_move, left_click,
right_click, middle_click, double_click, triple_click,
left_mouse_down, left_mouse_up, left_click_drag, scroll, key,
hold_key (0–60 sn), type, wait○ (0–60 sn), set_display,
clipboard_read○, clipboard_write.
Koordinatlar, misafirin geçerli modundaki misafir pikselleridir; her ekran
görüntüsü ekran boyutunu belirtir. Tuş kombinasyonları X11 yazımlarını kullanır
(ctrl+s, alt+Tab, Return).
clipboard_read bir selection alır: clipboard (ctrl+C’nin doldurduğu şey,
varsayılan), primary (X11 seçip kopyalama) ya da xdnd (süren bir sürükleme).
Boş bir sonuç, üçü için de normal bir yanıttır. clipboard_write yalnızca
text alır — görüntüler ve dosyalar dosya kanalından gider, çünkü bir eylemin
bağımsız değişkenleri denetim kaydına yazılır ve görüntü baytlarının orada işi
yoktur. Pano içeriği, güvenilmez veri olarak çevrelenerek döner.
browser_use
Bölüm başlığı “browser_use”navigate (yalnızca http/https), reload (hard isteğe bağlı),
stop_loading, click (seçici ya da koordinat), fill, type, key (DOM
tuş adları), scroll, mouse_move, drag, left_mouse_down,
left_mouse_up, extract○ (a11y | dom | console), screenshot○
(full_page isteğe bağlı), set_viewport (en az 320×240), history,
wait_for○ (seçici, 0,1–30 sn), clipboard_read○, clipboard_write.
Çıkarılan sayfa içeriği, güvenilmez veri olarak çevrelenerek döner.
Tarayıcının tam olarak bir panosu vardır, bu yüzden clipboard_read bir
selection almaz. Her iki pano fiili de bir güvenli bağlam gerektirir: düz
http:// üzerinden sunulan bir sayfada pano API’si hiç yoktur ve fiil, boş bir
pano bildirmek yerine bunu söyler — orada type kullanın; bu, panodan geçmeden
imlecin bulunduğu yere ekler.
mobile_use
Bölüm başlığı “mobile_use”tap, swipe (50–5000 ms), type, key (takma adlar back, home,
recents, enter, delete, backspace, tab, escape, search,
menu, volume_up, volume_down, power ya da herhangi bir KEYCODE_*),
screenshot○, ui_dump○, install_apk
(rig’in worktree’si ve sunucu veri diziniyle sınırlı), start_app,
stop_app, clear_app_data, uninstall_app, open_url ve shell.
shell bir argv listesi alır ve Android’in içinde çalışır, asla bir ana makine
kabuğu üzerinden değil; logcat, dumpsys ve pm grant gibi geliştirici
tanılamalarını kapsar.
mobile_use’ın pano fiilleri yoktur. Android 10’dan beri panoyu yalnızca
odaktaki uygulama okuyabilir.
ios_use
Bölüm başlığı “ios_use”tap, swipe (50–5000 ms), type, key (enter, backspace, tab,
escape, ok tuşları ya da tek bir yazdırılabilir karakter; isteğe bağlı
command, control, option ve shift değiştiricileri), home, lock,
unlock, screenshot○, ui_dump○, install_app (rig worktree’si ya da
sunucu veri diziniyle sınırlı bir simülatör .app dizini), start_app,
stop_app, uninstall_app, open_url ve spawn. spawn argv alır ve
simctl üzerinden simülatörün içinde yürütür; asla bir ana makine kabuğunu
çağırmaz.
Koordinatlar ekran görüntüsü pikselleri değil, iOS ekran noktalarıdır. Canlı akış, simülatörün sabit boyutunu korur ve aygıtı yeniden boyutlandırmak yerine ona letterbox uygular. Ana makineden simülatöre ve simülatörden ana makineye metin panosu aktarımı, diğer rig’lerle aynı kullanıcı başına, yön başına izin politikasını kullanır; dosyalar ve görüntüler iOS pano kanalı tarafından kabul edilmez.
Her rig, kendine ait bir CoreSimulator aygıtı ve WebDriverAgent oturumu oluşturur. Kapatmak, WebDriverAgent’ı durdurur, o aygıtı kapatıp siler ve kayıt girdisini kaldırır. iOS rig’leri yalnızca Xcode, kurulu bir iOS çalışma zamanı ve sabitlenmiş otomasyon köprüsü bulunan bir macOS sunucusunda çalışır. Ses, mikrofon, dosya bırakma, ana makine kabuğu ya da kapalı ağ garantisi sunmazlar.
Yönetim araçları
Bölüm başlığı “Yönetim araçları”| Araç | Açıklama |
|---|---|
rig_list |
Bir çalışma alanının rig’lerini yüzey, durum, ekran ve denetleyici ile listeler |
rig_close |
Bir rig’i yok eder ve diskini atar |
Yaşam döngüsü
Bölüm başlığı “Yaşam döngüsü”| Aşama | Anlamı |
|---|---|
provisioning |
Önyükleniyor; durum ayrıntısı geçerli adımı olduğu gibi taşır |
ready |
Erişilebilir ve eylemleri kabul ediyor |
parked |
Boşta park edilmiş: vCPU’lar durmuş, RAM hâlâ yerinde; sonraki eylem onu uyandırır |
closing |
Kapatılıyor |
closed |
Gitmiş; satır denetim izi için kalır |
failed |
Öldü ya da hiç açılamadı; arayüzün yeniden deneme sunabilmesi için ayırt edilebilir |
| Kapanma nedeni | Ne zaman tetiklenir |
|---|---|
requested |
Bir kişi ya da ajan istedi |
idleTimeout |
Boşta kalma penceresinin 2 katını aştı ya da bellek için tahliye edildi |
ttlExpired |
Katı ömür doldu |
conversationEnded |
Sahibi olan konuşma sona erdi |
workspaceGone |
Çalışma alanı silindi ya da üyelik kaybedildi |
serverShutdown |
Sunucu duruyor |
backendFailure |
Altındaki hipervizör öldü |
Varsayılanlar ve üst sınırlar
Bölüm başlığı “Varsayılanlar ve üst sınırlar”| Değer | Terminal | Tarayıcı | Bilgisayar | Mobil |
|---|---|---|---|---|
| Bellek | 512 MB | 2048 MB (Chromium); 2560 MB (Firefox, WebKit) | 4096 MB | 4096 MB |
| vCPU | 2 | 2 | 4 | 4 |
| Katı TTL | 8 sa | 2 sa | 2 sa | 2 sa |
| Boşta kalma penceresi | 45 dk | 15 dk | 15 dk | 15 dk |
| Önyükleme ekranı | — | 1280×800 | 1280×800 | 1080×1920 |
- Ajan kanalındaki durağan görüntüler 1280×800 ile sınırlıdır; insan kanalı 2560×1600’e kadar pazarlık eder.
- Ana makinenin tüm rig’ler için yerleşik bellek bütçesi varsayılan olarak 12 GB’tır ve yerleşik megabayt cinsinden sayılır (park edilmiş bir VM, RAM’ini hâlâ tutar). Tahliye, en uzun süredir kullanılmayandan başlar ve birinin yönettiği, izlediği ya da terminalini açık tuttuğu bir makineyi asla almaz.
- Açık bir terminal ya da izleme kanalı, rig’i park etmeye ve boşta toplamaya karşı sabitler; katı TTL yine de geçerlidir.
Portlar ve geliştirme etki alanları
Bölüm başlığı “Portlar ve geliştirme etki alanları”| Port | Yer | Neye ayrılmış |
|---|---|---|
7911 |
Terminal misafiri | Her yönlendirmenin üzerinden geçtiği port çoğullayıcısı |
9222, 9223 |
Tarayıcı misafiri | Otomasyon aktarımı ve uç noktası (WebKit doğrudan 9222’ye bağlanır ve aktarım kullanmaz) |
80, 443 |
Tarayıcı misafiri loopback’i | Geliştirme etki alanı HTTP/HTTPS kanalları |
- Keşif, sunucu tarafında terminal misafirinin dinleyen TCP portlarını yaklaşık 4 sn’de bir yoklar.
- Rig başına en fazla 16 port otomatik yönlendirilir; fazlası günlükte listelenir, yönlendirilmez.
- Ana makine tarafındaki yönlendirme loopback’e bağlanır ve misafirin kendi port numarasını tercih eder; Yerel ağda paylaş, işletim sisteminin atadığı bir LAN portu ekler.
- Geliştirme etki alanları
name.testya daname.localhostile eşleşmelidir (küçük harf, en fazla 63 karakterlik etiket). Bir etki alanı bir porta eşlenir. - Geliştirme etki alanı HTTPS’i,
*.test/*.localhostiçin tek bir joker yaprak sertifikayla birlikte sunucuya yerel bir CA kullanır (EC P-256,<dataDir>/rigs/tls/altında, anahtarlar 0600 ve asla bir misafirde değil). Ana makinedeopensslyoksa HTTPS kanalı da yoktur; düz HTTP yine yönlendirilir.
Çıkış varsayılanları
Bölüm başlığı “Çıkış varsayılanları”| Yüzey | Varsayılan izin listesi |
|---|---|
| Terminal | Sandbox geliştirici temeli (forge’lar, paket kayıtları, model sağlayıcıları) + Ubuntu apt yansıları + worktree’nin kendi forge ana makinesi |
| Tarayıcı | usectrl.dev (ürün sitesi) — artı her motorun ilk önyüklemesinde, paketlerini kurarken eriştiği Debian arşivleri. Ana sayfa yerel bir file:// belgesidir ve çıkış gerektirmez |
| Bilgisayar | Boş — bir çağıran ana makine izni verene kadar her şeyi reddet |
| Mobil | Uygulanmaz (emülatör tarafından yönetilen ağ) |
Her microVM ayrıca, yalnızca çekme işlemi için imajının registry ana makinelerini alır. Kimlik bilgisi broker’ının izin verilen ana makineler kümesi aynı izin listesinden türetilir: misafirin erişemediği bir ana makine için token üretilmez.
Pano ve dosya aktarımı
Bölüm başlığı “Pano ve dosya aktarımı”Kopyalama/yapıştırmanın iki yönü ve dosyaları içeri ve dışarı sürükleme. Bir rig’i yöneten kişi için kullanılabilir; bir ajan panoyu yukarıdaki fiiller üzerinden alır ve dosya aktarımına hiç erişemez (yalıtılmış ortamın içinde zaten bir kabuğu vardır).
Pano geçişi kullanıcı başına ve yön başına ayrıdır. Ana makineden rig’e yapıştırmaya varsayılan olarak izin verilir; rig’den ana makineye kopyalama sorar (on dakikalık bir izin ya da Ayarlar → Sunucu → Rigs → Pano erişimi altında her zaman izin ver). İki seçim birbirinden bağımsızdır ve asla bir çalışma alanı ayarı değildir.
| Kanal | Yol | Taşıdığı |
|---|---|---|
| Pano | GET/POST /rig/clipboard/<rigId> |
Metin, bir PNG/JPEG (≤16 MB) ve panodaki dosyaların misafir yolları |
| Dosyalar | POST /rig/files/<rigId> |
En fazla 64 dosya, her biri ≤256 MB ve bırakma başına ≤512 MB, isteğe bağlı bir misafir pikseli bırakma noktasıyla |
| Dosyalar | GET /rig/files/<rigId>?p=<base64url path> |
Bir dosyanın baytları, geri dışarı |
- RPC değil, HTTP. RPC soketi, gelen bir çerçeve 256 KB’ı aştığında bağlantıyı kapatır — JSON komutları için doğru, yapıştırılmış bir ekran görüntüsü için ölümcül olan bir DoS koruması. Baytlar, rig karelerinin ve toplantı sesinin zaten kullandığı türden bir yolu kullanır.
- Kimlik doğrulama, imzalı
rig-files:<workspaceId>/<rigId>hedefi artı çalışma alanı üyeliğidir — kendine ait bir hedef, böylece bir makineyi izlemek için üretilen bir URL onun içine dosya da yazamaz. - Devralma geçerlidir. Panoya yazmak ve dosya bırakmak değiştiricidir ve başka biri kontrolü elinde tutarken reddedilir; panoyu okumak ve bir dosyayı dışarı okumak gözlemdir ve reddedilmez.
- Bırakılanların indiği yer:
~/Drops(masaüstü),~/drops(terminal — worktree’nin yanında, asla içinde değil, böylece bir bırakma hiçbir zaman izlenmeyen bir değişiklik olarak görünmez),/tmp/cc-drops(tarayıcı). Dizini sunucu seçer; bir çağıran onu adlandıramaz. Var olan dosyaların üzerine asla yazılmaz — çakışan bir ad2-name.extolarak iner. - Misafire ne söylenir: bir tarayıcı sayfası, istenen noktada gerçek bir
bırakma olayı alır (
Input.dispatchDragEvent); bir masaüstü, dosyaları ve URI’lerini panosuna alır; çünkü hiçbir ana makine, misafirin içinde ayrıcalıklı bir daemon olmadan rastgele bir araç setine XDND sürüklemesi üretemez. Yanıt, ikisinden hangisinin olduğunu belirtir. - Dışarı sürükleme yalnızca masaüstünde çalışır ve bir sürükleme sürerken
misafirin
XdndSelectiondeğerini okur. Basma başladığında misafirin zaten tuttuğuyla aynı olan bir yük, yeni değil, bitmiş bir sürüklemeden kalan bayat bir seçim sayılır — X’te “sürükleme bitti” diye bir adım yoktur. - İmaj gereksinimleri: masaüstü imajı protokol 2 ya da üzeri olmalıdır (pano desteği eklendikten sonra derlenmiş). Daha eski bir imaj 404 yanıtı verir ve uygulama, bozuk bir makine bildirmek yerine imajın yeniden derlenmesini söyler.
- Denetim kaydı biçimi kaydeder, içeriği asla:
clipboard_read,clipboard_write,drop_filesveread_filesatırları sayıları, boyutları ve yolları taşır. Pano, kimlik bilgilerinin birkaç saniyeliğine yaşadığı yerdir ve bunların hiçbiri yazıya dökülmez.
Korumalar, olaylar, depolama
Bölüm başlığı “Korumalar, olaylar, depolama”- Rig araçları
enclosureControleylem sınıfını bildirir (artı use araçlarındanetworkEgressveprocessSpawn;mobile_useveios_useayrıcapackageInstallbildirir).rig_closeenclosureControlbildirir;rig_listhiçbirini bildirmez. Varsayılan olarak izin verilir; salt okunur modlar bunu tümden reddeder; alan başına özerklik kadranı onu önce sor’a indirebilir. - Alan olayları:
RigClosedEvent(kapanma nedeniyle birlikte),RigControlChanged(devralma / geri verme),RigReaped(boşta kalma, TTL ya da bellek tahliyesi, yöneten ajanla birlikte). Bir rig açmak olay değildir. Bkz. alan olayları. - Depolama: her çalışma alanı veritabanında
rig_sessionsverig_action_log. Eylem günlüğü, her girdi olayını öznesi ve rig başına monotonik bir sırayla kaydeder; yazılan metin, yazılmadan önce bir uzunluğa ve hash’e indirgenir. - Veri dizini:
rigs/images/(içe aktarılan qcow2 imajları),rigs/smolvm/(rig başına çalışma zamanı durumu),rigs/smolvm-packs/(önceden çıkarılmış makine paketleri),rigs/tls/(geliştirme etki alanı CA’sı),rigs/run/(QEMU overlay’leri ve seed’leri). - Rotalar: canlı görünüm, bir alandaki ya da PR sayfasındaki bir sekmedir;
/settings/server/rigsRigs ayarlar ekranıdır.