Skip to content

build(gui): take the ps-blitz 0.4 engine - #210

Closed
pathscale wants to merge 3 commits into
masterfrom
chore/ps-blitz-0.4
Closed

pathscale wants to merge 3 commits into
masterfrom
chore/ps-blitz-0.4

Conversation

@pathscale

@pathscale pathscale commented Sep 6, 2026

Copy link
Copy Markdown
Owner

What this fixes

Every Settings switch lies about its setting on the 0.3 engine. checked is an HTML boolean attribute, so the checked="false" a controlled component writes reads as checked, and the property write never reached the input's live state at all.

Measured on the same disposable profile, engine the only variable:

stored  blitzDeepProfilingEnabled: false
0.3     switch,Allow deep intrusive profiling,...,"visible,selected"
0.4     switch,Allow deep intrusive profiling,...,visible

A user disables a permission, reopens the app, and sees it enabled. Clicking it once is what finally makes the control agree with the setting.

Why QA did not catch it

tests/ps-qa/06-toggles.ron asserts ValueChanges, which the renderer satisfies by flipping the input natively whether or not the application hears about it. And every toggle check presses first and asserts a delta, which is precisely what a wrong initial value survives untouched. The paired change-then-restore checks are a delta twice over.

Worth adding separately: a check comparing a control against its persisted setting without pressing it.

Verification

Full native suite 310/310 on the fixed engine, so the click-ordering and label changes in pathscale/ps-blitz#86 do not disturb any other control. Re-run after that branch was rebased onto current ps-blitz master.

Pins

^0.4 at the minor. An earlier revision pinned ^0.4.3 to guarantee the fix; that is a version bump wearing a caret, and the lockfile is what decides the patch. This resolves against the published 0.4.2 today and picks up 0.4.3 when the lock is refreshed, so it is not blocked on that release.

Release

Bumps 0.8.51. The release workflow declines to publish when the committed version equals the live one. Master is currently Bump AgencyZero to 0.8.50, so recheck this number at merge time if a release is already in flight.

One note for whoever lands this

ps-blitz-shell on the 0.4 line needs winit 0.31.0-beta.3. The requirement
already admits it, so a fresh resolve picks it up on its own. An existing
lockfile pinned at beta 2 does not, and fails with an error naming winit and
nothing about blitz.

Cargo.lock is gitignored here, so it is a local artifact: delete it and let
cargo resolve.

meh added 3 commits September 6, 2026 18:07
Every Settings switch lies about its setting on the 0.3 engine. `checked` is an
HTML boolean attribute, so the `checked="false"` that a controlled component
writes reads as checked, and the property never reached the input's live state
at all. A setting stored `false` comes back reporting on after a restart, and
only agrees with itself once someone clicks it.

Measured on a build against the fixed engine, same disposable profile either
way:

    stored blitzDeepProfilingEnabled: false
    0.3:  switch ... "visible,selected"
    0.4:  switch ... visible

`tests/ps-qa/06-toggles.ron` could not see it. `ValueChanges` is satisfied by the
renderer flipping the input natively, whether or not the application hears about
it, and every toggle check presses first and asserts a delta, which is exactly
what a wrong initial value survives. A check comparing a control against its
persisted setting without pressing it is what would have caught this.

The full native suite is 310/310 on the fixed engine.

Pinned at 0.4.3 rather than 0.4: 0.4.2 is a newer engine without the fixes.
The release workflow declines to publish when the committed version equals the
live one, so the renderer fix would merge and reach no user. Every Settings
switch on 0.8.50 reports the wrong state for a setting that is off, until
someone clicks it.
`^0.4.3` and `^0.3.3` are version bumps wearing carets. `^0.4` and `^0.3` are
the convention here; the lockfile decides which patch is actually used.
@pathscale

Copy link
Copy Markdown
Owner Author

Closing in favor of #211. Its ps-blitz 0.4 GUI dependency work is already in the surviving linear branch.

@pathscale pathscale closed this Sep 13, 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