llmExtract returns {} as T in dryRun mode, causing .map() on undefined. Each role now returns mock data immediately when dryRun is true. 小橘 🍊(NEKO Team)
- Remove cpu-usage sense (redundant with system-health loadavg) - Remove linux-tcp-socket-stats (merged into linux-system-health) - Remove disk-usage-mounts (unused) - Add tcp socket fields to system-health schema + migration - Simplify nerve.yaml: 4 senses → 2 小橘 <xiaoju@shazhou.work>
- Fix hermes invocation: 'hermes -q' → 'hermes chat -q' with proper flags - Replace fragile string.includes('PASS') with llmExtract judge (previous false positive: matched '--pass-session-id' in usage text) 小橘 🍊(NEKO Team)
- Add linux-system-health sense (CPU load, memory, disk, uptime) - Register in nerve.yaml with 30s interval - Clean up .gitignore (ignore logs, pid, sock, false/) - Remove stale pnpm metadata cache (false/) 小橘 🍊(NEKO Team)