411d9e04a0a2916f28443df3c4211c6aa982ee06
From the combined Ornith guidance (§6). Each session runs in its own process group and is stopped after SESSION_LIMIT_MIN minutes (default 90), killed by group so the cargo it started goes too, never with pkill (titan has no `timeout`, so the limit is plain shell). A task that logs `stopped` gets its own message with the row. Two guards for a trial run: RESUME=1 resumes a session once when it leaves work uncommitted, and SLOTS_URL stops a session when no llama slot has been busy for IDLE_LIMIT_MIN minutes (default 10). Tested against a stub opencode outside a throwaway repository: a clean task, a stopped row, a wrong trailer, an uncommitted session with and without RESUME, a hang past a 1-minute limit (its child process killed with it), and a session with no busy slot for 1 minute. Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
Description
sovereign personal agent harness
4.8 MiB
Languages
Rust
97.6%
Shell
1.1%
Python
1.1%
Nix
0.2%