Commit 01a7337
* fix(objectql): a tenant's rename beats a package extension's scalar in the object fold (#8460)
ADR-0029 D9.2 makes the tenant's overlay the BASE of the object fold, and
mergeObjectDefinitions applied an extender's label / pluralLabel / description
LAST onto whatever base it was handed. So a rename saved through Studio
answered 200, showed up under ?layers=true, and was overwritten inside the
fold before any read served it.
Per the 2026-08-13 maintainer ruling (option A), an extender's scalar now
applies only while the fold's base still carries the packaged owner's value;
a diverged base was authored by the tenant and the extender yields. This is
deliberately the SAME comparison-based mechanism #8284 established one layer
up for the i18n catalog — scalarOverridesPackagedBase is exported from
@objectstack/spec and imported by the registry rather than re-spelled, so one
sentence governs both layers: an explicit override beats a packaged default.
No provenance flags, no migration, no escape hatch. The set is computed once
over the base the fold starts from, never re-derived from the running merge,
so extender-vs-extender precedence (D9.3) is untouched. Idempotence (#8027)
is preserved by construction.
Amends ADR-0029 D9.2 (new D9.2a). Flips #8284's staged acceptance pin in
showcase-object-extension-scalar-divergence.dogfood.test.ts to green,
unmodified in its assertions.
Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01RDTnVvsgA6cUZ4xFVtPZRy
* chore(spec): record the newly exported predicate in the api-surface snapshot (#8460)
The `TypeScript Type Check` job's final step is `check:api-surface`, which
failed on the export #8460 adds: "0 breaking (removed/narrowed), 1 added".
Purely additive — `scalarOverridesPackagedBase` is exported so the object
fold can reuse the #8284 predicate instead of re-spelling it, per the ruling.
Sibling of the export-origins regeneration already in this branch; the two
snapshots are separate gates over the same export.
Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01RDTnVvsgA6cUZ4xFVtPZRy
* ci: retrigger after an unrelated service-job flake (#8460)
`Test Core (2/3)` reddened at a1a1fc8 on
`db-job-adapter.timeout.test.ts` — a wall-clock flake filed as #8628: the
case registers a real every-minute cron and asserts exactly one run row, so
it fails when the shard straddles a minute boundary (CI: file started
03:02:55, assertion failed 03:03:00.17).
Not reachable from this diff — `@objectstack/service-job` does not depend on
`@objectstack/objectql`. Verified green locally 5/5 in isolation and 71/71
for the package, plus a full sweep of the fold's dependent class.
No re-run permission from this seat, so this empty commit retriggers CI.
Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01RDTnVvsgA6cUZ4xFVtPZRy
---------
Co-authored-by: Claude <noreply@anthropic.com>
1 parent 98eec7e commit 01a7337
7 files changed
Lines changed: 261 additions & 30 deletions
File tree
- .changeset
- docs/adr
- packages
- objectql/src
- qa/dogfood/test
- spec
- api-surface
- export-origins
- src/system
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
| 1 | + | |
| 2 | + | |
| 3 | + | |
| 4 | + | |
| 5 | + | |
| 6 | + | |
| 7 | + | |
| 8 | + | |
| 9 | + | |
| 10 | + | |
| 11 | + | |
| 12 | + | |
| 13 | + | |
| 14 | + | |
| 15 | + | |
| 16 | + | |
| 17 | + | |
| 18 | + | |
| 19 | + | |
| 20 | + | |
| 21 | + | |
| 22 | + | |
| 23 | + | |
| 24 | + | |
Lines changed: 62 additions & 0 deletions
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
472 | 472 | | |
473 | 473 | | |
474 | 474 | | |
| 475 | + | |
| 476 | + | |
| 477 | + | |
| 478 | + | |
| 479 | + | |
| 480 | + | |
| 481 | + | |
| 482 | + | |
| 483 | + | |
| 484 | + | |
| 485 | + | |
| 486 | + | |
| 487 | + | |
| 488 | + | |
| 489 | + | |
| 490 | + | |
| 491 | + | |
| 492 | + | |
| 493 | + | |
| 494 | + | |
| 495 | + | |
| 496 | + | |
| 497 | + | |
| 498 | + | |
| 499 | + | |
| 500 | + | |
| 501 | + | |
| 502 | + | |
| 503 | + | |
| 504 | + | |
| 505 | + | |
| 506 | + | |
| 507 | + | |
| 508 | + | |
| 509 | + | |
| 510 | + | |
| 511 | + | |
| 512 | + | |
| 513 | + | |
| 514 | + | |
| 515 | + | |
| 516 | + | |
| 517 | + | |
| 518 | + | |
| 519 | + | |
| 520 | + | |
| 521 | + | |
| 522 | + | |
| 523 | + | |
| 524 | + | |
| 525 | + | |
| 526 | + | |
| 527 | + | |
| 528 | + | |
| 529 | + | |
| 530 | + | |
| 531 | + | |
| 532 | + | |
| 533 | + | |
| 534 | + | |
| 535 | + | |
| 536 | + | |
475 | 537 | | |
476 | 538 | | |
477 | 539 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
17 | 17 | | |
18 | 18 | | |
19 | 19 | | |
20 | | - | |
| 20 | + | |
| 21 | + | |
| 22 | + | |
| 23 | + | |
| 24 | + | |
21 | 25 | | |
22 | 26 | | |
23 | 27 | | |
| |||
111 | 115 | | |
112 | 116 | | |
113 | 117 | | |
| 118 | + | |
| 119 | + | |
| 120 | + | |
| 121 | + | |
| 122 | + | |
| 123 | + | |
| 124 | + | |
| 125 | + | |
| 126 | + | |
114 | 127 | | |
115 | 128 | | |
116 | 129 | | |
| 130 | + | |
| 131 | + | |
| 132 | + | |
| 133 | + | |
| 134 | + | |
| 135 | + | |
117 | 136 | | |
118 | | - | |
| 137 | + | |
| 138 | + | |
| 139 | + | |
| 140 | + | |
| 141 | + | |
119 | 142 | | |
120 | 143 | | |
121 | 144 | | |
| |||
133 | 156 | | |
134 | 157 | | |
135 | 158 | | |
136 | | - | |
137 | | - | |
138 | | - | |
139 | | - | |
| 159 | + | |
| 160 | + | |
| 161 | + | |
| 162 | + | |
| 163 | + | |
| 164 | + | |
| 165 | + | |
| 166 | + | |
| 167 | + | |
| 168 | + | |
140 | 169 | | |
141 | 170 | | |
142 | 171 | | |
| |||
1614 | 1643 | | |
1615 | 1644 | | |
1616 | 1645 | | |
| 1646 | + | |
| 1647 | + | |
| 1648 | + | |
| 1649 | + | |
| 1650 | + | |
1617 | 1651 | | |
1618 | 1652 | | |
1619 | 1653 | | |
1620 | | - | |
| 1654 | + | |
1621 | 1655 | | |
1622 | 1656 | | |
1623 | 1657 | | |
1624 | 1658 | | |
1625 | 1659 | | |
| 1660 | + | |
| 1661 | + | |
| 1662 | + | |
| 1663 | + | |
| 1664 | + | |
| 1665 | + | |
| 1666 | + | |
| 1667 | + | |
| 1668 | + | |
| 1669 | + | |
| 1670 | + | |
| 1671 | + | |
| 1672 | + | |
| 1673 | + | |
| 1674 | + | |
| 1675 | + | |
| 1676 | + | |
| 1677 | + | |
| 1678 | + | |
| 1679 | + | |
| 1680 | + | |
| 1681 | + | |
| 1682 | + | |
| 1683 | + | |
| 1684 | + | |
| 1685 | + | |
| 1686 | + | |
| 1687 | + | |
| 1688 | + | |
| 1689 | + | |
| 1690 | + | |
| 1691 | + | |
| 1692 | + | |
| 1693 | + | |
| 1694 | + | |
| 1695 | + | |
| 1696 | + | |
| 1697 | + | |
| 1698 | + | |
| 1699 | + | |
| 1700 | + | |
| 1701 | + | |
| 1702 | + | |
| 1703 | + | |
| 1704 | + | |
| 1705 | + | |
| 1706 | + | |
| 1707 | + | |
| 1708 | + | |
| 1709 | + | |
| 1710 | + | |
| 1711 | + | |
| 1712 | + | |
| 1713 | + | |
| 1714 | + | |
| 1715 | + | |
| 1716 | + | |
| 1717 | + | |
| 1718 | + | |
| 1719 | + | |
| 1720 | + | |
| 1721 | + | |
| 1722 | + | |
| 1723 | + | |
| 1724 | + | |
| 1725 | + | |
| 1726 | + | |
| 1727 | + | |
| 1728 | + | |
| 1729 | + | |
| 1730 | + | |
1626 | 1731 | | |
1627 | 1732 | | |
1628 | 1733 | | |
| |||
0 commit comments