feat(desktop): show cron runs in Sessions by default - #71458
Open
dschnurbusch wants to merge 1 commit into
Open
Conversation
Collaborator
Related: #39362 and #42294 covered earlier desktop cron-session filtering/inbox approaches. This PR has a distinct default-visible policy plus profile-qualified controls and API support, so it is not a duplicate. Maintainer input is needed on the Sessions default. |
Contributor
|
Thanks for the focused implementation and the profile-qualified handling. Problems
Suggested changes
Automated hermes-sweeper review. |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
Why default-visible?
Hermes currently optimizes for a valid concern: scheduled jobs can fire in bursts, and those runs should not drown out ordinary conversations. Keeping cron acquisition in its own bounded slice is the right architectural response to that concern.
Hiding every cron transcript behind the Cron Jobs submenu is not the right product default, though. In professional-service work, cron output is often closer to an employee's work queue than scheduler exhaust. A lawyer, accountant, consultant, or other human-in-the-loop operator may need to read the result, answer a question, correct course, or continue the session. For these workflows, the cron burst is not noise; it is the primary interaction surface. Reminder-style jobs make this especially clear: an agent may schedule a future re-check, and the resulting transcript is precisely what the user must notice.
When those runs are only discoverable by opening Cron Jobs and inspecting individual jobs, the user must remember that a result exists, remember or guess which job produced it, and search across what may be dozens or hundreds of jobs. There is currently no inbox-level notification that compensates for that hidden placement.
This PR treats cron output as first-class session work product while preserving control over noisy automation:
The default matters. An opt-in assumes the user knows in advance which agent-created jobs will later require interaction. An opt-out instead favors discoverability, then lets the user suppress automation that proves unhelpful in the inbox.
This builds on the time-based Sessions grouping already landed in #70822. Visible cron runs participate in the same chronology rather than creating another navigation silo.
Implementation
cron.started_at, and feed the result into the existing date-grouping renderer from Sidebar date dividers, growing pinned section, and opt-in stale-session auto-archive #70822.hermes.desktop.cronJobsHiddenFromSessions.v1. Entries are collision-safe JSON tuples of[normalizedProfile, jobId]; malformed entries are ignored.The 500-row hidden-job window is intentionally bounded. It avoids a per-job request fanout or a new backend filtering API in this focused PR; reaching that cap is represented conservatively as
N+with the existing Load More affordance.Test plan
git diff --checkpassed before and after the cherry-pick.Scope
This is a focused product PR extracted from the earlier experiment in #42294. It intentionally does not include that branch's broader profile/session identity audit or unrelated navigation changes.
Related PR #62247 keeps
no_agentcron runs out of the sidebar while repairing their run history. This PR proposes the opposite product default for the Sessions feed, but preserves the same anti-starvation concern through a separate bounded cron slice and per-job opt-outs.