feat(daemon): auto-persist signals to sense DB #150

Merged
xiaomo merged 1 commits from feat/auto-persist-signals into main 2026-04-27 05:33:29 +00:00
Owner

What

Automatically persist every signal to the sense's own SQLite DB (_signals table).

Why

nerve sense query was returning 0 rows even though signals were being emitted. Signals were only in memory / central LogStore, not in the per-sense DB that sense query reads from.

Changes

  • sense-runtime.ts: auto-creates _signals table, returns persistSignal() closure
  • sense-worker.ts: calls persistSignal before IPC when compute returns non-null
  • sense-sqlite.ts: pickDefaultPreviewTable prioritizes _signals
  • sense-runtime.test.ts: updated test fixtures

Ref

Fixes signal persistence gap

## What Automatically persist every signal to the sense's own SQLite DB (_signals table). ## Why nerve sense query was returning 0 rows even though signals were being emitted. Signals were only in memory / central LogStore, not in the per-sense DB that sense query reads from. ## Changes - sense-runtime.ts: auto-creates _signals table, returns persistSignal() closure - sense-worker.ts: calls persistSignal before IPC when compute returns non-null - sense-sqlite.ts: pickDefaultPreviewTable prioritizes _signals - sense-runtime.test.ts: updated test fixtures ## Ref Fixes signal persistence gap
xiaoju added 1 commit 2026-04-27 05:31:54 +00:00
Every sense now gets a _signals table (id, payload, timestamp) created
automatically. When compute() returns non-null, the signal is persisted
to the sense's own SQLite DB before being sent to the Signal Bus.

This makes `nerve sense query <name>` return signal history out of the
box — no manual INSERT needed in compute functions.

CLI's pickDefaultPreviewTable now prioritizes _signals over other tables.
xiaomo approved these changes 2026-04-27 05:33:24 +00:00
xiaomo left a comment
Owner

LGTM

  • 闭包封装 persistSignal + prepared statement 复用,干净
  • _signals 表幂等创建,schema 合理
  • 先持久化再广播,顺序正确
  • 测试 fixture 已同步更新

建议后续加 _signals retention 策略防无限增长,不阻塞本次。

LGTM ✅ - 闭包封装 persistSignal + prepared statement 复用,干净 - _signals 表幂等创建,schema 合理 - 先持久化再广播,顺序正确 - 测试 fixture 已同步更新 建议后续加 _signals retention 策略防无限增长,不阻塞本次。
xiaomo merged commit a56dbadea2 into main 2026-04-27 05:33:29 +00:00
This repo is archived. You cannot comment on pull requests.
No Reviewers
No Label
2 Participants
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: uncaged/nerve#150