Skip to content

Fix Windows/macOS packaging and improve UI#1

Merged
uncle-hedgehog merged 1 commit into
mainfrom
claude/agitated-cerf
Apr 16, 2026
Merged

Fix Windows/macOS packaging and improve UI#1
uncle-hedgehog merged 1 commit into
mainfrom
claude/agitated-cerf

Conversation

@uncle-hedgehog

@uncle-hedgehog uncle-hedgehog commented Apr 16, 2026

Copy link
Copy Markdown
Contributor

Summary

  • Fix Windows packaging crash: Bundle pythonnet and clr_loader so Python.Runtime.dll is included in the PyInstaller build (fixes the RuntimeError on startup)
  • Fix UPX corruption: Exclude .NET DLLs from UPX compression on Windows; disable UPX entirely on macOS where it breaks ad-hoc code signatures and arm64 binaries
  • Add crash diagnostics: Show a native error dialog (Windows MessageBox / macOS osascript alert) and write wuggy_crash.log when the frozen app fails to start — previously console=False silently swallowed all errors
  • Guard platform-specific imports: PyObjC hidden imports only on macOS, pythonnet only on Windows; explicit deps in CI (pyobjc-framework-WebKit for macOS, pythonnet for Windows)
  • Replace native menu About with in-page button: The pywebview native menu was unreliable and absent in --browser mode — now a single ℹ button in the header works everywhere
  • Add logo and polish header: Wuggy bird icon from the app bundle, stacked title/subtitle, subtle gradient

Test plan

  • Build Windows .zip via PyInstaller and verify Wuggy.exe launches without the Python.Runtime.dll error
  • Build macOS .app via PyInstaller and verify it launches on both Intel and Apple Silicon
  • Verify the ℹ button in the header opens the About dialog
  • Verify crash dialog appears when simulating a startup failure in frozen mode
  • Run in --browser mode and confirm About dialog works there too

🤖 Generated with Claude Code

- Bundle pythonnet/clr_loader for Windows (fixes Python.Runtime.dll crash)
- Exclude .NET DLLs from UPX compression to prevent corruption
- Disable UPX on macOS (breaks ad-hoc signatures and arm64 binaries)
- Guard platform-specific hidden imports (PyObjC on macOS, pythonnet on Windows)
- Add explicit platform deps in CI (pythonnet for Windows, pyobjc-framework-WebKit for macOS)
- Add native crash dialog + log file for frozen bundles (Windows MessageBox, macOS osascript)
- Replace unreliable native menu About with in-page header button
- Add Wuggy bird logo and subtle gradient to header

Co-Authored-By: Claude Opus 4.6 <[email protected]>
@uncle-hedgehog uncle-hedgehog merged commit 962a185 into main Apr 16, 2026
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