You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
[finding] requires: ['triggers'] without automation validates, but at boot the record-change trigger is not installed and every flow "will never run" #20332
Filing gate: ① a defect with a named landing site, packages/spec/src/stack.zod.tsvalidateTriggerCapability (its contract text) against the runtime's install path. Finding class (b): a declared contract the runtime does not honour, with reach: measured at a public door.
Found by the os-dev round on #20215 (PR #20329, whose os init templates now declare requires: ['automation', 'triggers']). Filed by the domain:cli execution seat (#6024, session_01UYBdGBzWSrAMzpW8ah3GbP). ⛔ Filed bare: routing and grading belong to triage. ⛔ Not a claim.
What happens (measured by the dev at origin/main6a6a17b6, relayed)
A stack declaring requires: ['triggers'] and one record_change flow:
os validate exits 0;
os serve --dev boots, and prints:
「Flows: 1 flow(s) declared but the automation engine is not enabled - they will never run」;
「RecordChangeTriggerPlugin: automation service not available - record-change trigger NOT installed」.
The contract it contradicts
validateTriggerCapability's own docblock (packages/spec/src/stack.zod.ts): 「the trigger that fires a record_change … flow … is installed by ONE token, requires: [triggers]」. The runtime also needs automation (packages/cli/src/commands/serve.tsCAPABILITY_PROVIDERS.automation, AutomationServicePlugin; packages/triggers/trigger-record-changeRecordChangeTriggerPlugin). So the declared single token does not install a working trigger, and nothing at author time says so.
Seam
spec:validateTriggerCapability → runtime:packages/cli/src/commands/serve.ts CAPABILITY_PROVIDERS.automation and packages/triggers/trigger-record-change RecordChangeTriggerPlugin. Either triggers implies automation, or validation requires both. Which one is triage's call, and the maintainer's if it is a contract choice.
Dedupe
MCP issue search in this repository, run 2026-09-27: 「requires triggers without automation, record_change flow validates but automation engine is not enabled, flows never run」 → 18 hits.
Dedupe words: requires triggers without automation flow never runs · validateTriggerCapability automation · automation engine is not enabled validate passes
Filing gate: ① a defect with a named landing site,
packages/spec/src/stack.zod.tsvalidateTriggerCapability(its contract text) against the runtime's install path. Finding class (b): a declared contract the runtime does not honour, withreach:measured at a public door.Found by the
os-devround on #20215 (PR #20329, whoseos inittemplates now declarerequires: ['automation', 'triggers']). Filed by thedomain:cliexecution seat (#6024,session_01UYBdGBzWSrAMzpW8ah3GbP). ⛔ Filed bare: routing and grading belong to triage. ⛔ Not a claim.What happens (measured by the dev at
origin/main6a6a17b6, relayed)A stack declaring
requires: ['triggers']and onerecord_changeflow:os validateexits 0;os serve --devboots, and prints:The contract it contradicts
validateTriggerCapability's own docblock (packages/spec/src/stack.zod.ts): 「the trigger that fires a record_change … flow … is installed by ONE token, requires: [triggers]」. The runtime also needsautomation(packages/cli/src/commands/serve.tsCAPABILITY_PROVIDERS.automation,AutomationServicePlugin;packages/triggers/trigger-record-changeRecordChangeTriggerPlugin). So the declared single token does not install a working trigger, and nothing at author time says so.Seam
spec:validateTriggerCapability→runtime:packages/cli/src/commands/serve.ts CAPABILITY_PROVIDERS.automationandpackages/triggers/trigger-record-change RecordChangeTriggerPlugin. Eithertriggersimpliesautomation, or validation requires both. Which one is triage's call, and the maintainer's if it is a contract choice.Dedupe
MCP issue search in this repository, run 2026-09-27: 「requires triggers without automation, record_change flow validates but automation engine is not enabled, flows never run」 → 18 hits.
description/outputSchemareach the flow designer (7 keys) #20287 (open, connector triggers, unrelated), andtrigger.recordIdis never populated on record_change runs, and the persistedsys_automation_runrow carries no trigger block at all — runs cannot be correlated to their triggering record, and trigger kinds are lost across restart #7533,POST /api/v1/automation/:name/toggleanswers 500 INTERNAL_ERROR instead of 404 NOT_FOUND for an unknown flow #7535, examples/app-todotask_completiondeclarestype: 'record_change'with notriggerType— the flow is dead, and its trigger condition is written to a key nothing reads #6882, flow record trigger: array-formtriggerTypeis silently dead at every layer (no lint, no audit, no runtime warn) #3481, finding: aflow-type action's AutomationContext gets the same stampedrecordstub when the caller cannot read the row — and the flow face has norecordLoadDenied#14244, bug(service-automation):execute()never carries the flow author'ssuccessMessage/errorMessage— onlyresume()does, so a triggered run's friendly text is silently dropped #9414 and finding: the whole /automation read domain is gated only by "authenticated" — run-detail returns the triggering record's fields without that record's own FLS #7900 (all closed, runtime flow defects).None of them is this defect.
Dedupe words:
requires triggers without automation flow never runs·validateTriggerCapability automation·automation engine is not enabled validate passesGenerated by Claude Code