Skip to content

Arbitrium 0.9.7

Choose a tag to compare

@shadesofdeath shadesofdeath released this 19 Aug 13:50
· 22 commits to main since this release

Startup switches that stay where you put them

Two bugs, both of which had been quietly wrong for a while.

The update check offered 0.9.6 to a 0.9.6 build. The version number was typed out in four
separate places, and three of them moved on without the fourth: main.cpp still said 0.9.4, and
that is the string the update check compares GitHub's latest tag against. So every 0.9.6 install
has been announcing its own release as an upgrade. If that is what brought you here — this is the
update. The running version now comes from one place, and the build refuses to finish if the other
copies disagree with it.

Disabling a startup entry didn't stick. Turn one off, close Arbitrium, open it again, and
everything was back on. Windows stores that on/off state as a twelve-byte blob, and Arbitrium was
reading it through an API that decodes binary data as text: twelve bytes came back as six, and a
blob with a timestamp in its tail came back as something else entirely. Nothing then matched what
was actually in the registry, so every entry fell through to its default position — which, for a
startup item, is "runs at login". Measured on a real machine, all four entries read wrong.

Fixing that turned up two more in the same feature:

  • Turning an entry back on could leave it off. Putting a tweak back writes what the machine
    held before Arbitrium first touched it — but for an entry Windows had already disabled, that is
    the blob that keeps it off. The switch moved and nothing happened.
  • Two entries could share one switch. Startup rows were keyed by name alone, so a program
    listed under both HKCU and the 32-bit HKLM key — Discord, on the machine this was found on —
    got a single row for two separate entries. Flipping it moved the other one's switch and wrote
    neither.

Also fixed: the Remove shortcut suffix tweak never read as applied. Its off value was
authored in upper-case hex and the registry hands it back in lower case, so the comparison never
once matched.

Every one of these was verified end to end against a real registry, with the app closed and
reopened between each step, because surviving a restart was the whole problem.

Still one file

Arbitrium-v0.9.7-win64.exe is the whole application — 32 MB, no install, no runtime to chase.
The .zip is the same executable with the README beside it.