Routines display the raw taskId instead of the description field that already exists
Preflight Checklist
- [x] I have searched existing issues and this hasn't been reported yet
- [x] This is a single bug report (please file separate reports for different bugs)
- [x] I am using the latest version of Claude Code
What's Wrong?
Title: Routines display the raw taskId instead of the description field that already exists
Environment
- Platform: Claude Code desktop app (macOS)
- App version: 1.24012.9
- macOS version: 26.5.2
Description
A scheduled task carries two separate fields:
taskId— a kebab-case machine identifier, also used as the storage directory namedescription— a one-line human-readable summary, editable viaupdate_scheduled_task
The sidebar and the routine detail breadcrumb both render the taskId, mechanically converted to a display string (hyphens to spaces, first letter capitalised). The description is shown only as a secondary field on the detail page and never used as a title.
The result is a title that reads as a machine identifier rather than a name:
| taskId | Displayed as | description field (unused for display) |
| --- | --- | --- |
| me-email-triage | Me email triage | Email triage |
| me-market-monitor | Me market monitor | US market monitor |
| nonce-pr-review-radar | Nonce pr review radar | PR review radar |
Two concrete consequences:
- A namespace prefix cannot be kept out of the title.
me-andnonce-are useful as identifier prefixes — they group tasks and match the directory layout — but "Me email triage" is not how anyone would name that routine. - Acronyms are destroyed. The mechanical capitalisation lowercases everything after the first character, so
nonce-pr-review-radarrenders as "Nonce pr review radar".
Neither is avoidable today, because the only lever on the displayed title is the identifier itself.
Elsewhere in the same sidebar this is handled correctly: session titles are free text, which is why they can read Hub: PR Review. Only routines are forced to display their identifier.
Steps to reproduce
- Create a scheduled task with
taskId: me-email-triageanddescription: Email triage. - Look at the routine in the sidebar and at the detail-page breadcrumb.
Expected behaviour
The routine displays description as its title, falling back to the taskId-derived string when description is empty. The taskId stays the storage key and remains visible where an identifier is appropriate.
Actual behaviour
Both the sidebar and the breadcrumb display the taskId-derived string. description is never used as a title, and there is no other way to set one.
Additional notes
Renaming the storage directory is not a workaround: the registry keeps taskId, path and the schedule independently of the folder, so renaming leaves a dangling path and blanks the description. Changing the identifier requires deleting and recreating the task, which discards its run history.