Spec defect: never condition listed as "Always false" but also listed as returning True in stream-router subsystem #19

Open
opened 2026-05-27 05:26:52 +00:00 by hurui200320 · 0 comments
Member

Problem

§5.4 defines the never condition as:

| never | — | Always false. | All subsystems. |

The "Honored By" column says "All subsystems." However, the subsystem behavior table in §5.4.1 states:

| Stream-router conditions (filter, switch, splits) | True ("pass") | always (true) |

The default for unknown condition types in the stream router is True. If never is honored by all subsystems (as the table says), it should return false in the stream router too — which means it would drop all messages in a filter, which is the correct behavior for a condition called never.

But if the stream-router default of True for unknown types implies that never also returns True in that context (perhaps because the text "(returns True)" in the never row of the table was intended as a note rather than the condition result), the never condition would pass all messages through a filter, making it a synonym for always in the stream context — which contradicts its name and definition.

The parenthetical (returns True) in the never row of §5.4 is the source of the ambiguity.

Fix Needed

Clarify the never condition row in the §5.4 table:

  1. Does never always return false in all subsystems (including stream-router)?
  2. Or does the stream-router override never to return true per its default behavior?
  3. Remove or rephrase the (returns True) parenthetical if it is causing confusion.

References

  • §5.4 — Conditions table (never row)
  • §5.4.1 — Subsystem-Specific Behavior table
## Problem §5.4 defines the `never` condition as: > | `never` | — | Always false. | All subsystems. | The "Honored By" column says "All subsystems." However, the subsystem behavior table in §5.4.1 states: > | Stream-router conditions (`filter`, `switch`, splits) | True ("pass") | `always` (true) | The default for **unknown** condition types in the stream router is `True`. If `never` is honored by all subsystems (as the table says), it should return `false` in the stream router too — which means it would drop all messages in a filter, which is the correct behavior for a condition called `never`. But if the stream-router default of `True` for unknown types implies that `never` also returns `True` in that context (perhaps because the text "(returns `True`)" in the `never` row of the table was intended as a note rather than the condition result), the `never` condition would pass all messages through a `filter`, making it a synonym for `always` in the stream context — which contradicts its name and definition. The parenthetical `(returns True)` in the `never` row of §5.4 is the source of the ambiguity. ## Fix Needed Clarify the `never` condition row in the §5.4 table: 1. Does `never` always return `false` in all subsystems (including stream-router)? 2. Or does the stream-router override `never` to return `true` per its default behavior? 3. Remove or rephrase the `(returns True)` parenthetical if it is causing confusion. ## References - §5.4 — Conditions table (`never` row) - §5.4.1 — Subsystem-Specific Behavior table
Sign in to join this conversation.
No milestone
No project
No assignees
1 participant
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set.

Reference
cleveragents/actors-spec#19
No description provided.