Skip to content

Commit ad89eb2

Browse files
committed
docs(adr): ADR-0144 takes the three should-fixes of delta review 6485356516
The delta review on e9bb190 (PASS, no must-fix) found three residues in the text the previous commit added: - Builds-on called the declared-aggregate refusals "authoring diagnostics, not wire errors", which is wrong for the dataset-compile half (the compile runs in the request path and DATASET_INVALID / 400 reaches the caller) and loose for the registration half (INVALID_METADATA / 422 when a metadata write triggers it). The clause now names those existing codes; "They are the only ledger additions" stays the operative sentence. - Consequences attributed #27157's narrowing to the epic; the record's own References line places #27157 outside the epic, as a member of R1. It now reads "R1's one narrowing of what an author can write". - Open item 12 said the epic PM seat "ruled", a word this record reserves for the maintainer's text, and cited nothing a reader can open. It now says "decided", cites the decision comment on #27187 and PR #27338's commit 507ed8f as the tree evidence, and links the question as posted on epic #8345. Claude-Session: https://claude.ai/code/session_01Utp6CbTZrFqRYNgjSaSbN5 Co-authored-by: Claude <noreply@anthropic.com>
1 parent e9bb190 commit ad89eb2

1 file changed

Lines changed: 11 additions & 8 deletions

File tree

‎docs/adr/0144-multi-currency-record-currency-dated-rates-write-time-home-projection.md‎

Lines changed: 11 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -14,9 +14,9 @@
1414
Two of them need new codes, a blank record currency code and a missing rate ([Open item](#open-items) 9): ADR-0112
1515
sets their codes and envelope, and both are registered in its extension ledger. They are the only ledger additions.
1616
"At build" in D1 and D6 covers the declared aggregates: a `summary` roll-up refuses at registration and a dataset
17-
measure at compile, as authoring diagnostics, not wire errors. An ad-hoc aggregate is never built, so it meets the
18-
same rule at the request door (the ObjectQL aggregate-by-field-type door and the analytics cube measure door, D6)
19-
with an existing ADR-0112 catalog code, `INVALID_FIELD`.
17+
measure at compile, with existing codes (`INVALID_METADATA` at registration, `DATASET_INVALID` at compile). An ad-hoc
18+
aggregate is never built, so it meets the same rule at the request door (the ObjectQL aggregate-by-field-type door
19+
and the analytics cube measure door, D6) with an existing ADR-0112 catalog code, `INVALID_FIELD`.
2020
[ADR-0029](./0029-kernel-object-ownership-and-platform-objects-decomposition.md) D1, D3 and D6 (a first-party
2121
capability owns its `sys_*` objects, one owner per object, and `platform-objects` is being decomposed) and
2222
[ADR-0028](./0028-metadata-naming-and-namespace-isolation.md) (Deferred; the `sys` namespace design it records)
@@ -297,8 +297,8 @@ D8 already excludes a switch, injected columns, fixed field names and a setting
297297
## Consequences
298298

299299
- **`record` and `homeAmount` are additive.** `record` is a new mode, `dynamic` and `fixed` keep their meaning and
300-
stored rows are not touched. This epic's one narrowing of what an author can write is #27157's: a `fixed` field
301-
must name its code. Each consumer's semver is its own changeset's to declare, not this record's.
300+
stored rows are not touched. R1's one narrowing of what an author can write is #27157's: a `fixed` field must name
301+
its code. Each consumer's semver is its own changeset's to declare, not this record's.
302302
- **Two steps cannot be undone once used** (design record §13). One is the home-currency lock. The other: an object
303303
with record-mode amounts and a home field returns to a single currency only through a data migration.
304304
- **Today's relabel hazard closes where the feature is used** (the measurement round's Q2 recommendation). Once the
@@ -356,9 +356,12 @@ Where a source leans one way, the lean is quoted here, not adopted. This record
356356
12. **Whether today's cross-currency arithmetic between `fixed` fields of different codes is refused** (epic #8345).
357357
Two shapes: a measure `currency` that contradicts a `fixed` field's code, and a derived measure over two different
358358
`fixed` codes, which Context §1 counts among today's silently wrong numbers. The ruling on #27119 did not decide
359-
this: the ruled D1 sentence names only record-mode fields. The epic PM seat ruled that the R1 analytics card #27187
360-
(PR #27338) confines its compile guards to record-mode amounts. The general `fixed`-versus-`fixed` guard stays
361-
undecided. The authority is the maintainer's, and epic #8345 carries the question.
359+
this: the ruled D1 sentence names only record-mode fields. The epic PM seat decided, in
360+
[`6485365183`](https://github.com/objectstack-ai/objectstack/issues/27187#issuecomment-6485365183) on #27187, that
361+
the R1 analytics card #27187 confines its compile guards to record-mode amounts; PR #27338's commit `507ed8f9` is
362+
the tree evidence. The general `fixed`-versus-`fixed` guard stays undecided. The authority is the maintainer's, and
363+
epic #8345 carries the question
364+
([`6485374827`](https://github.com/objectstack-ai/objectstack/issues/8345#issuecomment-6485374827)).
362365

363366
## Verification notes
364367

0 commit comments

Comments
 (0)