Covendocs

Observability

Observability guide for the Coven daemon: health checks, daemon status, logs, socket checks, harness PATH checks, and diagnostic evidence for support.

2 min read

Useful daemon debugging starts with current evidence: process status, socket health, API compatibility, store reachability, and harness availability.

Fast check

Run:

coven daemon status

On Unix-like hosts, confirm the socket route:

curl --unix-socket "$HOME/.coven/coven.sock" \
  http://localhost/api/v1/health

If you use a custom state directory, replace $HOME/.coven with $COVEN_HOME. On Windows, use the owner-only named pipe reported by coven daemon status; the curl example above is Unix-specific.

What to capture

EvidenceCommand or sourceWhy it matters
Daemon statuscoven daemon statusConfirms pid, socket path, uptime, and API version.
Health responseGET /api/v1/healthConfirms the socket is reachable and the contract is compatible.
CapabilitiesGET /api/v1/capabilitiesConfirms the daemon sees expected features and adapters.
Session recordGET /api/v1/sessions/:idShows the daemon's status for one piece of work.
EventsGET /api/v1/events?sessionId=...Shows output, input, status, and exit sequence for replay.
Harness pathwhich codex, which claudeConfirms the selected harness exists in the daemon environment.

Do not paste secrets, provider tokens, private gateway URLs, or raw credentials into issues.

Logs

The daemon keeps an append-only recovery log at $COVEN_HOME/daemon-recovery.log. Each line is timestamped and records lifecycle and recovery evidence:

  • Daemon startups (pid and socket path).
  • Termination of unreachable duplicate daemons.
  • Accept-loop and API handler errors.
  • Panics, including a captured backtrace.

Read it first when the daemon restarted unexpectedly or a socket was left behind. The lock files daemon.lock (lifecycle orchestration) and daemon-serve.lock (single-writer serve guard) sit next to it; see Configuration and COVEN_HOME for the full state-directory layout.

Daemon logs should answer:

  • Did the daemon bind the expected socket?
  • Did the store open?
  • Did the health route serve the expected contract?
  • Did a launch request fail validation?
  • Did a harness spawn fail?
  • Did a live input or kill request target a non-live session?

When reading logs, search around the relevant session id, pid, timestamp, or structured error code.

Diagnostics bundle posture

Diagnostic output should redact secret-shaped values by default. Still review bundles before sharing them publicly, because session output can include private paths, prompts, and model responses.

Good issue reports include:

  • Coven version.
  • Operating system.
  • Install path and package manager.
  • Whether COVEN_HOME is customized.
  • coven daemon status output with secrets removed.
  • Health response with private paths redacted if necessary.
  • The failing command and exact structured error code.

Common symptoms

SymptomFirst check
Connection refusedIs the daemon started? Is the socket path correct?
Unsupported API versionAre the client and daemon from compatible releases?
Harness not foundDoes the daemon environment have the harness on PATH?
Session not liveDid the process exit, crash, get killed, or become orphaned?
cwd rejectedDoes cwd canonicalize inside the submitted project root?
Was this page helpful?No

Last updated on

On this page