Skip to content

fix: pre-release review fixes for 2.5.0 - #380

Merged
timdegroot1996 merged 1 commit into
mainfrom
fix/pre-release-review
Oct 17, 2026
Merged

timdegroot1996 merged 1 commit into
mainfrom
fix/pre-release-review

Conversation

@timdegroot1996

Copy link
Copy Markdown
Collaborator

Fixes found while reviewing and testing everything since v2.4.1 before the 2.5.0 release.

Fixes

  • Custom graphs: "Retried tests per run" preset never showed data. engine.js read test.attempts as a number, but the database stores the rebot --merge history as a JSON list, so every test counted as 1 attempt. It now counts the list entries. The unit test fixture used "2", which is not the real format; it now uses the stored JSON format.
  • Custom graphs: the guard against regexes that freeze the dashboard was easy to get around. It only caught (a+)+. On a 29-character test name, (a|a)*$ took 47 s, (a+){20}$ 30 s and (.*a){12}$ 13 s, and a shared or forced JSON config would freeze the dashboard for every viewer. A small scanner now refuses any repeated group that contains a quantifier or an alternative, at any depth. New tests cover both blocked and allowed patterns; docs/custom-graphs.md is updated.
  • Notes: removed the unused confirm_action import and dead code left over from the dropped delete confirmation (no behaviour change).
  • Robot: flaky Merge Two Filter Profiles Into A New One. Bootstrap ignores hide() while a modal is still fading in, and the test clicked Save about 240–300 ms after opening, inside the 300 ms fade. A new Wait For Modal Opened keyword waits for the fade-in to finish. The stat widget, link widget, custom section and custom graph keywords had the same timing problem and use it too.
  • Changelog: an [Unreleased] entry says that uploads no longer touch the server's working folder, so a log next to the server is only linked when it is uploaded (uploadlog=true, /add-log-file) or given with --logurl.

Local verification

  • Python unit tests: 434 passed
  • JS unit tests (in the JS container): 481 passed
  • Full robot suite in Docker: 143/143 passed, no reruns needed
  • Rebuilt dashboard: the retried-tests preset renders in every section, and the redrawing patterns are refused

🤖 Generated with Claude Code

- custom graphs: count test attempts from the stored rebot --merge JSON
  history; it was read as a number, so the "Retried tests per run" preset
  never showed data
- custom graphs: the regex guard also refuses repeated groups with
  alternatives, counted repeats and nested repeats ((a|a)*, (a+){20},
  (.*a){12}, ((a+))+), which froze the dashboard for 13-47 s
- notes: drop the unused confirm import and dead code left from the
  removed delete confirmation
- robot: wait for the open animation of a modal before filling and
  confirming it (Bootstrap ignores hide() during the fade), fixes the
  flaky "Merge Two Filter Profiles Into A New One" and the same race in
  the stat widget, link widget, custom section and custom graph keywords
- changelog: note that uploads no longer touch the server working folder

Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
@timdegroot1996
timdegroot1996 merged commit 07ff02a into main Oct 17, 2026
3 checks passed
@timdegroot1996 timdegroot1996 mentioned this pull request Oct 17, 2026
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