Skip to content
Merged
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
86 changes: 82 additions & 4 deletions static/app/views/seerWorkflows/index.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -25,10 +25,26 @@ type SeerNightShiftRunIssue = {
seerRunId: string | null;
};

type SeerNightShiftRunExtras = {
agent_run_id?: number | string;
options?: SeerNightShiftRunOptions;
target_project_ids?: number[];
triggering_user_id?: number;
};

type SeerNightShiftRunOptions = {
dry_run?: boolean;
extra_triage_instructions?: string;
intelligence_level?: 'low' | 'medium' | 'high';
max_candidates?: number;
reasoning_effort?: 'low' | 'medium' | 'high';
source?: string;
};

type SeerNightShiftRun = {
dateAdded: string;
errorMessage: string | null;
extras: Record<string, unknown>;
extras: SeerNightShiftRunExtras;
id: string;
issues: SeerNightShiftRunIssue[];
triageStrategy: string;
Expand Down Expand Up @@ -80,6 +96,8 @@ function SeerWorkflows() {
<SimpleTable.HeaderCell>{t('Date')}</SimpleTable.HeaderCell>
<SimpleTable.HeaderCell>{t('Workflow')}</SimpleTable.HeaderCell>
<SimpleTable.HeaderCell>{t('Strategy')}</SimpleTable.HeaderCell>
<SimpleTable.HeaderCell>{t('Max candidates')}</SimpleTable.HeaderCell>
<SimpleTable.HeaderCell>{t('Source')}</SimpleTable.HeaderCell>
<SimpleTable.HeaderCell>{t('Status')}</SimpleTable.HeaderCell>
<SimpleTable.HeaderCell>{t('Issues')}</SimpleTable.HeaderCell>
<SimpleTable.HeaderCell />
Expand Down Expand Up @@ -111,12 +129,24 @@ function SeerWorkflows() {
</SimpleTable.RowCell>
<SimpleTable.RowCell>{t('Night Shift')}</SimpleTable.RowCell>
<SimpleTable.RowCell>{run.triageStrategy}</SimpleTable.RowCell>
<SimpleTable.RowCell>
{run.extras.options?.max_candidates ?? '-'}
</SimpleTable.RowCell>
<SimpleTable.RowCell>
{run.extras.options?.source ?? '-'}
</SimpleTable.RowCell>
<SimpleTable.RowCell>
<Text variant={run.errorMessage ? 'danger' : undefined}>
{status}
</Text>
</SimpleTable.RowCell>
<SimpleTable.RowCell>{run.issues.length}</SimpleTable.RowCell>
<SimpleTable.RowCell>
{run.extras.options?.dry_run ? (
<Text variant="muted">{t('dry run')}</Text>
) : (
run.issues.length
)}
</SimpleTable.RowCell>
<SimpleTable.RowCell>
{explorerRunId === null ? null : (
<LinkButton
Expand Down Expand Up @@ -163,6 +193,13 @@ function RunDetail({
organizationSlug: string;
run: SeerNightShiftRun;
}) {
const {reasoning_effort, intelligence_level, extra_triage_instructions} =
run.extras.options ?? {};
const hasSettings =
reasoning_effort !== undefined ||
intelligence_level !== undefined ||
extra_triage_instructions !== undefined;

return (
<Flex direction="column" gap="lg">
{run.errorMessage ? (
Expand All @@ -172,6 +209,35 @@ function RunDetail({
</Text>
) : null}

{hasSettings ? (
<Grid columns="max-content 1fr" gap="sm xl" align="start">
{reasoning_effort === undefined ? null : (
<Fragment>
<Text bold size="xs" variant="muted">
{t('Reasoning effort')}
</Text>
<Text size="sm">{reasoning_effort}</Text>
</Fragment>
)}
{intelligence_level === undefined ? null : (
<Fragment>
<Text bold size="xs" variant="muted">
{t('Intelligence level')}
</Text>
<Text size="sm">{intelligence_level}</Text>
</Fragment>
)}
{extra_triage_instructions === undefined ? null : (
<Fragment>
<Text bold size="xs" variant="muted">
{t('Extra triage instructions')}
</Text>
<Text size="sm">{extra_triage_instructions}</Text>
</Fragment>
)}
</Grid>
) : null}

<Flex direction="column" gap="sm">
<Text bold size="xs" variant="muted" uppercase>
{t('Issues (%s)', run.issues.length)}
Expand All @@ -183,7 +249,7 @@ function RunDetail({
</Text>
) : (
<Grid
columns="max-content max-content max-content max-content"
columns="max-content max-content max-content max-content max-content"
gap="sm xl"
align="center"
>
Expand All @@ -197,6 +263,7 @@ function RunDetail({
{t('Seer Run ID')}
</Text>
<span />
<span />
{run.issues.flatMap(issue => [
<Link
key={`${issue.id}-group`}
Expand Down Expand Up @@ -225,6 +292,17 @@ function RunDetail({
{t('Explorer')}
</LinkButton>
),
<LinkButton
key={`${issue.id}-autofix`}
size="xs"
icon={<IconOpen />}
to={{
pathname: `/organizations/${organizationSlug}/issues/${issue.groupId}/`,
query: {seerDrawer: true},
}}
>
{t('Autofix')}
</LinkButton>,
])}
</Grid>
)}
Expand All @@ -234,7 +312,7 @@ function RunDetail({
}

const RunsTable = styled(SimpleTable)`
grid-template-columns: min-content 1fr 1fr 1fr 1fr min-content min-content;
grid-template-columns: min-content 1fr 1fr 1fr 1fr 1fr 1fr min-content min-content;
`;

function getExplorerRunId(run: SeerNightShiftRun): number | string | null {
Expand Down
Loading