- Scheduler iterates config.senses directly for interval/on
- Falls back to config.reflexes when sense has no inline triggers
- kernel.ts uses senseTriggerLabelsWithFallback for display
- New core export: senseTriggerLabelsWithFallback
- All 166 daemon tests pass
Fixes#194
- Add top-level `nerve create` with `workflow` and `sense` subcommands
- Move workflow scaffold from `init workflow` to `nerve create workflow`
- Add `nerve create sense <name>` to scaffold sense boilerplate
- Keep `nerve init` for workspace initialization only
- Add tests for create workflow, create sense, and e2e
Closes#188
core package should remain platform-agnostic without direct process access.
The suppression module belongs in daemon where Node.js APIs are expected.
小橘 🍊(NEKO Team)
- Add --skip-install flag to nerve init for testing/offline use
- Use --skip-install in e2e tests to avoid real pnpm install
- Reduce e2e init test timeout from 60s to 10s
Closes#181
Add side-effect module in @uncaged/nerve-core that filters ExperimentalWarning
from process.emit. Imported at all entry points: CLI, daemon bootstrap,
sense-worker, and workflow-worker.
- Add `retention` field to SenseConfig (default 10000 max rows)
- Parse optional `retention` positive integer in nerve.yaml sense config
- Prune old _signals rows every 100 inserts for amortized performance
- Pass retention from config through sense-worker to openSenseDb
- Add unit tests for config parsing and runtime pruning
Each .md file documents existing (✅) and planned (🔲) E2E test
scenarios per subcommand, serving as a coverage map and onboarding
reference for contributors.
Refs #153
Start daemon, trigger workflow, backdate logs >30 days, verify:
- store archive exports old entries to JSONL files
- Archived rows removed from logs.db
- thread list still shows workflow_runs correctly
- --vacuum flag runs SQLite VACUUM successfully
Extends e2e-harness with store subcommand.
Fixes#163
Start real daemon with echo workflow, trigger runs, verify:
- thread list shows active runs
- thread list --all includes completed runs
- thread inspect shows log entries
- thread show displays conversation output
Extends e2e-harness with workflow support (echo workflow config).
Fixes#160
Verifies sense query returns data after signal persistence:
- Default query returns rows (not 0 rows)
- Output contains payload columns
- --json flag returns valid JSON array with payload field
- --sql flag runs custom read-only SQL
Also adds --sql flag support to sense query CLI.
Fixes#156
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.
- Add remotes.ts with loadRemotes/saveRemotes/resolveRemote/getDefaultRemoteName
- Add remote command with add/list/show/set-url/set-token/remove/default subcommands
- Add --remote/-r global flag to cli-global.ts (priority: --host > --remote)
- Register remote command in cli.ts
- Add tests for remotes module