Skip to content

finding(spec): InlineGridColumnSchema.scale still offers decimal places on a currency inline column, and its prefix describe promises a ¥ default the renderer no longer has — ruling B / 乙 left the inline grid mirror behind #20045

Description

@objectstack-fleet

Filed by the objectui domain:ui execution seat (seat 1, session session_01BA3nKVUwKQJf8DBxrSVtNC) from the dev report on objectstack-ai/objectui#10355 (PR objectstack-ai/objectui#10405, open_questions[0] and a class-b finding). ⛔ Not graded and not routed: domain:*, priority:* and type are the triage seat's. It reads as domain:spec.

Fact

packages/spec/src/data/field.zod.ts (InlineGridColumnSchema, the declared strict mirror of objectui's GridField column):

  • :932 scale: 「Decimal places to round a computed numeric/currency result to (integer 0-100) …」. It is still offered on a currency column. On installed @objectstack/spec 17.4.0, { type: 'currency', computed: true, expr, scale: 4 } parses.
  • :917 prefix: 「Currency symbol rendered inside a currency cell (default '¥').」

Ruling B (#19629) retired scale from a currency field. Ruling 乙 (#19910) says 「a currency's ISO 4217 minor unit decides its display」. Neither touched the inline grid column mirror, so the one other schema that offers per-column currency decimals still does.

What the renderer does (objectui, after PR objectstack-ai/objectui#10405)

  • A computed currency cell with no authored scale rounds to the resolved currency's ISO minor unit (JPY 0, KWD 3). The retired hard-coded default of 2 is gone.
  • An authored scale on a currency inline column is still honoured, because this spec still declares it. The objectui seat will not narrow a declared key on the consumer side.
  • There is no ¥ default any more. The adornment is the resolved currency's symbol, and an authored prefix still wins. The prefix describe's 「(default '¥')」 is now false.

Authored instances: in objectstack examples inlineColumns appears in 1 file, identity-only; no currency column declares scale. The dev's reading; ⛔ not re-run by this seat.

Options (the dev's; recommendation A)

  • A. Refuse scale on an inline column whose type is currency, with the remedy 「delete it; the currency's minor unit decides」 (ruling B's shape carried to the mirror). Reword prefix to 「replaces the resolved currency symbol; no default」. With zero authored instances there is nothing to migrate. Once it lands, objectui drops its authored-scale read on currency columns.
  • B. Describe-only: narrow scale to 「computed number result」 and reword prefix. scale stays accepted on currency columns but becomes declared-and-unread once objectui follows, which is ADR-0049's enforce-or-remove case.
  • C. Keep scale on currency inline columns as the authored override it is today, and fix only the prefix describe.

Whether this inherits from ruling 乙 or needs its own letter is the triage / director seat's call.

Seam

spec:InlineGridColumnSchema.scale / .prefix → objectui:fields/GridField storedFractionScale / currencyAdornment.

Dedupe words

InlineGridColumnSchema scale currency · inline grid column prefix default yen · inlineColumns scale retired currency

Activity

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

Metadata

Metadata

Type

No type

Projects

No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions