Skip to content

Release 0.5.1: fixes from two applications adopting 0.5.0 - #102

Merged
nedtwigg merged 2 commits into
mainfrom
release-0.5.1
Nov 10, 2026
Merged

nedtwigg merged 2 commits into
mainfrom
release-0.5.1

Conversation

@nedtwigg

Copy link
Copy Markdown
Member

Fixes and compatible additions found while two applications adopted 0.5.0, with the version raised to 0.5.1 in the same PR so the audited commit is the released one.

Fixed

  • pgstencil create could write into an installed package. With only package directories configured as sources, it created a SQL file inside node_modules. It now refuses any target inside node_modules.
  • A DATABASE_URL that is set but empty is refused by status, validate and migrate. 0.5.0 passed the empty string to the driver. An empty value is how a workflow sees a lost secret.
  • pgstencil reset refuses to run while DATABASE_URL is set; it only ever recreates the development database.
  • The default sign-in sender is a valid address for an IP origin (signin@[127.0.0.1]), and emailFrom is trimmed.
  • The 0.5.0 changelog entry gains what it was published without: the stripe 23 and Stripe API version move, the Better Auth pin, and the optional tooling peers from 0.4.0.

Added

  • --also <dir> and --require-database-url on status, validate and migrate, and --env-file / --env-file-if-exists on every command. These are what kept both applications on their own migration scripts.
  • pgstencil/email subpath, which exports the email module without the root's node:crypto import, and "sideEffects": false on the core package.

Verification

On this branch under the pinned Node: pnpm check (189 tests), pnpm db:verify and pnpm packages:verify with the 0.5.1 archives all pass.

Merging stages the three packages on npm once security-audit passes on the merge commit. Nothing is public until each is approved with 2FA.

🤖 Generated with Claude Code

nedtwigg and others added 2 commits November 10, 2026 15:29
pgstencil create wrote into the last configured source without checking,
so a project whose sources were all package directories got a new SQL
file inside node_modules. It now refuses any target inside node_modules.

status, validate and migrate gain --also <dir> for a source only some
databases get, and --require-database-url to fail rather than fall back
to the development database. They refuse a DATABASE_URL that is set but
empty, which is how a workflow sees a lost secret. reset refuses to run
while DATABASE_URL is set. Every command takes --env-file and
--env-file-if-exists. These are what kept both applications on their own
migration scripts.

The default sign-in sender is a valid address literal for an IP origin,
and emailFrom is trimmed.

pgstencil/email exports the email module without the root's node:crypto
import, for code a browser also loads, and the package declares
sideEffects: false.

The changelog's 0.5.0 entry gains the notes it was published without:
the stripe 23 and Stripe API version move, the Better Auth pin, and the
optional tooling peers from 0.4.0.

Co-Authored-By: Claude Fable 5.2 <[email protected]>
@nedtwigg
nedtwigg merged commit 0003e1b into main Nov 10, 2026
1 check passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant