Bump to v1.3.0: harden updater helper for Dropbox-installed copies

v1.2's self-updater silently failed when the install folder lived
inside a Dropbox sync path. Dropbox held write locks on the existing
RemSound.exe / DLLs during the brief window between the parent exiting
and the helper script copying the new files in. The helper's robocopy
(/R:5 /W:1) gave up after 5 seconds, and the helper then
unconditionally relaunched the OLD binary — so the user saw the same
version they started with after pressing "Yes" on the install prompt,
with no visible error.

Helper script (BuildInstallScript) changes:

* Robocopy retries bumped to /R:60 /W:1 — up to 60 seconds per file.
  Dropbox lock release happens reliably within that window in
  practice.

* Robocopy exit code is captured and checked. Codes >= 8 are real
  failures. On a failure the helper writes update-failed.txt to the
  install folder with the cause + recovery steps, leaves the staging
  folder intact, and does NOT relaunch the old binary. Earlier
  versions silently relaunched the unmodified old binary, hiding the
  failure.

* Helper appends a step-by-step trace to _update-helper.log (in the
  install folder), with robocopy's own output included via /LOG+:.

* update-failed.txt, _update-helper.log, and _apply-update.cmd are
  added to the /XF exclusion list so the helper's own state files
  don't get copied to themselves on a repeat update run.

DownloadAndStageInstallAsync also clears any stale update-failed.txt
at the start of every new attempt, so a successful run leaves the
install folder clean.

readme.html "If install fails" section expanded with the new
update-failed.txt marker file behaviour and the _update-helper.log
location.

Wire format, audio pipeline, and recording feature unchanged from
v1.2 — this is updater-machinery-only.

Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
This commit is contained in:
Ednunp
2026-05-15 13:07:36 +01:00
co-authored by Claude Opus 4.7
parent c59e413c1f
commit 9a5c46eecf
5 changed files with 111 additions and 33 deletions
+4
View File
@@ -766,6 +766,10 @@ Bind whatever key combinations you prefer (e.g. Ctrl+Shift+Up / Ctrl+Shift+Down
<p>The downloader is best-effort: a flaky network, a locked install folder, or a temporarily-unavailable release will pop a MessageBox saying it couldn&rsquo;t complete and leave the running version untouched. The release page URL is in the popup so you can grab the zip in a browser and install by hand if needed. If you installed RemSound into <code>Program Files</code> without granting your user write permission to the install folder, the install helper&rsquo;s file-copy step will fail too &mdash; either fix the permission or move RemSound to a writable folder (e.g. somewhere under your user profile).</p>
<p><strong>If the helper&rsquo;s file-copy step itself fails</strong> (most often because Dropbox or another file-sync app was holding write locks on the install folder when the helper tried to overwrite the existing binaries), the helper now leaves a file named <code>update-failed.txt</code> next to <code>RemSound.exe</code> with diagnostic detail and the staged new files still sitting in the <code>_update</code> subfolder. It does <em>not</em> relaunch the old binary in that case &mdash; so the next time you start RemSound by hand, you&rsquo;ll either get the (still-old) version with the marker file telling you what to do, or you can copy the contents of <code>_update</code> over the install folder manually. The most reliable recovery is: close RemSound, wait 30 seconds for Dropbox to settle, relaunch, and try <strong>Help &rarr; Check for updates</strong> again. The longer retry window in v1.3 onward almost always succeeds on the second attempt.</p>
<p>A step-by-step trace of every helper run is appended to <code>_update-helper.log</code> in the install folder &mdash; useful if a failure persists and you want to share the log for diagnosis.</p>
<h3>The About dialog and release notes</h3>
<p>To see what version you&rsquo;re currently on without checking for updates, open <strong>Help &rarr; About RemSound</strong> (Alt+H, A). The dialog shows the version number and the release notes for the build you&rsquo;re running, in a scrollable read-only text box you can tab into and arrow through under NVDA. Close (or Esc) dismisses.</p>