github →

New request

#3460: Improve scheduled job output UX: surface cron runs in Chat

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.

Issue

Summary

Scheduled job / cron outputs are currently too hidden in Hermes WebUI. The main place to review them appears to be under Tasks → Runs, which works as an audit/debug view but does not match how users naturally consume and act on scheduled outputs.

For user-facing jobs such as morning briefings, reminders, deal alerts, or email/calendar summaries, the output should appear directly in the Chat workflow where the user can immediately respond, create tasks, ask follow-up questions, or continue the conversation from the scheduled output.

This issue proposes making scheduled outputs first-class Chat items while keeping Tasks → Runs as the audit/debug/history surface.


Problem

Current workflow:

  1. User creates a scheduled job / cron task.
  2. Job runs in the background.
  3. Output is primarily discoverable under Tasks → Runs.
  4. To action the output, the user has to leave the normal chat flow.
  5. The run feels like a log entry rather than a message from Hermes.

This makes user-facing scheduled jobs less useful than they should be.

A morning briefing or reminder should feel like a message arriving from Hermes, not like a log entry hidden in a task history panel.

Example:

A weekday morning briefing includes calendar items, daycare/school/YMCA reminders, and a few tasks to complete. The natural next action is to reply, create a task, draft a message, or ask a follow-up question — all of which are chat-like interactions.


Proposed solution: Scheduled outputs appear in Chat

Concept

Treat user-facing scheduled outputs as first-class Chat items.

A cron run would create or update a chat-style thread/message, for example:

  • Morning Briefing appears in the Chat sidebar as a new/attention-marked item.
  • The latest run appears as a Hermes message in the main chat pane.
  • The message includes action buttons such as:
    • Draft reply
    • Create task
    • Mark done
    • View raw run
    • Run again
  • The right-side panel can show cron job context:
    • schedule
    • last run
    • delivery target
    • recent runs

Why this is better

This matches the user’s mental model: scheduled briefings and alerts are messages from Hermes. The Chat area is already where users ask follow-up questions and take action.

Tasks → Runs should remain available, but as the audit/debug/history view rather than the primary consumption surface.

Suggested behavior

When a scheduled job runs:

  1. Save the normal run record under Tasks → Runs.
  2. If the job has user-facing delivery enabled, also surface the output in Chat.
  3. Mark the chat item as unread/new if the user has not seen it.
  4. Let the user reply directly to the output.
  5. Attach job metadata to that chat context so Hermes knows the user is acting on a specific scheduled run/job.

Example UI state

Chat sidebar:

Chat
├─ Morning Briefing       Scheduled output · new
├─ Deal Watchlist         Scheduled output
├─ Tom ↔ Hermes           Normal chat
└─ Calendar MCP Fix       Normal chat

Main chat:

Hermes · scheduled run
Scheduled output · Morning Briefing · ran 6:30am

Good morning, Tom

Today
- 9:00am — Client follow-up block.
- 3:30pm — Daycare pickup; bring labelled spare hat.

Suggested actions
- Draft reply to YMCA form before Friday.
- Create task to confirm tomorrow’s meeting agenda.
- Check Harmony daycare note about missing labelled item.

[Draft reply] [Create task] [Mark done] [View raw run]

Right panel:

Morning Briefing
Tabs: Files | Cron job

Job status
- Schedule: Weekdays 6:30am
- Last run: completed
- Delivery: Chats inbox

Recent runs
- Today 6:30am · completed
- Yesterday 6:30am · completed

Acceptance criteria

A good implementation should satisfy most or all of the following:

  • User-facing scheduled outputs can be surfaced in Chat, not only under Tasks → Runs.
  • Tasks → Runs remains available as the audit/debug/history surface.
  • New scheduled outputs are visually obvious, e.g. unread badge, attention marker, or sidebar item state.
  • User can reply to a scheduled output in context.
  • Hermes can tell which scheduled job/run the user is responding to.
  • User can open the raw run log from the chat output.
  • User can run the job again from the output context.
  • Existing scheduled job management/history remains accessible from Tasks → Runs.

Recommendation

Scheduled outputs should appear where users already interact with Hermes: Chat.

The important product distinction is:

  • Tasks → Runs = audit trail, raw logs, debugging, job management.
  • Chat = user-facing output, follow-up, and action.
Assessmentadvisory
feature●●● hard80% confidence

Cross-cutting change to inject scheduled job outputs into chat sessions requires new backend message plumbing and frontend rendering.

Likely files
  • api/routes.py
  • api/jobs.py
  • static/js/chatCanvas.js
  • static/js/sessionsSidebar.js
  • static/js/composer.js
  • tests/test_jobs.py
  • tests/test_chat_smoke.py
Create the request

This opens a fresh agent run and a draft PR for issue #3460.

Cancel