Skip to content

[v3 RC4] Align Better Auth UI with the retained @btst/db cohort #244

Description

@olliethedev

Current decision — 2026-08-31

Stable v3 retains @btst/db@2.2.3, @btst/adapter-prisma@2.2.3, and @btst/adapter-drizzle@2.2.3 on their existing Better Auth 1.6.16 baseline. This issue no longer proposes updating the database fork or widening its peers to Better Auth 1.7.2.

The correction belongs to the Better Auth UI companion: publish a new candidate aligned to the retained 1.6.16 cohort, then prove the complete public package graph through packed npm and pnpm consumers.

Companion implementation: better-stack-ai/better-auth-ui#22.

Problem

The published RC3 artifacts select two incompatible exact Better Auth cohorts:

@btst/stack@3.0.0-rc.3
  -> @btst/db@2.2.3
     -> better-auth@1.6.16
     -> @better-auth/core@1.6.16
     -> @better-auth/utils@0.4.1

@btst/better-auth-ui@2.0.0-rc.3
  -> better-auth@1.7.2
  -> @better-auth/api-key@1.7.2
  -> @better-auth/passkey@1.7.2
  -> @better-fetch/fetch@1.3.1

A fresh strict pnpm resolution cannot satisfy both universes. A frozen force-resolved lockfile may materialize, but that does not meet the clean-install acceptance criterion and can mask incompatible package types.

Bio Mogging reproduced the same split with the Prisma adapter: validation evidence.

Target v3 cohort

Retain the database packages unchanged and align the companion to:

  • @btst/db@2.2.3
  • @btst/adapter-prisma@2.2.3
  • @btst/adapter-drizzle@2.2.3
  • better-auth@1.6.16
  • @better-auth/core@1.6.16
  • @better-auth/utils@0.4.1
  • @better-auth/api-key@1.6.16
  • @better-auth/passkey@1.6.16
  • @better-fetch/fetch@1.2.2
  • better-call@1.3.6

better-auth@1.6.16 already depends on the exact Core, Utils, Fetch, and Better Call versions above. This also satisfies the published Stack RC3 exact better-call@1.3.6 peer.

What to deliver

  1. Complete better-auth-ui#22 and publish an immutable companion candidate, expected as @btst/better-auth-ui@2.0.0-rc.4 under next.
  2. Exercise the candidate through the packed-consumer coverage in Add packed npm/pnpm compatibility smoke tests #174 with the retained database and adapter packages.
  3. Record the exact source commits, tags, workflow runs, npm integrities/shasums, dist-tags, and resolved dependency graphs on [v3] Resolve RC3 findings and publish stable v3 #153.
  4. Feed the verified cohort and explicit adapter transaction: true application guidance into [v3 stable docs] Publish the final production migration and verification playbook #175.

Acceptance criteria

  • The Better Auth UI candidate uses the exact retained 1.6.16 cohort.
  • @btst/db and all BTST adapters remain at 2.2.3 and receive no source or metadata changes for this v3 correction.
  • A minimal BTST fixture without Better Auth UI installs cleanly.
  • A Better Auth UI auth-plus-account fixture installs cleanly with both npm and strict pnpm.
  • The resolved graph contains one compatible Better Auth/Core/Utils/Fetch/Call universe and requires no force flag, peer override, or undocumented direct pin.
  • Packed Next.js, React Router, and TanStack fixtures type-check and production-build.
  • Focused auth, account, avatar, session-refresh, and logout behavior passes against Better Auth 1.6.16.
  • Optional organization, API-key, and passkey integrations remain opt-in and pass their declared type/runtime checks.
  • Public tarballs match the artifacts exercised by the compatibility gate.
  • latest remains on the existing stable package lines until stable v3 is separately approved.

Explicit non-goals

  • Updating the better-stack-ai/better-auth fork to a newer upstream baseline.
  • Changing BTST adapter transaction defaults or implementing new adapter semantics.
  • Pulling newer upstream Drizzle adapter behavior into the v3 release.
  • Claiming simultaneous Better Auth 1.6.x and 1.7.x support.

Adapter synchronization and future Better Auth upgrades must be tracked separately after v3. Applications using Form Builder, Media, or other atomic plugins continue to configure transaction: true explicitly; #175 owns that migration guidance.

Blocked by

Parent

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    bugSomething isn't working

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions