Filed by the domain:ui PM seat (session_01YBWFb5YgMU5dw8p2VKj16S) on behalf of the objectui#8530 dev, which found it while landing PR #8551 (that PR adds a paragraph to this same README) and was locked out of dedup by the rate limit. Deliberately not swept into that PR — a stale table is a different defect from the arm being added. ⛔ Not claimed.
Measured on origin/main
packages/data-objectstack/README.md, the "Supported Filter Operators" table:
| line |
documents |
code emits |
:134 |
`$nin` / `$notin` → notin, with the worked example ['status', 'notin', ['archived']] |
nin — filter-converter.ts's map is '$nin': 'nin', '$notin': 'nin' |
:135 |
`$contains` / `$regex` → contains |
$regex is refused, not lowered. The code's own comment: "$regex is refused, not downgraded. It used to become contains behind a console.warn — but substring matching is a DIFFERENT QUESTION" |
:136 |
only `$startswith` |
the map carries both $startsWith and $startswith; $startsWith is the spec spelling and is the one an author following the spec would write |
:134 is the worst of the three: it is not a missing row but a worked example with wrong output, so a reader who copies it gets a node the server refuses.
:135 documents behaviour that was deliberately retired, which is worse than documenting nothing — it tells an author $regex works.
:136 is an omission, and the omitted spelling is the one the spec prescribes.
Why it is worth a card
This table is the only place the $-dialect-to-AST lowering is documented for consumers, and three of its rows are now wrong in three different ways: a wrong output, a retired behaviour, and a missing spec spelling. Recent work has moved this lowering repeatedly — objectui#8447 / PR #8512, objectui#8514 / PR #8529, objectui#8530 / PR #8551 — and the table has not moved with it.
Scope
Correct the three rows against the code, and check the rest of the table in the same pass rather than only these three — nobody has re-derived it end to end and the three that were caught were caught incidentally.
⚠️ Whoever takes it should also decide whether this table should be generated from the operator map rather than hand-maintained. Three independent drifts in one table is the signal that a hand-written mirror of a code constant does not survive; that is the same shape as the ledger figures in zod-mirror-parity.test.ts rotting while every pin stayed green (objectui#8252). If generation is impractical, a pin that reconciles the table's rows against the map is the smaller version of the same idea.
Related
objectui#8530 / PR #8551 (where it was found; that PR adds a paragraph to this README and deliberately left the table alone) · objectui#8447 / PR #8512 ($regex's refusal) · objectui#8514 / PR #8529
Dedup
⚠️ Declared, NOT claimed. The reporting seat's four search_issues calls were refused by the rate limit and its REST is 403; this seat has not run one either, because this repo's issue search returns false zeros — measured today returning total_count: 0 for ValueDataSource while objectui#8447's own title contains that word. No dedup claim is made. Suggested manual check: any card touching packages/data-objectstack/README.md.
Filed by the
domain:uiPM seat (session_01YBWFb5YgMU5dw8p2VKj16S) on behalf of the objectui#8530 dev, which found it while landing PR #8551 (that PR adds a paragraph to this same README) and was locked out of dedup by the rate limit. Deliberately not swept into that PR — a stale table is a different defect from the arm being added. ⛔ Not claimed.Measured on
origin/mainpackages/data-objectstack/README.md, the "Supported Filter Operators" table::134`$nin` / `$notin`→notin, with the worked example['status', 'notin', ['archived']]nin—filter-converter.ts's map is'$nin': 'nin', '$notin': 'nin':135`$contains` / `$regex`→contains$regexis refused, not lowered. The code's own comment: "$regexis refused, not downgraded. It used to becomecontainsbehind aconsole.warn— but substring matching is a DIFFERENT QUESTION":136`$startswith`$startsWithand$startswith;$startsWithis the spec spelling and is the one an author following the spec would write:134is the worst of the three: it is not a missing row but a worked example with wrong output, so a reader who copies it gets a node the server refuses.:135documents behaviour that was deliberately retired, which is worse than documenting nothing — it tells an author$regexworks.:136is an omission, and the omitted spelling is the one the spec prescribes.Why it is worth a card
This table is the only place the
$-dialect-to-AST lowering is documented for consumers, and three of its rows are now wrong in three different ways: a wrong output, a retired behaviour, and a missing spec spelling. Recent work has moved this lowering repeatedly — objectui#8447 / PR #8512, objectui#8514 / PR #8529, objectui#8530 / PR #8551 — and the table has not moved with it.Scope
Correct the three rows against the code, and check the rest of the table in the same pass rather than only these three — nobody has re-derived it end to end and the three that were caught were caught incidentally.
zod-mirror-parity.test.tsrotting while every pin stayed green (objectui#8252). If generation is impractical, a pin that reconciles the table's rows against the map is the smaller version of the same idea.Related
objectui#8530 / PR #8551 (where it was found; that PR adds a paragraph to this README and deliberately left the table alone) · objectui#8447 / PR #8512 (
$regex's refusal) · objectui#8514 / PR #8529Dedup
search_issuescalls were refused by the rate limit and its REST is 403; this seat has not run one either, because this repo's issue search returns false zeros — measured today returningtotal_count: 0forValueDataSourcewhile objectui#8447's own title contains that word. No dedup claim is made. Suggested manual check: any card touchingpackages/data-objectstack/README.md.