This repository was archived by the owner on Sep 25, 2026. It is now read-only.
Phase 1: Foundation — Next.js + auth + multi-tenant data model + Redis/BullMQ + /health + tests + CI - #5
Open
tommyqhoang wants to merge 28 commits into
Open
Phase 1: Foundation — Next.js + auth + multi-tenant data model + Redis/BullMQ + /health + tests + CI#5tommyqhoang wants to merge 28 commits into
tommyqhoang wants to merge 28 commits into
Conversation
… create-next-app)
…ables) Co-Authored-By: Claude <noreply@anthropic.com>
Co-Authored-By: Claude <noreply@anthropic.com>
Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
…nd error
If sendVerificationEmail() throws after the User/Business/Membership
transaction has already committed, the account was still created. Treat
that as a successful registration (return {}) instead of a generic
account-creation failure, since retrying would only hit the
duplicate-email branch and strand the user with no way to get a fresh
verification email. Fail loud via captureServerError + logger.error so
the failed send is still visible, just not surfaced as user-facing
account-creation failure.
…t-password page Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
…s/BullMQ + /health + tests + CI Merges Tasks 1-18 of the Phase 1 implementation plan (docs/superpowers/plans/2026-07-28-phase1-foundation.md). Task 19 (Railway staging deploy) and Task 20 (mark todo.md) follow. Verified: typecheck clean, lint 0 errors, 42 unit/component tests pass, prod build green.
…nt/gitignore Local verification of the merged branch surfaced that `eslint .` walked into `.claude/worktrees/phase-1-foundation/.next/**` (leftover minified build output from running `pnpm build` inside the worktree), producing ~1100 spurious errors. The root eslint ignore was `.next/**` (root-relative), so it did not catch the nested worktree's build output. CI was unaffected (fresh checkout has no .claude/worktrees), but the trap is latent for anyone using local worktrees. - .gitignore: add .claude/worktrees/ (local worktree state, never committed) - eslint.config.mjs: use **/.next/** (any depth) and ignore .claude/**
Tasks 1-18 verified green on local main (typecheck clean, lint 0 errors, 42 unit/component tests pass, production build succeeds). Phase 1 boxes checked off in todo.md except the two Railway live-deploy boxes, which remain pending: a direct push to main is blocked by branch protection (enforce_admins=true + required PR + ci status check), so the code must reach origin/main via a PR before Railway can deploy from main. railway.toml is committed so the deploy config is ready the moment the branch lands.
The queue smoke test used a fixed jobId plus job.waitUntilFinished(QueueEvents). Locally a stale completed job masked the bug: add() returned the old job and waitUntilFinished resolved instantly without the worker ever running. On CI's fresh Redis service, add() enqueued a real job, but if the worker finished before the QueueEvents stream subscribed, the completion event was missed and the promise hung until the 15s timeout. Signal completion from inside the processor (race-free, no QueueEvents), await the worker 'ready' event before enqueueing, and use a unique jobId so a stale job can never mask the real path. Validated locally against a fresh redis:7 container. Co-Authored-By: Claude <noreply@anthropic.com>
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 subscribe to this conversation on GitHub.
Already have an account?
Sign in.
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.
Phase 1: Foundation
Lays the groundwork for CustomerETA per the roadmap in
readme.md:/healthendpointrailway.tomlconfig;todo.mdFoundation tasks marked doneCommits (26)
See the commit list below — all Phase 1 Foundation work, TDD-style with self-review reports per task.
🤖 Generated with Claude Code