Fix audit findings: layout robustness, exit persistence, autostart, icon packaging - #16
Merged
Conversation
- wrong-shape layout JSON no longer escapes load_layout as TypeError - widget entries with non-numeric geometry or non-string disk are dropped - regression tests cover both malformed-layout paths
- GlassHUD._quit becomes public shutdown() used by both exit routes - tray Exit now saves the layout instead of quitting silently - regression tests cover shutdown persistence and tray routing
- frozen builds launch the bundle binary without -m src - Windows/Linux entries quote executable paths containing spaces - macOS plist builds ProgramArguments from the shared argument list
- move assets/icon.svg to src/assets so wheels include it - resolve the icon package-relative in TrayManager - point PyInstaller add-data at the packaged location
- delete the unsupported placeholder package - README now states updates come from GitHub Releases
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.
Summary
Fixes from the v1.0.0 codebase audit (crash-class items first):
P0 — crash-class
load_layoutno longer lets a wrong-shape layout file escape as an uncaughtTypeError; unreadable or malformed layouts fall back to defaultsdiskfield are dropped beforeQRectFinstantiation instead of crashing startupP1 — data loss
GlassHUD._quitbecame publicshutdown(); tray Exit now saves the layout exactly like the HUD context menu Exit, so widget/size edits are no longer lostP2 — packaging / correctness
-m srcargs; Windows/Linux entries quote executables containing spaces; macOS plist built from one shared argument listsrc/assets/icon.svg, resolved package-relative and shipped viapackage-data— wheels no longer produce a blank tray icon (verified with a test wheel install)Cleanup
glasshub-updater/prototype; README now states updates come from GitHub Releases onlyDocs
DocsHub pages updated in lockstep (see the matching ZFordDev/DocsHub pull request): full six-widget default layout example, geometry-validation wording, compat modules listed, updater references dropped.
Testing
ruff format --check .passruff check .passpytest -qoffscreen: 14 passed, includes 6 new regression tests covering malformed layouts, shutdown persistence, tray routing, and autostart generation