What
- Session state gained a new
hostScheduledRunboolean field (alongside existingchildSession,claudecode,coworkFrameArtifactsflags), defaulting to false. - A new
CLAUDE_CODE_HOST_SCHEDULED_RUNenvironment variable sets this flag; it's read into app state and passed through several env-passthrough allowlists so it survives subprocess spawns. When set to1, it allows a locally-declaredfireReason(limited to 1-32 lowercase letters/underscores) on a scheduled-trigger task delivery to be honored. - Session-start telemetry now records this flag.
- Scheduled-trigger task notifications, including a sanitized
fireReasonfield, are now only sent when the process is a genuine host-scheduled run — not a child session and not an interactiveclaudesession.
Why This prevents a regular interactive or child session from claiming to be a "scheduled run" and firing scheduled-trigger notifications it shouldn't be able to send; only a process the host explicitly started for a scheduled run can claim that status.
Names in the bundleCLAUDE_CODE_HOST_SCHEDULED_RUN
Documented inclaude-code/agent-sdk/typescript
One source agreesOne thing we can check says the same as this entry.
The name it cites is new in this build
New in this build: CLAUDE_CODE_HOST_SCHEDULED_RUN