close: stop a simulator or emulator that the session's open booted
Maintainer thường phản hồi trong vòng 1 ngày
Chưa có ai nhận issue này.
Đánh giá
- Độ khó
- 4/5
- Thời gian dự kiến
- 3-5 ngày
- Mức phù hợp với người mới
- 35/100
- Loại issue
- Tính năng
- Độ rõ ràng
- Khá rõ ràng
- Mức độ hoạt động
- Sôi nổi
- Công nghệ
- android, ios, typescript
- Lĩnh vực
- backend, cli, mobile-dev
Hướng nghiên cứu
Start with markSelectionBootOccurred in packages/device-selection/src/device-selection-resolver.ts to see where the boot fact is set, then trace how the session stores it and where the close path is handled in the daemon. The close help in packages/command-surface/src/management/app.ts and the shutdown policy (ADR 0029) show what else changes. Done means the daemon tests for boot-owned, pre-booted and policy-denied closes pass, and a live open-then-close leaves the device in the expected state. Resolve the open decisions with a maintainer before you start.
Do mô hình lập chỉ mục viết ra từ nội dung của issue.
Mô tả
Purpose
Agents leave local simulators and emulators running after they finish. open boots a stopped device on its own (ensureBootedSimulator and the Android boot path), but close only stops the device with an explicit --shutdown. An overnight agent run on one host left many booted simulators behind. In that run, 42 close requests and zero close --shutdown requests were logged.
The daemon already knows when open booted the device: markSelectionBootOccurred in packages/device-selection/src/device-selection-resolver.ts sets selection.bootOccurred: true. No close or teardown path uses that fact.
The rule is "leave the device as you found it". If a session's open booted a local simulator or emulator, close stops it. If the device was already running, close leaves it running.
Required behavior
- The session records whether its
openbooted the local virtual device. Provider and physical targets never record a boot (this matchesmarkSelectionBootOccurred). - If the session booted the device, plain
closestops it through the same shutdown capability asclose --shutdown. This applies to every local simulator and emulator: iOS, tvOS, visionOS, watchOS, and Android. - If the device was already booted before
open, plaincloseleaves it running. This is the current behavior. close --shutdownkeeps its current meaning: it always stops a local simulator or emulator.- Daemon policy that denies
device-shutdown(ADR 0029) also blocks the implicit stop. In that caseclosesucceeds and reports that the device was kept running. - The
closeresponse reports the implicit stop indata.shutdown, the same as an explicit--shutdown. - A boot-owned device does not keep a warm iOS runner after
close, because the device stops.
Open decisions
- Should there be an opt-out for an agent that booted a device and wants it to stay up (for example
close --keep-device)? A new flag followsdocs/agents/cli-flags.md. - Should graceful daemon shutdown, or session idle expiry, also stop devices that its sessions booted? That would cover agents that never call
close.
Completion conditions
- Daemon tests: a session that booted a simulator or emulator stops it on plain
close. A session on a device that was already booted does not stop it. Policy denial keeps the device running andclosestill succeeds. - Live check on a stopped iOS simulator and a stopped Android emulator:
openthenclose, and the device ends shut down. With a pre-booted device, it ends booted. - Update the help and docs to describe the new default:
closehelp inpackages/command-surface/src/management/app.ts, the lifecycle facts andworkflow/manual-qa/validatetopics insrc/commands/schema/cli-help*.ts,website/docs/docs/sessions.md, and the skills. The interim instructions that tell agents to add--shutdowncan then become plainclose. - Changelog/release note entry for 0.22, because the default changes.
- Ngôn ngữ chính
- TypeScript
- Star
- 5.2k
- Fork
- 359
- Merge trung bình
- 13 giờ 23 phút
- Pull request đã merge (30 ngày)
- 655
Chuẩn bị môi trường
- Không có Dockerfile hay tệp Docker Compose
- Không có mẫu pull request
- Đọc hướng dẫn đóng góp
Bắt đầu từ đâu
- Đọc hết issue, rồi đọc hướng dẫn đóng góp của dự án.
- Bình luận trên issue rằng bạn sẽ nhận — tránh hai người làm cùng một việc.
- Fork repository và làm thay đổi trên một nhánh.
- Mở pull request có tham chiếu số hiệu của issue.
Issue khác của callstack/agent-device
-
iOS alert wait: the last poll can get ~30 ms and turns "no alert" into a failed readCó thể đã có người làm @pcbeingused333 đã nhận 2 ngày trước. Đang mởbug ready-for-agent
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 77/100
callstack/agent-device#4018 ·
Maintainer thường phản hồi trong vòng 1 ngày
-
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 68/100
callstack/agent-device#1869 ·
Maintainer thường phản hồi trong vòng 1 ngày
-
Độ khó 4/5 3-5 ngày Mức phù hợp với người mới 18/100
callstack/agent-device#4179 ·
Maintainer thường phản hồi trong vòng 1 ngày
-
Daemon: refuse leased requests that name no session at request admissionCó thể đã có người làm @airowe đã nhận hôm nay. Đang mởbug ready-for-agent
Độ khó 4/5 3-5 ngày Mức phù hợp với người mới 25/100
callstack/agent-device#4171 ·
Maintainer thường phản hồi trong vòng 1 ngày
-
enhancement
Độ khó 4/5 3-5 ngày Mức phù hợp với người mới 43/100
callstack/agent-device#4110 · 2 bình luận ·
Maintainer thường phản hồi trong vòng 1 ngày
Tất cả issue của callstack/agent-device
Issue tương tự
-
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 72/100
Maintainer thường phản hồi trong vòng 1 ngày
-
ready-for-agent
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 72/100
LucasSantana-Dev/Lucky#2951 ·
Maintainer thường phản hồi trong vòng 1 ngày
-
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 75/100
danielmiessler/LifeOS#2567 ·
Maintainer thường phản hồi trong vòng 9 ngày
-
refactor(react-pi): classify base64 images with core's parseBase64Có thể đã có người làm @jimmyallinai đã nhận hôm nay. Đang mởmaintenance
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 62/100
assistant-ui/assistant-ui#10293 · 2 bình luận · 1 reaction ·
Maintainer thường phản hồi trong vòng 1 ngày
-
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 70/100
brijeshb42/monaco-vim#175 ·