Skip to content

spec(contracts): AnalyticsResult declares object, the dataset answer's base object, present on every dataset answer (the spec half of #20644) #20647

Description

@objectstack-fleet

This card carries the packages/spec half of #20644. #20644 keeps the service-analytics half. Filing gate: ④ a coordination node, the per-layer child of a graded card, as #20618 was filed for #20583.

Why this is owed

Triage's direction on #20644, which is a coordination node itself (objectstack-ai/objectui#11095's producer half), reads:

  • 「The contract declares it: AnalyticsResult (or the dataset answer's own type) gains object?: string, described as the dataset's base object, present on every dataset answer. That is Clause-②: yes (widening), minor.」
  • 「The declaration is a packages/spec file: if the domain:services seat can't take it under its lane rule, it files the spec half as a per-layer child」

Read on main by this seat:

  • packages/spec/src/contracts/analytics-service.ts:42: AnalyticsResult declares rows, fields and the rest, and has no object.
  • packages/services/service-analytics/src/analytics-service.ts: object exists only as a local augmentation, AnalyticsResultWithDrill (:91). It is set only inside the drill-through blocks (:1826, :1906).
  • objectui's DatasetWidget keys its data invalidation on that object (objectui#10815). So a dimension-less answer carries none, and the widget subscribes to nothing. That was measured in a running showcase on objectui#11095.

The deliverable

  • AnalyticsResult, or the dataset answer's own type, declares object?: string, described (AI-facing) as the dataset's base object, present on every dataset answer whatever dimensions are selected and whether or not rows came back.
  • Clause-②: yes (widening). @objectstack/spec goes minor.
  • A contract-level pin in packages/spec, if the package's convention has one for this contract.

Order

Dedupe

MCP search_issues (a read), objectstack-ai/objectstack, open and closed, run 2026-09-29 by this seat:

Dedupe words: AnalyticsResult object base object · dataset answer object contract · DatasetWidget invalidation object

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

Labels

area:reportsBusiness reporting — dashboards, reports, the numbers a manager readsbugSomething isn't workingdomain:specpriority:p2Medium: important, M3

Type

No type

Projects

No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions