runcloud 0.1.118 → 0.1.120
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/version.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
export const CLI_VERSION = '0.1.
|
|
1
|
+
export const CLI_VERSION = '0.1.120';
|
package/package.json
CHANGED
|
Binary file
|
|
@@ -12,11 +12,17 @@ Keep this skill as a router. Do not duplicate operational instructions here.
|
|
|
12
12
|
iframe embeds, Metro tunnels, mobile assets, and mobile session cleanup.
|
|
13
13
|
- Use `$run-cloud-sandboxes` for microVM sandboxes, command execution, files,
|
|
14
14
|
snapshots, images, SSH, secrets, public ports, desktop automation, resource
|
|
15
|
-
sizing, and sandbox
|
|
15
|
+
sizing, sandbox cleanup, and investigating a broken sandbox.
|
|
16
16
|
- Use both focused skills when a workflow genuinely combines mobile sessions
|
|
17
17
|
and sandboxes. Follow each skill's authentication, security, metering, and
|
|
18
18
|
cleanup guardrails.
|
|
19
19
|
|
|
20
|
+
Symptom phrasing ("is down", "stuck", "hung", "not responding", "why did it
|
|
21
|
+
stop") names no resource, so route on the id in hand: a sandbox id or tag goes to
|
|
22
|
+
`$run-cloud-sandboxes`, a session id to `$run-cloud-ios-simulator`. Each says
|
|
23
|
+
what its own signals do and do not mean, which is the part that cannot be
|
|
24
|
+
guessed from the outside.
|
|
25
|
+
|
|
20
26
|
If the request is ambiguous, infer the product from the resource noun and
|
|
21
27
|
desired outcome. Ask only when choosing the wrong product would materially
|
|
22
28
|
change the work.
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
---
|
|
2
2
|
name: run-cloud-sandboxes
|
|
3
|
-
description: Operate run.cloud microVM sandboxes with the CLI or TypeScript SDK. Use for creating isolated compute, running commands, moving files, managing snapshots or images, exposing ports, using SSH or desktop automation, attaching secrets, sizing resources, or cleaning up sandboxes.
|
|
3
|
+
description: Operate and debug run.cloud microVM sandboxes with the CLI or TypeScript SDK. Use for creating isolated compute, running commands, moving files, managing snapshots or images, exposing ports, using SSH or desktop automation, attaching secrets, sizing resources, or cleaning up sandboxes. Also use to investigate a sandbox that is down, stuck, hung, unreachable, or not responding, to find out why one stopped or was destroyed, or to trace a sandbox from a log line by tag.
|
|
4
4
|
---
|
|
5
5
|
|
|
6
6
|
# Operate run.cloud Sandboxes
|
|
@@ -274,6 +274,58 @@ Key names do not match the env vars, and `sops` needs
|
|
|
274
274
|
see the Secrets section of the root `CLAUDE.md`/`AGENTS.md` before concluding
|
|
275
275
|
you lack access.
|
|
276
276
|
|
|
277
|
+
## What the Signals Mean When a Sandbox Misbehaves
|
|
278
|
+
|
|
279
|
+
`state` describes the microVM lease, not the workload inside it. A sandbox whose
|
|
280
|
+
process died an hour ago still reads `running`, so `running` on its own never
|
|
281
|
+
means healthy.
|
|
282
|
+
|
|
283
|
+
The console log is one file per sandbox carrying boot output, everything `exec`
|
|
284
|
+
printed, and lifecycle markers, interleaved in the order they happened.
|
|
285
|
+
`runcloud sandbox logs <id>` serves it, and it survives destroy: the host renames
|
|
286
|
+
the file rather than deleting it, so a post-mortem read works on a sandbox that
|
|
287
|
+
no longer exists.
|
|
288
|
+
|
|
289
|
+
Three limits that change what you can conclude from it:
|
|
290
|
+
|
|
291
|
+
- A destroyed sandbox's console gets removed after 14 days (2 weeks), so a
|
|
292
|
+
post-mortem has a deadline. A running or paused sandbox's log is never removed,
|
|
293
|
+
however long it has sat quiet.
|
|
294
|
+
- It is capped at 10 MiB and trimmed to the newest 5 MiB, so on a chatty workload
|
|
295
|
+
early output is gone, not merely paged out. An empty-looking start is a trim,
|
|
296
|
+
not proof the process printed nothing.
|
|
297
|
+
- `systemd-run` output goes to the journal, not the console, so those units never
|
|
298
|
+
appear here at all. Read `journalctl -u <unit>` inside the sandbox instead.
|
|
299
|
+
|
|
300
|
+
### Lifecycle markers
|
|
301
|
+
|
|
302
|
+
The host writes a marker into the console on every transition:
|
|
303
|
+
|
|
304
|
+
```
|
|
305
|
+
--- sandbox destroyed: timeout-sweep at 2026-08-05T11:02:11Z ---
|
|
306
|
+
```
|
|
307
|
+
|
|
308
|
+
The events are `created`, `paused`, `resumed`, `stopped`, and `destroyed`. The
|
|
309
|
+
token after the colon is the control plane's actor, written verbatim so it can be
|
|
310
|
+
matched rather than parsed; the sentence around it is not a contract. Only stops
|
|
311
|
+
carry a reason, so `created` and `resumed` appear without one.
|
|
312
|
+
|
|
313
|
+
| actor | what it means |
|
|
314
|
+
| --- | --- |
|
|
315
|
+
| `timeout-sweep` | hit its `--timeout` lifetime cap. Not a crash |
|
|
316
|
+
| `idle-sweep` | idle-paused after `--idle-pause` seconds. Resumable, and not a failure |
|
|
317
|
+
| `retention-sweep` | destroyed after its 48h parked window expired |
|
|
318
|
+
| `pause` `resume` `stop` `archive` `restore` | a caller requested exactly this |
|
|
319
|
+
| `api` `api-force` | a caller destroyed it. `api-force` bypassed a wedged guest |
|
|
320
|
+
| `health-sweep` `host-reconcile` `reap-sweep` | the platform reclaimed it |
|
|
321
|
+
| `boot-failure` `placement-timeout` `request-timeout` `scheduler` | it never started. Capacity or image, not the workload |
|
|
322
|
+
| `image-built` `image-build-failure` | an async image build finished or failed |
|
|
323
|
+
| `startup-recover` `volume-lease-invalid` `replica-fork-resume-failure` | platform recovery paths |
|
|
324
|
+
|
|
325
|
+
A sandbox that failed before it ever reached a host has no console, because the
|
|
326
|
+
file is created at boot. Those carry a `Last error` row on
|
|
327
|
+
`runcloud sandbox get` instead, which is then the only record of the cause.
|
|
328
|
+
|
|
277
329
|
## Guardrails
|
|
278
330
|
|
|
279
331
|
- Destroy every sandbox created during a task unless the user explicitly asks
|
|
@@ -1,4 +1,4 @@
|
|
|
1
1
|
interface:
|
|
2
2
|
display_name: "Run Cloud Sandboxes"
|
|
3
|
-
short_description: "Operate secure remote microVM sandboxes"
|
|
4
|
-
default_prompt: "Use $run-cloud-sandboxes to create, operate, and clean up run.cloud sandboxes."
|
|
3
|
+
short_description: "Operate and debug secure remote microVM sandboxes"
|
|
4
|
+
default_prompt: "Use $run-cloud-sandboxes to create, operate, debug, and clean up run.cloud sandboxes."
|