Skip to content

Commit 2f284ce

Browse files
dmealingclaude
andcommitted
chore(release): npm 0.20.0 — TS newcomer quickstart fixes (migrate trap + nodenext imports)
Bumps the 14-package @metaobjectsdev/* npm lockstep set 0.19.3 -> 0.20.0. NuGet (0.19.3), PyPI (0.19.4) and Maven Central (7.11.3) are unchanged — those ports have no changed product file. MINOR: the codegen import-extension default flips to "js" (changes generated output) and relativeModuleSpecifier gains a param. See CHANGELOG.md [0.20.0]. Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01XeGSV3StPCcJGZNNJ4ZfAb
1 parent 6bbe307 commit 2f284ce

16 files changed

Lines changed: 69 additions & 50 deletions

File tree

CHANGELOG.md

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,13 @@ this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.htm
77

88
## [Unreleased]
99

10+
## [0.20.0] — 2026-07-25
11+
12+
**npm `0.20.0` only** (NuGet stays at `0.19.3`, PyPI at `0.19.4`, Maven Central at `7.11.3` — those ports have no changed product file). Two first-touch quickstart UX fixes surfaced by a fresh-external-install pressure test; no new vocabulary. MINOR because the codegen import-extension default changes generated output (see below) and `relativeModuleSpecifier`'s signature gains a parameter.
13+
14+
- **`meta migrate baseline` no longer silently traps a greenfield project.** An offline `meta migrate baseline` (without `--from-db`) derives its "already-applied" snapshot **from your metadata**, so on an empty/new database it recorded the entities' target shape as already applied — no `CREATE TABLE` was ever emitted and the generated server 500'd `no such table`, while the CLI reported success at every step. Now `meta migrate baseline` introspects the target `--db` and **refuses** (exit 2, writes no snapshot) when it can prove the database is empty; every other offline baseline still writes the snapshot but **warns** that it emits no DDL. The no-snapshot error hint, the `meta gen` success hint, and `meta migrate --help` all now route to the correct greenfield bootstrap — `meta migrate --from-db --db <url> --dialect <d> --slug init --apply` — instead of the `baseline` subcommand.
15+
- **Generated relative imports are now Node-ESM / `nodenext`-safe by default.** Generated code emitted un-extensioned relative imports (`import { Author } from "./Author"`, `from "../db"`), which fail `TS2835` under a stock `tsc --init` (`module: nodenext`) config — a wall of errors out of the box for a newcomer (the repo's own `moduleResolution: "bundler"` masked it). The `codegen.extStyle` default now flips from `"none"` to **`"js"`** (`import … from "./Author.js"`), and `meta init` scaffolds `extStyle: "js"`. `.js` specifiers resolve correctly under **both** `nodenext` and bundler resolution, so the default is strictly more compatible; opt back out with `extStyle: "none"`. A relative `dbImport` (e.g. `../db`) is extensioned too (`../db.js`). **This changes generated output** — the next `meta gen` on an existing project adds `.js` to relative imports (three-way merge preserves your hand edits); pin `extStyle: "none"` to keep the prior output. Gated by a new nodenext compile gate that type-checks real generated output under a stock `nodenext` program (zero `TS2835`).
16+
1017
## [0.19.4] — 2026-07-24
1118

1219
**PyPI `0.19.4` · Maven Central `7.11.3`.** npm stays at `0.19.3` and NuGet at `0.19.3` — neither port has a changed product file in this release (the TypeScript and C# changes were test-harness/fixture only). No breaking changes, no new vocabulary. Extends the [ADR-0045](spec/decisions/ADR-0045-generated-api-surface-owns-write-semantics.md) `field.timestamp @autoSet` stamping guarantee from vanilla entities to the **TPH (single-table discriminator) per-subtype API surface** ([#203](https://github.com/metaobjectsdev/metaobjects/issues/203) / [#229](https://github.com/metaobjectsdev/metaobjects/issues/229)).

bun.lock

Lines changed: 48 additions & 36 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

client/web/packages/react/package.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
{
22
"name": "@metaobjectsdev/react",
3-
"version": "0.19.3",
3+
"version": "0.20.0",
44
"description": "React runtime for metaobjects: useEntityForm hook and CurrencyInput component.",
55
"type": "module",
66
"main": "./dist/index.js",

client/web/packages/runtime-web/package.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
{
22
"name": "@metaobjectsdev/runtime-web",
3-
"version": "0.19.3",
3+
"version": "0.20.0",
44
"description": "Pure framework-agnostic browser core for metaobjects: currency, filter URL serialization, fetcher contract types.",
55
"type": "module",
66
"main": "./dist/index.js",

client/web/packages/tanstack/package.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
{
22
"name": "@metaobjectsdev/tanstack",
3-
"version": "0.19.3",
3+
"version": "0.20.0",
44
"description": "TanStack runtime for metaobjects: EntityFetcherProvider, EntityGrid, default cell renderers.",
55
"type": "module",
66
"main": "./dist/index.js",

server/typescript/packages/ai-runtime/package.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
{
22
"name": "@metaobjectsdev/ai-runtime",
3-
"version": "0.19.3",
3+
"version": "0.20.0",
44
"description": "LLM call loop + typed-trace recorder adapters for MetaObjects: provider-neutral LlmClient seam, callLlm bridge, Composite/Langfuse/OTel recorders.",
55
"type": "module",
66
"main": "./dist/index.js",

server/typescript/packages/cli/package.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
{
22
"name": "@metaobjectsdev/cli",
3-
"version": "0.19.3",
3+
"version": "0.20.0",
44
"description": "CLI for MetaObjects: scaffold, codegen, migrate, and drift-detection commands.",
55
"type": "module",
66
"main": "./dist/src/index.js",

server/typescript/packages/codegen-ts-react/package.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
{
22
"name": "@metaobjectsdev/codegen-ts-react",
3-
"version": "0.19.3",
3+
"version": "0.20.0",
44
"description": "React codegen for metaobjects — emits <Entity>.form.tsx files using react-hook-form and @metaobjectsdev/react helpers.",
55
"type": "module",
66
"main": "./dist/index.js",

server/typescript/packages/codegen-ts-tanstack/package.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
{
22
"name": "@metaobjectsdev/codegen-ts-tanstack",
3-
"version": "0.19.3",
3+
"version": "0.20.0",
44
"description": "TanStack codegen for metaobjects — emits hooks and column definitions for TanStack Query and Table.",
55
"type": "module",
66
"main": "./dist/index.js",

server/typescript/packages/codegen-ts/package.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
{
22
"name": "@metaobjectsdev/codegen-ts",
3-
"version": "0.19.3",
3+
"version": "0.20.0",
44
"description": "TypeScript codegen engine for MetaObjects — emits Drizzle, Zod, and Fastify artifacts.",
55
"type": "module",
66
"main": "./dist/index.js",

0 commit comments

Comments
 (0)