From 2bcfa3307c5be2fce94c4c7811a69e5fed148049 Mon Sep 17 00:00:00 2001 From: Brandon Corbett Date: Sun, 13 Sep 2026 12:56:01 -0700 Subject: [PATCH] chore: scaffold from seamless-templates v0.15.0 SEAMLESS_TEMPLATES_REF v0.14.0 to v0.15.0, and the conformance harness adapters to @seamless-auth/express ^0.16.0 and @seamless-auth/fastify ^0.7.0. Templates v0.15.0 is the release that carries the Expo starter the mobile template kind in 0.16.0 was written for. Against v0.14.0 the registry has no mobile kind, so init never asked and --mobile=expo was refused as an unknown option; against v0.15.0 the starter scaffolds at mobile/ with EXPO_PUBLIC_API_URL filled from the manifest. The API starters in the same release move to the adapters that accept bearer access tokens and pass authServerUrl and audience into requireAuth, which is why the harness adapters move with them. --- .changeset/templates-v0-15-0.md | 22 ++++++++++++++++++++++ src/core/images.ts | 2 +- verify/adapter-app/package.json | 2 +- verify/adapter-fastify-app/package.json | 2 +- 4 files changed, 25 insertions(+), 3 deletions(-) create mode 100644 .changeset/templates-v0-15-0.md diff --git a/.changeset/templates-v0-15-0.md b/.changeset/templates-v0-15-0.md new file mode 100644 index 0000000..69d76d8 --- /dev/null +++ b/.changeset/templates-v0-15-0.md @@ -0,0 +1,22 @@ +--- +'seamless-cli': minor +--- + +Scaffold from seamless-templates `v0.15.0`, the release that carries the Expo starter. + +`0.16.0` taught `init` the `mobile` template kind but left the registry pin on `v0.14.0`, which has +no such kind, so the question was never asked and `--mobile=expo` was refused as an unknown option. +With the pin on `v0.15.0` the registry lists the starter as `expo` (alias `mobile`, beta): `init` +offers it after the backend, `--mobile` scaffolds it at `mobile/` with `EXPO_PUBLIC_API_URL` filled +from the manifest, and the success output says how to start it. The starter is a complete Expo +Router app on `@seamless-auth/react-native` `0.1.0` (email code, sign-in link, passkeys, a +protected call to the companion API), and its `tools/associations/` generator writes the files +native passkeys need. `--yes` still scaffolds without it. + +The same release moves the API starters to `@seamless-auth/express` `0.16.0` and +`@seamless-auth/fastify` `0.7.0` and passes `authServerUrl` and `audience` into `requireAuth`, so a +scaffolded API accepts the auth API's access token from the native app alongside browser cookies, +and its `/auth` mount answers a bearer client with tokens in the body. The conformance harness's +adapters take the same `^0.16.0` and `^0.7.0`. The starters also keep their SSL options when +`DATABASE_URL` carries `sslmode` (templates `0.15.0`'s patch note). The web starters stay on +`@seamless-auth/react` `0.12.0`, and the auth API and admin dashboard pins do not move. diff --git a/src/core/images.ts b/src/core/images.ts index 8c1a58b..983c2a6 100644 --- a/src/core/images.ts +++ b/src/core/images.ts @@ -25,4 +25,4 @@ export const SEAMLESS_AUTH_ADMIN_DASHBOARD_REF = SEAMLESS_AUTH_ADMIN_DASHBOARD_V // SEAMLESS_TEMPLATES_REF, or point at a local checkout with SEAMLESS_TEMPLATES_DIR. export const SEAMLESS_TEMPLATES_REPO = "fells-code/seamless-templates"; -export const SEAMLESS_TEMPLATES_REF = "v0.14.0"; +export const SEAMLESS_TEMPLATES_REF = "v0.15.0"; diff --git a/verify/adapter-app/package.json b/verify/adapter-app/package.json index 6f6652e..5b0fe8e 100644 --- a/verify/adapter-app/package.json +++ b/verify/adapter-app/package.json @@ -5,7 +5,7 @@ "type": "module", "description": "Minimal adopter backend for the conformance harness — real @seamless-auth/express with a capture transport.", "dependencies": { - "@seamless-auth/express": "^0.15.0", + "@seamless-auth/express": "^0.16.0", "cookie-parser": "^1.4.6", "cors": "^2.8.5", "express": "^5.1.0" diff --git a/verify/adapter-fastify-app/package.json b/verify/adapter-fastify-app/package.json index 66a72b7..8f30e29 100644 --- a/verify/adapter-fastify-app/package.json +++ b/verify/adapter-fastify-app/package.json @@ -6,7 +6,7 @@ "description": "Minimal adopter backend for the conformance harness — real @seamless-auth/fastify with a capture transport.", "dependencies": { "@fastify/cors": "^11.0.1", - "@seamless-auth/fastify": "^0.6.0", + "@seamless-auth/fastify": "^0.7.0", "fastify": "^5.2.0" } }