RFC §3 (Events as graph nodes) promised "a flow with zero Event nodes is a subgraph (replaces today's OnCall discriminator)". Phase 6 (flow-codegen#16 / 4073b58) kept event: { "type": "OnCall" } as a top-level discriminator instead. The loader comment now reads: "legacy file-level event: header is retained for one case only: OnCall".
Decision needed
- (A) Land the RFC verbatim — drop the
OnCall Event-union variant and the "OnCall" arm of buildEvent. Classification:
- Event nodes ≥ 1 → event-driven flow (
flow.event = .OnEvent).
- Event nodes = 0 +
params declared → subgraph (synthesize a sentinel variant or refactor Flow.event to a sum type).
- Event nodes = 0 + no
params → malformed.
- Any top-level
"event": {…} header → reject.
- (B) Amend the RFC to reflect the shipped decision, close this.
Files in scope (for A)
flow-codegen/src/flow_io.zig — Event union, buildEvent, buildFlow's event-resolution blk: block.
flow-codegen/src/codegen.zig — renderEntryFunction (.OnCall arm of assertEntityAvailable), entryFunctionName, writeFnHeader.
flow-codegen/test/root_test.zig — fixtures using "event": { "type": "OnCall" }.
labelle-assembler/src/flow_scanner.zig — verify no live consumer keys on the OnCall tag literal.
In-tree migration
Last sweep showed zero .flow.jsonc files using OnCall in-tree.
Cross-references
RFC RFC-FLOW-VOCABULARY.md §3 — Phase 6 landing flow-codegen 4073b58 + labelle-assembler 5631838.
RFC §3 (Events as graph nodes) promised "a flow with zero Event nodes is a subgraph (replaces today's
OnCalldiscriminator)". Phase 6 (flow-codegen#16 /4073b58) keptevent: { "type": "OnCall" }as a top-level discriminator instead. The loader comment now reads: "legacy file-levelevent:header is retained for one case only:OnCall".Decision needed
OnCallEvent-union variant and the"OnCall"arm ofbuildEvent. Classification:flow.event = .OnEvent).paramsdeclared → subgraph (synthesize a sentinel variant or refactorFlow.eventto a sum type).params→ malformed."event": {…}header → reject.Files in scope (for A)
flow-codegen/src/flow_io.zig—Eventunion,buildEvent,buildFlow's event-resolutionblk:block.flow-codegen/src/codegen.zig—renderEntryFunction(.OnCallarm ofassertEntityAvailable),entryFunctionName,writeFnHeader.flow-codegen/test/root_test.zig— fixtures using"event": { "type": "OnCall" }.labelle-assembler/src/flow_scanner.zig— verify no live consumer keys on theOnCalltag literal.In-tree migration
Last sweep showed zero
.flow.jsoncfiles using OnCall in-tree.Cross-references
RFC
RFC-FLOW-VOCABULARY.md§3 — Phase 6 landing flow-codegen4073b58+ labelle-assembler5631838.