Repository navigation
Conversation
Split /seer/automations/ into a shared page shell with Automations and Runs tabs. The existing run list moves to the Runs tab at /seer/automations/runs/, and the Automations tab at /seer/automations/ is blank for now.
Test the Automations page title, tab links, and selected tab, and that /seer/automations/runs/ matches the runs route.
Show a responsive grid of linked cards on the Automations tab, with placeholder titles and descriptions for now. Also add the workflow configs response type and query that the cards will use.
…page Set Tabs to size sm and render the active tab label bold, keeping the tab's selected color.
Build Automations tab cards from the workflow configs response, after two placeholder cards. Cards show a title, description, next-run or trigger tag, usage estimates, and the projects they cover. Add TODOs to extend run types and STRATEGY_META with the remaining strategies.
📊 Type Coverage Diff
🔍 4 new type safety issues introducedType assertions (
This is informational only and does not block the PR. |
Increase card padding and spacing in the card's bottom group, and reword the Agentic Triage placeholder description.
…run tooltip Drop the disabled link around each card, which blocked hover and kept the next-run time tooltip from opening, and add a Next run header to that tooltip.
Test placeholder-only rendering without seer-automations, cards built from workflow configs (titles, descriptions, project coverage, next run tag), and getNextUpdate across schedule and day rollover cases.
|
🚨 Warning: This pull request contains Frontend and Backend changes! It's discouraged to make changes to Sentry's Frontend and Backend in a single pull request. The Frontend and Backend are not atomically deployed. If the changes are interdependent of each other, they must be separated into two pull requests and be made forward or backwards compatible, such that the Backend or Frontend can be safely deployed independently. Have questions? Please ask in the |
Flush pending timers inside act() before restoring real timers, which resolves the require-fake-timer-cleanup violations and removes their suppression entry.
Pass each config's enabled state to its card, and show a warning Paused tag in place of the schedule or trigger tag when it is disabled.
Show the first 3 project slugs with a +N more tooltip for the rest, and let long slugs wrap instead of overflowing the card.
There was a problem hiding this comment.
Cursor Bugbot has reviewed your changes and found 1 potential issue.
❌ Bugbot Autofix is OFF. To automatically fix reported issues with cloud agents, enable autofix in the Cursor dashboard.
Reviewed by Cursor Bugbot for commit 2f126c9. Configure here.
| '+%s more', | ||
| '+%s more', | ||
| projectSlugs.length - MAX_VISIBLE_PROJECTS | ||
| )} |
There was a problem hiding this comment.
Overflow counts disagree
Low Severity
ProjectList treats maxVisibleProjects as a slot budget and reserves one slot for its overflow badge, so four or more projects render two avatars plus +2 while the slug line still lists three names plus +1 more. The shared MAX_VISIBLE_PROJECTS cap therefore shows two different remainder counts on the same card.
Reviewed by Cursor Bugbot for commit 2f126c9. Configure here.
Move the tokens/cost line into the card's main section so the projects row stands alone at the bottom.
|
|
||
| # Agent Interfaces | ||
| /static/app/views/investigations/ @getsentry/agent-interfaces-sentry-frontend | ||
| /static/app/views/seerWorkflows/ @getsentry/agent-interfaces-sentry-frontend |
There was a problem hiding this comment.
I think this will make you/me/tony unable to stamp future PRs for this lol
| /** | ||
| * Shown in place of the "Next run" tag, e.g. for automations triggered by events | ||
| */ | ||
| subtitleOverride?: {icon: React.ReactNode; text: string}; |
There was a problem hiding this comment.
nit: I would keep display fields like this out of the data model so that the component itself can make the display decision based on the data. e.g. this could be handled by having an automation type (scheduled vs triggered)
| } | ||
|
|
||
| const SOURCE_LABELS: Record<WorkflowRunSource, string> = { | ||
| cron: 'Automated', |


Splits the Seer Automations page into two tabs and starts the automation configuration list.
/seer/automations/runs/. The Automations tab, at/seer/automations/, is the default.Behind the existing
seer-automationsflag.