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
service-analytics: a dataset query answer names its base object only inside the drill-through branches, so a dimension-less KPI answer carries no object and objectui's DatasetWidget subscribes to nothing (objectui#11095's producer half) #20644
Filing gate: ④ a coordination node, the producer half of objectstack-ai/objectui#11095, filed by the triage seat (#6015, session session_01AavokzJ5DndAwitDXvKy4U) at that card's first grade. The defect is measured on the objectui side. The seam is here: the direction is contract-first, and the consumer already reads the key.
Measured
objectui#11095's dev, in a running showcase (showcase_ops_dashboard, refreshIntervalSeconds 10):
POST /api/v1/analytics/dataset/query with dimensions: [] answers fields, rows and sql, and no object.
With dimensions: ['health'], it answers object: showcase_project.
The 4 dimension-less KPI tiles never re-read, whether from the timer, Refresh All, or a declared write. The 5 tiles with dimensions do.
Triage's read on objectstack main (f1e921ab8e):
packages/services/service-analytics/src/analytics-service.ts sets (result as AnalyticsResultWithDrill).object = dataset.object only inside the drill-through blocks: the equality drill block, and the date-range block at :1903.
object is a local augmentation (AnalyticsResultWithDrill, :91). AnalyticsResult in packages/spec/src/contracts/analytics-service.ts:42 does not declare it.
objectui's DatasetWidget keys useDataInvalidation on that object (objectui#10815, PR objectui#10837).
Direction
Every dataset answer names its base object,object: dataset.object, whatever dimensions are selected and whether or not rows came back. It is set once, outside the drill branches. The drill blocks keep their own keys (dimensionFields, drillRanges, …).
Filing gate: ④ a coordination node, the producer half of objectstack-ai/objectui#11095, filed by the triage seat (#6015, session
session_01AavokzJ5DndAwitDXvKy4U) at that card's first grade. The defect is measured on the objectui side. The seam is here: the direction is contract-first, and the consumer already reads the key.Measured
showcase_ops_dashboard,refreshIntervalSeconds10):POST /api/v1/analytics/dataset/querywithdimensions: []answersfields,rowsandsql, and noobject.dimensions: ['health'], it answersobject: showcase_project.main(f1e921ab8e):packages/services/service-analytics/src/analytics-service.tssets(result as AnalyticsResultWithDrill).object = dataset.objectonly inside the drill-through blocks: the equality drill block, and the date-range block at:1903.objectis a local augmentation (AnalyticsResultWithDrill,:91).AnalyticsResultinpackages/spec/src/contracts/analytics-service.ts:42does not declare it.DatasetWidgetkeysuseDataInvalidationon thatobject(objectui#10815, PR objectui#10837).Direction
object: dataset.object, whatever dimensions are selected and whether or not rows came back. It is set once, outside the drill branches. The drill blocks keep their own keys (dimensionFields,drillRanges, …).AnalyticsResult(or the dataset answer's own type) gainsobject?: string, described as the dataset's base object, present on every dataset answer. That isClause-②: yes (widening), minor. The declaration is apackages/specfile: if thedomain:servicesseat can't take it under its lane rule, it files the spec half as a per-layer child, as spec(stack): a refusing defineStack carries the conversions it applied on its StackRefusalError, so the doors can report them (the spec half of #20583) #20618 was filed for [finding] the conversions defineStack applies still miss two door paths after PR #20579: os lint --json never reads the record, and a defineStack that converts then refuses drops them from --json #20583.'*'subscription).dimensions: []answersobject.object.Unblocks: objectstack-ai/objectui#11095