feat(cli): add gateway install/uninstall commands for OS service registration#486
feat(cli): add gateway install/uninstall commands for OS service registration#486sytone wants to merge 1 commit into
Conversation
…stration - IGatewayServiceInstaller interface + GatewayServiceInstaller impl - Linux: writes systemd unit to /etc/systemd/system/botnexus.service - Windows: registers via sc.exe create/start/stop/delete - macOS: writes launchd plist to ~/Library/LaunchAgents/ - GatewayCommand: install + uninstall subcommands - Gateway Program.cs: UseSystemd() + UseWindowsService() (no-op in CLI mode) - 13 new tests covering unit-file/plist content and arg validation Closes #120
|
Farnsworth review — PR #486
LGTM. Ready to merge. |
|
CI: All checks passing LGTM - ready to merge. |
sytone
left a comment
There was a problem hiding this comment.
Farnsworth Review — PR #486
CI: ✅ All checks passing
Merge conflicts: ✅ Clean (MERGEABLE)
Conventional commit title: ✅ feat(cli): add gateway install/uninstall commands for OS service registration
Test coverage:
- ✅ 13 tests (install/uninstall Linux systemd, Windows sc.exe, macOS launchd)
- 99 CLI + 1636 gateway pass
Spec completeness vs #120: IGatewayServiceInstaller abstraction with platform-specific impls. UseSystemd() + UseWindowsService() in Program.cs. Cross-platform coverage correct.
LGTM. Ready to merge.
|
Closing as part of a planned hard-reset of the in-flight branch set so the new domain-model refactor can land on a clean trunk. Audit verdict: keep Rationale: CLI/install only. No domain impact. The new plan (in session state) reshapes core types: Citizen (User+Agent union), Vogen-generated value objects, ThreadId removed in favour of composite ChannelAddress, mark-not-delete compaction, centralised If this work is still wanted, refile as a new issue/PR against the post-refactor contracts. |
Closes #120
Changes
IGatewayServiceInstaller+GatewayServiceInstaller— cross-platform OS service management/etc/systemd/system/botnexus.service, runssystemctl enable --nowsc.exe create/start/stop/delete~/Library/LaunchAgents/ai.botnexus.gateway.plist, loads vialaunchctlGatewayCommand: newinstallanduninstallsubcommands — checks current state before actingGatewayServiceInstallerregistered asIGatewayServiceInstallersingleton in DIGateway Program.cs:UseSystemd()+UseWindowsService()— no-ops in CLI/foreground mode, active under OS service managersMicrosoft.Extensions.Hosting.Systemd+Microsoft.Extensions.Hosting.WindowsServicesUsage