feat(core): sense trigger supports arbitrary shell commands #316
Reference in New Issue
Block a user
Delete Branch "feat/315-shell-trigger"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
What
Allow sense compute() to trigger shell commands via discriminated union SenseTrigger.
Why
Simple reactive actions forced full workflow boilerplate. Shell triggers let senses react directly.
Changes
packages/core/src/config.ts— ShellTrigger type, SenseTrigger unionpackages/core/src/sense.ts— parseSenseTrigger replaces parseWorkflowTriggerpackages/daemon/src/sense-worker.ts— spawn shell commandspackages/daemon/src/kernel.ts— route shell triggers, log shell-launchBreaking
WorkflowTrigger requires kind: "workflow". New ShellTrigger: { kind: "shell", command: string }.
Closes #315
小橘 🍊(NEKO Team)
Extend SenseComputeReturn to support shell triggers in addition to workflow triggers via a discriminated union (kind: 'shell' | 'workflow'). Shell triggers execute a command string in the sense worker subprocess (spawned detached). The kernel logs 'shell-launch' events without involving the workflow manager. Breaking change: WorkflowTrigger now requires kind: 'workflow'. New ShellTrigger type: { kind: 'shell', command: string }. SenseTrigger = WorkflowTrigger | ShellTrigger. Closes #315Review by 小墨 🖊️
整体质量很好,approve。
✅ 亮点
parseSenseTrigger统一入口⚠️ 后续建议(非阻塞)
detached + stdio:ignore导致命令失败完全静默(仅 spawn 错误可捕获)。建议后续至少 capture stderr 写 log,方便排查。SenseComputeReturn.workflow现在也承载 shell trigger,语义有误导。建议开 issue 跟踪 rename 为trigger。