Skip to content

Commit 6d4bdeb

Browse files
dmealingclaude
andcommitted
docs(authoring): the jsonb ladder's two version notes name the release that ships them
The Kotlin builder (#365) and the jsonb -> array migration conversion were both documented as "UNRELEASED ... shipping in the next cut". That hedge is true until the cut and false the moment it lands, and this skill ships INSIDE the npm sdk and the PyPI wheel, so it has to be right in the artifact. It now says: the builder is in 8.0.2 on Maven Central (the npm line's 1.0.2), and 8.0.1 and earlier have none; the conversion ships in 1.0.2, and on 1.0.1 and earlier the USING clause is added by hand. fixtures/agent-context-conformance/ is regenerated in the same commit. Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01ApQWqotP1jaKs85XhKVXG4
1 parent 1b8878b commit 6d4bdeb

6 files changed

Lines changed: 24 additions & 30 deletions

File tree

  • agent-context/skills/metaobjects-authoring
  • fixtures/agent-context-conformance
    • java-kotlin-react-tanstack/expected/.claude/skills/metaobjects-authoring
    • java-react/expected/.claude/skills/metaobjects-authoring
    • python/expected/.claude/skills/metaobjects-authoring
    • ts-react-tanstack/expected/.claude/skills/metaobjects-authoring
    • ts-requirements/expected/.claude/skills/metaobjects-authoring

‎agent-context/skills/metaobjects-authoring/SKILL.md‎

Lines changed: 4 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -591,9 +591,9 @@ Java only the full N-arg constructor and a no-arg one yielding an all-null insta
591591
immutable class — a caller setting 3 of 14 members had to pass 14 arguments with 11 nulls. A
592592
generated VO replacing a hand-written builder therefore made its Java call sites *worse*.
593593
Generated entities and value objects now emit a nested `Builder` plus a `@JvmStatic builder()`
594-
(`Money.builder().currency("USD").build()`), so partial construction from Java works — but that
595-
is **UNRELEASED at the time of writing: it is on `main`, shipping in the next JVM cut.** Check
596-
the adopter's pinned version. Reading is unaffected on every version (Kotlin `val` emits Java
594+
(`Money.builder().currency("USD").build()`), so partial construction from Java works — **from
595+
8.0.2** on Maven Central (the npm line's 1.0.2). Check the adopter's pinned version: 8.0.1 and
596+
earlier have no builder. Reading is unaffected on every version (Kotlin `val` emits Java
597597
getters), so a bag that is only READ converts safely today; it is construction that was blocked.
598598
`object.projection` deliberately gets no builder — it is derived and read-only, and nothing
599599
constructs one.
@@ -620,8 +620,7 @@ migration — read the emitted DDL before promising that.
620620
array is a lossy type change to `meta migrate`, so it is refused until you pass
621621
`--allow type-change`. The emitted migration converts the rows in place: a `USING` clause unpacks
622622
each jsonb array, keeps element order, maps a JSON `null` to NULL, and FAILS on a row that is not
623-
an array rather than nulling it. That conversion is **UNRELEASED at the time of writing: it is on
624-
`main`, shipping in the next cut.** On 1.0.1 and earlier the emitted `ALTER … TYPE TEXT[]` carries
623+
an array rather than nulling it. That conversion ships in **1.0.2**. On 1.0.1 and earlier the emitted `ALTER … TYPE TEXT[]` carries
625624
no `USING`, and Postgres refuses it ("cannot be cast automatically"), so add the conversion by hand
626625
before applying. On every version the WRITER changes in the same deploy: a writer that sent
627626
`json.dumps(xs)` or a JSON-encoded string must now send the list itself.

‎fixtures/agent-context-conformance/java-kotlin-react-tanstack/expected/.claude/skills/metaobjects-authoring/SKILL.md‎

Lines changed: 4 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -591,9 +591,9 @@ Java only the full N-arg constructor and a no-arg one yielding an all-null insta
591591
immutable class — a caller setting 3 of 14 members had to pass 14 arguments with 11 nulls. A
592592
generated VO replacing a hand-written builder therefore made its Java call sites *worse*.
593593
Generated entities and value objects now emit a nested `Builder` plus a `@JvmStatic builder()`
594-
(`Money.builder().currency("USD").build()`), so partial construction from Java works — but that
595-
is **UNRELEASED at the time of writing: it is on `main`, shipping in the next JVM cut.** Check
596-
the adopter's pinned version. Reading is unaffected on every version (Kotlin `val` emits Java
594+
(`Money.builder().currency("USD").build()`), so partial construction from Java works — **from
595+
8.0.2** on Maven Central (the npm line's 1.0.2). Check the adopter's pinned version: 8.0.1 and
596+
earlier have no builder. Reading is unaffected on every version (Kotlin `val` emits Java
597597
getters), so a bag that is only READ converts safely today; it is construction that was blocked.
598598
`object.projection` deliberately gets no builder — it is derived and read-only, and nothing
599599
constructs one.
@@ -620,8 +620,7 @@ migration — read the emitted DDL before promising that.
620620
array is a lossy type change to `meta migrate`, so it is refused until you pass
621621
`--allow type-change`. The emitted migration converts the rows in place: a `USING` clause unpacks
622622
each jsonb array, keeps element order, maps a JSON `null` to NULL, and FAILS on a row that is not
623-
an array rather than nulling it. That conversion is **UNRELEASED at the time of writing: it is on
624-
`main`, shipping in the next cut.** On 1.0.1 and earlier the emitted `ALTER … TYPE TEXT[]` carries
623+
an array rather than nulling it. That conversion ships in **1.0.2**. On 1.0.1 and earlier the emitted `ALTER … TYPE TEXT[]` carries
625624
no `USING`, and Postgres refuses it ("cannot be cast automatically"), so add the conversion by hand
626625
before applying. On every version the WRITER changes in the same deploy: a writer that sent
627626
`json.dumps(xs)` or a JSON-encoded string must now send the list itself.

‎fixtures/agent-context-conformance/java-react/expected/.claude/skills/metaobjects-authoring/SKILL.md‎

Lines changed: 4 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -591,9 +591,9 @@ Java only the full N-arg constructor and a no-arg one yielding an all-null insta
591591
immutable class — a caller setting 3 of 14 members had to pass 14 arguments with 11 nulls. A
592592
generated VO replacing a hand-written builder therefore made its Java call sites *worse*.
593593
Generated entities and value objects now emit a nested `Builder` plus a `@JvmStatic builder()`
594-
(`Money.builder().currency("USD").build()`), so partial construction from Java works — but that
595-
is **UNRELEASED at the time of writing: it is on `main`, shipping in the next JVM cut.** Check
596-
the adopter's pinned version. Reading is unaffected on every version (Kotlin `val` emits Java
594+
(`Money.builder().currency("USD").build()`), so partial construction from Java works — **from
595+
8.0.2** on Maven Central (the npm line's 1.0.2). Check the adopter's pinned version: 8.0.1 and
596+
earlier have no builder. Reading is unaffected on every version (Kotlin `val` emits Java
597597
getters), so a bag that is only READ converts safely today; it is construction that was blocked.
598598
`object.projection` deliberately gets no builder — it is derived and read-only, and nothing
599599
constructs one.
@@ -620,8 +620,7 @@ migration — read the emitted DDL before promising that.
620620
array is a lossy type change to `meta migrate`, so it is refused until you pass
621621
`--allow type-change`. The emitted migration converts the rows in place: a `USING` clause unpacks
622622
each jsonb array, keeps element order, maps a JSON `null` to NULL, and FAILS on a row that is not
623-
an array rather than nulling it. That conversion is **UNRELEASED at the time of writing: it is on
624-
`main`, shipping in the next cut.** On 1.0.1 and earlier the emitted `ALTER … TYPE TEXT[]` carries
623+
an array rather than nulling it. That conversion ships in **1.0.2**. On 1.0.1 and earlier the emitted `ALTER … TYPE TEXT[]` carries
625624
no `USING`, and Postgres refuses it ("cannot be cast automatically"), so add the conversion by hand
626625
before applying. On every version the WRITER changes in the same deploy: a writer that sent
627626
`json.dumps(xs)` or a JSON-encoded string must now send the list itself.

‎fixtures/agent-context-conformance/python/expected/.claude/skills/metaobjects-authoring/SKILL.md‎

Lines changed: 4 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -591,9 +591,9 @@ Java only the full N-arg constructor and a no-arg one yielding an all-null insta
591591
immutable class — a caller setting 3 of 14 members had to pass 14 arguments with 11 nulls. A
592592
generated VO replacing a hand-written builder therefore made its Java call sites *worse*.
593593
Generated entities and value objects now emit a nested `Builder` plus a `@JvmStatic builder()`
594-
(`Money.builder().currency("USD").build()`), so partial construction from Java works — but that
595-
is **UNRELEASED at the time of writing: it is on `main`, shipping in the next JVM cut.** Check
596-
the adopter's pinned version. Reading is unaffected on every version (Kotlin `val` emits Java
594+
(`Money.builder().currency("USD").build()`), so partial construction from Java works — **from
595+
8.0.2** on Maven Central (the npm line's 1.0.2). Check the adopter's pinned version: 8.0.1 and
596+
earlier have no builder. Reading is unaffected on every version (Kotlin `val` emits Java
597597
getters), so a bag that is only READ converts safely today; it is construction that was blocked.
598598
`object.projection` deliberately gets no builder — it is derived and read-only, and nothing
599599
constructs one.
@@ -620,8 +620,7 @@ migration — read the emitted DDL before promising that.
620620
array is a lossy type change to `meta migrate`, so it is refused until you pass
621621
`--allow type-change`. The emitted migration converts the rows in place: a `USING` clause unpacks
622622
each jsonb array, keeps element order, maps a JSON `null` to NULL, and FAILS on a row that is not
623-
an array rather than nulling it. That conversion is **UNRELEASED at the time of writing: it is on
624-
`main`, shipping in the next cut.** On 1.0.1 and earlier the emitted `ALTER … TYPE TEXT[]` carries
623+
an array rather than nulling it. That conversion ships in **1.0.2**. On 1.0.1 and earlier the emitted `ALTER … TYPE TEXT[]` carries
625624
no `USING`, and Postgres refuses it ("cannot be cast automatically"), so add the conversion by hand
626625
before applying. On every version the WRITER changes in the same deploy: a writer that sent
627626
`json.dumps(xs)` or a JSON-encoded string must now send the list itself.

‎fixtures/agent-context-conformance/ts-react-tanstack/expected/.claude/skills/metaobjects-authoring/SKILL.md‎

Lines changed: 4 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -591,9 +591,9 @@ Java only the full N-arg constructor and a no-arg one yielding an all-null insta
591591
immutable class — a caller setting 3 of 14 members had to pass 14 arguments with 11 nulls. A
592592
generated VO replacing a hand-written builder therefore made its Java call sites *worse*.
593593
Generated entities and value objects now emit a nested `Builder` plus a `@JvmStatic builder()`
594-
(`Money.builder().currency("USD").build()`), so partial construction from Java works — but that
595-
is **UNRELEASED at the time of writing: it is on `main`, shipping in the next JVM cut.** Check
596-
the adopter's pinned version. Reading is unaffected on every version (Kotlin `val` emits Java
594+
(`Money.builder().currency("USD").build()`), so partial construction from Java works — **from
595+
8.0.2** on Maven Central (the npm line's 1.0.2). Check the adopter's pinned version: 8.0.1 and
596+
earlier have no builder. Reading is unaffected on every version (Kotlin `val` emits Java
597597
getters), so a bag that is only READ converts safely today; it is construction that was blocked.
598598
`object.projection` deliberately gets no builder — it is derived and read-only, and nothing
599599
constructs one.
@@ -620,8 +620,7 @@ migration — read the emitted DDL before promising that.
620620
array is a lossy type change to `meta migrate`, so it is refused until you pass
621621
`--allow type-change`. The emitted migration converts the rows in place: a `USING` clause unpacks
622622
each jsonb array, keeps element order, maps a JSON `null` to NULL, and FAILS on a row that is not
623-
an array rather than nulling it. That conversion is **UNRELEASED at the time of writing: it is on
624-
`main`, shipping in the next cut.** On 1.0.1 and earlier the emitted `ALTER … TYPE TEXT[]` carries
623+
an array rather than nulling it. That conversion ships in **1.0.2**. On 1.0.1 and earlier the emitted `ALTER … TYPE TEXT[]` carries
625624
no `USING`, and Postgres refuses it ("cannot be cast automatically"), so add the conversion by hand
626625
before applying. On every version the WRITER changes in the same deploy: a writer that sent
627626
`json.dumps(xs)` or a JSON-encoded string must now send the list itself.

‎fixtures/agent-context-conformance/ts-requirements/expected/.claude/skills/metaobjects-authoring/SKILL.md‎

Lines changed: 4 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -591,9 +591,9 @@ Java only the full N-arg constructor and a no-arg one yielding an all-null insta
591591
immutable class — a caller setting 3 of 14 members had to pass 14 arguments with 11 nulls. A
592592
generated VO replacing a hand-written builder therefore made its Java call sites *worse*.
593593
Generated entities and value objects now emit a nested `Builder` plus a `@JvmStatic builder()`
594-
(`Money.builder().currency("USD").build()`), so partial construction from Java works — but that
595-
is **UNRELEASED at the time of writing: it is on `main`, shipping in the next JVM cut.** Check
596-
the adopter's pinned version. Reading is unaffected on every version (Kotlin `val` emits Java
594+
(`Money.builder().currency("USD").build()`), so partial construction from Java works — **from
595+
8.0.2** on Maven Central (the npm line's 1.0.2). Check the adopter's pinned version: 8.0.1 and
596+
earlier have no builder. Reading is unaffected on every version (Kotlin `val` emits Java
597597
getters), so a bag that is only READ converts safely today; it is construction that was blocked.
598598
`object.projection` deliberately gets no builder — it is derived and read-only, and nothing
599599
constructs one.
@@ -620,8 +620,7 @@ migration — read the emitted DDL before promising that.
620620
array is a lossy type change to `meta migrate`, so it is refused until you pass
621621
`--allow type-change`. The emitted migration converts the rows in place: a `USING` clause unpacks
622622
each jsonb array, keeps element order, maps a JSON `null` to NULL, and FAILS on a row that is not
623-
an array rather than nulling it. That conversion is **UNRELEASED at the time of writing: it is on
624-
`main`, shipping in the next cut.** On 1.0.1 and earlier the emitted `ALTER … TYPE TEXT[]` carries
623+
an array rather than nulling it. That conversion ships in **1.0.2**. On 1.0.1 and earlier the emitted `ALTER … TYPE TEXT[]` carries
625624
no `USING`, and Postgres refuses it ("cannot be cast automatically"), so add the conversion by hand
626625
before applying. On every version the WRITER changes in the same deploy: a writer that sent
627626
`json.dumps(xs)` or a JSON-encoded string must now send the list itself.

0 commit comments

Comments
 (0)