Part of #71. The "just runs in the background" promise. Without this, the daemon is a manual process and the headline UX falls apart.
Scope
`src/daemon/install.ts` with two OS-specific paths:
macOS
Linux
Cross-cutting
Acceptance
- Fresh macOS: `smriti daemon install` → reboot → daemon is running (verified via `launchctl list | grep smriti`)
- Fresh Linux: same with `systemctl --user status smriti`
- `smriti daemon uninstall` followed by reboot → daemon is not running, no orphaned plist/service file, no `~/.cache/smriti/daemon.sock`
Out of scope
Part of #71. The "just runs in the background" promise. Without this, the daemon is a manual process and the headline UX falls apart.
Scope
`src/daemon/install.ts` with two OS-specific paths:
macOS
Linux
Cross-cutting
Acceptance
Out of scope