Skip to content

fix(dashboard): keep polling paused runs so the 2nd approval gate appears#357

Merged
kaveone merged 2 commits into
mainfrom
fix/dashboard-poll-paused-runs
Jun 11, 2026
Merged

fix(dashboard): keep polling paused runs so the 2nd approval gate appears#357
kaveone merged 2 commits into
mainfrom
fix/dashboard-poll-paused-runs

Conversation

@kaveone

@kaveone kaveone commented Jun 11, 2026

Copy link
Copy Markdown
Contributor

Bug

In a workflow with two human-approval gates, after approving the first gate the dashboard does not refresh to show the second gate's "awaiting approval" state — you have to manually refresh the browser.

Root cause

web/src/revka/pages/WorkflowRuns.tsx — the run-detail poller only reschedules itself while the run is running or pending:

if (run.status === 'running' || run.status === 'pending') {
  scheduleNext(POLL_INTERVAL_MS);
} else if (!TERMINAL_STATUSES.has(run.status)) {
  return;   // ← stops polling on 'paused'
}

A run is paused while sitting at a human-approval gate. So polling halts at gate 1. After approval the run advances and pauses again at gate 2 — but polling already stopped, so the new gate never surfaces until a manual refresh.

Fix

Include 'paused' in the keep-polling condition (it's an in-flight state). Unrecognized statuses are still treated as terminal, so we never loop forever.

Found live during the Track 3 demo recording (two-gate github-issue-resolver workflow).

Typecheck: npm run typecheck (tsc -b) passes.

🤖 Generated with Claude Code

…urfaces

A workflow run pauses at each human-approval gate. The run-detail poller
only rescheduled for 'running'/'pending', so it stopped the moment the run
paused at gate 1. After approving gate 1 the run advances and pauses again at
gate 2, but with polling already halted the second gate never appeared until
a manual browser refresh.

Include 'paused' in the keep-polling condition (it's an in-flight state).
Unrecognized statuses are still treated as terminal so we don't loop forever.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
@netlify

netlify Bot commented Jun 11, 2026

Copy link
Copy Markdown

Deploy Preview for lustrous-pasca-e9664a ready!

Name Link
🔨 Latest commit 91df8ae
🔍 Latest deploy log https://app.netlify.com/projects/lustrous-pasca-e9664a/deploys/6a2a7df6be388c0008b57339
😎 Deploy Preview https://deploy-preview-357--lustrous-pasca-e9664a.netlify.app
📱 Preview on mobile
Toggle QR Code...

QR Code

Use your smartphone camera to open QR code link.

To edit notification comments on pull requests, go to your Netlify project configuration.

The orchestrator image embeds the web dashboard (web/dist), but the deploy
workflow didn't watch web/**, so dashboard-only fixes never auto-deployed.
Add web/** to the push paths.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
@github-actions github-actions Bot added the ci label Jun 11, 2026
@kaveone kaveone merged commit 11d72d4 into main Jun 11, 2026
36 checks passed
@kaveone kaveone deleted the fix/dashboard-poll-paused-runs branch June 11, 2026 14:10
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant