chore: version packages - #121
Open
github-actions[bot] wants to merge 1 commit into
Open
Conversation
github-actions
Bot
force-pushed
the
changeset-release/main
branch
11 times, most recently
from
July 28, 2026 20:51
1ff435f to
4d58064
Compare
github-actions
Bot
force-pushed
the
changeset-release/main
branch
from
July 28, 2026 20:54
4d58064 to
ccc84ef
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.11.0
Minor Changes
3ef3b68: Add
seamless apps, so a portal account can see what it owns without opening the dashboard.apps listprints name, plan, status, and instance URL;apps get <id>adds the console URL,region, owners, trial expiry, and whether a service token has been issued (masked, never the live
value). Both take
--jsonand both require a portal session.Applications are now read through the portal's
instanceUrl, which is derived from the serviceplan, rather than the stored
domaincolumn that goes stale when a trial is upgraded. Applicationsthat have not finished provisioning are listed instead of being silently dropped.
initisunchanged: it still reads
domainand still considers only applications that have one.apps listshows the infra id as the reference (falling back to the id before provisioning), andapps getaccepts an id, a name, or an infra id.6e107cb:
initnow offers the managed path instead of assuming it. A portal session used to make managed thedefault silently, with
--localas the only escape and no way to learn you needed it until after thetemplate prompts. When your account has a provisioned application,
initasks whether to connect itor scaffold a local stack, with managed leading.
Whether managed is even possible is resolved before the first prompt. An account with nothing to
connect no longer answers two prompts and then fails: it says why and continues to a local scaffold.
That message now distinguishes "no applications yet" from "still provisioning", which the old
NoApplicationsErrorgot wrong for anyone mid-provision.A directory that already has files is no longer forced down the integrate path.
initasks whetherto connect it to a managed application or scaffold in place. Scaffolding into a non-empty directory
was previously impossible, so a stray
READMEor.gitwas enough to block a local project, andevery route that now reaches it confirms first: starter files overwrite anything with the same name,
and the confirmation defaults to no.
An unreachable control plane asks before scaffolding a local stack rather than degrading silently.
--localand--app <id>skip the new prompts, and--appwithout a session still fails ratherthan falling back.
cc13a6b: Connecting a project to a managed application now wires up its bundled database.
initreads theapplication's database and writes
DATABASE_URLintoapi/.envaspostgres://USER:PASSWORD@host:port/db?sslmode=require.The user and password stay as literal placeholders. The control plane only returns them for
?reveal=true, which this CLI never asks for, so a live database credential never reaches thedeveloper's disk or terminal: they copy those from the dashboard. Anything printed as a connection
string has its userinfo masked regardless.
An application whose database is still provisioning produces a warning rather than a failure, and the
database is read before the service token is rotated so a missing one is never reported against a
project whose old token has already been invalidated. Running
initinside an existing project addsDATABASE_URLonly when there is not one already, so a working connection string is never replacedby a placeholder.
This needs the templates release that teaches the express starter to read
DATABASE_URLandnegotiate TLS. Until
SEAMLESS_TEMPLATES_REFis bumped to it, the value is computed but the pinnedstarter does not declare the placeholder, so nothing is written.
15b487a:
initnow asks for your email and writes it to the scaffolded auth server asOWNER_EMAIL. The authserver grants the admin role at account creation to a signup matching that address, so the local flow
is
init,docker compose up, register. When you are signed in to the portal, the prompt defaults tothat account's email.
seamless bootstrap-adminis removed. It existed to mint the first admin invite, which the ownergrant now covers, and the scaffolded stack no longer enables the bootstrap route or carries a
bootstrap secret.
seamless verifykeeps its own bootstrap secret for the conformance stack and isunaffected.
The grant applies at signup only, so changing
OWNER_EMAILafter an account exists promotes nobody.The success output and the README both say so.
6deafb1:
seamless loginnow signs in to the Seamless portal instead of the active profile's instance, andno longer needs a profile to exist first. The portal session is stored beside the profile map in
config.jsonand is the only sessioninituses to connect a managed application, so a sessionfor a local or self-hosted instance no longer sends its token to the control plane.
Instance login moves to
seamless profile login [name], which signs in without changing the activeprofile.
seamless login --profile <name>keeps working for one more minor version and prints apointer to the new command.
whoamiandlogoutdefault to the portal session and take--profile <name>to target an instance.Set
SEAMLESS_PORTAL_AUTH_URLto point the portal login at a different auth host.f08c21a: Scaffolding now requires
init. An unrecognized command reports itself and exits instead of beingtreated as a project name, so
seamless verfyno longer silently creates a directory calledverfyand drops into the interactive scaffold. The error namesseamless init <name>for anyonewho was using the old shortcut.
Ctrl-C is handled everywhere. Clack answers an interrupted prompt with a symbol, which several
prompts cast straight to a string; that surfaced as a
TypeErrormid-scaffold, or as "Selectedtemplate Symbol(...) is not in the registry". Every prompt in init, the OAuth setup, the managed
application picker, and
bootstrap-adminnow cancels cleanly and exits 130.initno longer leaves a project directory behind. Any failure or cancellation after the directoryis created removes it, including a Ctrl-C during a download or a git clone, so a retry is not
blocked by "Directory already exists". Only a directory the command itself created is ever removed,
never an existing one and never the working directory.
Declining the service token rotation prompt, or cancelling the application picker, now cancels the
whole command rather than returning quietly part-way through.
Patch Changes
bf857b1: Update the seamless auth api image to v0.5.0.
f725752: Generated compose files now publish every port on
127.0.0.1instead of all interfaces. A scaffoldedstack was reachable from any machine on the same network, which mattered most for the auth server:
it is configured with
ALLOW_UNCREDENTIALED_DELIVERY_SECRETS=truesoseamless login --localcanread OTP codes from the response, and that opt-in is honored before any service-token check. Anyone
on the LAN could request a code for any user of the stack and read it. Postgres was exposed on the
same terms, with the fixed credentials the compose file ships.
Local development is unchanged: the browser, the CLI, and inter-container traffic all still work.
ffe4331: Update the conformance harness for the removal of the admin bootstrap invite flow in
seamless-auth-api. The verify stack now sets
OWNER_EMAILinstead ofSEAMLESS_BOOTSTRAP_ENABLED/SEAMLESS_BOOTSTRAP_SECRET, and the first-admin spec registers theowner address and asserts the admin role is granted at signup.
2d898e2: Fix conformance project routing when the checkout path contains a directory named with an
api/segment. Playwright applies a
testMatchregex to the absolute file path, so theapiproject'spattern also claimed every adapter and react spec, running browser tests in a project with no
baseURL. Each project now scopes itself withtestDirinstead.c2e4e1b: Scaffold from seamless-templates v0.5.0, which teaches the express starter to read
DATABASE_URLandnegotiate TLS when the connection string carries
sslmode=require. This is what turns on the managedbundled database wiring: the CLI already computed the connection string, but the pinned v0.4.0
starter did not declare the placeholder, so nothing was written.