Skip to content

fix(gui): a run refused at once shows as not started on the Optimize page - #66

Merged
Rovey merged 3 commits into
mainfrom
fix/instant-refusal-shown
Nov 2, 2026
Merged

Rovey merged 3 commits into
mainfrom
fix/instant-refusal-shown

Conversation

@Rovey

@Rovey Rovey commented Oct 31, 2026

Copy link
Copy Markdown
Owner

Stacked on #65; merge that one first (GitHub then retargets this PR to main).

Why

The Optimize page went to the run screen only when a frame saw the run running. A refusal ends before the next frame, so a click on Optimize showed nothing. This was not new with #65: MSI Afterburner or RTSS open, Automatic Tuning on, or a run already under way did the same.

What

  • The worker counts the runs it starts (Snapshot::run_id); follow_run in ui.hpp follows every new run, also one that has already ended, to its results: "Not started" with the reason.
  • A link in a reason gets a line of its own (split_link); wrapping broke it at its dots.
  • A refusal (app::is_refusal: more than one NVIDIA GPU, another tuning tool, Automatic Tuning, a run already under way) shows its reason alone. A run that failed to start for another reason, such as a failed NVML init, still points at run.log, because a bug report needs it.
  • The refusal texts are named constants (kAlreadyRunning, kAutoTuningRefusal, kOtherToolRefusalTail); the texts themselves are unchanged.

Tests

core_tests 460/460, app_tests 33/33: the screen follows a run refused before any frame saw it, does not jump back after Back, splits links, and tells refusals from faults.

On hardware

On the RTX 5070 with a build forced to count two NVIDIA GPUs, a click on Optimize GPU showed "Not started" with the full refusal, and Back stayed on the choose screen. The link on its own line and the run.log rule were not looked at in the window.

🤖 Generated with Claude Code

Rovey and others added 3 commits October 31, 2026 10:38
…page

The page went to the run screen only when a frame saw the run running.
A refusal (another tuning tool open, Automatic Tuning on, more than one
NVIDIA GPU) ends before the next frame, so a click on Optimize showed
nothing. The worker now counts the runs it starts, and the page follows
every new run, also one that has already ended, to its results.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
…log line

Wrapping broke the issues link at its dots. A run that did not start
also said "Nothing was saved" and pointed at run.log under a reason
that already says nothing was changed; it now shows its reason alone.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Only a refusal (more than one NVIDIA GPU, another tuning tool open,
Automatic Tuning on, a run already under way) leaves it out: the user
can change that. A fault such as a failed NVML init keeps it, because
a bug report needs the log. The refusal texts are named constants now,
so app::is_refusal can tell them apart.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
@Rovey
Rovey changed the base branch from fix/refuse-several-gpus to main November 2, 2026 23:17
@Rovey
Rovey merged commit ff94fdf into main Nov 2, 2026
2 checks passed
@Rovey
Rovey deleted the fix/instant-refusal-shown branch November 2, 2026 23:18
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