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
{{ message }}
Repository navigation
Commit f561e92
Browse filesBrowse the repository at this point in the historyBrowse files
test(api-contract): the TPH leg of the writeOnce gate — and Kotlin's TPH path was red
Completes FR-037 R1's acceptance. `issuedCurrency` is declared on the TPH BASE
(`Auth`) so every subtype inherits it, which also exercises the resolving-accessor
requirement: a port reading @mutability own-only would see readWrite on each
subtype and let the write through.
IT FOUND A THIRD DEFECT, and it is the 0.19.4 lesson landing exactly as the plan
predicted it would. Kotlin's VANILLA lane was green and its TPH lane was RED:
`KotlinTphPlan.subtypeSettableFields` is a separate SSOT from the vanilla
controller's `patchSettableFields`, and only the latter had been taught the modes.
Nothing but a TPH-flavoured scenario reaches it — which is precisely why the
acceptance criteria demanded one rather than trusting that the vanilla gate
generalises.
The other four ports' TPH paths were already correct, but they were correct
UNGATED, which is the same state Kotlin's was in until this scenario ran.
Also folds `docs/features/migrations/0.x-to-1.0.md` — the cumulative adopter path
gains §8 for the whole 0.24.0 batch (four retirements, each linking its own guide),
and §7's 0.21.0 assembly-origin list is annotated rather than rewritten, since
`origin.collection` was accurate there and has only now gone.
TPH verified per port, both lanes where both exist: TS 18 (9 scenarios x 2) ·
C# 18 · Java TphGenerated 10 · Kotlin TphGenerated 10 · Python 13 collected
including tph-writeonce-patch-stripped. JVM reactors BUILD SUCCESS.
Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01DhpswkF1NvwxhFWMmdAT15
Copy file name to clipboardExpand all lines: server/java/integration-tests-kotlin/src/test/kotlin/com/metaobjects/integration/kotlin/api/tph/generated/GeneratedTphControllerHarness.kt
+3Lines changed: 3 additions & 0 deletions
Original file line number
Diff line number
Diff line change
@@ -152,6 +152,9 @@ class GeneratedTphControllerHarness(
Copy file name to clipboardExpand all lines: server/java/integration-tests/src/test/java/com/metaobjects/integration/api/tph/generated/GeneratedTphControllerHarness.java
+7-2Lines changed: 7 additions & 2 deletions
Original file line number
Diff line number
Diff line change
@@ -156,8 +156,10 @@ public Instant deserialize(JsonParser p, DeserializationContext ctx)
156
156
// ADR-0045 (#203/#229): the DTO record now carries the two @autoSet timestamp columns
157
157
// (autoCreatedAt onCreate, autoUpdatedAt onUpdate) right after the base's own scalars, in
158
158
// declared order — before the folded-in subtype-only columns.
159
+
// FR-037 R1 adds `issuedCurrency` (@mutability "writeOnce") on the BASE, so it lands
160
+
// among the base's own scalars in declared order, before the @autoSet pair.
0 commit comments