Two fixes for the v0.1.0 install experience:
1. Embed app.manifest with requestedExecutionLevel=requireAdministrator
so the GUI always elevates. The named pipe is ACL'd to SYSTEM and
the Administrators group, but UAC token splitting puts Admins in
deny-only on the standard token, so launching the GUI from the
Start Menu fails to connect with "Access is denied". The manifest
forces UAC to elevate, surfaces the shield icon on the shortcut,
and matches the reality that the GUI cannot function without
admin rights.
2. Add a [Code] PrepareToInstall hook to webhook-server.iss that runs
`sc stop WebhookServer` before file copy. Upgrade installs were
failing on locked binaries because the running service held the
exes open. sc returns non-zero on fresh installs (no service yet)
which we ignore.
Bumps Version to 0.1.1.
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
installer/webhook-server.iss is an Inno Setup 6 script that:
- Installs to %ProgramFiles%\WebhookServer
- Creates Start Menu folder + GUI shortcut (and optional desktop icon)
- Runs install-service.ps1 post-install to register the Windows Service
- Runs uninstall-service.ps1 pre-uninstall to remove it
- Bundles the webhook-server icon for the installer / uninstaller
scripts/build-installer.ps1 is the local build helper: publishes both
projects, finds ISCC.exe (PATH or standard install path), compiles the
installer with the version pulled from Directory.Build.props, drops the
output in dist/.
.github/workflows/ci.yml runs build + test on every push/PR to main.
.github/workflows/release.yml triggers on v* tags (or manual dispatch),
runs tests, installs Inno Setup via choco, builds the installer, and
attaches the .exe to a GitHub Release. Pre-1.0 versions are flagged
prerelease automatically.
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>