Problem
internal/daemon/daemon.go lines 152-193 call launchctl (macOS-only) with no platform guard:
IsServiceInstalled() — runs launchctl list
IsServiceRunning() — parses launchctl list output
StopService() / StartService() — run launchctl commands
cmd/mnemonic/main.go lines 163-188 call these functions unconditionally in startCommand().
On Linux, launchctl doesn't exist, so these calls fail with "executable file not found".
Impact
mnemonic start crashes on Linux. Users must use mnemonic serve (foreground) as a workaround.
Fix
Add runtime.GOOS checks or use build-tag-separated files:
internal/daemon/service_darwin.go — existing launchctl code
internal/daemon/service_linux.go — systemd unit file + systemctl
internal/daemon/service.go — platform-agnostic interface
Problem
internal/daemon/daemon.golines 152-193 calllaunchctl(macOS-only) with no platform guard:IsServiceInstalled()— runslaunchctl listIsServiceRunning()— parseslaunchctl listoutputStopService()/StartService()— runlaunchctlcommandscmd/mnemonic/main.golines 163-188 call these functions unconditionally instartCommand().On Linux,
launchctldoesn't exist, so these calls fail with "executable file not found".Impact
mnemonic startcrashes on Linux. Users must usemnemonic serve(foreground) as a workaround.Fix
Add
runtime.GOOSchecks or use build-tag-separated files:internal/daemon/service_darwin.go— existing launchctl codeinternal/daemon/service_linux.go— systemd unit file +systemctlinternal/daemon/service.go— platform-agnostic interface