Skip to content

v2.0.1 — fresh-install crash fix, mass-mask perf fix

Choose a tag to compare

@0ldManPlaying 0ldManPlaying released this 12 May 13:03
· 8 commits to main since this release

v2.0.1 — bug-fix patch

Two field bugs and one diagnostic add-on. Recommended upgrade for every v2.0.0 install. Drop-in over 2.0.0; configuration is preserved.

Fixes

Bug 1: fresh-install silent exit

On a clean machine (no prior v1.x install, default non-admin user), the app launched, showed the first-run language picker, the user clicked Continue, and the app disappeared silently — no error dialog, no PIN prompt, no log entry. Existing v1.2+ installations with an inherited config.json were unaffected, which is why the bug was missed during pre-release testing.

Two contributing factors fixed:

  • ShutdownMode race. WPF's default OnLastWindowClose could trigger application shutdown when the first-run picker closed, before StartupUri created MainWindow. Wrapped the picker in ShutdownMode.OnExplicitShutdown, restored on exit.
  • crash.log was unwritable for default users. The previous path resolved to C:\Program Files\InteractiveMask\Display\crash.log, which is read-only for non-admin users on a per-machine install. The crash handler dropped every line. Moved to %PROGRAMDATA%\InteractiveMask\crash.log (writable for any local user), with a %TEMP% fallback.

Bug 2: mass-mask sluggish / unresponsive UI

Long-press mass-mask on a populated grid (4×4 or 5×5) stalled the UI thread for several hundred ms — bug present since v1.0 but masked until v1.3 added the 5×5 grid + mass-mask gesture. Not AI-related (reported on v1.3 too).

Root cause: per-tile BlurEffect Radius="80". Even in RenderingBias="Performance" mode the sample count grows with the radius, and 16-25 simultaneous full-tile blurs on 4K displays exceeded GPU bandwidth. Lowered to Radius=20 — well past the point where faces and bodies become unrecognisable. The dark Background="#60000000" overlay on top of the blur already obscures detail; subjective privacy effectiveness unchanged, render cost roughly 4× cheaper.

Diagnostic

Bootstrap log

New BootstrapLog tracer writes one line per startup step to %PROGRAMDATA%\InteractiveMask\bootstrap.log (truncated on each launch). Captures App.OnStartup phases, MainWindow constructor, OnLoaded phases, and the PIN dialog entry point. Wrapped in try/catch so the tracer can never make a bad startup worse. Lets support read exactly where any future startup-time failure exits.

What to send if you still hit a startup issue

After upgrading to v2.0.1 and reproducing the failure, send us:

  • %PROGRAMDATA%\InteractiveMask\bootstrap.log (writable by any user, always present after launch)
  • %PROGRAMDATA%\InteractiveMask\crash.log (only present if an unhandled exception was caught)

These two files together should pinpoint any remaining startup-time issue precisely.

Installer

InteractiveMask-2.0.1.msi (180.9 MB, signed by IDIS Nederland BV)

  • SHA-256: 222B1DFDB2DE820FEFF91E4DA3922183CCFAD0FF54DD7F92E28BE4987731AC49
  • Certificate: CN=IDIS Nederland BV, valid until 4 April 2027
  • Upgrade: double-click on a host running v2.0.0 or any v1.x — old version replaced in-place, configuration preserved.

Unattended deployment

msiexec /i InteractiveMask-2.0.1.msi /qn INTERACTIVEMASK_LANGUAGE=en

(Replace en with nl, de, fr, or es.)

Full v2.0 feature list

See v2.0.0 release notes.