Repository navigation
Sally 1.0.36
Sally 1.0.36 updates itself. From now on Check Version installs a new release for you, and so does a release zip you downloaded yourself. The shell extension no longer gets in the way of updates, a crash that third-party shell mods could cause is fixed, and crash reports are packed as .zip so you can attach them to GitHub issues.
Changes
- Install and Restart. When Check Version finds a newer release, its window now offers Install and Restart. Sally downloads the package for your platform and checks it against the SHA-256 checksum published with the release (GitHub's own checksum must agree too). Then it unpacks the package, makes sure it is a Sally build for your processor, and asks you once. Every Sally window started from the same folder closes, the files are replaced, and Sally starts again and tells you how it went. Nothing changes until the new files are ready. If any file cannot be replaced, every file is put back exactly as it was. Your configuration and any files that are not part of the release are never touched. A Sally folder under Program Files asks for administrator permission once.
- Update from a downloaded zip, also offline. Drop a release zip onto
utils\salupdate.exe, or runsalupdate.exe Sally-v<version>-<platform>.zip. If the release'sSHA256SUMS.txtis next to the zip, the zip must match it. Without it, you are warned and asked. The updater names the installed and the new version (and asks before installing an older one), closes Sally, installs, and starts Sally again.--yesruns it unattended. Run on its own, it undoes an update that was interrupted, for example by a power failure. Its messages follow Sally's language. - The shell extension no longer blocks updates (#128). Explorer keeps
utils\salextx64.dllloaded, so overwriting the Sally folder failed on that file. The updater renames the loaded file aside instead (Windows allows that), puts the new one in place, and Sally deletes the old copy at a later start once Explorer lets go. Nothing is written to the machine-wide registry, and nothing is scheduled for reboot. Sally's clean-up of shell extensions left registered by other Sally folders (#82) now only removes their registration. - Crash on Delete with some shell mods fixed (#129). Sally's dark title bars used a Windows function from
dwmapi.dllwithout keeping that DLL loaded. When another program injected into Sally unloaded it (seen with a Windhawk mod), the next dialog, such as the Delete progress window, crashed. Sally and its plugins now keep it loaded. This was not specific to ARM64. - Crash reports as .zip (#129). The bug reporter packs a report as a .zip, which GitHub issues accept as an attachment, and no longer needs the 7-Zip plugin for it. A report also names an execute fault correctly instead of calling it a "write".
Upgrade notes
- Sally 1.0.35 and older don't have the updater yet: to get 1.0.36, close Sally and unpack it over your Sally folder one last time. If Windows says
salextx64.dllis in use, rename that file (for example tosalextx64.dll.old) and copy again. From 1.0.36 on, use Install and Restart orsalupdate.exe. - The updater keeps its downloads and its log in
%LOCALAPPDATA%\Sally\Updateand removes the downloads once the update is done.
Downloads
Portable builds are provided for x64, x86, and ARM64. A consolidated PDB archive and SHA-256 checksum manifest are also attached. Keep their names: Sally's updater finds the package and the checksum file by them.
Validation
-
Public Release CI passed for x64, x86, and ARM64: https://github.com/0xeb/sally/actions/runs/37989018815
-
All three packaged runtimes passed release-artifact verification: all 11 languages are built into Sally, the updater and every translated plugin, each matching English, with zero warnings. The file set is the same as 1.0.35 plus
utils\salupdate.exe. -
The released x64 package passed every real-UI check in a clean Windows Sandbox, compared with 1.0.35. The updater checks:
- Install and Restart from a local copy of the release feed, with two Sally windows open and the shell extension held loaded;
- a file that cannot be replaced (everything rolled back);
- a package with a wrong checksum, and one that tries to write outside the folder (both refused before anything closes);
- an offline update from a zip with and without its checksum file;
- recovery from an interrupted update;
- the crash reporter's .zip archive.
Every earlier fixed issue passed too: #114–#117, #119, #120, #124–#127 and PictView's Select Source File.
-
Microsoft Defender reported zero detections across the final ZIP packages and extracted trees on the release machine.
Note
Sally's binaries are not yet Authenticode signed. We are evaluating managed and open-source signing services. If Defender reports a threat, please include the exact threat name, affected contained filename, Protection History details, and Defender engine/intelligence versions.
Full Changelog: v1.0.35...v1.0.36