You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
{{ message }}
Repository navigation
Commit 4e58fc9
Browse filesBrowse the repository at this point in the historyBrowse files
|`PAW_SANDBOX__TTL_SECONDS`|`300`| idle sandbox reaper TTL (never applied to a sandbox with a live run) |
364
+
|`PAW_SANDBOX__REAP_INTERVAL_SECONDS`|`60`| how often the background reaper sweeps; `0` disables it |
365
+
366
+
The three budget vars are spawn-time arguments to `harness serve`, not
367
+
fields on the submit op: the harness refuses to take a budget off the
368
+
wire so a run cannot raise its own ceiling. Each is omitted from the
369
+
command line entirely when unset, so the default is an unbounded run.
345
370
346
371
### Docker runner
347
372
@@ -383,8 +408,16 @@ groups use a double underscore (e.g. `PAW_HARNESS__CMD`).
383
408
| var | default | note |
384
409
|---|---|---|
385
410
|`PAW_SHUTDOWN_DRAIN_SECONDS`|`25`| on SIGTERM, seconds to let in-flight runs finish before exit |
411
+
|`PAW_CANCEL_GRACE_SECONDS`|`10`| after a *user* cancels, how long to wait for the harness to honour it before destroying the sandbox; `0` disables escalation |
386
412
|`PAW_INSTANCE_ID`| host+pid | this instance's id (set to pod/task name); scopes run reconciliation |
387
413
414
+
`PAW_CANCEL_GRACE_SECONDS` is a recovery path, not a run budget: it is
415
+
armed only by an explicit cancel request, never by a timer. The
416
+
protocol `cancel` is cooperative, so a run wedged in an uninterruptible
417
+
operation never reaches the check — and while its row stays `running`
418
+
the partial unique index locks that conversation out of new runs.
419
+
Escalation closes the sandbox so the run's own worker can finalize it.
0 commit comments