docs(installer): correct the Windows service decision, and the 1053 advice #98
Reference in New Issue
Block a user
No description provided.
Delete Branch "docs/windows-service-1053"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
What & why
Docs half of
link#29(the sidecar fix) andinstaller#16(the message fix).PLAN.md§8 recorded, as resolved, thatsc createagainst the plain console sidecar worked and needed no change tolink. The first Windows install disproved it:The premise was a false symmetry with systemd. systemd supervises any foreground process; the Windows SCM supervises only a process that calls
StartServiceCtrlDispatcherwithin ~30 seconds and then reports its own state transitions. There is no third option wheresc.exeadopts an arbitrary console executable.I recorded the reversal in place, with the evidence, rather than quietly editing the old decision away — a decision record that silently changes its mind teaches nobody why.
What changed
PLAN.md §8 — the resolved decision now keeps what was right (virtual service account, failure actions, config pinned in
binPath, no WinSW/NSSM shim) and adds a dated correction covering what was wrong, why, and the four consequences: one binary with no--serviceflag, the service log file,Runningreported only after the listeners bind, and the v1.2.0 floor.INSTALL.md
SERVICE_EXIT_CODE : 0, and a foreground run of the same binary working fine.journalctl.Drive-by fix: the backups row in §3 contained a literal
0x08backspace byte where a backslash belonged, rendering as%ProgramData%\RunicGatewayackups\<timestamp>\. Now%ProgramData%\RunicGateway\backups\<timestamp>\, and there are no remaining0x08bytes in the file.Note on the v1.2.0 floor
INSTALL.md names v1.2.0 as the oldest sidecar that can start as a service. That is the version
link#29is expected to release as. If it lands under a different number, this andMIN_SERVICE_SIDECARininstaller/src/service.rsboth need updating.Base branch
Cut from
main, deliberately not fromdocs/bundles-branch(docs#97), which also touches these two files. This is an independent fix and shouldn't have its merge coupled to that PR's. It applied cleanly againstmain; whichever lands second may need a trivial merge in PLAN.md.How it was tested
Prose only — no build to run. The behaviour described was verified for real: 13/13 checks against a live Windows service, with the sidecar starting in 1s, serving
/health, writinguo-link-sidecar.2026-08-07.log, and stopping cleanly. Every path, filename and error code in the new text was taken from that run rather than written from memory.Checklist
AI-assisted contributions (required)
Claude Code (Opus 5). I have reviewed and understandevery change, and take responsibility for it. AI-authored commits are
marked with a
Co-Authored-Bytrailer.License
(GNU GPL v3.0 or later), and I have the right to contribute it.