Skip to content

Conversation

@markjmiller
Copy link
Contributor

@markjmiller markjmiller commented Nov 18, 2025

Changes

  • Users don't have to "stop" a crashed script. They now have a singular "retry" button (replaces "start")
  • Fixed "retry" button doing nothing for a crashed script

Explanation

The UI now properly handles the “crashed” state for a script and gives better indication that the script should be retried instead of stopped and started. I think the previous semantics for fatal/crashed were incorrect so I fixed them. Previous to this change, “crashed” was lumped together with error/paused/waiting/breakpoint. However the script is still actively running for those states, but “crashed” actually means the script has stopped. Therefore, “crashed” should reset to the init/start state instead.

For retrying, logically there's two types of retries that exist: Retry on Error and Retry on Crashed. They should be treated differently because of the aforementioned “error means still running” and “crashed means no longer running” (also consider that error will pause on the errored line—crashed will not).

image

Because of this, instead of appropriating the current pauseOrRetryButton, it makes sense to rename startOrGoButton to startGoRetryButton and use that. If you try to use the existing retry button and endpoint on a crashed script, it will do nothing (further confirming what I'm saying about crashed scripts not running, and how the previous UI code didn't model this).

With these changes, this.fatal doesn’t mean or do anything anymore, so I removed it. Note there was already a dead code path that checked this.state == 'fatal’ even though that’s not a state the backend will ever send.

Validation

Here's what it does now:

Kapture 2025-11-17 at 18 20 14

Here's what it did previously (notice "retry" also didn't work!):

Kapture 2025-11-17 at 18 37 47

@codecov
Copy link

codecov bot commented Nov 19, 2025

Codecov Report

✅ All modified and coverable lines are covered by tests.
✅ Project coverage is 79.18%. Comparing base (504c410) to head (d8dd9cf).
⚠️ Report is 14 commits behind head on main.

Additional details and impacted files
@@            Coverage Diff             @@
##             main    #2552      +/-   ##
==========================================
- Coverage   79.37%   79.18%   -0.20%     
==========================================
  Files         660      661       +1     
  Lines       50691    51215     +524     
  Branches      736      736              
==========================================
+ Hits        40238    40553     +315     
- Misses      10373    10582     +209     
  Partials       80       80              
Flag Coverage Δ
python 81.25% <ø> (-0.01%) ⬇️
ruby-api 84.45% <ø> (-0.08%) ⬇️
ruby-backend 82.20% <ø> (-0.47%) ⬇️

Flags with carried forward coverage won't be shown. Click here to find out more.

☔ View full report in Codecov by Sentry.
📢 Have feedback on the report? Share it here.

🚀 New features to boost your workflow:
  • ❄️ Test Analytics: Detect flaky tests, report on failures, and find test suite problems.
  • 📦 JS Bundle Analysis: Save yourself from yourself by tracking and limiting bundle sizes in JS merges.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant