agentd: Convert system service to systemd user service

t-744·WorkTask·
·
·
·Omni/Agentd
Parent:t-739·Created2 weeks ago·Updated1 week ago·pipeline runs →

Description

Edit

agentd currently runs as a system service but needs user-level access. This causes ErrorReadOnly bugs and prevents proper interaction with systemd --user services.

Changes: 1. Create systemd user service: ~/.config/systemd/user/agentd.service `ini [Unit] Description=Agentd daemon After=network-online.target

[Service] Type=simple ExecStart=<path-to-agentd> daemon Restart=on-failure RestartSec=5 Environment=AGENTD_PORT=8400

[Install] WantedBy=default.target `

2. Move DB to user-writable location (e.g., ~/.local/share/agentd/agentd.db) or fix /var/lib/omni directory permissions

3. Disable/remove the old system service

4. Ensure loginctl enable-linger is set so the service runs without an active session

5. Update DaemonConfig default DB path

Note: /var/lib/omni is owned by uid 1004 (ava) with 755 perms. Ben (uid 1000) can't create WAL/SHM/journal files there. This affects both agentd.db and tasks.db.

Files to modify:

  • Omni/Agentd/Daemon.hs (DB path config)
  • New: ~/.config/systemd/user/agentd.service

Timeline (5)

💬[human]2 weeks ago

Scope adjusted per discussion: kept deployer-managed system service (did not switch to user service). Updated manifest agentd entry to use writable ben-owned paths (/home/ben/.local/share/omni/agentd.db and /home/ben/.local/state/agentd), deployed new agentd artifact, and verified system service on :8400 with create/send/stop/delete API smoke tests.

💬[human]1 week ago

Ava verified: last comment from human author documents shipping/deployment with concrete evidence. Moving to Verified.

🔄[human]Review → Verified1 week ago