Package HogWatch as a downloadable Windows exe - #4
Merged
Merged
Conversation
- hogwatch_app.py + build-exe.cmd build dist\HogWatch.exe with PyInstaller (one file, no console, dashboard files and an icon packed in). - Double-clicking it (launch): open the dashboard if already running; otherwise start a background copy as administrator, wait for it, open the dashboard un-elevated, and exit. A refused admin prompt falls back to running without per-program detail. - Packaged data lives in %LOCALAPPDATA%\HogWatch; --data-dir/--port (or HOGWATCH_DATA_DIR/HOGWATCH_PORT) override, and a copy on another port gets its own ETW session so it can't cut off the main one. - Dashboard: sign in to eero (login, code, network choice), start-at-login switch, Stop button, version. No terminal needed. - The eero session token is now DPAPI-encrypted; plain tokens from older versions are upgraded on load. - stop command; browser is opened via explorer.exe so it never runs elevated. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
The package job builds HogWatch.exe and runs it (dashboard, API, data folder). Pushing a tag vX.Y.Z that matches hogwatch.__version__ runs the tests, builds and runs the exe on a clean runner, and publishes it with a SHA-256 checksum. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
What
HogWatch as a single downloadable HogWatch.exe, so someone without Python can run it.
The exe
build-exe.cmdbuildsdist\HogWatch.exewith PyInstaller: one file, no console window, the dashboard files and an icon packed in (9.3 MB).launch):%LOCALAPPDATA%\HogWatchwhen packaged.--data-dirand--port(orHOGWATCH_DATA_DIRandHOGWATCH_PORT) override this. A copy on a non-default port gets its own ETW session, so it can't cut off the main one.No terminal needed any more (dashboard)
Releases
tests.ymlgains apackagejob that builds the exe and runs it on every PR.release.yml: pushing tagvX.Y.Z(it must matchhogwatch.__version__) runs the tests, builds and runs the exe on a clean runner, and publishes it with a SHA-256 checksum and install notes.Fix: the
hiddenattribute lost todisplay: gridon forms;[hidden] { display: none !important }.Testing
tests/test_packaging.py: the data folder when packaged, option parsing, the encrypted eero session and upgrade from plain text, the autostart command and quoting, the dashboard sign-in flow against a fake eero, the header requirement, the autostart switch, and all four launcher paths.scripts/smoke_test_exe.ps1passes locally.Known limitation
The exe is not code-signed, so Windows SmartScreen shows "unknown publisher" on first run (More info → Run anyway). The README and release notes say so.
🤖 Generated with Claude Code