Routine-triggered sessions never appear in the desktop app sidebar
Summary
Sessions started by a Routine never appear in the desktop app's sidebar. They surface only as cards on the Home screen while in Needs input state, and disappear permanently once the approval is answered. The mobile app lists them correctly, so the data reaches the client — the desktop list is filtering them out.
The practical effect is that a routine run which completes without ever needing approval is invisible on desktop. There is no way to discover that it ran, or to read what it reported.
Environment
- Claude Code desktop app on Windows 11
- CLI version 2.1.221
- ~25 local routines configured under
~/.claude/scheduled-tasks/
Reproduction / evidence
Observed with 13 concurrent local sessions on one machine:
| Origin | Count | Listed in sidebar Working/Completed |
|---|---|---|
| First prompt typed by the user | 7 | 7 of 7 |
| Started by a routine | 6 | 0 of 6 |
The split is exact. The distinguishing property is that routine-started sessions open with a first user message of the form:
<scheduled-task name="v2lh-soak-morning-check" file="...">
All six routine sessions were live processes with valid entries in ~/.claude/sessions/*.json (entrypoint: claude-desktop) and active transcripts in ~/.claude/projects/**/*.jsonl. They appeared normally in the iOS app's session list, including their titles and connection state.
At the moment of testing, three of the six were blocked on a tool approval and were visible on the desktop Home screen. The other three had reached stop_reason: end_turn, had written full reports, and were visible nowhere in the desktop UI.
Impact
Three completed routine runs had produced findings that were unreachable from the desktop app:
- a soak check that finished cleanly — idle and unread for 11 hours
- a morning check reporting
Bottom line: nominal - an expiry-split check reporting that the logic under test was never actually exercised because every entry was blocked upstream by a regime gate
That last one is an actionable result about a trading strategy that would simply have expired unseen. For anyone using routines for unattended monitoring, results that are only visible if the run happens to pause for approval make the feature unreliable.
The Routines page does not close this gap — it lists routine definitions and next-run times only, with no run history and no link to past runs.
Requested fix
Either of:
- Include routine-triggered sessions in the sidebar's Working / Completed lists (ideally distinguishable, e.g. a "routine" badge), or
- Add a run history to each routine's detail page on the Routines screen, linking to each run's transcript.
Option 2 alone would be sufficient, but option 1 matches where users already look.
Related
Retention is a compounding factor: cleanupPeriodDays defaults to 30, so transcripts of these invisible runs are deleted after a month. A user who never saw a routine's output has no signal that it is about to be discarded.
This issue has 1 comment on GitHub. Read the full discussion on GitHub ↗