Skip to content

Add opt-in Windows portable mode and packaging - #342

Draft
lapinpt wants to merge 1 commit into
openscopeproject:masterfrom
lapinpt:pr-windows-portable
Draft

lapinpt wants to merge 1 commit into
openscopeproject:masterfrom
lapinpt:pr-windows-portable

Conversation

@lapinpt

@lapinpt lapinpt commented Oct 25, 2026

Copy link
Copy Markdown

Adds an opt-in Windows portable mode: placing portable.flag beside the executable stores configuration in Data/trguing.json and the WebView2 profile in Data/WebView2. The WebView2 Runtime remains a system dependency. Without the marker, the existing installed configuration location is preserved.

Configuration is read and written through commands with a fixed path selected at startup. Saves are serialized and use a temporary file followed by replacement. A portable data-directory error does not silently redirect settings to the installed profile.

Includes an English migration guide, an import helper that preserves the original JSON and creates a SHA-256-verified backup, and a Windows portable ZIP workflow with source revision and binary/GeoIP hashes. The helper refuses to overwrite an existing portable configuration; packaging derives the source repository URL from its environment.

Validation

  • Standalone Windows build and runtime checks: portable configuration loading/saving, WebView2 data location, relocation and unchanged installed settings.
  • Four storage tests passed locally on Linux and in Windows CI: installed-path compatibility, portable isolation/relocation, concurrent saves, and invalid-marker/blocked-directory behavior.
  • Import tests verify identical source/backup/destination hashes, preservation of the original, and refusal to overwrite an existing destination.
  • ESLint and Linux Clippy; local production frontend build passed.

Runtime checks cover Windows x64. macOS runtime behavior has not been tested.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant