From 1ad6c458ae357a555e56f5103f24e7d010656d64 Mon Sep 17 00:00:00 2001 From: Ramez Weissa Date: Sun, 12 Jul 2026 15:10:04 +0300 Subject: [PATCH 01/18] docs(demo): describe bisect seed history --- demo-ecommerce/docs/git-bisect-seed-history.md | 8 ++++++++ 1 file changed, 8 insertions(+) create mode 100644 demo-ecommerce/docs/git-bisect-seed-history.md diff --git a/demo-ecommerce/docs/git-bisect-seed-history.md b/demo-ecommerce/docs/git-bisect-seed-history.md new file mode 100644 index 00000000..34c67cde --- /dev/null +++ b/demo-ecommerce/docs/git-bisect-seed-history.md @@ -0,0 +1,8 @@ +# Git Bisect Seed History + +This branch is intentionally shaped for future shaka-perf git bisect testing. +Commits alternate between harmless demo maintenance and deterministic regression +fixtures so category-specific bisect flows have clear first-bad targets. + +The regression fixtures are artificial by design, but each one is scoped to the +demo app and kept easy to inspect. From 8de754bd625f57d6ea352f9c332dbe4e7b7c1c8b Mon Sep 17 00:00:00 2001 From: Ramez Weissa Date: Sun, 12 Jul 2026 15:10:26 +0300 Subject: [PATCH 02/18] docs(demo): note clean bisect checkpoints --- demo-ecommerce/docs/git-bisect-seed-history.md | 3 +++ 1 file changed, 3 insertions(+) diff --git a/demo-ecommerce/docs/git-bisect-seed-history.md b/demo-ecommerce/docs/git-bisect-seed-history.md index 34c67cde..7fd98ff1 100644 --- a/demo-ecommerce/docs/git-bisect-seed-history.md +++ b/demo-ecommerce/docs/git-bisect-seed-history.md @@ -6,3 +6,6 @@ fixtures so category-specific bisect flows have clear first-bad targets. The regression fixtures are artificial by design, but each one is scoped to the demo app and kept easy to inspect. + +Clean commits in this branch should stay runtime-neutral. They can update this +note or other demo-only documentation without changing measured pages. From 76ba1147ed2b0e5a74dfddb2543f90ebe9dce2a2 Mon Sep 17 00:00:00 2001 From: Ramez Weissa Date: Sun, 12 Jul 2026 15:10:46 +0300 Subject: [PATCH 03/18] test(demo): introduce homepage hero visual regression --- demo-ecommerce/app/javascript/components/pages/HomePage.tsx | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/demo-ecommerce/app/javascript/components/pages/HomePage.tsx b/demo-ecommerce/app/javascript/components/pages/HomePage.tsx index ed1e5079..c04ddb25 100644 --- a/demo-ecommerce/app/javascript/components/pages/HomePage.tsx +++ b/demo-ecommerce/app/javascript/components/pages/HomePage.tsx @@ -27,7 +27,7 @@ const HomePage: React.FC = () => { Date: Sun, 12 Jul 2026 15:11:05 +0300 Subject: [PATCH 04/18] docs(demo): clarify fixture route coverage --- demo-ecommerce/docs/git-bisect-seed-history.md | 3 +++ 1 file changed, 3 insertions(+) diff --git a/demo-ecommerce/docs/git-bisect-seed-history.md b/demo-ecommerce/docs/git-bisect-seed-history.md index 7fd98ff1..68bb09f9 100644 --- a/demo-ecommerce/docs/git-bisect-seed-history.md +++ b/demo-ecommerce/docs/git-bisect-seed-history.md @@ -9,3 +9,6 @@ demo app and kept easy to inspect. Clean commits in this branch should stay runtime-neutral. They can update this note or other demo-only documentation without changing measured pages. + +Runtime fixtures should prefer existing measured routes so future bisect tests +do not need a special-case demo configuration. From 0e5e600c60aa5f8126c9559e1be6307d6addcbde Mon Sep 17 00:00:00 2001 From: Ramez Weissa Date: Sun, 12 Jul 2026 15:11:26 +0300 Subject: [PATCH 05/18] docs(demo): list covered storefront routes --- demo-ecommerce/docs/git-bisect-seed-history.md | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/demo-ecommerce/docs/git-bisect-seed-history.md b/demo-ecommerce/docs/git-bisect-seed-history.md index 68bb09f9..bedfebb2 100644 --- a/demo-ecommerce/docs/git-bisect-seed-history.md +++ b/demo-ecommerce/docs/git-bisect-seed-history.md @@ -12,3 +12,7 @@ note or other demo-only documentation without changing measured pages. Runtime fixtures should prefer existing measured routes so future bisect tests do not need a special-case demo configuration. + +The homepage fixtures are intended for the existing homepage and shop-now +coverage. The product detail fixture is intended for the existing product detail +coverage. From c2ee811e9fc4ea5bc1dde0a94f790f2378848552 Mon Sep 17 00:00:00 2001 From: Ramez Weissa Date: Sun, 12 Jul 2026 15:11:48 +0300 Subject: [PATCH 06/18] test(demo): introduce homepage performance regression --- .../javascript/components/pages/HomePage.tsx | 17 +++++++++++++++++ 1 file changed, 17 insertions(+) diff --git a/demo-ecommerce/app/javascript/components/pages/HomePage.tsx b/demo-ecommerce/app/javascript/components/pages/HomePage.tsx index c04ddb25..65ecc2ff 100644 --- a/demo-ecommerce/app/javascript/components/pages/HomePage.tsx +++ b/demo-ecommerce/app/javascript/components/pages/HomePage.tsx @@ -17,10 +17,27 @@ import LoadingSpinner from '../shared/LoadingSpinner'; import LazySection from '../shared/LazySection'; import ExperimentA11yRegressions from '../shared/ExperimentA11yRegressions'; +const runMerchandisingWarmup = () => { + const deadline = performance.now() + 450; + let checksum = 0; + + while (performance.now() < deadline) { + checksum += Math.sqrt(checksum + 1); + } + + if (checksum === Number.POSITIVE_INFINITY) { + console.info(checksum); + } +}; + const HomePage: React.FC = () => { const { products, loading, error } = useProducts(); const featuredProducts = products.filter((p) => p.featured).slice(0, 4); + React.useEffect(() => { + runMerchandisingWarmup(); + }, []); + return ( {/* Hero Section */} From 44cca911f7f606cc13955380877c7082cac961e0 Mon Sep 17 00:00:00 2001 From: Ramez Weissa Date: Sun, 12 Jul 2026 15:12:09 +0300 Subject: [PATCH 07/18] docs(demo): describe perf fixture style --- demo-ecommerce/docs/git-bisect-seed-history.md | 3 +++ 1 file changed, 3 insertions(+) diff --git a/demo-ecommerce/docs/git-bisect-seed-history.md b/demo-ecommerce/docs/git-bisect-seed-history.md index bedfebb2..dd7c3cdf 100644 --- a/demo-ecommerce/docs/git-bisect-seed-history.md +++ b/demo-ecommerce/docs/git-bisect-seed-history.md @@ -16,3 +16,6 @@ do not need a special-case demo configuration. The homepage fixtures are intended for the existing homepage and shop-now coverage. The product detail fixture is intended for the existing product detail coverage. + +Performance fixtures should use deterministic client-side work instead of +network delays so results remain easy to reproduce in local containers. From e71c449dd18026da846356289c6b04e478b761cd Mon Sep 17 00:00:00 2001 From: Ramez Weissa Date: Sun, 12 Jul 2026 15:12:36 +0300 Subject: [PATCH 08/18] docs(demo): describe a11y fixture style --- demo-ecommerce/docs/git-bisect-seed-history.md | 3 +++ 1 file changed, 3 insertions(+) diff --git a/demo-ecommerce/docs/git-bisect-seed-history.md b/demo-ecommerce/docs/git-bisect-seed-history.md index dd7c3cdf..f691e207 100644 --- a/demo-ecommerce/docs/git-bisect-seed-history.md +++ b/demo-ecommerce/docs/git-bisect-seed-history.md @@ -19,3 +19,6 @@ coverage. Performance fixtures should use deterministic client-side work instead of network delays so results remain easy to reproduce in local containers. + +Accessibility fixtures should avoid layout-visible changes when they are meant +to be accessibility-only. From 844590cd8a80ce4f5134ea0041e1412c819e0f20 Mon Sep 17 00:00:00 2001 From: Ramez Weissa Date: Sun, 12 Jul 2026 15:13:27 +0300 Subject: [PATCH 09/18] docs(demo): define clean commit expectations --- demo-ecommerce/docs/git-bisect-seed-history.md | 3 +++ 1 file changed, 3 insertions(+) diff --git a/demo-ecommerce/docs/git-bisect-seed-history.md b/demo-ecommerce/docs/git-bisect-seed-history.md index f691e207..0d568995 100644 --- a/demo-ecommerce/docs/git-bisect-seed-history.md +++ b/demo-ecommerce/docs/git-bisect-seed-history.md @@ -22,3 +22,6 @@ network delays so results remain easy to reproduce in local containers. Accessibility fixtures should avoid layout-visible changes when they are meant to be accessibility-only. + +Clean commits should be safe to classify as good for every category that has +not yet received its first dedicated regression fixture. From 4f4434f1ff5400065e80a3179162cc998acafd27 Mon Sep 17 00:00:00 2001 From: Ramez Weissa Date: Sun, 12 Jul 2026 15:13:55 +0300 Subject: [PATCH 10/18] test(demo): introduce homepage accessibility regression --- .../app/javascript/components/pages/HomePage.tsx | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/demo-ecommerce/app/javascript/components/pages/HomePage.tsx b/demo-ecommerce/app/javascript/components/pages/HomePage.tsx index 65ecc2ff..abf0ddfa 100644 --- a/demo-ecommerce/app/javascript/components/pages/HomePage.tsx +++ b/demo-ecommerce/app/javascript/components/pages/HomePage.tsx @@ -30,6 +30,14 @@ const runMerchandisingWarmup = () => { } }; +const BisectAccessibilityProbe: React.FC = () => ( +