MSI upgrade/data preservation + service data dir + CI toolchain fixes #4

Merged
gsadmin merged 3 commits from development into main 2026-09-02 13:28:07 +00:00

3 Commits

Author SHA1 Message Date
Alphaeus Mote fc977c7928 ci: pin Go toolchain to local and goversioninfo to v1.7.0
go install goversioninfo@latest pulled a newer Go toolchain (1.26) that
mismatched setup-go's 1.24 and broke the resource step. Set GOTOOLCHAIN=local and
pin goversioninfo@v1.7.0 so the pinned toolchain builds the pinned tool.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-09-02 09:27:37 -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 72d6f84bf7 fix(cli): pin service working directory to the executable dir
A service launched by the SCM inherits the manager's working directory
(C:\Windows\System32 on Windows), which put the default ./data there. When
running non-interactively, chdir to the executable's directory so the database
lands beside the installed binary (Program Files\OrchestrAD\data). Interactive
and container runs are unaffected.

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