This repository has been archived on 2026-10-08 . You can view files and clone it. You cannot open issues or pull requests or push a commit.
1d611ee402ad8d59770d5e81162ed04f2b567267
awaiting_input walked `children` to the deepest descendant, guessing that the newest child is the foreground one. An agent that starts a background helper and then blocks on read landed on the helper, so a session genuinely waiting on the user was reported as idle. tpgid in /proc/<pid>/stat is the kernel's own answer — the foreground process group of the controlling terminal — and the group leader's pid is the group id. One field read replaces a 64-deep walk. Adds tests/activity.rs: the first end-to-end coverage of this pipeline, which had none. The background-helper case fails against the old walk and passes against tpgid. Also makes the attach handler subscribe before upgrading. Checking existence and then subscribing inside the callback left a window for the liveness watcher to reap in between, which attach::serve compensated for with a clean close; acquiring the subscription up front means the 404 and the subscription are one step and the window does not exist. Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
Description
No description provided
13 MiB
Languages
Rust
62.2%
TypeScript
22.6%
Kotlin
9.7%
CSS
4.4%
Nix
0.5%
Other
0.5%