Skip to content

Show the publisher line on the first-run About - #153

Merged
xroche merged 2 commits into
masterfrom
fix-152-first-run-sigrow
Aug 26, 2026
Merged

Show the publisher line on the first-run About#153
xroche merged 2 commits into
masterfrom
fix-152-first-run-sigrow

Conversation

@xroche

@xroche xroche commented Aug 26, 2026

Copy link
Copy Markdown
Owner

The signature verdict is computed on a background thread, and the check only started at the end of InitInstance, after the first-run About had already opened and closed. So that dialog could never name a publisher, on a signed build or an unsigned one. It is the one a new user sees, and it is also 00_language_preference in the documentation set, which is how it surfaced.

Both halves are needed. Start the check once the main window exists, and have Cabout fill the row when the verdict lands rather than only at open. Moving the start alone would leave the row blank whenever chain building outruns the dialog.

The screenshot walk opens that exact About, so it now asserts IDC_SIGSTATUS is non-empty before shooting it: on CI the build is unsigned, so the row reads "Not signed: built from source, not an official release." Reverting either half fails it. A source-order guard in the encoding job is the cheap companion, and I checked that it fails on the pre-fix source rather than assuming it would.

Closes #152

xroche and others added 2 commits August 26, 2026 15:10
The verdict comes off a background thread, and the check only started at the end
of InitInstance, after the first-run About had opened and closed. That dialog
could therefore never name a publisher, signed build or not. A new user met an
empty band where the line belongs, and so did every documentation screenshot of
that screen.

Start the check once the main window exists, and let Cabout fill the row when the
verdict arrives instead of only at open. Moving the start on its own would leave
the row blank whenever chain building outruns the dialog, which is worse for
being intermittent. A CI guard pins the ordering, since neither the build nor the
selftest can see it.

Closes #152

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
Signed-off-by: Xavier Roche <roche@httrack.com>
The source-order guard only pins where the call sits. A commented-out call at the
new site with the real one restored at the end still passes it, and it cannot see
the late fill in Cabout at all. The walk already opens that About and resolves
controls by id, so assert IDC_SIGSTATUS is non-empty before shooting it. Reverting
either half of the fix fails that. The wait raises a RuntimeError rather than a
Timeout, because the enclosing handler reads a Timeout as "not a first run" and
would pass.

Also from review: OnTimer moves inside the ClassWizard block like its peers, the
two tunables become static const, and three comments lose a line each.

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
Signed-off-by: Xavier Roche <roche@httrack.com>
@xroche
xroche marked this pull request as ready for review August 26, 2026 13:33
@xroche
xroche merged commit 87f2abd into master Aug 26, 2026
6 checks passed
@xroche
xroche deleted the fix-152-first-run-sigrow branch August 26, 2026 13:33
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.

The first-run About box can never show a signature status

1 participant