From c8c461828de1fd2df6fb4bbd561bef289ca30676 Mon Sep 17 00:00:00 2001 From: Alex Bozarth Date: Mon, 27 Jul 2026 16:29:03 -0500 Subject: [PATCH 1/2] fix: port standalone dev/test fixes from the redesign branch Two independent fixes made on the redesign branch that apply cleanly to main, pulled over as the redesign is on indefinite hold: - next.config.mjs: replace the hardcoded LAN IP in allowedDevOrigins (committed from on-device testing) with a NEXT_DEV_ORIGIN env var, so contributors point it at their own machine or leave it empty without editing the config. - playwright.config.ts: add retries (2 in CI, 1 locally) so hydration races and cold-compile timeouts don't red an otherwise-passing suite; this also makes the existing trace: 'on-first-retry' actually capture a trace. Ported from the redesign branch (#67). Assisted-by: Claude Code Signed-off-by: Alex Bozarth --- next.config.mjs | 4 +++- playwright.config.ts | 3 +++ 2 files changed, 6 insertions(+), 1 deletion(-) diff --git a/next.config.mjs b/next.config.mjs index 3512470..012c812 100644 --- a/next.config.mjs +++ b/next.config.mjs @@ -1,6 +1,8 @@ /** @type {import('next').NextConfig} */ const nextConfig = { - allowedDevOrigins: ['192.168.100.102'], + // Allow a LAN device (e.g. a phone) to reach the dev server for on-device + // testing: set NEXT_DEV_ORIGIN to your machine's LAN IP before `npm run dev`. + allowedDevOrigins: process.env.NEXT_DEV_ORIGIN ? [process.env.NEXT_DEV_ORIGIN] : [], output: 'export', basePath: process.env.NEXT_PUBLIC_BASE_PATH || '', trailingSlash: true, diff --git a/playwright.config.ts b/playwright.config.ts index ca19a59..25263fa 100644 --- a/playwright.config.ts +++ b/playwright.config.ts @@ -6,6 +6,9 @@ export default defineConfig({ testDir: './tests/e2e', outputDir: './playwright-results', reporter: [['html', { outputFolder: 'playwright-report', open: 'never' }]], + // Retry timing-only failures (hydration races, cold-compile) instead of + // failing the build; also makes trace: 'on-first-retry' capture anything. + retries: process.env.CI ? 2 : 1, use: { baseURL: `http://localhost:${port}`, trace: 'on-first-retry', From 08546f73b7d9c85cb1b0d281c3d558619decea2f Mon Sep 17 00:00:00 2001 From: Alex Bozarth Date: Tue, 28 Jul 2026 12:16:37 -0500 Subject: [PATCH 2/2] test: keep local e2e retries at 0 to avoid masking real failures Assisted-by: Claude Code Signed-off-by: Alex Bozarth --- playwright.config.ts | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) diff --git a/playwright.config.ts b/playwright.config.ts index 25263fa..2349e26 100644 --- a/playwright.config.ts +++ b/playwright.config.ts @@ -6,9 +6,8 @@ export default defineConfig({ testDir: './tests/e2e', outputDir: './playwright-results', reporter: [['html', { outputFolder: 'playwright-report', open: 'never' }]], - // Retry timing-only failures (hydration races, cold-compile) instead of - // failing the build; also makes trace: 'on-first-retry' capture anything. - retries: process.env.CI ? 2 : 1, + // Retry timing-only failures (hydration, cold-compile) not real ones. + retries: process.env.CI ? 2 : 0, use: { baseURL: `http://localhost:${port}`, trace: 'on-first-retry',