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:
co-authored by
Claude Opus 4.7
parent
c59e413c1f
commit
9a5c46eecf
@@ -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’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’s file-copy step will fail too — either fix the permission or move RemSound to a writable folder (e.g. somewhere under your user profile).</p>
|
||||
|
||||
<p><strong>If the helper’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 — so the next time you start RemSound by hand, you’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 → 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 — 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’re currently on without checking for updates, open <strong>Help → About RemSound</strong> (Alt+H, A). The dialog shows the version number and the release notes for the build you’re running, in a scrollable read-only text box you can tab into and arrow through under NVDA. Close (or Esc) dismisses.</p>
|
||||
|
||||
Reference in New Issue
Block a user