Windows portable release
Requirement
REL-001. The standard Windows portable release SHALL be distributed as a single executable and SHALL require no installation or separately installed PHOINIX dependencies. It may rely on operating-system components included with supported Windows versions, including WebView2.
Supported Windows versions are Windows 10 (21H2 or later) and Windows 11, 64-bit. Both ship the WebView2 Evergreen Runtime as an operating-system component.
How the requirement is met
| artefact | content | dependencies |
|---|---|---|
PhoinixDR-<version>-windows-x64-portable.exe |
the desktop application: the Tauri shell with the React front-end embedded at compile time and the whole recovery engine linked in | WebView2 (part of Windows), the Visual C++ runtime DLLs that ship with Windows |
phoinix-windows-x64.exe |
the command-line application | none beyond Windows itself |
- The front-end assets are compiled into the executable
(
tauri::generate_context!embedsfrontendDist); the executable opens no sibling files and needs noresourcesdirectory.bundle.resourcesstays empty intauri.conf.json. - Nothing is installed. The executable can be run from a download folder,
a USB stick or a network share. It writes only what the user asks it to
write: recovered files to the chosen destination, reports to the chosen
path, and scan sessions to the user's local application-data directory
(
%LOCALAPPDATA%\org.phoinixdr.desktop), which is created on first use and can be deleted at any time. - No PHOINIX library, service, driver or runtime is required beside the executable. Every filesystem engine and image-container reader is native Rust code linked into the binary (ADR-0004, ADR-0013).
- WebView2 is the only runtime the desktop executable needs. When it is
absent (a Windows 10 installation older than 21H2 with updates blocked),
the executable reports the missing runtime and points to Microsoft's
Evergreen Bootstrapper; the optional MSI/NSIS installers, which are not
the standard portable release, download it automatically
(
webviewInstallMode: downloadBootstrapper). - Reading physical disks needs the same privilege Windows requires from
any tool that opens
\\.\PhysicalDriveN: run the executable as administrator. Disk images need no elevation.
Verification
The release workflow (.github/workflows/release.yml) builds both
executables on windows-latest (the desktop one through the Tauri CLI,
whose production build embeds the front-end), runs phoinix.exe --version
and phoinix.exe inspect on a fixture, fails if the desktop build produced
anything beside the single executable in its output directory, and fails
if the executable does not contain the front-end bundle (a development
build would look for a local dev server instead). The
published SHA256SUMS.txt lets users verify what they downloaded:
Get-FileHash .\PhoinixDR-<version>-windows-x64-portable.exe -Algorithm SHA256
Version
The desktop executable carries the release number in its file name
(PhoinixDR-0.1.2-windows-x64-portable.exe for release 0.1.2) and in its
Windows version resource: right-click the file, Properties, Details
shows Product name PhoinixDR, File version and Product version. The
Tauri build derives the resource from tauri.conf.json, and the release
workflow refuses to publish when the tag, the workspace version in
Cargo.toml and the version resource disagree. The application shows the
same version next to the author in its top bar.
Other platforms
Linux releases are a tarball with the two executables (phoinix, phoinix-desktop); the desktop binary
needs the distribution's WebKitGTK 4.1 packages, which is the equivalent of
the WebView2 dependency. They are convenience builds: Windows is the
platform the portable requirement is written for.