Skip to content

Phase 3: Linux/Windows support (systemd --user unit behind the ServiceManager trait) #3

Description

@hefgi

Scope

Extend beyond macOS/launchd. The service layer is already abstracted behind the ServiceManager trait (src/launchd.rs) specifically so another init system can slot in without touching callers (add / doctor / launch / uninstall).

Work

  • Linux: implement a ServiceManager backed by a systemd --user unit (install/state/reload/uninstall). The FS watcher already uses notify, which selects inotify on Linux.
  • Windows: file-watcher backend + an appropriate service/startup mechanism (later).
  • Select the implementation at runtime by platform.

Denylist note (already handled, verify per-platform)

.credentials.json relocates under CLAUDE_CONFIG_DIR on Linux/Windows (it lives in the OS keychain on macOS). It is already on the denylist unconditionally, so excluding it is correct on all platforms — confirm during Linux bring-up.

Notes

  • Keep the launchd implementation untouched; add siblings behind the trait.
  • Priority: Phase 3.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions