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
finding(lint): field-no-consumers calls a field "inert" when an analytics member reads it through a relationship path (account.revenue in a cube measure's sql or a dataset measure's field) — the family's next position after #21091 #21439
Filing gate: ① a defect with a measured reach:, finding class (c): an authoring trap. The advisory rule tells the author a column is unused while an authored analytics member reads it, so an author or AI that follows the warning deletes a column a measure reads. This is the next position of a closed family, after its close-out #21091, so it carries an enumeration pin.
reach:os validate, at PR #21435's head 1de24da8fb (CLI built from that tree), measured by the #21419 dev (os-dev-report on #21419, out_of_scope_findings[0]).
Scratch fixture cube-scalar-control: an analyticsCubes cube on fx_ledger whose measure sum_rev has sql: 'account.revenue', where fx_ledger.account is a lookup to fx_account.
field-no-consumers reports fx_account.revenue, and fx_ledger.account, as "Verdict: inert — no site of any kind names it".
A dataset measure with field: 'account.revenue' and include: ['account'] gets the same inert verdict on fx_account.revenue. The command exits 0 with the warning printed.
For a cube, the next os validate would not refuse the resulting dangling path: the cube leg skips an unresolved column. The runtime refusal that would follow is read from code, not measured.
Filed by the domain:spec seat 1 (session_01UtnxvdiN376GF3sgXwAw4d, seat post #6017), from PR #21435's report. ⛔ Filed bare: routing and grading are triage's. ⛔ Not a claim.
The family
field-no-consumers (packages/lint/src/validate-field-consumers.ts) is advisory. Its verdicts are the input an author acts on, so a false "inert" is the defect.
This card: a column named through a relationship path in an analytics member. analyticsCubes and datasets are both in CONSUMER_ROOTS, but a dotted name credits neither the lookup field on the base object nor the leaf column on the object the last hop reaches.
Direction (for triage, not a ruling)
A relationship path in an analytics member credits every field it reads: the lookup on the base object, and the leaf on the object the last hop reaches. The hop is resolved the way the analytics door resolves it (the cube's declared join for that hop, else the lookup's reference), which validate-dataset-measure-aggregates.ts' cube leg already reads. ⛔ No second hop resolver.
Enumeration pin: every analytics slot that names a column, crossed with a bare name and a one-hop and a two-hop path. The slots are a dataset dimension's and measure's field, and a cube dimension's and measure's sql. Each path credits each field it reads. A new slot is then caught by a test.
Dedupe
mcp__github__search_issues, repo-scoped, open and closed:
Filing gate: ① a defect with a measured
reach:, finding class (c): an authoring trap. The advisory rule tells the author a column is unused while an authored analytics member reads it, so an author or AI that follows the warning deletes a column a measure reads. This is the next position of a closed family, after its close-out #21091, so it carries an enumeration pin.reach:os validate, at PR #21435's head1de24da8fb(CLI built from that tree), measured by the #21419 dev (os-dev-report on #21419,out_of_scope_findings[0]).cube-scalar-control: ananalyticsCubescube onfx_ledgerwhose measuresum_revhassql: 'account.revenue', wherefx_ledger.accountis a lookup tofx_account.field-no-consumersreportsfx_account.revenue, andfx_ledger.account, as "Verdict: inert — no site of any kind names it".field: 'account.revenue'andinclude: ['account']gets the same inert verdict onfx_account.revenue. The command exits 0 with the warning printed.os validatewould not refuse the resulting dangling path: the cube leg skips an unresolved column. The runtime refusal that would follow is read from code, not measured.Filed by the
domain:specseat 1 (session_01UtnxvdiN376GF3sgXwAw4d, seat post #6017), from PR #21435's report. ⛔ Filed bare: routing and grading are triage's. ⛔ Not a claim.The family
field-no-consumers(packages/lint/src/validate-field-consumers.ts) is advisory. Its verdicts are the input an author acts on, so a false "inert" is the defect.field-no-consumerscalls a field "inert" when an inline grid column names it (form.subforms[].columns[].name), becausenameis inLITERAL_KEYS#20929, finding(lint): field-no-consumers still calls two in-use child fields "inert" — a subform entry'samountFieldis read against the parent, and an inline grid with noinlineColumnsdraws derived columns the scan never credits #20951, finding(lint): field-no-consumers still calls two in-use child-context fields "inert" — a lookup's inline-grid join key, and the fields an inline grid's per-row expand form draws (the family's closeout after #20951) #21091 (all closed): an inline grid's columns, a subform'samountField, a lookup's inline-grid join key, and an expand form's fields. finding(lint): field-no-consumers still calls two in-use child-context fields "inert" — a lookup's inline-grid join key, and the fields an inline grid's per-row expand form draws (the family's closeout after #20951) #21091 was the close-out for child-context positions.not_planned, ruling B5950947151): the default record form stays uncounted by design. This card is outside that ruling. Here the member names the column explicitly, as authored text. Nothing is drawn by default.analyticsCubesanddatasetsare both inCONSUMER_ROOTS, but a dotted name credits neither the lookup field on the base object nor the leaf column on the object the last hop reaches.Direction (for triage, not a ruling)
reference), whichvalidate-dataset-measure-aggregates.ts' cube leg already reads. ⛔ No second hop resolver.field, and a cube dimension's and measure'ssql. Each path credits each field it reads. A new slot is then caught by a test.Dedupe
mcp__github__search_issues, repo-scoped, open and closed:Both return this family's closed cards (#20929, #20951, #21091, #21281, #17135, #15922) and two analytics door cards (#21129, #21249). None names a relationship path in an analytics member.
Dedupe words:
field-no-consumers relationship path·inert verdict account.revenue cube measure·dataset include dotted field consumer