Skip to content

Migrate HackKit to MikroORM with unified Core auth and app migrations - #3

Open
joshuasilva414 wants to merge 15 commits into
devfrom
codex/mikroorm-core-auth
Open

joshuasilva414 wants to merge 15 commits into
devfrom
codex/mikroorm-core-auth

Conversation

@joshuasilva414

@joshuasilva414 joshuasilva414 commented Sep 27, 2026 •

Copy link
Copy Markdown
Collaborator

Summary

Migrates HackKit to MikroORM as its sole application ORM, with Better Auth owned by Core. Targets dev and fresh databases. Existing deployed data and user accounts are not converted.

Changes in the current PR

  • Replace Drizzle, generic database adapters, custom schema/type machinery, and the schema compiler with native MikroORM entities and EntityManager queries in Core and server plugins.
  • Merge Better Auth identity and HackKit profile fields into one canonical core_user entity. Sessions, accounts, and domain/plugin foreign keys reference core_user.id. Better Auth maps image to profilePhotoUrl. Keep one display name; remove duplicate names/photos, name splitting, and profile synchronization subscribers. Role, approval, and check-in changes remain authorized domain operations.
  • Share ORM connections and create a fresh EntityManager and authenticated actor scope per request/action/job. Server action actors come from the session. Browser code uses the Core client entrypoint and plain DTOs.
  • Keep multi-step domain writes transactional, protect capacity/membership decisions with portable operation locks, atomically claim notification intents, and run external Discord delivery after domain changes commit.
  • Collect Core, auth, installed plugin, and application entities through the same registry for runtime and migrations. Plugins with enabled: false retain entities, settings, permissions, and data while skipping runtime setup. Disabled built-in routes return 404, actions return failures, and navigation links are hidden. Discord/email provider options resolve lazily.
  • Add application-owned database utilities in apps/web: generate (including blank migrations), status, snapshot/live-schema checks, staged migrate/rollback with --to, seed, and development/test-only local SQLite reset. Optional JSON result files separate structured output from driver diagnostics. Migration utilities live in the app; the CLI's existing plugin-sync implementation is retained.
  • Commit PostgreSQL, MySQL, and SQLite migration histories; libSQL shares SQLite SQL. Document frozen SQL backfills, expansion/backfill/contraction ordering, disabled-plugin retention, package upgrade guidance, and MySQL partial-DDL recovery.
  • Update Next integration, Node/TypeScript configuration, CI, setup docs, and superseded ADRs. Include durable migration upgrade tests; exclude the throwaway experiment and saved findings.

Latest review changes

PR head: d6eb306 on codex/mikroorm-core-auth, targeting dev. Includes the following reviewed updates:

  • df090dd: Replace the global profile lock with one lock per target user. Unrelated profiles can update independently on PostgreSQL/MySQL. HackTag uniqueness is enforced by the database; SQLite/libSQL retain their single-writer limitation.
  • 84eea1c: Use extensionless relative source imports in tsup-built packages with ESNext/Bundler TypeScript settings. Generated JavaScript retains the extensions Node requires. The UI package keeps its existing tsc build.
  • ffa374c: Move HackKit bootstrap, auth/logging integration, and execution scopes to core/src/runtime.ts. Keep driver types and ORM configuration in core/src/mikro/options.ts. Public package imports are unchanged.
  • 6515887: Use the inferred native user DTO and MikroORM serialization, removing the id to authId mapping. Update in-repo consumers, public profiles, and admin exports to use user.id. Rename the hacker record and registration input to userId; retain its mapping to the existing auth_id database column. No database migration is required for these contract changes.
  • 4701ef6 / d6eb306: Format the transaction test and move Core/Discord/Teams tsup entrypoint configuration into dedicated config files, preserving emitted formats and declaration generation.

Breaking API changes: user responses and the admin CSV identifier column change from authId to id. Hacker responses and registerHacker inputs change from authId to userId. Other authorization/relationship inputs retain their existing names. The single name field remains unchanged.

Local validation

Validation used disposable databases. No deployed database was accessed. These are local results; GitHub checks apply to the published PR head separately.

  • Migration implementation checks passed on SQLite, local libSQL, PostgreSQL 14.15, MySQL 8.4.11, and HTTP libSQL (sqld 0.24.32) across separate disposable service runs. Missing targets in individual runs were reported as skipped.
  • Upgrade checks cover application/plugin foreign keys to Core users, fresh replay, expansion, authored SQL backfill, contraction, staged migration, plugin upgrades, rollback/reapply, schema drift, disabled-plugin retention, and destructive uninstall proposals. The actual Node command entrypoint also passed schema-check exit-code and reset-isolation checks.
  • The profile-lock follow-up passed tests on all five driver targets, including PostgreSQL/MySQL independent-user writes, same-user coordination, competing HackTag claims, and rollback.
  • Extensionless-import checks passed package builds, workspace typechecks, 78 existing tests, native Node imports, the CLI executable, and Next production HTTP checks. A NodeNext consumer passed with the repository's skipLibCheck setting; full dependency declaration checking encounters existing UI and third-party declaration errors.
  • Latest user/hacker identifier checks passed all 10 web dependency build tasks, workspace typechecks, Core 41, Next 14, Teams 7, Discord 2, and web 4 tests. One schema fixture needed the new userId key and passed on focused rerun. SQLite/local libSQL matrix checks passed and confirmed the committed schema still matches. PostgreSQL, MySQL, and network libSQL were skipped for this latest identifier run.
  • The user DTO change also passed a Next production build and HTTP signup/session isolation, onboarding rendering, permission denials, and anonymous redirects. The subsequent hacker rename was checked through builds, typechecks, and the focused tests above.
  • Scoped formatting and git diff --check passed. Local execution used Node 24.2.0; the project/CI minimum remains Node 22.17.0.

Review and release notes

  • Migrations and seeds are explicit release operations. Startup, requests, and builds do not apply them. Initial histories create the unified schema for fresh installations; they do not upgrade a deployed split-user database.
  • HTTP libSQL can hang after repeated ORM creation/destruction in one Node process. Its upgrade checks use one process per command, matching the utility scripts' release-job lifecycle. Native shutdown warnings remain. Hosted Turso authentication/TLS and Cloudflare Workers compatibility are unverified.
  • MySQL DDL commits implicitly. Its reference configuration disables transactional/all-or-nothing migration wrapping. Failure can leave partial schema changes without an applied history entry; rollback does not guarantee data recovery.
  • Schema checks compare snapshots, pending history, and live schema. They do not verify transformed data or migration checksums. Historical migrations use frozen SQL instead of current entity imports.
  • Real OAuth providers and external email/Discord delivery require deployment-specific validation. Interrupted notification workers can leave processing intents requiring recovery.
  • Better Auth declares an unused upstream Drizzle adapter dependency. HackKit does not import it; drizzle-orm is absent from the resolved dependency graph.
  • Existing Next dynamic-import warnings from MikroORM/community adapter dependencies and broader repository formatting issues remain.

See the migration guide, the package schema upgrade contract, ADR 0013, and apps/web/README.md.

@coderabbitai

coderabbitai Bot commented Sep 27, 2026 •

Copy link
Copy Markdown

Important

Review skipped

Too many files!

This PR contains 317 files, which is 217 over the limit of 100.

To get a review, reduce the PR to 100 files or fewer by splitting it into smaller PRs or changing its base branch.

Upgrade to a paid plan to raise the limit.

Usage-priced reviews support at most 300 files.

⚙️ Run configuration
  • Configuration used: defaults
  • Review profile: CHILL
  • Plan: Advanced
  • Run ID: 3dba11c4-0e71-417c-bf73-f383affac427
📥 Commits

Reviewing files that changed from the base of the PR and between 3756a32 and d6eb306.

⛔ Files ignored due to path filters (1)
  • pnpm-lock.yaml is excluded by !**/pnpm-lock.yaml
📒 Files selected for processing (317)
  • .agents/skills/ask-matt/SKILL.md
  • .agents/skills/ask-matt/agents/openai.yaml
  • .agents/skills/code-review/SKILL.md
  • .agents/skills/code-review/agents/openai.yaml
  • .agents/skills/codebase-design/DEEPENING.md
  • .agents/skills/codebase-design/DESIGN-IT-TWICE.md
  • .agents/skills/codebase-design/SKILL.md
  • .agents/skills/codebase-design/agents/openai.yaml
  • .agents/skills/diagnosing-bugs/SKILL.md
  • .agents/skills/diagnosing-bugs/agents/openai.yaml
  • .agents/skills/domain-modeling/ADR-FORMAT.md
  • .agents/skills/domain-modeling/CONTEXT-FORMAT.md
  • .agents/skills/domain-modeling/SKILL.md
  • .agents/skills/domain-modeling/agents/openai.yaml
  • .agents/skills/grill-me/agents/openai.yaml
  • .agents/skills/grill-with-docs/agents/openai.yaml
  • .agents/skills/grilling/SKILL.md
  • .agents/skills/grilling/agents/openai.yaml
  • .agents/skills/handoff/agents/openai.yaml
  • .agents/skills/implement/agents/openai.yaml
  • .agents/skills/improve-codebase-architecture/HTML-REPORT.md
  • .agents/skills/improve-codebase-architecture/SKILL.md
  • .agents/skills/improve-codebase-architecture/agents/openai.yaml
  • .agents/skills/prototype/LOGIC.md
  • .agents/skills/prototype/SKILL.md
  • .agents/skills/prototype/UI.md
  • .agents/skills/prototype/agents/openai.yaml
  • .agents/skills/research/agents/openai.yaml
  • .agents/skills/resolving-merge-conflicts/agents/openai.yaml
  • .agents/skills/setup-matt-pocock-skills/SKILL.md
  • .agents/skills/setup-matt-pocock-skills/agents/openai.yaml
  • .agents/skills/setup-matt-pocock-skills/domain.md
  • .agents/skills/setup-matt-pocock-skills/issue-tracker-github.md
  • .agents/skills/setup-matt-pocock-skills/issue-tracker-gitlab.md
  • .agents/skills/setup-matt-pocock-skills/issue-tracker-local.md
  • .agents/skills/tdd/SKILL.md
  • .agents/skills/tdd/agents/openai.yaml
  • .agents/skills/tdd/mocking.md
  • .agents/skills/tdd/tests.md
  • .agents/skills/teach/GLOSSARY-FORMAT.md
  • .agents/skills/teach/LEARNING-RECORD-FORMAT.md
  • .agents/skills/teach/MISSION-FORMAT.md
  • .agents/skills/teach/RESOURCES-FORMAT.md
  • .agents/skills/teach/SKILL.md
  • .agents/skills/teach/agents/openai.yaml
  • .agents/skills/to-spec/SKILL.md
  • .agents/skills/to-spec/agents/openai.yaml
  • .agents/skills/to-tickets/SKILL.md
  • .agents/skills/to-tickets/agents/openai.yaml
  • .agents/skills/triage/AGENT-BRIEF.md
  • .agents/skills/triage/OUT-OF-SCOPE.md
  • .agents/skills/triage/SKILL.md
  • .agents/skills/triage/agents/openai.yaml
  • .agents/skills/wayfinder/SKILL.md
  • .agents/skills/wayfinder/agents/openai.yaml
  • .agents/skills/writing-great-skills/GLOSSARY.md
  • .agents/skills/writing-great-skills/SKILL.md
  • .agents/skills/writing-great-skills/agents/openai.yaml
  • .github/workflows/prettier.yml
  • .github/workflows/web.yml
  • .prettierignore
  • CONTEXT.md
  • README.md
  • apps/web/README.md
  • apps/web/app/admin/events/[id]/edit/page.tsx
  • apps/web/app/admin/events/page.tsx
  • apps/web/app/admin/page.tsx
  • apps/web/app/admin/roles/page.tsx
  • apps/web/app/admin/scanner/[eventId]/page.tsx
  • apps/web/app/admin/settings/page.tsx
  • apps/web/app/admin/users/[authId]/page.tsx
  • apps/web/app/admin/users/page.tsx
  • apps/web/app/api/admin/export/route.ts
  • apps/web/app/api/auth/[...all]/route.ts
  • apps/web/app/api/files/upload/route.ts
  • apps/web/app/api/files/view/route.ts
  • apps/web/app/app-bar.tsx
  • apps/web/app/dashboard/page.tsx
  • apps/web/app/globals.css
  • apps/web/app/hackkit-plugin-actions.ts
  • apps/web/app/layout.tsx
  • apps/web/app/onboarding/hacker/hacker-form-defaults.ts
  • apps/web/app/onboarding/hacker/hacker-registration-client.tsx
  • apps/web/app/onboarding/hacker/page.tsx
  • apps/web/app/onboarding/hacktag/page.tsx
  • apps/web/app/onboarding/onboarding-shell.tsx
  • apps/web/app/onboarding/user-data/page.tsx
  • apps/web/app/pass/event-pass-shell.tsx
  • apps/web/app/pass/page.tsx
  • apps/web/app/profile-menu.tsx
  • apps/web/app/schedule/page.tsx
  • apps/web/app/settings/page.tsx
  • apps/web/app/settings/registration/page.tsx
  • apps/web/app/sign-in/auth-form.tsx
  • apps/web/app/sign-up/page.tsx
  • apps/web/app/user/[tag]/page.tsx
  • apps/web/better-auth.config.ts
  • apps/web/db/__tests__/database-workflow.test.ts
  • apps/web/db/__tests__/dialects.test.ts
  • apps/web/db/__tests__/fixtures/app-migration.sql
  • apps/web/db/__tests__/fixtures/app-schema.ts
  • apps/web/db/__tests__/migration-fixture-schema.ts
  • apps/web/db/__tests__/migration-workflow.test.ts
  • apps/web/db/__tests__/migration-workflow.ts
  • apps/web/db/__tests__/profile-concurrency.ts
  • apps/web/db/migrations/0000_init.sql
  • apps/web/db/migrations/meta/0000_snapshot.json
  • apps/web/db/migrations/meta/_journal.json
  • apps/web/db/migrations/mysql/.snapshot.json
  • apps/web/db/migrations/mysql/Migration20260927180400_initial.ts
  • apps/web/db/migrations/postgresql/.snapshot.json
  • apps/web/db/migrations/postgresql/Migration20260927180400_initial.ts
  • apps/web/db/migrations/sqlite/.snapshot.json
  • apps/web/db/migrations/sqlite/Migration20260927180400_initial.ts
  • apps/web/db/schema/auth.ts
  • apps/web/db/schema/hackkit.ts
  • apps/web/drizzle.config.ts
  • apps/web/env.ts
  • apps/web/hackkit.config.ts
  • apps/web/lib/auth-options.ts
  • apps/web/lib/auth.ts
  • apps/web/lib/database-config.ts
  • apps/web/lib/db.ts
  • apps/web/lib/hackkit-ui-routes.ts
  • apps/web/lib/onboarding.ts
  • apps/web/lib/plugin-navigation.ts
  • apps/web/lib/public-site-config.ts
  • apps/web/lib/runtime.ts
  • apps/web/lib/upload-profile-photo.ts
  • apps/web/middleware.ts
  • apps/web/next.config.mjs
  • apps/web/package.json
  • apps/web/scripts/database.ts
  • apps/web/scripts/db-reset.sh
  • apps/web/scripts/db.mjs
  • apps/web/scripts/test-db-workflow.sh
  • apps/web/scripts/test-runtime.mjs
  • docs/adr/0001-hackkit-core-kernel-and-database-adapter.md
  • docs/adr/0002-core-storage-schema-and-adapter-factories.md
  • docs/adr/0007-event-pass-qr-in-hackkit-ui.md
  • docs/adr/0008-adapter-owned-schema-generation-and-migrations.md
  • docs/adr/0010-hackkit-logger.md
  • docs/adr/0011-blob-storage-and-stored-file-references.md
  • docs/adr/0013-mikroorm-and-core-auth.md
  • docs/guides/database-migrations.md
  • docs/guides/next-integration.md
  • docs/guides/package-schema-upgrades.md
  • package.json
  • packages/auth-better-auth/.gitignore
  • packages/auth-better-auth/package.json
  • packages/auth-better-auth/src/index.ts
  • packages/auth-better-auth/src/session.ts
  • packages/auth-better-auth/tsconfig.json
  • packages/blob-local/package.json
  • packages/blob-local/tsconfig.json
  • packages/blob-s3/package.json
  • packages/blob-s3/tsconfig.json
  • packages/cli/bin/hackkit.mjs
  • packages/cli/package.json
  • packages/cli/src/__tests__/cli-config.test.ts
  • packages/cli/src/__tests__/db-migrations.test.ts
  • packages/cli/src/__tests__/db-schema.test.ts
  • packages/cli/src/__tests__/db-seed.test.ts
  • packages/cli/src/__tests__/plugin-actions-scope.test.ts
  • packages/cli/src/__tests__/plugin-schema.test.ts
  • packages/cli/src/cli-config.ts
  • packages/cli/src/cli.ts
  • packages/cli/src/db-migrations.ts
  • packages/cli/src/db-schema.ts
  • packages/cli/src/db-seed.ts
  • packages/cli/src/index.ts
  • packages/cli/src/orm.ts
  • packages/cli/src/plugin-commands.ts
  • packages/cli/src/plugin-sync.ts
  • packages/cli/src/protected-paths.ts
  • packages/cli/tsconfig.json
  • packages/cli/tsdown.config.ts
  • packages/config/package.json
  • packages/config/src/__tests__/config.test.ts
  • packages/config/src/index.ts
  • packages/config/tsconfig.json
  • packages/core/package.json
  • packages/core/src/__tests__/admin-console.test.ts
  • packages/core/src/__tests__/check-in.test.ts
  • packages/core/src/__tests__/groups.test.ts
  • packages/core/src/__tests__/notifications.test.ts
  • packages/core/src/__tests__/public-profile.test.ts
  • packages/core/src/__tests__/register-hacker.test.ts
  • packages/core/src/__tests__/resume-url-schema.test.ts
  • packages/core/src/__tests__/rsvp.test.ts
  • packages/core/src/__tests__/seed-test-owner.ts
  • packages/core/src/adapters/auth.ts
  • packages/core/src/adapters/db/memory.ts
  • packages/core/src/adapters/logger.ts
  • packages/core/src/client.ts
  • packages/core/src/database.ts
  • packages/core/src/domain-log.ts
  • packages/core/src/event-types.ts
  • packages/core/src/functions/admin.ts
  • packages/core/src/functions/events.ts
  • packages/core/src/functions/groups.ts
  • packages/core/src/functions/registration-policy.ts
  • packages/core/src/functions/rsvp.ts
  • packages/core/src/functions/settings.ts
  • packages/core/src/functions/users.ts
  • packages/core/src/groups.ts
  • packages/core/src/hackkit-context.ts
  • packages/core/src/hackkit.ts
  • packages/core/src/index.ts
  • packages/core/src/mikro/auth-entities.test.ts
  • packages/core/src/mikro/auth-entities.ts
  • packages/core/src/mikro/auth-lifecycle.test.ts
  • packages/core/src/mikro/auth-schema.test.ts
  • packages/core/src/mikro/auth.ts
  • packages/core/src/mikro/domain-transactions.test.ts
  • packages/core/src/mikro/entity-registry.test.ts
  • packages/core/src/mikro/operation.ts
  • packages/core/src/mikro/options.ts
  • packages/core/src/mikro/plugin-disable.test.ts
  • packages/core/src/mikro/user.ts
  • packages/core/src/models.ts
  • packages/core/src/notifications.ts
  • packages/core/src/plugins.ts
  • packages/core/src/runtime.test.ts
  • packages/core/src/runtime.ts
  • packages/core/src/schemas.ts
  • packages/core/src/seed.ts
  • packages/core/src/settings.ts
  • packages/core/src/testing.ts
  • packages/core/src/types.ts
  • packages/core/src/user-data-options.ts
  • packages/core/tsconfig.json
  • packages/core/tsup.config.ts
  • packages/db-drizzle/.gitignore
  • packages/db-drizzle/package.json
  • packages/db-drizzle/src/__tests__/libsql-adapter.test.ts
  • packages/db-drizzle/src/__tests__/postgres-adapter.test.ts
  • packages/db-drizzle/src/__tests__/schema-generation.test.ts
  • packages/db-drizzle/src/index.ts
  • packages/db-drizzle/src/libsql.ts
  • packages/db-drizzle/src/postgres.ts
  • packages/db-drizzle/src/runtime.ts
  • packages/db-drizzle/src/schema.ts
  • packages/db-drizzle/src/sqlite.ts
  • packages/db-drizzle/test-fixtures/postgres/drizzle.config.ts
  • packages/db-drizzle/test-fixtures/postgres/migrations/0000_init.sql
  • packages/db-drizzle/test-fixtures/postgres/migrations/meta/0000_snapshot.json
  • packages/db-drizzle/test-fixtures/postgres/migrations/meta/_journal.json
  • packages/db-drizzle/test-fixtures/postgres/schema.ts
  • packages/db-drizzle/tsconfig.json
  • packages/next/README.md
  • packages/next/package.json
  • packages/next/src/__tests__/action-actor.test.ts
  • packages/next/src/__tests__/page-guards.test.ts
  • packages/next/src/__tests__/runtime.test.ts
  • packages/next/src/actions.ts
  • packages/next/src/index.ts
  • packages/next/src/mutations.ts
  • packages/next/src/page-guards.ts
  • packages/next/src/runtime.ts
  • packages/next/tsconfig.json
  • packages/plugin-discord/app/discord/page.tsx
  • packages/plugin-discord/app/discord/verify/page.tsx
  • packages/plugin-discord/package.json
  • packages/plugin-discord/src/__tests__/discord.test.ts
  • packages/plugin-discord/src/actions.ts
  • packages/plugin-discord/src/api.ts
  • packages/plugin-discord/src/components/discord-verify-form.tsx
  • packages/plugin-discord/src/index.ts
  • packages/plugin-discord/src/models.ts
  • packages/plugin-discord/src/providers.ts
  • packages/plugin-discord/tsconfig.json
  • packages/plugin-discord/tsup.config.ts
  • packages/plugin-notifications-email/package.json
  • packages/plugin-notifications-email/src/__tests__/email-notifications.test.ts
  • packages/plugin-notifications-email/src/api.ts
  • packages/plugin-notifications-email/src/index.ts
  • packages/plugin-notifications-email/src/providers.ts
  • packages/plugin-notifications-email/src/templates.ts
  • packages/plugin-notifications-email/tsconfig.json
  • packages/plugin-teams/app/invites/page.tsx
  • packages/plugin-teams/app/teams/page.tsx
  • packages/plugin-teams/package.json
  • packages/plugin-teams/src/__tests__/teams.test.ts
  • packages/plugin-teams/src/actions.ts
  • packages/plugin-teams/src/api.ts
  • packages/plugin-teams/src/components/team-dashboard.tsx
  • packages/plugin-teams/src/components/team-invites.tsx
  • packages/plugin-teams/src/index.ts
  • packages/plugin-teams/src/models.ts
  • packages/plugin-teams/tsconfig.json
  • packages/plugin-teams/tsup.config.ts
  • packages/ui/package.json
  • packages/ui/src/actions.ts
  • packages/ui/src/components/admin-console-controls.tsx
  • packages/ui/src/components/admin-console.tsx
  • packages/ui/src/components/check-in-scanner.tsx
  • packages/ui/src/components/event-admin-list.tsx
  • packages/ui/src/components/event-pass.tsx
  • packages/ui/src/components/event-scanner.tsx
  • packages/ui/src/components/hack-tag-form.tsx
  • packages/ui/src/components/hackathon-settings-form.tsx
  • packages/ui/src/components/hacker-registration-form.tsx
  • packages/ui/src/components/public-profile-card.tsx
  • packages/ui/src/components/public-shell.tsx
  • packages/ui/src/components/rsvp-confirmation.tsx
  • packages/ui/src/components/schedule-list.tsx
  • packages/ui/src/components/user-data-form.tsx
  • packages/ui/src/components/user-profile-settings-form.tsx
  • packages/ui/src/event-pass.ts
  • packages/ui/src/index.ts
  • packages/ui/src/lib/admin-console.tsx
  • packages/ui/src/lib/onboarding-steps.ts
  • packages/ui/src/navigation.ts
  • packages/ui/src/types.ts
  • packages/ui/src/user-data-form-defaults.ts
  • turbo.json

You can disable this status message by setting the reviews.review_status to false in the CodeRabbit configuration file.

  • Autopilot · Keep fixing CodeRabbit findings and required CI, and resolving merge conflicts

Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ Share

Comment @coderabbitai help to get the list of available commands.

@joshuasilva414 joshuasilva414 changed the title Migrate HackKit to MikroORM and Core-owned Better Auth Migrate HackKit to MikroORM with unified Core auth and app migrations Oct 6, 2026
Integrate PR #2 tsup builds and watch scripts while preserving MikroORM dependencies, removed legacy packages, public Core and plugin entry points, external Vitest hooks, and Next build cache outputs.
@joshuasilva414
joshuasilva414 marked this pull request as ready for review October 7, 2026 00:15
@joshuasilva414
joshuasilva414 requested a review from Rufat00 October 7, 2026 00:25

Copy link
Copy Markdown
Collaborator Author

This one's a whopper

Comment thread packages/core/src/functions/users.ts Outdated
Comment thread packages/core/src/runtime.ts
Comment thread packages/core/src/mikro/user.ts Outdated
Comment thread packages/core/package.json Outdated
Comment thread packages/plugin-notifications-email/src/index.ts
Comment thread packages/ui/src/components/hack-tag-form.tsx
Comment thread packages/ui/src/user-data-form-defaults.ts
This was linked to issues Oct 7, 2026
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.

Simplify DB Bake in Better Auth

2 participants