fix(gateway): make bg-process reset TTL configurable + surface session-scoped processes
Follow-up to the cherry-picked #29212 (#29177): - Promote the 24h stale-process threshold to config.yaml (session_reset.bg_process_max_age_hours) instead of a hardcoded constant. 0 disables the cutoff (legacy: any live process blocks reset). Wired through GatewayConfig.default_reset_policy in gateway/run.py. - Bug 2: process(action=list) now resolves the gateway session_key from the contextvar and surfaces session-scoped background processes (a forgotten preview server under a different task), flagged session_scoped — so the agent/user can discover and kill the blocker. Previously the task-scoped list returned [] and the blocker was invisible. - Tests: config round-trip for the new field, cross-task list visibility. - Docs: messaging session-reset section.
This commit is contained in:
parent
33d8b66d5b
commit
a1ac6baac4
6 changed files with 101 additions and 13 deletions
|
|
@ -198,6 +198,15 @@ Sessions reset based on configurable policies:
|
|||
| Idle | 1440 min | Reset after N minutes of inactivity |
|
||||
| Both | (combined) | Whichever triggers first |
|
||||
|
||||
A live background process (started with `terminal(background=true)`) normally
|
||||
protects its session from resetting so output isn't lost. To stop a forgotten
|
||||
process — say a preview server — from pinning a session open forever, a
|
||||
background process older than `bg_process_max_age_hours` (default **24**) no
|
||||
longer blocks reset. The process is **not** killed, only ignored by the reset
|
||||
guard. Set it to `0` to disable the cutoff (any live process blocks reset, the
|
||||
old behavior), or raise it if you run legitimate multi-day jobs whose liveness
|
||||
should keep the conversation open.
|
||||
|
||||
Configure per-platform overrides in `~/.hermes/gateway.json`:
|
||||
|
||||
```json
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue