refactor: remove legacy reflexes backward-compat code

BREAKING CHANGE: NerveConfig no longer has 'reflexes' field.
SenseReflexConfig/ReflexConfig types removed.
Config with top-level 'reflexes' array now errors instead of migrating.
Use sense-level 'interval' and 'on' fields instead.

- Remove reflexes from NerveConfig type
- Remove legacy parsing, deprecation warning, buildReflexesFromSenses
- Simplify reflex-scheduler to only read sense-level config
- Rename senseTriggerLabelsWithFallback → senseTriggerLabels
- Delete all legacy reflexes test cases
- -639/+114 lines

Fixes #199
This commit is contained in:
2026-04-27 11:11:37 +00:00
parent 0d54d7fc77
commit 2b2895e5be
26 changed files with 114 additions and 639 deletions
@@ -187,7 +187,6 @@ function defaultTestConfig(withNoopWorkflow: boolean): NerveConfig {
on: [],
},
},
reflexes: [],
workflows: {
echo: { concurrency: 1, overflow: "queue" as const, maxQueue: 10 },
...(withNoopWorkflow ? { noop: { concurrency: 1, overflow: "drop" as const } } : {}),
+3 -3
View File
@@ -6,7 +6,7 @@ import {
type SenseInfo,
isPlainRecord,
parseNerveConfig,
senseTriggerLabelsWithFallback,
senseTriggerLabels,
} from "@uncaged/nerve-core";
import { defineCommand } from "citty";
@@ -69,13 +69,13 @@ export function sensesFromConfig(configPath: string): SenseInfo[] {
}
const result = parseNerveConfig(raw);
if (!result.ok) return [];
const { senses, reflexes } = result.value;
const { senses } = result.value;
return Object.entries(senses).map(([name, cfg]) => ({
name,
group: cfg.group,
throttle: cfg.throttle,
timeout: cfg.timeout,
triggers: senseTriggerLabelsWithFallback(name, senses, reflexes),
triggers: senseTriggerLabels(name, senses),
lastSignalTimestamp: null,
}));
}
+3 -1
View File
@@ -30,7 +30,9 @@ export const validateCommand = defineCommand({
const config = result.value;
const senseCount = Object.keys(config.senses).length;
const triggerScheduleCount = config.reflexes.length;
const triggerScheduleCount = Object.values(config.senses).filter(
(s) => s.interval !== null || s.on.length > 0,
).length;
const workflowCount = Object.keys(config.workflows).length;
process.stdout.write(