Scope
Generalize the Windows-only WindowsServicePort to an OS-agnostic OsServicePort with two adapters: keep the existing ServyCliAdapter for Windows, add a SystemdAdapter for Linux. Removes the if (!Windows) abort guard in the deploy command path.
Target / adapter
Bare-metal (Linux systemd + Windows SERVY).
Acceptance criteria
OsServicePort interface + ServyCliAdapter (Windows) + SystemdAdapter (Linux systemd unit install/enable/start/stop/status).
- Deploy command routes by host OS; Windows behaviour unchanged.
- Unit tests for both adapters (systemd unit rendering; servy path preserved).
deno task check green.
Dependencies
S1 (deploy.targets.* contract — needs deploy.targets.linux/.windows shapes). Phase 1.
Tier / phase
BETA · Phase 1 · milestone 0.0.1-beta.1
Parent epic: #327
Scope
Generalize the Windows-only
WindowsServicePortto an OS-agnosticOsServicePortwith two adapters: keep the existingServyCliAdapterfor Windows, add aSystemdAdapterfor Linux. Removes theif (!Windows) abortguard in the deploy command path.Target / adapter
Bare-metal (Linux systemd + Windows SERVY).
Acceptance criteria
OsServicePortinterface +ServyCliAdapter(Windows) +SystemdAdapter(Linux systemd unit install/enable/start/stop/status).deno task checkgreen.Dependencies
S1 (
deploy.targets.*contract — needsdeploy.targets.linux/.windowsshapes). Phase 1.Tier / phase
BETA · Phase 1 · milestone 0.0.1-beta.1
Parent epic: #327