New request
#2841: Feature request: show cron job output as sessions in the WebUI sidebar
We'll provision a sandbox, run an agent against the issue, and open a draft PR. You can pull the branch and iterate from there.
Problem
Cron jobs produce useful output (knowledge base archiving, daily reminders, skill audit reports, etc.), but their sessions are hidden from the WebUI sidebar by multiple filtering layers:
show_cli_sessionssetting defaults toFalse(api/config.py:~4347)- Even when
show_cli_sessionsis enabled,_hide_from_default_sidebar()(api/models.py:1887) explicitly hides sessions withsource='cron' - The dedup merge in
api/routes.py:4076applies_cron_hide(alias of_hide_from_default_sidebar) as an additional filter
Users can see cron output via the Tasks panel (click a job -> view run history), but cannot open it as a proper conversation in the Chat sidebar.
Suggested Solution
Add a dedicated show_cron_sessions setting (default: False) that controls whether cron job sessions appear in the Chat sidebar as importable conversations, independent of show_cli_sessions.
Backend changes
api/config.py: Add"show_cron_sessions": Falseto default settingsapi/models.pyorapi/agent_sessions.py: Modify the cron session filtering to respect the new settingapi/routes.py: In the session merge logic, include cron sessions from CLI state.db whenshow_cron_sessionsis True, bypassing_cron_hidefor those sessions
Frontend changes
static/index.html: Add a checkbox in Settings -> Preferences (alongside the existing "Show non-WebUI sessions" toggle)static/panels.js: Wire the checkbox to the settings save/load flowstatic/i18n.js: Add i18n keys for the new setting
Code pointers
| Layer | File | Line |
|---|---|---|
| Cron session hidden from sidebar | api/models.py:_hide_from_default_sidebar() | ~1887 |
| Cron session filtered from dedup merge | api/routes.py:deduped_cli | ~4076 |
show_cli_sessions default value | api/config.py | ~4347 |
| Existing checkbox reference | static/index.html | ~1156 |
Workaround
Users can currently go to Settings -> Preferences and enable "Show non-WebUI sessions", which pulls cron sessions from state.db. However, they remain subject to _hide_from_default_sidebar() filtering. Some cron sessions may appear if they were previously imported as WebUI sessions or have sufficient user message count to pass is_cli_session_row_visible().
Adds a user preference and end-to-end filtering logic to surface cron job sessions in the chat sidebar.
- api/config.py
- api/models.py
- api/routes.py
- api/agent_sessions.py
- static/index.html
- static/panels.js