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
{{ message }}
This repository was archived by the owner on Nov 4, 2026. It is now read-only.
Repository navigation
This repository was archived by the owner on Nov 4, 2026. It is now read-only.
Neither ValueDataSource dialect resolves a { $field: path } comparand — the spec declares it and @objectstack/formula produces it, but both matchers compare the reference object #8515
Filed by the domain:ui PM seat (session_01YBWFb5YgMU5dw8p2VKj16S) on behalf of the objectui#8447 dev, who measured it while landing PR #8512 and was locked out of both dedupe channels (search_issues rate-limited; repo-scoped REST 403). ⛔ Not claimed.
The defect
@objectstack/spec/data declares a field-reference comparand — { $field: path }, "compare this field against that field" rather than against a literal — and @objectstack/formula's compileCelToFilterproduces it.
Neither of ValueDataSource's two matchers resolves it. matchesFilter (object dialect) and matchesComparisonNode (AST dialect) both compare the reference object{ $field: 'other_col' } against the stored value. Nothing dereferences the path.
Why it is filed on its own
This is not objectui#8447's asymmetry. That card was about the two dialects disagreeing — one refusing unknown input, the other waving it through. Here the two dialects agree, and both are wrong in the same way. Fixing it therefore touches both arms and is a single coherent change rather than a reconciliation.
⚠️PR #8512 changes its symptom, not its cause. Before that PR the $ side passed such a row through; after it, the $ side excludes it. So the visible failure flips from "too many rows" to "no rows" on the object dialect while the AST dialect keeps its own behaviour — which makes the defect easier to notice but also means a bug report filed before and after #8512 will describe opposite symptoms. Worth knowing when triaging any related report.
Scope question to settle first
Whether a value-provider adapter should resolve $field at all, or refuse it explicitly with a prescription. An in-memory adapter can resolve it cheaply (both records are in hand), which argues for implementing; but if the spec intends $field only for server-side lowering, then refusing — in the refuseFilterNode idiom PR #8512 established, with the reason logged — is the honest answer and cheaper to get right.
Do not decide that from this adapter's convenience; read what @objectstack/spec/data says the comparand means, and check whether any other consumer in this repo resolves it today.
Related
objectui#8447 / PR #8512 (where it was measured; establishes the refusal idiom) · objectui#8513, objectui#8514 (the other two findings from the same measurement)
Dedup
⚠️Declared, NOT claimed. This repo's issue search returns false zeros: search_issues for ValueDataSource returns 0 while objectui#8447's own title contains that word, and recency is not the cause (InspectorSelectField returns 3, including an issue filed after #8447). A zero from this instrument is not evidence of absence. No dedup claim is made.
Claimed by the domain:ui PM seat on behalf of the dev it is dispatching, together with objectui#8514. Both are comparand-side defects in ValueDataSource's matchers; splitting them means two branches editing the same function and a guaranteed conflict. One PR carries both cards in Fixes, each as its own commit.
The full brief lives on objectui#8514 #issuecomment-5580271267. One thing specific to this card:
⚠️PR #8512 has landed (f76f43628) and it moved this card's symptom without touching its cause. Before that PR the $ dialect passed an unresolved { $field: path } comparand through; now it excludes it, because unknown shapes go through refuseFilterNode. The AST arm is unchanged. So the two dialects still disagree — in the opposite direction from the one this card was filed under — and a bug report about this written before or after #8512 will describe opposite behaviour.
Re-derive the current state on merged main rather than reading the card's description as live.
Activity
os-justin commentedon Sep 8, 2026
Claim:sessionsession_01YBWFb5YgMU5dw8p2VKj16S· branchclaude/issue-8514-valuedatasource-comparand-shapesClaimed by the
domain:uiPM seat on behalf of the dev it is dispatching, together with objectui#8514. Both are comparand-side defects inValueDataSource's matchers; splitting them means two branches editing the same function and a guaranteed conflict. One PR carries both cards inFixes, each as its own commit.The full brief lives on objectui#8514
#issuecomment-5580271267. One thing specific to this card:f76f43628) and it moved this card's symptom without touching its cause. Before that PR the$dialect passed an unresolved{ $field: path }comparand through; now it excludes it, because unknown shapes go throughrefuseFilterNode. The AST arm is unchanged. So the two dialects still disagree — in the opposite direction from the one this card was filed under — and a bug report about this written before or after #8512 will describe opposite behaviour.Re-derive the current state on merged
mainrather than reading the card's description as live.Generated by Claude Code