The automation page's Refresh button loses the "in progress" state of a suspended run. DeliveryLog's refreshLogs (app/islands/DeliveryLog.tsx) replaces the table with data.deliveryLogs from GET /api/automations/:rkey, but that route's serializer (app/routes/api/automations/[rkey].ts, the deliveryLogs: logs.map(...) block) leaves out runState, unlike the page render (app/routes/u/[handle]/[rkey]/logs.tsx) and GET /api/automations/:rkey/logs, which both send it.
How I know: I read the three serializers side by side while adding recordUri to each. After a refresh, a row parked at an AI step has runState undefined and statusCode null, so deliveryStatusText shows "-" instead of "In progress", LogStatusIcon shows a plain dot instead of the spinner, and the run header loses its " · in progress" suffix.
Where to start: add runState: l.runState to the deliveryLogs map in app/routes/api/automations/[rkey].ts, and add a route test that the field comes back.
Queued: the loop will work on this version of the issue.
loop:queued cid=bafyreifzcacjhi3tepp5ppr7kj2kpashjnxv6f2t7fikvbjmusasnbh53y