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
class-closure(currency-mode): every site that reads or teaches defaultCurrency without the currencyMode 'fixed' condition, or cites ADR-0053 for currency — spec describe, dashboards skill, data-api docs, analytics comments #20126
Filing-gate category: ① — class b (a declared contract contradicted at several sites), filed as the family's class-closure card under the reachability / closure rule (maintainer 「同意」 on #20088, landing as PR #20110): one card covers every site of the family with one enumerating pin; ⛔ no further single-site cards for this family — a new site is appended here. Filed by the domain:skills#1 seat (session_0148fenvVvyQV9HYxgVDQ33q, os-tesla) from the os-dev-report 5827983271 on #20090 (PRs #20118 / #20120). ⛔ Not graded, not routed: domain:*, priority:* and type are triage's; the sites span the spec, skills, devx and services lanes, so triage may split them into lane sub-issues under this card.
Reach: exception — release-frozen wrong text on published surfaces (the spec describe ships in the published @objectstack/spec typings and in the auto-generated content/docs/references/data/field.mdx; skills/objectstack-ui/rules/dashboards.md ships by npx skills add). The runtime member #20091 was measured by its filer: analytics faces show a dynamic field's defaultCurrency while field faces show the tenant currency since objectui#10461 merged.
The contract (read on origin/main7a13e05)
packages/spec/src/data/field-value.zod.ts :23 / :63 — a currency value is a bare number; the currency code lives in field config.
packages/spec/src/data/field.zod.ts :439–:440 — currencyMode: 'dynamic' | 'fixed' (default dynamic), defaultCurrency default 'CNY'; the FieldSchema guidance: a fixed currency is { currencyMode: 'fixed', defaultCurrency }, a field without one uses the tenant default at runtime.
docs/adr/0104-field-runtime-value-shape-contract.md :60 — all treat currency as a bare number. docs/adr/0053-* is the date / datetime semantics record and never names currency.
Sites — each reads or teaches defaultCurrency without the fixed condition, or cites ADR-0053 for currency
packages/spec/src/data/field.zod.ts :439 — the currencyMode describe says 「dynamic (user selectable)」: no key, ADR or runtime seam provides a per-record selection (ADR-0104 D1: the code lives in field config, not per value). Surfaces verbatim in content/docs/references/data/field.mdx (2 rows, gen:docs). Fix = one describe phrase + gen:docs. Lane: spec.
skills/objectstack-ui/rules/dashboards.md :304–:308 — teaches 「resolves measure currency → the aggregated field's currencyConfig.defaultCurrency → the tenant localization.currency default (ADR-0053)」: no mode, wrong ADR. Lane: skills (published catalog, Tier H).
content/docs/api/data-api.mdx :467 — the same unconditioned chain with the 「ADR-0053」 citation. Lane: devx.
Members already fixed or in flight: #20090 (skills/objectstack-data/rules/field-types.md + content/docs/data-modeling/{field-types,fields}.mdx — PRs #20118 / #20120, the seat's ACCEPT); #20091 (the analytics runtime, in flight).
Enumerating pin (the closure test; ⛔ no new check-* gate — a test in the owning package or an existing self-test case, added by whichever PR closes the last site)
Text sites: every defaultCurrency line under skills/**/*.md and content/docs/**/*.mdx must also carry fixed or say it is not the displayed currency under dynamic; the phrase ADR-0053 within five lines of currenc under skills/**, content/docs/** and packages/services/service-analytics/src/** must count 0.
Filing-gate category: ① — class b (a declared contract contradicted at several sites), filed as the family's class-closure card under the reachability / closure rule (maintainer 「同意」 on #20088, landing as PR #20110): one card covers every site of the family with one enumerating pin; ⛔ no further single-site cards for this family — a new site is appended here. Filed by the
domain:skills#1seat (session_0148fenvVvyQV9HYxgVDQ33q, os-tesla) from theos-dev-report5827983271 on #20090 (PRs #20118 / #20120). ⛔ Not graded, not routed:domain:*,priority:*andtypeare triage's; the sites span the spec, skills, devx and services lanes, so triage may split them into lane sub-issues under this card.Reach: exception — release-frozen wrong text on published surfaces (the spec
describeships in the published@objectstack/spectypings and in the auto-generatedcontent/docs/references/data/field.mdx;skills/objectstack-ui/rules/dashboards.mdships bynpx skills add). The runtime member #20091 was measured by its filer: analytics faces show adynamicfield'sdefaultCurrencywhile field faces show the tenant currency since objectui#10461 merged.The contract (read on
origin/main7a13e05)packages/spec/src/data/field-value.zod.ts:23 / :63 — acurrencyvalue is a bare number; the currency code lives in field config.packages/spec/src/data/field.zod.ts:439–:440 —currencyMode: 'dynamic' | 'fixed'(defaultdynamic),defaultCurrencydefault'CNY'; the FieldSchema guidance: a fixed currency is{ currencyMode: 'fixed', defaultCurrency }, a field without one uses the tenant default at runtime.docs/adr/0104-field-runtime-value-shape-contract.md:60 — all treat currency as a bare number.docs/adr/0053-*is the date / datetime semantics record and never names currency.Sites — each reads or teaches
defaultCurrencywithout thefixedcondition, or cites ADR-0053 for currencypackages/spec/src/data/field.zod.ts:439 — thecurrencyModedescribe says 「dynamic (user selectable)」: no key, ADR or runtime seam provides a per-record selection (ADR-0104 D1: the code lives in field config, not per value). Surfaces verbatim incontent/docs/references/data/field.mdx(2 rows,gen:docs). Fix = one describe phrase +gen:docs. Lane: spec.skills/objectstack-ui/rules/dashboards.md:304–:308 — teaches 「resolves measurecurrency→ the aggregated field'scurrencyConfig.defaultCurrency→ the tenantlocalization.currencydefault (ADR-0053)」: no mode, wrong ADR. Lane: skills (published catalog, Tier H).content/docs/api/data-api.mdx:467 — the same unconditioned chain with the 「ADR-0053」 citation. Lane: devx.packages/services/service-analytics/src/plugin.ts:1070 andsrc/analytics-service.ts:1792 — comments cite ADR-0053 for the currency chain, and the chain readsmc.currency ?? meta?.defaultCurrency ?? context?.currencywith no mode condition — this is finding(service-analytics): a measure's currency is resolved withoutcurrencyMode, so adynamicfield'sdefaultCurrencyshows on analytics faces while field faces show the tenant currency #20091's runtime half (services lane,pm:dispatched).Members already fixed or in flight: #20090 (
skills/objectstack-data/rules/field-types.md+content/docs/data-modeling/{field-types,fields}.mdx— PRs #20118 / #20120, the seat's ACCEPT); #20091 (the analytics runtime, in flight).Enumerating pin (the closure test; ⛔ no new
check-*gate — a test in the owning package or an existing self-test case, added by whichever PR closes the last site)defaultCurrencyline underskills/**/*.mdandcontent/docs/**/*.mdxmust also carryfixedor say it is not the displayed currency underdynamic; the phraseADR-0053within five lines ofcurrencunderskills/**,content/docs/**andpackages/services/service-analytics/src/**must count 0.defaultCurrencyonly undercurrencyMode === 'fixed'(finding(service-analytics): a measure's currency is resolved withoutcurrencyMode, so adynamicfield'sdefaultCurrencyshows on analytics faces while field faces show the tenant currency #20091's own pin).Dedupe
search_issues(open + closed) on 「currencyMode defaultCurrency read unconditionally without fixed mode tenant default currency ADR-0053 citation dashboards skill analytics measure chain user selectable describe」 → 6 hits: #20091 (open, the runtime member), #20090 (open, the docs / skill member, this card's origin), #19992 (open,currencyConfig.precisionliveness — a different key), #8163 / #19910 / #15387 (closed, other currency questions). No closure card exists for this family. Dedupe words:currency-mode class closure·defaultCurrency fixed condition sites·ADR-0053 currency citation·dynamic user selectable describe·dashboards.md currency chainGenerated by Claude Code
Blocked-by: #20196