chore: version packages#76
Merged
Merged
Conversation
github-actions
Bot
force-pushed
the
changeset-release/main
branch
10 times, most recently
from
July 25, 2026 17:21
f79df19 to
6c2b3f0
Compare
github-actions
Bot
force-pushed
the
changeset-release/main
branch
from
July 25, 2026 17:39
6c2b3f0 to
82234c6
Compare
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
This PR was opened by the Changesets release GitHub action. When you're ready to do a release, you can merge this and the packages will be published to npm automatically. If you're not ready to do a release yet, that's fine, whenever you add more changesets to main, this PR will be updated.
Releases
seamless-cli@0.10.0
Minor Changes
46ed8dd: Let adopters choose how the admin console is hosted during
seamless init.The old "Include Admin Dashboard?" / image-vs-source prompts are replaced by a
single question with four options:
proxies the console via the SDK's
createSeamlessConsoleProxy, so it loadsfrom the API's own origin. The scaffold sets
SERVE_ADMIN_CONSOLE=trueon theAPI,
SERVE_ADMIN_DASHBOARD=trueon the auth server, and adds the API originto the auth server's
ORIGINSso console passkey ceremonies verify. Noseparate admin container.
http://localhost:5174.Each choice pre-configures the auth-server env, the app-backend env, the Docker
Compose services,
seamless.config.json, the success output, andseamless checkaccordingly. Pins the auth API image tov0.3.0and the templates tov0.3.0(which env-gate the console proxy).e612a10: Enable
email_otpin the scaffolded auth server's default login methods.The auth server's own default (
passkey,magic_link) has no method the CLI candrive without a browser authenticator, so
seamless logincould not sign in toa freshly scaffolded local stack.
buildAuthEnvnow appendsemail_otptoLOGIN_METHODS(composing with the OAuth method when providers are configured),so email-OTP login works out of the box.
7fbaff0: Enable
ALLOW_UNCREDENTIALED_DELIVERY_SECRETS=truein the scaffolded auth server env.Companion to the
email_otpdefault: with it set,seamless login --localreads the OTP straight from the auth server's response instead of needing a mail
provider, so signing in to a freshly scaffolded local stack works end to end.
It's a dev-only escape hatch — the auth server ignores it under a production
NODE_ENV, and the scaffold runs as development.Patch Changes
2e27156: Fix
seamless bootstrap-adminto target the app API instead of the login profile's auth server.The bootstrap invite route (
/auth/internal/bootstrap/admin-invite) and itsdelivery are exposed by the app API (the SeamlessAuth server adapter), not the
auth server directly — the auth server does not serve that path. Previously
bootstrap-adminfell back to the active profile'sinstanceUrl, so once aprofile pointed at the auth server (as
seamless loginand the admin commandsrequire), bootstrap requests 404'd.
bootstrap-adminnow resolves its target independently of any profile:--api-url <url>→SEAMLESS_API_URL→ the local defaulthttp://localhost:3000.The
--profileflag is removed from this command (it no longer affects thetarget; the bootstrap secret is still resolved from the local project).
3dbdc61: Reconcile documentation with actual behavior.
.nvmrc/engines, not 18);update
bootstrap-admindocs to the--api-url→SEAMLESS_API_URL→http://localhost:3000resolution (the removed--profileflag andauth-server-profile wording are gone).
npm run typecheck/lint/format:checkcommands thatdon't exist (there is no lint/format tooling yet); note the
--filter=<flow>(
=form) forverify; list the instance-management commands; remove the staletop-level
templates/reference (templates live in theseamless-templatesmonorepo).
package.json: drop the deadtemplatesentry fromfiles.Closes [P3] Docs drift in README and AGENTS.md #94.
e81a07d: Make
seamless checkmanaged-aware and resilient to partial config.checkComposedereferencedconfig.docker.composeFile, which isnullformanaged projects, so
seamless checkcrashed with aTypeErroron any managedscaffold.
checknow branches onservices.auth.mode === "managed": it validatesthe remote instance's
/health/statusand skips the Docker/compose/containerchecks (which don't apply remotely). It also wraps
JSON.parseand guards missingservice entries so a malformed or partial
seamless.config.jsonprints a friendlymessage instead of a stack trace. The local console health check is derived from
services.admin.mode(image/source → :5174, api → :3000/console, none/hosted →skipped).
Closes [P0]
seamless checkis not managed-aware (crashes on managed projects) #78.c4a0f93: Fix the conformance adapter flows to match the SDK's POST OTP/magic-link routes.
@seamless-auth/expressnow serves OTP generate routes (and/magic-link) overPOST, but the harness adapter flows still called them with GET, so every adapter
spec failed at
generate-email-otp -> 404once the stack came up. The adapterflows now POST
/auth/otp/generate-email-otp,/auth/otp/generate-login-email-otp,and
/auth/magic-link.Closes [CI] Conformance: adapter OTP/magic-link flows use GET, but @seamless-auth/express now serves POST #111.
545aafc: Disable auth rate limits in the conformance stack.
The conformance suite drives many OTP/registration/magic-link flows from a single
IP and trips auth-api's dedicated per-IP limiters (which
RATE_LIMITdoesn'ttune), so the adapter layer failed with 429s once the stack came up. The verify
compose now sets
DISABLE_AUTH_RATE_LIMITS=trueon the auth-api service — adev-only flag (ignored under
NODE_ENV=production) added in seamless-auth-api.Requires seamless-auth-api with
DISABLE_AUTH_RATE_LIMITSsupport; conformancebuilds it from source, so no release is needed.
f7e5b5d: Fix the conformance stack and surface container logs on failure.
auth-api 0.3.0 requires
FRONTEND_URLat startup (a required system config), whichthe verify compose never set — so the auth-api container exited on boot and every
conformancerun (here and in sibling repos calling the reusable workflow) abortedwith a bare "docker failed" before any layer ran.
verify/docker-compose.verify.ymlnow sets
FRONTEND_URL, andseamless verifydumps recent container logs on asetup failure so a container that exits on startup is diagnosable instead of hidden.
Closes [CI] Conformance fails everywhere: auth-api exits on startup (missing FRONTEND_URL) #107.
54f1f02: Quote generated
.envvalues that a dotenv parser would otherwise misread.writeEnvwrote bareKEY=value, so a value containing#, whitespace, quotes,a backslash, or a newline (e.g. a managed
API_SERVICE_TOKENor a pasted OAuthsecret) produced a
.envthat dotenv truncates or mis-parses. Values that needit are now double-quoted and escaped, and
parseEnv/parseEnvStringunquote onread so the CLI round-trips its own output. Simple values (tokens, URLs, hex
secrets) are still written bare.
Closes [P0]
.envwriter emits unquoted values — special characters corrupt generated .env #81.943d13d: Harden the managed
initflow.--appisgiven but there is no usable session (expired or control plane unreachable),
initnow fails with an actionable message instead of quietly scaffolding aself-hosted project and ignoring the flag. Without
--app, a missing session oran unreachable control plane falls back to local with a clear warning (rather
than aborting on transient network errors, as it previously did for non-reauth
failures). Closes [P0] Managed
initsilently scaffolds a local project when the session is expired or unreachable #79.previous token, so it runs after templates are copied (the likeliest failure
point), and every step after it is guarded: if scaffolding fails post-rotation,
the freshly issued token is printed so a deployed app can be re-wired instead of
left bricked. The same guard covers
integrateExistingProject. Closes [P0] Service token is rotated before files are written — a mid-scaffold failure can brick a deployed app #80.9eaaf0e: Fix the conformance adapter crash: the dev service token was too short.
seamless verifydefaultedAPI_SERVICE_TOKENto a 24-char constant, which theadapter reuses as its cookie secret; a newer
@seamless-auth/expressrejects acookieSecret shorter than 32, so the adapter container exited and conformance
failed after the stack came up. The dev service token and bootstrap secret
defaults are now >=32 characters.
Closes [CI] Conformance: adapter exits — dev service token < 32 chars (cookie secret) #109.