From 2c18469d6f17b322b40fa4c9aaf6a5a37ad26660 Mon Sep 17 00:00:00 2001 From: "github-actions[bot]" <41898282+github-actions[bot]@users.noreply.github.com> Date: Thu, 8 Oct 2026 15:29:12 +0000 Subject: [PATCH] chore: version packages --- .changeset/adapter-conformance-suite.md | 9 --------- .changeset/admin-schemas.md | 5 ----- .changeset/config-passkey-enrollment-keys.md | 5 ----- .changeset/login-flow-schemas.md | 5 ----- .changeset/sessions-schema.md | 5 ----- .changeset/system-config-schemas.md | 5 ----- .changeset/templates-archive-integrity.md | 5 ----- CHANGELOG.md | 20 ++++++++++++++++++++ package.json | 2 +- 9 files changed, 21 insertions(+), 40 deletions(-) delete mode 100644 .changeset/adapter-conformance-suite.md delete mode 100644 .changeset/admin-schemas.md delete mode 100644 .changeset/config-passkey-enrollment-keys.md delete mode 100644 .changeset/login-flow-schemas.md delete mode 100644 .changeset/sessions-schema.md delete mode 100644 .changeset/system-config-schemas.md delete mode 100644 .changeset/templates-archive-integrity.md diff --git a/.changeset/adapter-conformance-suite.md b/.changeset/adapter-conformance-suite.md deleted file mode 100644 index abf2ceb..0000000 --- a/.changeset/adapter-conformance-suite.md +++ /dev/null @@ -1,9 +0,0 @@ ---- -"seamless-cli": minor ---- - -Add an adapter conformance suite that any server adapter can be held to (#246). - -- `seamless verify --adapter-url=` starts Postgres and the auth API and runs the adapter specs against a reference app you started at that URL, for adapters this repository does not build (Go, Rust, Python). `verify/CONFORMANCE.md` documents what the reference app must serve. -- The adapter specs, run against the Express and Fastify reference apps on every `seamless verify`, now cover cookie attributes and clearing, refresh rotation, concurrent refresh and refresh-token reuse, bearer transport, the adapter's own guard on an app route, error passthrough, the absence of tokens in cookie-transport bodies, and forwarding of the client's address and user agent to the auth API. -- The reference apps trust one proxy hop, so each virtual user gets its own client address and rate-limit bucket on the auth API, and pin the current adapter releases (`@seamless-auth/express` 0.19, `@seamless-auth/fastify` 0.10). diff --git a/.changeset/admin-schemas.md b/.changeset/admin-schemas.md deleted file mode 100644 index f9f75a9..0000000 --- a/.changeset/admin-schemas.md +++ /dev/null @@ -1,5 +0,0 @@ ---- -"seamless-cli": patch ---- - -`seamless users` and `seamless org` now read admin responses with the shared `@seamless-auth/types` schemas. `users credentials` names each passkey by the name its owner gave it (`friendlyName`), then by the device the auth server recorded, where it used to print "credential" for every one because it looked for fields the API never sends. A response missing a field the CLI needs now fails with a message naming the field, where it used to print placeholders such as `(no id)`. Fields an instance sends that this CLI version does not know about are kept, so `--json` output still carries them. diff --git a/.changeset/config-passkey-enrollment-keys.md b/.changeset/config-passkey-enrollment-keys.md deleted file mode 100644 index 46c4c14..0000000 --- a/.changeset/config-passkey-enrollment-keys.md +++ /dev/null @@ -1,5 +0,0 @@ ---- -"seamless-cli": minor ---- - -`seamless config set` and `config apply` accept `prompt_passkey_enrollment` and `phishing_resistant_only`, which need auth server v0.17.0 or later. `prompt_passkey_enrollment` makes email code, phone code and magic link sign-ins ask a user with no passkey to enroll one. `phishing_resistant_only` limits sign-in to passkeys. An older instance rejects a patch that includes either key. diff --git a/.changeset/login-flow-schemas.md b/.changeset/login-flow-schemas.md deleted file mode 100644 index 5cf9e5a..0000000 --- a/.changeset/login-flow-schemas.md +++ /dev/null @@ -1,5 +0,0 @@ ---- -"seamless-cli": patch ---- - -`seamless login --local` now works for a phone number. The auth server sends an SMS code as a number in the delivery block, and the CLI only accepted a string, so every local phone login failed saying the instance had not returned the code. Login responses are now read with the shared `@seamless-auth/types` schemas, and a login method the instance offers that this CLI version does not know no longer gets in the way of an OTP login. `seamless profile add --identifier-type` is validated with the same schema. diff --git a/.changeset/sessions-schema.md b/.changeset/sessions-schema.md deleted file mode 100644 index 76093a4..0000000 --- a/.changeset/sessions-schema.md +++ /dev/null @@ -1,5 +0,0 @@ ---- -"seamless-cli": patch ---- - -`seamless sessions` now reads the session list with the shared `@seamless-auth/types` schema. A session the instance sends malformed fails the command with a message naming the field, where it used to be dropped from the list without a word. `sessions list --json` now carries every field the API sends, including `deviceName`, `ipAddress` and `userAgent` as `null` when the API has none, where it used to leave them out. diff --git a/.changeset/system-config-schemas.md b/.changeset/system-config-schemas.md deleted file mode 100644 index c87eb54..0000000 --- a/.changeset/system-config-schemas.md +++ /dev/null @@ -1,5 +0,0 @@ ---- -"seamless-cli": patch ---- - -`seamless config set` and `config apply` now accept `flow_rate_limits`, which the auth server has read from system config since v0.14.0; `config apply` used to drop it from a config file without a word. `config apply` now tells read-only keys from unknown ones, and `config diff` flags a key no config has, which is usually a typo. The writable keys are checked against the shared `@seamless-auth/types` patch schema. `config get` and `oauth-providers list` still show exactly what the instance stores: they check the response's shape but never fill in schema defaults or reject a stored value. diff --git a/.changeset/templates-archive-integrity.md b/.changeset/templates-archive-integrity.md deleted file mode 100644 index 15284bb..0000000 --- a/.changeset/templates-archive-integrity.md +++ /dev/null @@ -1,5 +0,0 @@ ---- -"seamless-cli": patch ---- - -`seamless init` now downloads the starter templates by the commit their release tag pointed at when the CLI was published, rather than by the tag, so a moved tag cannot change what a scaffold extracts. Template extraction also fails with a clear error on an archive entry that would write outside the project, as the `--admin=source` dashboard download already did. `SEAMLESS_TEMPLATES_REF` and `SEAMLESS_TEMPLATES_DIR` still override the source as before. diff --git a/CHANGELOG.md b/CHANGELOG.md index edfaec6..2b37217 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,5 +1,25 @@ # seamless-cli +## 0.21.0 + +### Minor Changes + +- 64a9907: Add an adapter conformance suite that any server adapter can be held to (#246). + + - `seamless verify --adapter-url=` starts Postgres and the auth API and runs the adapter specs against a reference app you started at that URL, for adapters this repository does not build (Go, Rust, Python). `verify/CONFORMANCE.md` documents what the reference app must serve. + - The adapter specs, run against the Express and Fastify reference apps on every `seamless verify`, now cover cookie attributes and clearing, refresh rotation, concurrent refresh and refresh-token reuse, bearer transport, the adapter's own guard on an app route, error passthrough, the absence of tokens in cookie-transport bodies, and forwarding of the client's address and user agent to the auth API. + - The reference apps trust one proxy hop, so each virtual user gets its own client address and rate-limit bucket on the auth API, and pin the current adapter releases (`@seamless-auth/express` 0.19, `@seamless-auth/fastify` 0.10). + +- b051bff: `seamless config set` and `config apply` accept `prompt_passkey_enrollment` and `phishing_resistant_only`, which need auth server v0.17.0 or later. `prompt_passkey_enrollment` makes email code, phone code and magic link sign-ins ask a user with no passkey to enroll one. `phishing_resistant_only` limits sign-in to passkeys. An older instance rejects a patch that includes either key. + +### Patch Changes + +- 4385906: `seamless users` and `seamless org` now read admin responses with the shared `@seamless-auth/types` schemas. `users credentials` names each passkey by the name its owner gave it (`friendlyName`), then by the device the auth server recorded, where it used to print "credential" for every one because it looked for fields the API never sends. A response missing a field the CLI needs now fails with a message naming the field, where it used to print placeholders such as `(no id)`. Fields an instance sends that this CLI version does not know about are kept, so `--json` output still carries them. +- f13e646: `seamless login --local` now works for a phone number. The auth server sends an SMS code as a number in the delivery block, and the CLI only accepted a string, so every local phone login failed saying the instance had not returned the code. Login responses are now read with the shared `@seamless-auth/types` schemas, and a login method the instance offers that this CLI version does not know no longer gets in the way of an OTP login. `seamless profile add --identifier-type` is validated with the same schema. +- d3708b2: `seamless sessions` now reads the session list with the shared `@seamless-auth/types` schema. A session the instance sends malformed fails the command with a message naming the field, where it used to be dropped from the list without a word. `sessions list --json` now carries every field the API sends, including `deviceName`, `ipAddress` and `userAgent` as `null` when the API has none, where it used to leave them out. +- 062630f: `seamless config set` and `config apply` now accept `flow_rate_limits`, which the auth server has read from system config since v0.14.0; `config apply` used to drop it from a config file without a word. `config apply` now tells read-only keys from unknown ones, and `config diff` flags a key no config has, which is usually a typo. The writable keys are checked against the shared `@seamless-auth/types` patch schema. `config get` and `oauth-providers list` still show exactly what the instance stores: they check the response's shape but never fill in schema defaults or reject a stored value. +- 4569033: `seamless init` now downloads the starter templates by the commit their release tag pointed at when the CLI was published, rather than by the tag, so a moved tag cannot change what a scaffold extracts. Template extraction also fails with a clear error on an archive entry that would write outside the project, as the `--admin=source` dashboard download already did. `SEAMLESS_TEMPLATES_REF` and `SEAMLESS_TEMPLATES_DIR` still override the source as before. + ## 0.20.0 ### Minor Changes diff --git a/package.json b/package.json index 5129523..ea8f7d9 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "seamless-cli", - "version": "0.20.0", + "version": "0.21.0", "description": "The Seamless Auth command-line interface", "homepage": "https://github.com/fells-code/seamless-cli#readme", "bugs": {