Skip to content

Storage, cleanup, and migration

NERVE_HOME defaults to ~/.nerve. It contains file-first authoritative state for projects, conversations, events, settings, provider/tool authentication, tasks, plans, logs, reports, and caches. SQLite is a rebuildable index/cache rather than the sole source of truth.

Electron’s active Chromium profile is intentionally outside NERVE_HOME. Backing up only ~/.nerve does not capture browser local/session storage or the active Electron profile.

Settings can estimate usage and run asynchronous cleanup for old conversations/logs, event/tool-call compaction, reports, cache/temp data, and index rebuild. Cleanup skips symlinks during directory clearing and observes cancellation between targets; it cannot interrupt every target operation once started.

Conversation pruning supports age and keep-latest boundaries. It skips running/awaiting agents and conversations with active tasks, then removes associated inactive task/tool/plan/log/index records.

When local desktop mode finds an unversioned legacy home, it asks before changing it. Acceptance:

  1. renames the whole directory to a timestamped backup such as ~/.nerve-bk-20260716-013229;
  2. initializes current versioned state;
  3. imports validated settings, the custom provider/model catalog, and recoverable provider/tool credentials.

Projects, conversations, agents, tasks, plans, logs, run history, indexes, and daemon/session state remain only in the backup. Malformed settings/catalog abort and restore the original home. Credentials that cannot be decrypted cause reauthentication but do not destroy the backup.