-
-
Notifications
You must be signed in to change notification settings - Fork 4.6k
feat(autofix): add UI for explorer-backed agent #104618
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Conversation
aliu39
left a comment
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
one sec doing a last safety check of prod seer drawer changes
| aiConfig: ReturnType<typeof useAiConfig>; | ||
| } | ||
|
|
||
| function LegacySeerDrawer({group, project, event, aiConfig}: LegacySeerDrawerProps) { |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
how about ProdSeerDrawer? may not be legacy/deprecated for a while
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
well both are in prod no
| const {runState} = useExplorerAutofix(group.id, {enabled: isExplorerEnabled}); | ||
| const explorerArtifacts = useMemo( | ||
| () => (isExplorerEnabled ? getArtifactsFromBlocks(runState?.blocks ?? []) : {}), | ||
| [isExplorerEnabled, runState?.blocks] | ||
| ); |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
| const {runState} = useExplorerAutofix(group.id, {enabled: isExplorerEnabled}); | |
| const explorerArtifacts = useMemo( | |
| () => (isExplorerEnabled ? getArtifactsFromBlocks(runState?.blocks ?? []) : {}), | |
| [isExplorerEnabled, runState?.blocks] | |
| ); | |
| const {runState: explorerRunState} = useExplorerAutofix(group.id, {enabled: isExplorerEnabled}); | |
| const explorerArtifacts = useMemo( | |
| () => (isExplorerEnabled ? getArtifactsFromBlocks(explorerRunState?.blocks ?? []) : {}), | |
| [isExplorerEnabled, explorerRunState?.blocks] | |
| ); |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
lg, esp if the current view has jest tests - let's do some sanity checks for prod (non explorer version) after deployed
Runs Autofix's 3 steps and 2 more based on the Seer Explorer Client rather than calling it's own Seer agent. Supports both manual runs and automation runs. Controlled by the seer explorer feature flag and a new one, so we can start with internal testing for now. Does not support automation or manual handoff to 3rd party agents currently, but i have a ticket to add that back along with other improvements (e.g. suspect commit artifact will need improvement too) Frontend: #104618 Part of AIML-2004
| } | ||
|
|
||
| return t('Fix with Seer'); | ||
| }; |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Bug: Missing status handling for awaiting user input
The getButtonText function handles 'processing', 'completed', and 'error' statuses but does not handle 'awaiting_user_input'. When the run status is 'awaiting_user_input', the function falls through to return "Fix with Seer" which is misleading since a run already exists and is waiting for user input. The legacy SeerSectionCtaButton handles this case explicitly by returning "Waiting for Your Input".
| </Flex> | ||
| </Flex> | ||
| )} | ||
| </Container> |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Bug: Layout issue with PR button outside flex container
When hasCodeChanges && onCreatePR is true, the "Create Pull Request" button is rendered as a direct child of the Container outside of any Flex layout. The subsequent content (the Flex column with step buttons or chat options) is rendered as a sibling. This means there's no gap or spacing between the PR button and the rest of the content, resulting in a broken layout when both elements are visible.
| hasGithubIntegration={aiConfig.hasGithubIntegration} | ||
| project={project} | ||
| /> | ||
| <ExplorerAutofixStart onStartRootCause={handleStartRootCause} /> |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Bug: Missing loading prop prevents button disable feedback
The ExplorerAutofixStart component receives an isLoading prop that disables the button and shows "Starting..." text, but the drawer passes only onStartRootCause without the loading state. The hook provides isPolling which becomes true when startStep is called. Without passing this, users can click the "Find Root Cause" button multiple times before the API responds, potentially triggering duplicate requests, and they won't see visual feedback that the action is in progress.
Adds UI to support the new explorer-backed Autofix agent. Controlled by explorer FF and a new one. Should preserve old UI as is if not behind the flags.


Have tickets for follow up work like backrgound agents, better code changes display, and better suspect commit card.
Backend: #104615
Part of AIML-2004 and AIML-1732