feat(seer): Add browser-fetching autofixRef embed (#122099)
Adds `autofixRef`, a sibling to the `autofix` Seer markdown embed. Where
`autofix` takes the full markdown write-up for a step as a prop (`{step,
result, id, shortId}`) and has to be filled in by Seer once a run
finishes, `autofixRef` takes just `{step, id, shortId, runId}` and
fetches/polls the run itself in the browser via `useExplorerAutofix` —
showing progress while the step runs, the result once it completes, and
buttons to continue to the next step or retry on error.
This lets a caller (Seer's Code Mode, in a companion `getsentry/seer`
change) emit the tag right after triggering a step instead of polling to
completion and writing up the result first.
<img width="734" height="546" alt="SCR-20260824-nkcy"
src="https://github.com/user-attachments/assets/e5ddfca3-6f4b-4483-9df8-f1d3e07ecc2f"
/>
<img width="730" height="950" alt="SCR-20260824-nsiw"
src="https://github.com/user-attachments/assets/4eea9f27-7c27-443b-8e74-154203146355"
/>
<img width="727" height="498" alt="SCR-20260824-nsjr"
src="https://github.com/user-attachments/assets/87753bfc-8cbd-4877-a9aa-87575cf6138d"
/>
<img width="720" height="413" alt="SCR-20260824-nskk"
src="https://github.com/user-attachments/assets/ae140d4c-e270-40d1-8a7a-3e0311c8b5de"
/>
`useExplorerAutofix`'s `group` parameter is narrowed from `Group` to
`Pick<Group, 'id' | 'shortId'>` — it only ever read those two fields,
and the embed only has an issue id/shortId, not a full `Group`. Existing
callers are unaffected since `Group` satisfies the narrower type.
Includes an `autofixRef.stories.tsx` page with a live issue picker and
root-cause/plan/code-changes trigger buttons for manual testing, and the
regenerated `embed_widgets.generated.json`.
Not yet manually verified in a running browser — typecheck and lint
pass, but the stories page itself hasn't been visually checked. R
Ryan Albrecht committed
cb46a3f880e991e52c71f47c1615957b7250323c
Parent: 1d07b78
Committed by GitHub <noreply@github.com>
on 8/28/2026, 9:17:01 PM