From ceb0f16762288ca48694e2bc5b9bb3236f5206b5 Mon Sep 17 00:00:00 2001 From: Chris Bongers Date: Mon, 26 Jan 2026 13:57:59 +0200 Subject: [PATCH 1/3] feat: add Agentation --- packages/webapp/package.json | 1 + packages/webapp/pages/_app.tsx | 2 ++ pnpm-lock.yaml | 14 ++++++++++++++ 3 files changed, 17 insertions(+) diff --git a/packages/webapp/package.json b/packages/webapp/package.json index ab41b5eda8..2419b9ffbf 100644 --- a/packages/webapp/package.json +++ b/packages/webapp/package.json @@ -25,6 +25,7 @@ "@serwist/next": "^9.0.9", "@tanstack/react-query": "^5.80.5", "@tanstack/react-query-devtools": "^5.80.5", + "agentation": "^1.3.0", "classnames": "^2.5.1", "date-fns": "^2.28.0", "date-fns-tz": "1.2.2", diff --git a/packages/webapp/pages/_app.tsx b/packages/webapp/pages/_app.tsx index 9278554f94..3001f6c998 100644 --- a/packages/webapp/pages/_app.tsx +++ b/packages/webapp/pages/_app.tsx @@ -1,5 +1,6 @@ import type { ReactElement, ReactNode } from 'react'; import React, { useEffect, useRef, useState } from 'react'; +import { Agentation } from 'agentation'; import type { AppProps } from 'next/app'; import dynamic from 'next/dynamic'; import Head from 'next/head'; @@ -306,6 +307,7 @@ export default function App( + {process.env.NODE_ENV === 'development' && } ); diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index b9167a276f..367ecd78bb 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -887,6 +887,9 @@ importers: '@tanstack/react-query-devtools': specifier: ^5.80.5 version: 5.80.6(@tanstack/react-query@5.80.6(react@18.3.1))(react@18.3.1) + agentation: + specifier: ^1.3.0 + version: 1.3.0(react-dom@18.3.1(react@18.3.1))(react@18.3.1) classnames: specifier: ^2.5.1 version: 2.5.1 @@ -4149,6 +4152,12 @@ packages: resolution: {integrity: sha512-RZNwNclF7+MS/8bDg70amg32dyeZGZxiDuQmZxKLAlQjr3jGyLx+4Kkk58UO7D2QdgFIQCovuSuZESne6RG6XQ==} engines: {node: '>= 6.0.0'} + agentation@1.3.0: + resolution: {integrity: sha512-Mq05RrE00bC0lrGSSr1uj7pAT6SnEFGr9TtDgtYUHNH685OAjDgFobEgEV7jgUu0xCWIfIukH7n/Gy05plFw8Q==} + peerDependencies: + react: '>=18.0.0' + react-dom: '>=18.0.0' + aggregate-error@3.1.0: resolution: {integrity: sha512-4I7Td01quW/RpocfNayFdFVk1qSuoh0E7JrbRJ16nH01HhKFQ88INq9Sd+nd72zqRySlr9BmDA8xlEJ6vJMrYA==} engines: {node: '>=8'} @@ -13010,6 +13019,11 @@ snapshots: transitivePeerDependencies: - supports-color + agentation@1.3.0(react-dom@18.3.1(react@18.3.1))(react@18.3.1): + dependencies: + react: 18.3.1 + react-dom: 18.3.1(react@18.3.1) + aggregate-error@3.1.0: dependencies: clean-stack: 2.2.0 From c3bc4dfa8decd52283124e97617d8aa90a2f84c8 Mon Sep 17 00:00:00 2001 From: "claude[bot]" <41898282+claude[bot]@users.noreply.github.com> Date: Tue, 27 Jan 2026 10:47:48 +0000 Subject: [PATCH 2/3] feat: exclude agentation from production builds Add webpack alias to null agentation package in production builds, preventing it from being bundled when NODE_ENV=production. This ensures the development tool doesn't bloat the production bundle. Co-authored-by: Chris Bongers --- packages/webapp/next.config.ts | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/packages/webapp/next.config.ts b/packages/webapp/next.config.ts index c251e24068..7bd33a431e 100644 --- a/packages/webapp/next.config.ts +++ b/packages/webapp/next.config.ts @@ -99,6 +99,12 @@ const nextConfig: NextConfig = { // eslint-disable-next-line no-param-reassign config.resolve.alias['cross-fetch'] = false; + // Exclude agentation from production builds + if (process.env.NODE_ENV === 'production') { + // eslint-disable-next-line no-param-reassign + config.resolve.alias.agentation = false; + } + return config; }, env: { From c65da40b90c7405f7d3d57cba9afbcc8af56f2da Mon Sep 17 00:00:00 2001 From: "claude[bot]" <41898282+claude[bot]@users.noreply.github.com> Date: Tue, 27 Jan 2026 14:39:19 +0000 Subject: [PATCH 3/3] feat: lazy load Agentation to exclude from production bundle MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - Remove top-level import of agentation package - Use Next.js dynamic() to lazy load only in development - Update webpack config to use Next.js dev flag instead of NODE_ENV - Prevents agentation from being bundled in production builds Co-authored-by: Ante Barić --- packages/webapp/next.config.ts | 4 ++-- packages/webapp/pages/_app.tsx | 10 ++++++++-- 2 files changed, 10 insertions(+), 4 deletions(-) diff --git a/packages/webapp/next.config.ts b/packages/webapp/next.config.ts index 9bec41bc6f..facb162918 100644 --- a/packages/webapp/next.config.ts +++ b/packages/webapp/next.config.ts @@ -42,7 +42,7 @@ const nextConfig: NextConfig = { compiler: { reactRemoveProperties: { properties: ['^data-testid$'] }, }, - webpack: (config) => { + webpack: (config, { dev }) => { // Grab the existing rule that handles SVG imports const fileLoaderRule = config.module.rules.find((rule) => rule.test?.test?.('.svg'), @@ -100,7 +100,7 @@ const nextConfig: NextConfig = { config.resolve.alias['cross-fetch'] = false; // Exclude agentation from production builds - if (process.env.NODE_ENV === 'production') { + if (!dev) { // eslint-disable-next-line no-param-reassign config.resolve.alias.agentation = false; } diff --git a/packages/webapp/pages/_app.tsx b/packages/webapp/pages/_app.tsx index 3001f6c998..4ff71784fb 100644 --- a/packages/webapp/pages/_app.tsx +++ b/packages/webapp/pages/_app.tsx @@ -1,6 +1,5 @@ import type { ReactElement, ReactNode } from 'react'; import React, { useEffect, useRef, useState } from 'react'; -import { Agentation } from 'agentation'; import type { AppProps } from 'next/app'; import dynamic from 'next/dynamic'; import Head from 'next/head'; @@ -63,6 +62,13 @@ const CookieBanner = dynamic( ), ); +const Agentation = + process.env.NODE_ENV === 'development' + ? dynamic(() => import('agentation').then((mod) => mod.Agentation), { + ssr: false, + }) + : null; + interface ComponentGetLayout { getLayout?: ( page: ReactNode, @@ -307,7 +313,7 @@ export default function App( - {process.env.NODE_ENV === 'development' && } + {Agentation && } );