Complete UX audit across auth, wizard, assets, and analytics#7
Conversation
|
The latest updates on your projects. Learn more about Vercel for GitHub.
|
There was a problem hiding this comment.
💡 Codex Review
Here are some automated review suggestions for this pull request.
Reviewed commit: b2a199e6d0
ℹ️ About Codex in GitHub
Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you
- Open a pull request for review
- Mark a draft as ready
- Comment "@codex review".
If Codex has suggestions, it will comment; otherwise it will react with 👍.
Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".
| await pollStatus() | ||
| intervalRef.current = setInterval(() => { | ||
| void pollStatus() | ||
| }, POLL_INTERVAL_MS) | ||
|
|
There was a problem hiding this comment.
Start generation request before polling status
startGeneration polls /api/assets/status before it posts /api/assets/generate, so retries on projects already marked failed/completed immediately revert local state to that stale terminal status. In that case later status updates are ignored by the prev.status !== 'generating' guard, so the UI can stay stuck in failed/completed while a new generation is actually running (making duplicate retries likely). Send the generation request first, or ignore terminal status responses until the new run has been kicked off.
Useful? React with 👍 / 👎.
This PR lands the full comprehensive UX audit scope across auth, dashboard, wizard, landing, and settings, including missing forgot-password flow, broad i18n hardcoding cleanup (en/ko), and improved locked preset/upgrade UX. It upgrades asset generation reliability and quality by fixing symbol/icon source resolution, OG icon rendering/font handling, stage-based generation progress with warnings, pipeline status/storage updates (including signed URL refresh), and a pipeline stage DB migration. It also wires real GA4 tracking for key growth events, adds analytics coverage, adds project search/filter improvements plus regenerate flow cleanup, replaces deprecated middleware with Next proxy, and removes deprecated AI helper/unsafe typing debt. Validation run in this branch: , ,
RUN v4.0.18 /Users/jadru/conductor/workspaces/brand-kit/cambridge
✓ tests/lib/assets/code-snippets.test.ts (1 test) 2ms
✓ tests/lib/config/routes.test.ts (7 tests) 5ms
✓ tests/lib/utils/colors.test.ts (3 tests) 2ms
✓ tests/lib/analytics/events.test.ts (3 tests) 2ms
✓ tests/lib/utils/errors.test.ts (12 tests) 15ms
✓ tests/lib/utils/image.test.ts (3 tests) 121ms
✓ tests/lib/assets/favicon.test.ts (1 test) 238ms
Test Files 7 passed (7)
Tests 30 passed (30)
Start at 16:48:33
Duration 458ms (transform 215ms, setup 118ms, import 305ms, tests 385ms, environment 2ms), and ▲ Next.js 16.1.6 (Turbopack)
Creating an optimized production build ...
✓ Compiled successfully in 5.5s
Running TypeScript ...
Collecting page data using 9 workers ...
Generating static pages using 9 workers (0/39) ...
Generating static pages using 9 workers (9/39)
Generating static pages using 9 workers (19/39)
Generating static pages using 9 workers (29/39)
✓ Generating static pages using 9 workers (39/39) in 273.5ms
Finalizing page optimization ...
Route (app)
┌ ○ /_not-found
├ ● /[locale]
│ ├ /en
│ └ /ko
├ ƒ /[locale]/auth/callback
├ ƒ /[locale]/auth/confirm
├ ƒ /[locale]/auth/signout
├ ƒ /[locale]/brand-profiles
├ ƒ /[locale]/dashboard
├ ● /[locale]/demo
│ ├ /en/demo
│ └ /ko/demo
├ ● /[locale]/forgot-password
│ ├ /en/forgot-password
│ └ /ko/forgot-password
├ ● /[locale]/login
│ ├ /en/login
│ └ /ko/login
├ ƒ /[locale]/privacy
├ ƒ /[locale]/projects
├ ƒ /[locale]/projects/[id]
├ ƒ /[locale]/projects/new
├ ƒ /[locale]/settings
├ ƒ /[locale]/settings/billing
├ ● /[locale]/signup
│ ├ /en/signup
│ └ /ko/signup
├ ƒ /[locale]/terms
├ ƒ /api/ai/headlines
├ ƒ /api/ai/icons
├ ƒ /api/assets/download/[projectId]
├ ƒ /api/assets/generate
├ ƒ /api/assets/status/[projectId]
├ ƒ /api/email
├ ƒ /api/feedback
├ ƒ /api/lemonsqueezy/checkout
├ ƒ /api/lemonsqueezy/portal
├ ƒ /api/notifications
├ ƒ /api/og
├ ƒ /api/webhooks/lemonsqueezy
├ ○ /robots.txt
└ ○ /sitemap.xml
ƒ Proxy (Middleware)
○ (Static) prerendered as static content
● (SSG) prerendered as static HTML (uses generateStaticParams)
ƒ (Dynamic) server-rendered on demand all pass.