Skip to content

Commit ab0104d

Browse files
committed
fix(spec): grade the absent-value narrowing minor under the launch-window convention
The changeset declared the view filter rule absent-value refusal BREAKING with a `(narrowing)` arm but graded it `patch`, and its banner sentence said the level was `patch` because nothing widens. During the launch window a breaking change ships as `minor` (check-changeset-no-major.mjs header), so the frontmatter now reads `minor` and the sentence states that convention instead of misstating it in the shipped CHANGELOG. One sentence is added naming the carve-out the sibling view-filter entry pending in the same changeset directory records (an omitted value still parses; an absent icontains comparand is left unjudged) as reversed here, so the two entries do not contradict each other in the compiled CHANGELOG. Claude-Session: https://claude.ai/code/session_019c3Hi6ZMU1p6m6aA6Bz45d Co-authored-by: Claude <noreply@anthropic.com>
1 parent 22a14a1 commit ab0104d

1 file changed

Lines changed: 4 additions & 2 deletions

File tree

‎.changeset/19751-view-filter-rule-absent-value-refused.md‎

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,10 +1,10 @@
11
---
2-
"@objectstack/spec": patch
2+
"@objectstack/spec": minor
33
---
44

55
fix(spec): a stored view filter rule with no value on a value-taking operator is now refused at save instead of failing every query (#19751)
66

7-
**BREAKING** — an accept-set narrowing on a published authoring surface, pulling `ViewFilterRuleSchema` back to what its own `value` description already declares: every operator outside `in` / `not_in` / `between` and the four unary operators takes a scalar, and only the unary operators ignore the key. The level is `patch` because nothing widens; during the launch window breaking-ness is carried by this banner and the ADR-0087 disposition below, not by the level. The hand-migration prescription is registered under protocol major 18 as `view-filter-rule-absent-value-refused`.
7+
**BREAKING** — an accept-set narrowing on a published authoring surface, pulling `ViewFilterRuleSchema` back to what its own `value` description already declares: every operator outside `in` / `not_in` / `between` and the four unary operators takes a scalar, and only the unary operators ignore the key. Shipped as `minor` under the repo's launch-window convention for accept-set narrowings: during the launch window a breaking change ships as `minor`, so the level alone does not signal the break — this banner and the ADR-0087 disposition below carry it. The hand-migration prescription is registered under protocol major 18 as `view-filter-rule-absent-value-refused`.
88

99
## What changes
1010

@@ -14,6 +14,8 @@ A filter rule that omits `value` (or carries `value: undefined`) on `equals`, `n
1414
Filter comparand for operator "icontains" on field "name" is undefined. The rule carries no value, …
1515
```
1616

17+
This reverses a carve-out the #19514 entry records: its statements that an **omitted** value still parses (`value` is optional) and that an **absent** `icontains` comparand is left unjudged on a view rule no longer hold for any operator that takes a value — such a rule is now refused once, with the message above.
18+
1719
## What stays accepted
1820

1921
- The unary operators `is_empty` / `is_not_empty` / `is_null` / `is_not_null`, with or without a value.

0 commit comments

Comments
 (0)