Upgrade & Hotfix

One click and one UAC to the newest version β€” and the single file to read when it does not move.

πŸ“Œ Does this apply to you?

Your installed versionWhat to do
V6.1.0 or newerUse the one-click path below. Nothing to prepare.
V6.0.10 or olderThose builds have no upgrade logic at all. Install a 6.1.x package once by hand; from then on one-click works.

The installed version is read from version.txt inside the install directory. That file is the only authority β€” no version constant is compiled into the product.

⬆️ Three ways in

  • Desktop web UI β€” toolbar ⬆️ β†’ Install Now
  • Mobile menu β€” ⬆️ Software Update
  • Launcher window β€” type U and press Enter

All three write the same request. Expect exactly one UAC prompt; everything else is automatic.

πŸ” What happens when you click

#StepNotes
1Read latest.jsonThe manifest. Unreadable β†’ the launcher falls back to the hotfix manifest.
2DecideDowngrades are refused; versions below minSupported are asked to install a full package.
3Download in the backgroundNever interrupts listening. SHA-256 verified, then atomically renamed.
4PTT gateTransmitting β†’ the request is refused with 423. Release PTT and click again.
5Stop, install, restartService stopped β†’ one UAC β†’ silent install β†’ the installer starts the new version.
6The new version confirms itselfThe old launcher has already exited, so success is recorded by the new build at startup.

βœ… The only success criterion

%LOCALAPPDATA%\MRRC\updates\state.json β†’ lastResult.status == "ok".

statusMeaningWhat you do
okInstalled and confirmed by the new buildNothing
installingSilent installer started; the old launcher is leavingWait
uac_deniedYou declined the UAC promptClick Upgrade again and accept
ptt_activeRefused because you were transmittingRelease PTT, click again
sha_mismatchPackage failed verification and was discardedClick again; nothing was installed
download_failedNetwork/timeout/permission; retried automaticallyWait, or click again
missing_stagedClicked before the download finishedWait; the request is not lost
install_failedInstaller failed, or version.txt did not changeRead updates\install-<ver>.log first

🩹 Hotfix: no reinstall

Front-end files and patchable modules ship separately. On every start the launcher fetches patch.json and lays the files over %LOCALAPPDATA%\MRRC\patch\ β€” before the upgrade check, so a hotfix can even fix the upgrade path itself.

Restart MRRC to apply. Scope is explicit (www/**, loose app modules, vendor); anything else needs a release.

πŸŽ›οΈ Switches

[UPDATE] enabled = FalseNo checks at all, hotfix included
[UPDATE] autoDownload = FalseTell me there is a new version, do not pre-download
MRRC_NO_UPDATE_CHECK=1Environment variable; overrides everything
MRRC_UPDATE_MANIFEST=<url>Point at a mirror or a test manifest without touching production

πŸ›‘οΈ What it will never do

  • Never downgrade.
  • Never install while you are transmitting.
  • A failed download only deletes its own temporary file β€” your current installation is untouched.

Still stuck? Get the diagnostics bundle out β€” it already contains the version, the update state and the log tails.

πŸ“š Where the details live