ข้ามไปยังเนื้อหา

ให้เอเจนต์มีเครื่องสำหรับทดสอบ

ริก คือเครื่องใช้แล้วทิ้งที่เอเจนต์เปิดขึ้นเมื่อมันต้องลองอะไรจริง ๆ: โหลด หน้าเว็บ คลิกไปทั่วแอปเดสก์ท็อป แตะไปรอบ ๆ โทรศัพท์ คุณสามารถเฝ้าดูมันทำงานแบบ เรียลไทม์ และรับช่วงการควบคุมได้ทุกเมื่อที่ต้องการ

ริกเทอร์มินัล เบราว์เซอร์ และเดสก์ท็อปแบบเอนโคลเจอร์เป็น VM ที่มีดิสก์ใช้แล้ว ทิ้งและเครือข่ายที่มีประตูกั้น ส่วน Android และ iOS เป็นโปรแกรมจำลองที่โฮสต์ จัดการเอง: สถานะอุปกรณ์ของมันใช้แล้วทิ้งได้ แต่เครือข่ายของมันเป็นไปตามโฮสต์ เซิร์ฟเวอร์

ริกรันอยู่บนเครื่องที่โฮสต์ cc_server — เครื่องเดียวกันกับที่โฮสต์ ไม่ใช่ เครื่องที่คุณกำลังมองอยู่ มีพื้นผิวที่ผู้ใช้เห็นห้าแบบ พื้นผิวเดสก์ท็อปและมือถือ ต้องตั้งค่าบนโฮสต์:

พื้นผิว รันบน การตั้งค่า
เทอร์มินัล (VM) microVM ที่บูตอิมเมจ Ubuntu ที่ปักหมุดไว้ ไม่มี — อิมเมจจะถูกดึงมาโดยอัตโนมัติเมื่อใช้ครั้งแรก
เบราว์เซอร์ (VM) microVM ที่บูตอิมเมจ Debian ที่ปักหมุดไว้ โดยติดตั้ง Chromium, Firefox หรือ WebKit เมื่อใช้ครั้งแรก ไม่มี — เหมือนกัน
คอมพิวเตอร์ (VM) QEMU พร้อมอิมเมจเดสก์ท็อป Linux ที่มี Chromium, Firefox, WebKit และชุดเครื่องมือ CLI พื้นฐานแบบ GitHub-hosted runner ติดมาด้วย ติดตั้ง QEMU (brew install qemu) จากนั้น นำเข้า อิมเมจเดสก์ท็อปที่ การตั้งค่า → เซิร์ฟเวอร์ → ริก
Android โปรแกรมจำลอง Android ของ Google ติดตั้ง Android SDK สร้าง AVD แล้วเริ่มมัน (ดูด้านล่าง)
เครื่องจำลอง iOS CoreSimulator บน Mac ของเซิร์ฟเวอร์ ติดตั้ง Xcode และรันไทม์ iOS ที่ต้องการ จากนั้นติดตั้งบริดจ์ระบบอัตโนมัติที่ การตั้งค่า → เซิร์ฟเวอร์ → ริก

เครื่องเทอร์มินัลและเบราว์เซอร์บูตจากอิมเมจที่ปักหมุดด้วยไดเจสต์: ไบต์ที่แน่นอน ถูกระบุไว้ล่วงหน้า ดึงมาครั้งเดียวตอนบูตครั้งแรก และแคชไว้ — หลังการบูตครั้งแรก ของแต่ละชนิด เครื่องรุ่นหลังจะข้ามการดาวน์โหลดไปเลยและพร้อมใช้ในไม่กี่วินาที การตั้งค่า → เซิร์ฟเวอร์ → ริก แสดงสิ่งที่เซิร์ฟเวอร์ของคุณบูตได้และเครื่อง ทุกเครื่องที่กำลังรันอยู่ตอนนี้

อิมเมจเดสก์ท็อปที่ติดตั้งแล้วยังจัดการได้จากหน้าเดียวกัน: นำเข้า จะแทนที่มัน ด้วย qcow2 ที่ใหม่กว่า และ ลบ จะลบมันออกเพื่อให้คุณติดตั้งบิลด์ใหม่ได้

เราไม่มีอิมเมจของเราเองสำหรับ Android หรือ iOS และนั่นไม่ใช่การมองข้าม อิมเมจ ระบบของ Android มาจาก SDK ของ Google ส่วนรันไทม์ของ iOS มาจาก Xcode สำหรับ Android ให้ติดตั้ง Android Studio (หรือเครื่องมือ SDK แบบบรรทัดคำสั่ง) เพิ่ม อุปกรณ์เสมือนใน Device Manager แล้วเริ่มมัน จากนั้นหน้าริกจะรายงานว่า Android พร้อมใช้งาน

มันยังบอกด้วยว่าคุณขาดขั้นตอนใดไปกันแน่ — ไม่มี SDK ไม่มีโปรแกรมจำลอง ไม่มี อุปกรณ์เสมือน หรือมีอุปกรณ์ที่ไม่ได้รันอยู่เลย — เพราะแต่ละอย่างมีวิธีแก้ที่ ต่างกันสี่แบบ และมีเพียงแบบเดียวที่เป็นการดาวน์โหลด หากคุณเริ่ม cc_server จากเชลล์ที่มองไม่เห็น SDK ให้ export มัน:

หน้าต่างเทอร์มินัล
export ANDROID_HOME="$HOME/Library/Android/sdk"

สำหรับ iOS ตัวเซิร์ฟเวอร์เองต้องรันบน macOS ที่ติดตั้ง Xcode และรันไทม์ของ เครื่องจำลอง iOS ไว้ เปิด การตั้งค่า → เซิร์ฟเวอร์ → ริก แล้วกด ติดตั้งบริดจ์ระบบอัตโนมัติของ iOS เซิร์ฟเวอร์จะดึงอาร์ติแฟกต์ WebDriverAgent ที่ปักหมุดด้วยเช็กซัม ตรวจสอบมัน และติดตั้งลงในที่เก็บระบบ อัตโนมัติที่เซิร์ฟเวอร์เป็นเจ้าของ ไม่มีเครื่องจำลองใดบูตระหว่างการตั้งค่า

เครื่องอยู่เป็น แท็บ ข้าง ๆ แชตและดิฟ — ในสเปซหรือบนหน้า PR ในเมนู + เดียวกัน ใต้ เครื่อง:

  • คอมพิวเตอร์ — เดสก์ท็อป Linux ที่มี Chromium, Firefox และ WebKit
  • Chromium, Firefox หรือ WebKit — เบราว์เซอร์
  • Android — โปรแกรมจำลอง Android ที่กำลังรันอยู่
  • เครื่องจำลอง iOS — เครื่องจำลองใช้แล้วทิ้งที่สร้างขึ้นสำหรับการสนทนานี้

เลือกอันหนึ่งแล้วกด เริ่มเครื่อง แท็บจะบอกว่าการบูตอยู่ขั้นตอนใด (“Starting the microVM”, “Waiting for the guest to come up”) แทนที่จะหมุน ค้างเฉย ๆ

แท็บถูกจำกัดขอบเขตอยู่ที่การสนทนา และเครื่องมือของเอเจนต์ก็เช่นกัน แท็บ Chromium, Firefox หรือ WebKit กับ browser_use แท็บ Android กับ mobile_use หรือเครื่องจำลอง iOS กับ ios_use ล้วนมุ่งไปที่เครื่องเริ่มต้นเครื่องเดียวกัน ช่อง UI เพิ่มเติมเป็นเครื่องเปรียบเทียบแยกต่างหาก ส่วนเครื่องมือของเอเจนต์ ใช้ค่าเริ่มต้นเสมอ

วิธีบิลด์ ติดตั้ง และเริ่มแอป Flutter บน Android:

หน้าต่างเทอร์มินัล
fvm flutter build apk --debug

จากนั้นเรียก mobile_use ด้วย install_apk และ build/app/outputs/flutter-apk/app-debug.apk ตามด้วย start_app และชื่อ แพ็กเกจของ Android ui_dump ภาพหน้าจอ และอินพุตขับเคลื่อนอุปกรณ์เดียวกันกับ ที่แสดงในแท็บของมนุษย์ stop_app, clear_app_data, uninstall_app, open_url และการเรียก shell ในรูป argv ครอบคลุมส่วนที่เหลือของวงจรการพัฒนา โดยไม่ต้องเรียกเชลล์บนโฮสต์เซิร์ฟเวอร์

วิธีบิลด์ ติดตั้ง และเริ่มแอป Flutter บนเครื่องจำลอง iOS:

หน้าต่างเทอร์มินัล
fvm flutter build ios --simulator --debug
/usr/bin/plutil -extract CFBundleIdentifier raw -o - \
build/ios/iphonesimulator/Runner.app/Info.plist

จากนั้นเรียก ios_use ด้วย install_app และไดเรกทอรี .app ตามด้วย start_app และบันเดิลไอเดนทิฟายเออร์ที่พิมพ์โดย plutil เครื่องมือ iOS ยังเปิดให้ใช้ stop_app, uninstall_app, open_url และการกระทำ spawn ในรูป argv สำหรับการวินิจฉัยภายในเครื่องจำลอง

จอภาพของเดสก์ท็อปและเบราว์เซอร์ปรับขนาดตามพาเนล ส่วน iOS คงขนาดพอยต์คงที่ของ เครื่องจำลองไว้และจัดวางโดยเว้นแถบว่างรอบด้าน ทุกพื้นผิวยังมีสองเลนที่เป็นอิสระ ต่อกัน: เอเจนต์ได้ภาพหน้าจอขนาดเล็กที่ประหยัด ส่วนคุณได้มุมมองสด การสลับแท็บ จะหยุดสตรีมของมนุษย์ เครื่องที่อยู่เบื้องหลังจึงไม่กินแบนด์วิดท์ของการแสดงผล

แท็บริกไม่ได้เริ่มเครื่องด้วยตัวเอง รวมถึงระหว่างการคืนค่าเลย์เอาต์ด้วย กฎนี้ ป้องกันไม่ให้การเปิดแอปบูต VM หรือสร้างอุปกรณ์เครื่องจำลองขึ้นมาโดยไม่คาดคิด

แคนวาสเป็นของคุณสำหรับพิมพ์และคลิกเมื่อไม่มีใครอื่นถือการควบคุมแบบเอกสิทธิ์อยู่ — หรือเมื่อคุณถืออยู่ ขณะที่คุณถือล็อกนั้น แท็กสถานะจะอ่านว่า คุณกำลังควบคุม เอเจนต์ยังคงถ่ายภาพหน้าจอได้ และเซิร์ฟเวอร์จะปฏิเสธการกระทำที่เปลี่ยนแปลง สถานะของมันที่จุดคอขวดจุดเดียวที่ทุกการกระทำต้องผ่าน ทุกสิ่งที่คุณทำถูกบันทึก ไว้ในชื่อของคุณ

กด หยุดเครื่อง เมื่อคุณทำเสร็จแล้ว

การควบคุมเป็นแบบเอกสิทธิ์โดยเจตนา: ผู้กระทำสองรายพิมพ์ใส่เครื่องเดียวกันย่อม สร้างอินพุตที่ทั้งคู่ไม่ได้ตั้งใจ

การคัดลอกและวางทำงานได้ทั้งสองทิศทางข้ามแคนวาสริก และการลากไฟล์ก็เช่นกัน

คัดลอกและวาง กดคีย์ผสมคัดลอกบนแคนวาส แล้วสิ่งที่เครื่องคัดลอกไว้ — ข้อความ รูปภาพ รายการไฟล์ — จะมาอยู่บนคลิปบอร์ดของคุณ การวางจะส่งของของคุณไปอีกทาง และกดวางภายในเครื่อง บน macOS คีย์ผสมคือ ⌘C/⌘V ส่วน ⌃C ยังคงไปถึงเชลล์ของ เกสต์ในฐานะการขัดจังหวะ บน Windows และ Linux ให้ใช้ ⌃C/⌃V — เกสต์จะได้รับ คีย์เดียวกันกับที่จะได้รับอยู่แล้ว ดังนั้น ⌃C ในเทอร์มินัลของเกสต์ยังคงขัดจังหวะ และคลิปบอร์ดของคุณเองไม่ถูกแตะต้อง

ไม่มีอะไรซิงก์อยู่ในเบื้องหลัง รหัสผ่านที่คุณคัดลอกบนเครื่องของคุณเองจะไม่เข้า ไปใน VM เพราะตัวจับเวลาทำงาน มันจะข้ามไปก็ต่อเมื่อคุณวาง

การวางเข้าริกได้รับอนุญาตโดยค่าเริ่มต้น ส่วนการคัดลอกออกริกจะถามก่อน — ให้ สิทธิ์สิบนาที หรือ อนุญาตเสมอ ที่ การตั้งค่า → เซิร์ฟเวอร์ → ริก → การเข้าถึงคลิปบอร์ด ทั้งสองทิศทางเป็นอิสระต่อกัน และมันติดตามคุณ ไม่ใช่ เวิร์กสเปซ

ลากไฟล์เข้า ปล่อยไฟล์ที่ใดก็ได้บนแคนวาส

  • บน เบราว์เซอร์ (VM) หน้าเว็บจะได้รับเหตุการณ์ดรอป จริง ณ จุดที่คุณปล่อย ดังนั้นโซนอัปโหลดจึงทำงานเหมือนกับไฟล์ในเครื่องทุกประการ
  • บน คอมพิวเตอร์ (VM) ไฟล์จะไปอยู่ใน ~/Drops และพาธของมันจะอยู่บน คลิปบอร์ดของเครื่อง ดังนั้น ⌃V จะวางไฟล์เหล่านั้นลงในโปรแกรมจัดการไฟล์หรือ ช่องอัปโหลด โฮสต์ไม่สามารถสังเคราะห์การลากเข้าสู่แอป Linux ใด ๆ ได้โดยไม่รัน เดมอนที่ได้สิทธิ์พิเศษภายใน VM ซึ่งริกจงใจไม่มี — ทอสต์จึงบอกคุณว่าไฟล์ไปอยู่ ที่ใด แทนที่จะแสร้งว่าเกิดการดรอปขึ้น
  • บน เทอร์มินัล ไฟล์จะถูกคัดลอกเข้าไปและพาธของมันถูกพิมพ์ที่พรอมป์ พร้อม ส่งต่อให้คำสั่ง ส่วนการวาง รูปภาพ ลงในเทอร์มินัลก็ทำแบบเดียวกัน: มันถูก บันทึกไว้ในเครื่องและคุณจะได้พาธมา

ลากไฟล์ออก ทำงานได้จากคอมพิวเตอร์ (VM) เริ่มลากไฟล์ภายในเครื่อง ลากตัวชี้ ให้ออกนอกแคนวาส แล้วมันจะกลายเป็นการลากจริงบนเดสก์ท็อปของคุณ — ปล่อยลงใน Finder หรือ Explorer การคัดลอกไฟล์ในโปรแกรมจัดการไฟล์ของเครื่องแล้ววางฝั่งของ คุณก็ทำได้เช่นกัน ส่วนเบราว์เซอร์ (VM) ไม่เสนอความสามารถนี้: เบราว์เซอร์แบบไม่มี หน้าจอไม่มีเพย์โหลดการลากให้อ่าน และการเดาจากการเลือกข้อความบนหน้าเว็บจะยึด การคลิกปกติไป

เทอร์มินัลในสเปซหรือบนหน้า PR สามารถรันอยู่ภายในริกแทนที่จะรันบนเครื่องของ เซิร์ฟเวอร์เองได้ เมื่อเป็นเช่นนั้น พาเนลจะแสดงป้าย VM ที่หุ้ม

สิ่งที่เปลี่ยนไป:

  • ไม่มีอะไรที่คุณรันไปถึงโฮสต์ rm -rf ในนั้นทำให้คุณเสียริกไป
  • เครือข่ายเป็นแบบปฏิเสธโดยค่าเริ่มต้น เฉพาะโฮสต์ในรายการที่อนุญาตของริกเท่านั้น ที่เข้าถึงได้ และทุกอย่างต้องผ่านประตูที่บังคับใช้รายการนั้น
  • git push ยังทำงานได้ในเทอร์มินัลที่คุณเปิดเอง ริกไม่มีการจัดเก็บข้อมูลรับรอง มันขอ จากเซิร์ฟเวอร์เป็นรายการดำเนินการแบบอายุสั้น ซึ่งจำกัดด้วยสิทธิ์เข้าถึงโฮสต์โค้ดของคุณเอง และโทเค็นนั้นจะถูกเพิกถอนเมื่อปิดริก ริกที่เอเจนต์เปิดจะได้ข้อมูลรับรองแบบอ่านอย่างเดียว จึง fetch ได้แต่พุชไม่ได้

สิ่งที่ควรรู้:

  • เทอร์มินัลแบบเอนโคลเจอร์ที่ถูกคืนค่าจะรอคุณอยู่ เช่นเดียวกับแท็บริก เทอร์มินัล microvm ที่กลับมาพร้อมเลย์เอาต์ของคุณจะแสดงปุ่ม เปิดเชลล์ แทนที่จะบูต VM ของมันตอนเปิด เทอร์มินัลแบบเชลล์โฮสต์กินเพียงโพรเซสเดียว ส่วนแบบเอนโคลเจอร์กินเครื่องหนึ่งเครื่อง
  • ไฟล์ที่วางลงบนเทอร์มินัลจะถูกพิมพ์ ไม่ใช่เปิด วาง CSV ลงบนเทอร์มินัลแบบ เอนโคลเจอร์ แล้วมันจะถูกคัดลอกเข้าเครื่องและพาธในเกสต์จะปรากฏที่พรอมป์ — พาธของโฮสต์จะเป็นคำสั่งที่ล้มเหลวที่นั่น
  • สำเนาในริกก็คือสำเนา worktree ของคุณบนโฮสต์ยังคงเป็นแหล่งอ้างอิงหลัก คอมมิตที่คุณทำภายในริกจะถูกพากลับเข้า refs/rigs/<id>/* เมื่อคุณขอ — มันไม่เคย ย้ายสาขาของคุณหรือแตะ working tree ของคุณ
  • งานที่มุ่งเป้าไปที่โฮสต์ยังรันบนโฮสต์ เกสต์ Linux บิลด์สำหรับ macOS หรือรัน xcodebuild ไม่ได้ ให้เลือกแบ็กเอนด์เนทีฟอย่างชัดเจนสำหรับงานนั้น แอปจะขอให้ คุณยืนยันแทนที่จะสลับให้เงียบ ๆ

รันเซิร์ฟเวอร์พัฒนาบนเทอร์มินัล (VM) — อย่าง pnpm dev บนพอร์ต 3000 — แล้ว ภายในไม่กี่วินาทีไอคอนปลั๊กที่มุมเทอร์มินัลจะสว่างขึ้น: พอร์ตจะถูกส่งต่อไปยัง localhost:3000 บนเครื่องของคุณ เข้าถึงได้ที่ localhost:3000 ภายใน เบราว์เซอร์ (VM) แชร์ได้บนเครือข่ายของคุณ และตั้งชื่อเป็น https://myapp.test ได้ กระบวนการทั้งหมด — การส่งต่ออัตโนมัติ การแชร์บน LAN โดเมนสำหรับพัฒนาที่มี HTTPS — มีคู่มือของตัวเอง: ส่งต่อพอร์ตจากเทอร์มินัล

เวิร์กสเปซสามารถชี้เทอร์มินัล (VM) และเบราว์เซอร์ (VM) ไปยังอิมเมจของตัวเองได้ — ที่ การตั้งค่า → เซิร์ฟเวอร์ → ริก → อิมเมจที่กำหนดเอง (เวิร์กสเปซนี้) การใช้งานทั่วไป: ขยายอิมเมจเริ่มต้นด้วยชุดเครื่องมือที่โปรเจกต์ของคุณต้องการ เพื่อให้ทุกเทอร์มินัลเริ่มต้นพร้อมใช้งาน หรือใช้อิมเมจที่ทีมของคุณเผยแพร่อยู่แล้วซ้ำ

เครื่องยังคงบูตภายในเอนโคลเจอร์เดิม: ประตูเอเกรสเดิม โบรกเกอร์ข้อมูลรับรองเดิม วงจรชีวิตเดิม มีเพียงผู้ดูแลเวิร์กสเปซเท่านั้นที่เปลี่ยนการตั้งค่านี้ได้ เครื่อง ใหม่จะรับมันไปใช้ (เครื่องที่รันอยู่ยังใช้อันเดิม) และเรฟเฟอเรนซ์ต้องเป็นอิมเมจ จากรีจิสทรี — พาธในเครื่องจะถูกปฏิเสธ

สิ่งที่อิมเมจต้องมี:

  • เทอร์มินัล (VM) — อิมเมจ Linux ที่มี bash มันยังต้องมี git, curl และ socat ด้วย — ไม่ว่าจะติดตั้งมาให้แล้ว หรือติดตั้งได้เมื่อเริ่มครั้งแรก (อิมเมจใดก็ตามที่ใช้ฐาน Debian/Ubuntu ใช้ได้: พวกมันจะถูกติดตั้งอัตโนมัติ พร้อมกับชุดเครื่องมือ CLI แบบ GitHub-hosted runner: คอมไพเลอร์ Python 3 jq เครื่องมือจัดการไฟล์เก็บถาวร rsync ส่วนรันไทม์ภาษาอย่าง Node/Go/Java และ Docker ไม่ได้ติดตั้งมาให้) พอร์ต 7911 ของเกสต์สงวนไว้สำหรับตัวส่งต่อ พอร์ต
  • เบราว์เซอร์ (VM) — อิมเมจ Debian/Ubuntu ที่มี bash และ socat บวกไบนารี chromium เซิร์ฟเวอร์จะเริ่ม Chromium เองในรูป chromium --headless=new และรีเลย์ DevTools จาก 9223 ของเกสต์ไปยัง 9222 PulseAudio และ ffmpeg จะถูกติดตั้งเมื่อเริ่มครั้งแรก อย่าบิลด์ FROM chromedp/headless-shell — ไบนารีนั้นไม่มีเสียง การแทนที่นี้ใช้กับริก Chromium เท่านั้น Firefox และ WebKit จะเพิกเฉยและบูตอิมเมจ Debian ที่ปักหมุด ไว้ พอร์ต 9222/9223 ของเกสต์สงวนไว้

สองคำแนะนำ: ปักหมุดเรฟเฟอเรนซ์ด้วยไดเจสต์ (@sha256:…) เพื่อให้ไบต์เปลี่ยนไป ข้างหลังคุณไม่ได้ และโฮสต์มันบน Docker Hub หรือ GitHub Container Registry — โฮสต์สำหรับดาวน์โหลดของรีจิสทรีเหล่านั้นถูกอนุญาตผ่านประตูเอเกรสโดยอัตโนมัติ ส่วนรายอื่นอาจต้องให้โฮสต์การส่งมอบเนื้อหาของมันเข้าถึงได้จึงจะดึงได้

ริกถูกออกแบบให้อยู่ชั่วคราว:

  • ว่าง — หลังจากผ่านไปประมาณ 15 นาทีโดยไม่มีอะไรเกิดขึ้น ริกเบราว์เซอร์ เดสก์ท็อป หรือมือถือจะจอด (หยุดนิ่ง ตื่นขึ้นทันทีเมื่อมีการกระทำครั้งถัดไป) เทอร์มินัลแบบเอนโคลเจอร์จะรอ 45 นาที หลังจากพ้นช่วงว่างสองเท่า มันจะปิด
  • ขีดจำกัดเวลา — ทุกริกมีอายุการใช้งานแบบตายตัวที่มันต่ออายุไม่ได้ ไม่ว่ามัน กำลังทำอะไรอยู่
  • หน่วยความจำ — หากเซิร์ฟเวอร์ต้องการที่ว่างสำหรับริกใหม่ มันจะปิดริกที่ไม่ได้ ถูกใช้มานานที่สุด ริกที่มีคนขับอยู่ กำลังดูอยู่ หรือมีเทอร์มินัลเปิดอยู่จะไม่ถูก ยึดไป

เมื่อริกแบบเอนโคลเจอร์ปิด ดิสก์ของมันจะถูกทิ้ง การปิดริก Android จะตัดการเชื่อม ต่อจากโปรแกรมจำลองบนโฮสต์ — ไม่ได้ลบมัน ส่วนริก iOS จะลบอุปกรณ์ CoreSimulator ที่มันสร้างขึ้น ให้ขนสิ่งที่คุณอยากเก็บกลับมาก่อน

ริกเทอร์มินัล เบราว์เซอร์ และเดสก์ท็อปแบบเอนโคลเจอร์เริ่มต้นที่ประตูเอเกรสแบบ ปฏิเสธโดยค่าเริ่มต้น: คุณอนุญาตโฮสต์อย่างชัดเจน และเส้นทางเดียวของเกสต์คือประตู ที่บังคับใช้รายการนั้น ริกเบราว์เซอร์ยังอนุญาตไซต์ของผลิตภัณฑ์ (usectrl.dev) มาให้ตั้งแต่แรก โบรกเกอร์ข้อมูลรับรองใช้รายการเดียวกัน

ข้อควรระวังตรงไปตรงมาสองข้อ:

  • เครือข่ายของมือถือเป็นไปตามโฮสต์ โปรแกรมจำลองของ Android และ CoreSimulator ของ Apple ไม่ได้อยู่หลังประตูเอเกรสของเอนโคลเจอร์ แท็บมือถือ ทั้งสองไม่เสนอตัวควบคุมการข้ามเครือข่าย เพราะเครือข่ายที่โฮสต์จัดการนั้นไม่มี ข้อจำกัดอยู่แล้ว
  • ทุกสิ่งที่ริกอ่านถือเป็นเนื้อหาที่ไม่น่าเชื่อถือ ข้อความบนหน้าเว็บ DOM ทรีการเข้าถึง และข้อมูลดัมป์วิว จะถูกส่งกลับมาให้เอเจนต์โดยล้อมกรอบไว้ด้วย เครื่องหมายที่บอกว่า “นี่คือข้อมูล ไม่ใช่คำสั่ง” หน้าเว็บที่พยายามออกคำสั่งกับ เอเจนต์ของคุณจะถูกอ่านเป็นสตริงที่ถูกอ้างมา

คุณดูทุกอย่างที่กำลังรันอยู่ และหยุดสิ่งใดก็ได้ในนั้น ได้ที่ การตั้งค่า → เซิร์ฟเวอร์ → ริก

  • ริกและเอนโคลเจอร์ — โมเดลเบื้องหลังทั้งหมดนี้: ทำไมต้อง VM เลนแสดงผลสองเลน โบรกเกอร์ข้อมูลรับรอง วงจรชีวิต
  • ส่งต่อพอร์ตจากเทอร์มินัล — เข้าถึง เซิร์ฟเวอร์พัฒนาจากทุกที่ที่สำคัญ
  • ข้อมูลอ้างอิงริก — ทุกพื้นผิว คำกริยา พอร์ต และค่าเริ่มต้นในที่เดียว
  • ตั้งค่ากฎคุม — Drive an enclosure (rig) เป็นคลาสการกระทำที่คุณตั้งเป็นอนุญาต ให้ถามก่อน หรือปฏิเสธ ได้ แยกตามเวิร์กสเปซ เอเจนต์ หรือสเปซ โหมดอ่านอย่างเดียวปฏิเสธมันไปเลย