fix(daemon): sense query returns 0 rows when signal value is undefined (#189 bug) #192

Closed
opened 2026-04-27 10:32:15 +00:00 by xiaoju · 0 comments
Owner

What

nerve sense query <name> returns (0 rows) even though nerve sense list shows a last signal timestamp.

Root Cause

  • sense list reads from daemon in-memory LogStore (packages/daemon/src/kernel.ts:381)
  • sense query reads from SQLite _signals table (packages/cli/src/sense-sqlite.ts)
  • When compute() returns undefined, the check result.value !== null is true (undefined !== null), so it tries to persist. JSON.stringify(undefined) returns JS undefined (not a string), causing SQLite insertion to silently fail or insert garbage.

Fix

In packages/daemon/src/sense-worker.ts:191, change:

if (result.value !== null)

to:

if (result.value != null)

This catches both null and undefined.

Verify

  1. Build passes
  2. nerve sense query <name> returns rows matching nerve sense list

Branch

refactor/189-inline-reflex-config or a separate fix/sense-query-undefined

Ref

Parent: #189

## What `nerve sense query <name>` returns `(0 rows)` even though `nerve sense list` shows a `last signal` timestamp. ## Root Cause - `sense list` reads from daemon in-memory LogStore (`packages/daemon/src/kernel.ts:381`) - `sense query` reads from SQLite `_signals` table (`packages/cli/src/sense-sqlite.ts`) - When `compute()` returns `undefined`, the check `result.value !== null` is true (undefined !== null), so it tries to persist. `JSON.stringify(undefined)` returns JS `undefined` (not a string), causing SQLite insertion to silently fail or insert garbage. ## Fix In `packages/daemon/src/sense-worker.ts:191`, change: ```ts if (result.value !== null) ``` to: ```ts if (result.value != null) ``` This catches both `null` and `undefined`. ## Verify 1. Build passes 2. `nerve sense query <name>` returns rows matching `nerve sense list` ## Branch `refactor/189-inline-reflex-config` or a separate `fix/sense-query-undefined` ## Ref Parent: #189
This repo is archived. You cannot comment on issues.
No Label
1 Participants
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: uncaged/nerve#192