What
The self-hosted runner is the program you run on your own machines to host Claude Code sessions. It can already release a session after the user has been idle for a while. That idle handling has grown.
- Idle limit from Anthropic. When
--release-idle-session-minis not set, the runner can take an idle limit from Anthropic's control plane, Anthropic's managing server. Your own--release-idle-session-minsetting overrides it. A default can also come fromCCR_SHR_IDLE_RELEASE_DEFAULT_MINUTES. - Safety checks. A session is released only if its code checkouts are clean and its folder holds only what the runner put there; sessions with unsaved work are kept. The folder check uses /proc. The check is skipped for sessions that may continue without the user, such as scheduled prompts or teammate agents.
- Turn signal. Session assignments from the server now carry a
turn_signalsaying whose turn it is. The runner logs it, tracks it insessionTurnState, passes it to sessions throughonNoTurnSignal, and clears it on exit. New namesself_hosted_server_idle_limitandself_hosted_turn_signalwere added, along with three constants for a reply-gate policy. - Lost-files mark. A per-session
.disk-markfile lets a session be told if its files were lost. - Help and warnings. Help text now documents
--release-idle-session-min(envSELF_HOSTED_RUNNER_SESSION_IDLE_MS),--hold-idle-file(envSELF_HOSTED_RUNNER_HOLD_IDLE_FILE) and--max-hold-min. The runner warns when--release-idle-session-minis only spaces (read as 0, so idle sessions are kept) or is last with no value (ignored). The settings line notes when the limit was sent by Anthropic's control plane.
Why
If you operate a self-hosted runner, sessions may now be kept alive or released on a schedule Anthropic sets, not only your own. Set --release-idle-session-min if you want to control the limit yourself.
One source agreesOne thing we can check says the same as this entry.
Anthropic's release notes agree
Self-hosted runner: Added a startup warning when --release-idle-session-min is the last argument with no value (still ignored) or has a…