Commit Graph

4 Commits

Author SHA1 Message Date
Alphaeus Mote 2befe64a0c feat(install): idempotent Windows firewall rule; skip the blank MSI EULA
Firewall:
- On service initialize/install, create an idempotent inbound allow rule
  ("OrchestrAD") for the configured listen port, scoped to RFC 1918 private
  ranges plus CGNAT (10/8, 172.16/12, 192.168/16, 100.64/10). The rule is
  deleted-then-added so it always reflects the current port, and removed on
  service uninstall. Best-effort (needs admin; the MSI custom action and
  service run elevated); no-op off Windows. Verified the netsh rule lands
  with the expected port and remote-address scoping.

MSI:
- Skip the license/EULA page (Welcome now goes straight to the install
  directory), since it was blank. A standard short notice is kept in
  license.rtf only so the stock license control resolves at build time.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-09-02 21:46:08 -04:00
Alphaeus Mote 0e671ff34c feat(installer): wizard with install-dir + network dialogs and finish page
Add a WiX UI wizard (WixToolset.UI.wixext): Welcome -> License (GPLv3) ->
Install directory -> Network (listen address + port) -> Ready -> Finish. The
install dir, listen address, and port are recorded in the registry and the
service reads them; the finish page shows https://localhost:<port>/ with the
default admin/admin credentials and an optional 'open in browser' box. Schedule
InitializeService after WriteRegistryValues so the first start binds the chosen
port. CI msi job adds the UI extension. Verified: install to a custom dir + port
binds that port (health OK), registry recorded, upgrade + uninstall clean.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-09-02 11:51:52 -04:00
Alphaeus Mote 46ccb7a92a feat(installer): record version + install dir, preserve database on upgrade
Record InstallDir and Version under HKLM\Software\Grace Solutions\OrchestrAD and
reuse the install directory on upgrade via a RegistrySearch. Upgrades remove the
old product first (stopping the service) then install the new binary and
re-initialize, so only binaries change and the runtime data directory (SQLite
database) is never touched. Verified: v1->v2 upgrade keeps the DB file and a
sentinel intact, service stays healthy.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-09-02 09:27:36 -04:00
Alphaeus Mote 503b3f037c feat(installer): WiX MSI installing to Program Files with service
Add a WiX v5 installer that installs orchestrad.exe to Program Files\OrchestrAD
(x64) and registers + starts the Windows service via the binary's idempotent
initialize command; uninstall runs remove before deleting files, leaving no
orphaned service. Embeds the app icon in Add/Remove Programs. Validated end to
end on Windows: install -> service Running + healthy, uninstall -> clean.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-09-02 09:11:06 -04:00