From 1e0a837f6d71b0c640e694dc932d92b4ab705d7b Mon Sep 17 00:00:00 2001 From: Omri Katz <9701896+omridevk@users.noreply.github.com> Date: Wed, 12 Aug 2026 23:53:08 +0300 Subject: [PATCH 1/2] fix(e2e): replace nextjs deploy-in-webServer with pnpm injected deps MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit The nextjs e2e apps deployed the whole workspace graph into a mktemp dir on every playwright run just to give Next/Turbopack a real non-symlinked node_modules (serverExternalPackages requires resolution under node_modules/). That deploy was slow and flaked under a single 180s webServer timeout (#435). dependenciesMeta.injected gives pnpm's own hard-copy node_modules without a deploy step, and syncInjectedDepsAfterScripts: [build] keeps those copies synced — but only when a package's own "build" script actually RUNS. CI's `turbo run test:e2e` gets a cache HIT on every package build, which restores dist straight into the source package dir without executing the script, so the sync never fires: a cold `pnpm install` (before any dist exists) leaves the injected copies permanently distless, and next dev fails with MODULE_NOT_FOUND. Ruled out two lighter fixes with evidence before landing on this one: pnpm 11.7.0 has no manual resync CLI command, and a plain `pnpm install --frozen-lockfile` no-ops on an already-satisfied lockfile even with a drifted injected copy (directory deps carry no integrity hash for pnpm to notice the drift). So each nextjs e2e app's playwright.config.ts webServer command prepends a direct `pnpm --filter run build` before next dev, bypassing turbo's cache so the script always actually runs and the sync always fires. Both playwright configs keep the existing 180s webServer default. The build-and-sync step lives in playwright.config.ts, not the app's own package.json test:e2e script: e2e/init clones these apps as consumer templates and strips @conciv/* wiring from package.json before running `conciv init`, and a test:e2e script naming @conciv/it would leak conciv wiring into that stripped clone. dependenciesMeta has to stay in package.json (that's the injection mechanism itself), so e2e/init's own stripper (withoutConcivDependencies) now also drops @conciv/* entries from dependenciesMeta, deleting the field if that empties it — the stripper doing its declared job of removing all conciv wiring from the template. The previous symlink-only setup silently dropped builtin server extensions (MODULE_NOT_FOUND from the terminal extension's dynamic require) while the suite stayed green. Added a positive assertion in e2e/nextjs's widget spec that exercises the terminal extension's real connect-command RPC round trip, so that failure mode goes red instead of silent; verified it fails under the pre-fix symlinked state and passes under the injected-deps fix. Closes #435 Refs #451 Co-Authored-By: Claude Fable 5 --- e2e/init/init.e2e.test.ts | 8 + e2e/nextjs-component/package.json | 11 + e2e/nextjs-component/playwright.config.ts | 7 +- e2e/nextjs/package.json | 5 + e2e/nextjs/playwright.config.ts | 8 +- e2e/nextjs/tests/widget.spec.ts | 11 +- pnpm-lock.yaml | 293 ++++++++++++++-------- pnpm-workspace.yaml | 19 ++ 8 files changed, 250 insertions(+), 112 deletions(-) diff --git a/e2e/init/init.e2e.test.ts b/e2e/init/init.e2e.test.ts index 30346b4e0..da0d4ceed 100644 --- a/e2e/init/init.e2e.test.ts +++ b/e2e/init/init.e2e.test.ts @@ -29,6 +29,14 @@ function withoutConcivDependencies(cloneDir: string): void { if (!isRecord(section)) continue manifest[field] = Object.fromEntries(Object.entries(section).filter(([name]) => !name.startsWith('@conciv/'))) } + const dependenciesMeta = manifest['dependenciesMeta'] + if (isRecord(dependenciesMeta)) { + const strippedMeta = Object.fromEntries( + Object.entries(dependenciesMeta).filter(([name]) => !name.startsWith('@conciv/')), + ) + if (Object.keys(strippedMeta).length === 0) delete manifest['dependenciesMeta'] + else manifest['dependenciesMeta'] = strippedMeta + } writeFileSync(manifestPath, `${JSON.stringify(manifest, null, 2)}\n`) } diff --git a/e2e/nextjs-component/package.json b/e2e/nextjs-component/package.json index fa3af59bb..6612bb604 100644 --- a/e2e/nextjs-component/package.json +++ b/e2e/nextjs-component/package.json @@ -23,5 +23,16 @@ "@types/react": "^19", "@types/react-dom": "^19", "typescript": "^5" + }, + "dependenciesMeta": { + "@conciv/extension-terminal": { + "injected": true + }, + "@conciv/it": { + "injected": true + }, + "@conciv/react": { + "injected": true + } } } diff --git a/e2e/nextjs-component/playwright.config.ts b/e2e/nextjs-component/playwright.config.ts index 312d39264..51dae5002 100644 --- a/e2e/nextjs-component/playwright.config.ts +++ b/e2e/nextjs-component/playwright.config.ts @@ -2,10 +2,5 @@ import {e2eConfig} from '@conciv/e2e-utils/config' export default e2eConfig('nextjs-component', { command: (port) => - [ - 'DEPLOY_DIR="$(mktemp -d)/app"', - `pnpm --filter conciv-e2e-nextjs-component deploy --legacy --prod=false "$DEPLOY_DIR"`, - `cd "$DEPLOY_DIR"`, - `pnpm exec next dev --port ${port}`, - ].join(' && '), + `pnpm --filter @conciv/it --filter @conciv/react --filter @conciv/extension-terminal run build && pnpm exec next dev --port ${port}`, }) diff --git a/e2e/nextjs/package.json b/e2e/nextjs/package.json index c72c8e153..f13fb4c4d 100644 --- a/e2e/nextjs/package.json +++ b/e2e/nextjs/package.json @@ -26,5 +26,10 @@ "@types/react-dom": "^19", "tsx": "^4.22.4", "typescript": "^5" + }, + "dependenciesMeta": { + "@conciv/it": { + "injected": true + } } } diff --git a/e2e/nextjs/playwright.config.ts b/e2e/nextjs/playwright.config.ts index f9039e67d..615f8af4f 100644 --- a/e2e/nextjs/playwright.config.ts +++ b/e2e/nextjs/playwright.config.ts @@ -1,11 +1,5 @@ import {e2eConfig} from '@conciv/e2e-utils/config' export default e2eConfig('nextjs', { - command: (port) => - [ - 'DEPLOY_DIR="$(mktemp -d)/app"', - `pnpm --filter conciv-e2e-nextjs deploy --legacy --prod=false "$DEPLOY_DIR"`, - `cd "$DEPLOY_DIR"`, - `pnpm exec next dev --port ${port}`, - ].join(' && '), + command: (port) => `pnpm --filter @conciv/it run build && pnpm exec next dev --port ${port}`, }) diff --git a/e2e/nextjs/tests/widget.spec.ts b/e2e/nextjs/tests/widget.spec.ts index 2057a22cc..f972b1be5 100644 --- a/e2e/nextjs/tests/widget.spec.ts +++ b/e2e/nextjs/tests/widget.spec.ts @@ -1,4 +1,4 @@ -import {test} from '@playwright/test' +import {expect, test} from '@playwright/test' import {collectFailures, expectWidgetBoots} from '@conciv/e2e-utils/widget' test('widget boots from dist in a nextjs app', async ({page}) => { @@ -6,3 +6,12 @@ test('widget boots from dist in a nextjs app', async ({page}) => { await page.goto('/', {waitUntil: 'domcontentloaded'}) await expectWidgetBoots(page, failures) }) + +test('the terminal builtin server extension loaded and can hand back a real connect command', async ({page}) => { + const failures = collectFailures(page) + await page.goto('/', {waitUntil: 'domcontentloaded'}) + await expectWidgetBoots(page, failures) + await page.getByRole('button', {name: /Terminal options for/}).click() + await page.getByRole('menuitem', {name: 'Copy command'}).click() + await expect(page.getByText(/--mcp-config/)).toBeVisible() +}) diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index d76ef670b..656e503c5 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -253,7 +253,7 @@ importers: version: 1.167.18 '@tanstack/router-plugin': specifier: ^1.168.19 - version: 1.168.19(@tanstack/react-router@1.170.23(react-dom@19.2.7(react@19.2.7))(react@19.2.7))(esbuild@0.28.1)(rolldown@1.1.5)(rollup@4.62.2)(vite-plugin-solid@2.11.12(@testing-library/jest-dom@6.9.1)(solid-js@1.9.14)(vite@8.1.3(@types/node@26.1.0)(esbuild@0.28.1)(jiti@2.7.0)(terser@5.49.0)(tsx@4.22.4)(yaml@2.9.0)))(vite@8.1.3(@types/node@26.1.0)(esbuild@0.28.1)(jiti@2.7.0)(terser@5.49.0)(tsx@4.22.4)(yaml@2.9.0)) + version: 1.168.19(@tanstack/react-router@1.170.25(react-dom@19.2.7(react@19.2.7))(react@19.2.7))(esbuild@0.28.1)(rolldown@1.1.5)(rollup@4.62.2)(vite-plugin-solid@2.11.12(@testing-library/jest-dom@6.9.1)(solid-js@1.9.14)(vite@8.1.3(@types/node@26.1.0)(esbuild@0.28.1)(jiti@2.7.0)(terser@5.49.0)(tsx@4.22.4)(yaml@2.9.0)))(vite@8.1.3(@types/node@26.1.0)(esbuild@0.28.1)(jiti@2.7.0)(terser@5.49.0)(tsx@4.22.4)(yaml@2.9.0)) '@types/node': specifier: ^26.1.0 version: 26.1.0 @@ -821,7 +821,7 @@ importers: dependencies: '@conciv/it': specifier: workspace:* - version: link:../../packages/it + version: file:packages/it(next@16.2.10(@opentelemetry/api@1.9.1)(@playwright/test@1.61.1)(react-dom@19.2.4(react@19.2.4))(react@19.2.4)(sass@1.51.0))(vite@8.1.3(@types/node@20.19.43)(esbuild@0.28.1)(jiti@2.7.0)(sass@1.51.0)(terser@5.49.0)(tsx@4.22.4)(yaml@2.9.0)) next: specifier: 16.2.10 version: 16.2.10(@opentelemetry/api@1.9.1)(@playwright/test@1.61.1)(react-dom@19.2.4(react@19.2.4))(react@19.2.4)(sass@1.51.0) @@ -831,6 +831,9 @@ importers: react-dom: specifier: 19.2.4 version: 19.2.4(react@19.2.4) + dependenciesMeta: + '@conciv/it': + injected: true devDependencies: '@conciv/contract': specifier: workspace:* @@ -867,13 +870,13 @@ importers: dependencies: '@conciv/extension-terminal': specifier: workspace:* - version: link:../../packages/extensions/terminal + version: file:packages/extensions/terminal(@opentelemetry/api@1.9.1)(crossws@0.4.10(srvx@0.11.22))(solid-js@1.9.14)(ws@8.21.0) '@conciv/it': specifier: workspace:* - version: link:../../packages/it + version: file:packages/it(next@16.2.10(@opentelemetry/api@1.9.1)(@playwright/test@1.61.1)(react-dom@19.2.4(react@19.2.4))(react@19.2.4)(sass@1.51.0))(vite@8.1.3(@types/node@20.19.43)(esbuild@0.28.1)(jiti@2.7.0)(sass@1.51.0)(terser@5.49.0)(tsx@4.22.4)(yaml@2.9.0)) '@conciv/react': specifier: workspace:* - version: link:../../packages/react + version: file:packages/react(@types/react@19.2.17)(react@19.2.4) next: specifier: 16.2.10 version: 16.2.10(@opentelemetry/api@1.9.1)(@playwright/test@1.61.1)(react-dom@19.2.4(react@19.2.4))(react@19.2.4)(sass@1.51.0) @@ -883,6 +886,13 @@ importers: react-dom: specifier: 19.2.4 version: 19.2.4(react@19.2.4) + dependenciesMeta: + '@conciv/extension-terminal': + injected: true + '@conciv/it': + injected: true + '@conciv/react': + injected: true devDependencies: '@conciv/e2e-utils': specifier: workspace:* @@ -984,19 +994,19 @@ importers: version: 0.10.9(@types/react-dom@19.2.3(@types/react@19.2.17))(@types/react@19.2.17)(csstype@3.2.3)(react-dom@19.2.7(react@19.2.7))(react@19.2.7)(solid-js@1.9.14) '@tanstack/react-router': specifier: latest - version: 1.170.23(react-dom@19.2.7(react@19.2.7))(react@19.2.7) + version: 1.170.25(react-dom@19.2.7(react@19.2.7))(react@19.2.7) '@tanstack/react-router-devtools': specifier: latest - version: 1.167.1(@tanstack/react-router@1.170.23(react-dom@19.2.7(react@19.2.7))(react@19.2.7))(@tanstack/router-core@1.171.19)(csstype@3.2.3)(react-dom@19.2.7(react@19.2.7))(react@19.2.7) + version: 1.167.1(@tanstack/react-router@1.170.25(react-dom@19.2.7(react@19.2.7))(react@19.2.7))(@tanstack/router-core@1.171.21)(csstype@3.2.3)(react-dom@19.2.7(react@19.2.7))(react@19.2.7) '@tanstack/react-router-ssr-query': specifier: latest - version: 1.167.1(@tanstack/query-core@5.101.2)(@tanstack/react-query@5.101.2(react@19.2.7))(@tanstack/react-router@1.170.23(react-dom@19.2.7(react@19.2.7))(react@19.2.7))(@tanstack/router-core@1.171.14)(react-dom@19.2.7(react@19.2.7))(react@19.2.7) + version: 1.167.1(@tanstack/query-core@5.101.2)(@tanstack/react-query@5.101.2(react@19.2.7))(@tanstack/react-router@1.170.25(react-dom@19.2.7(react@19.2.7))(react@19.2.7))(@tanstack/router-core@1.171.14)(react-dom@19.2.7(react@19.2.7))(react@19.2.7) '@tanstack/react-start': specifier: latest - version: 1.168.40(crossws@0.4.10(srvx@0.11.22))(esbuild@0.28.1)(react-dom@19.2.7(react@19.2.7))(react@19.2.7)(rolldown@1.1.5)(rollup@4.62.2)(vite-plugin-solid@2.11.12(@testing-library/jest-dom@6.9.1)(solid-js@1.9.14)(vite@8.1.3(@types/node@22.20.0)(esbuild@0.28.1)(jiti@2.7.0)(terser@5.49.0)(tsx@4.22.4)(yaml@2.9.0)))(vite@8.1.3(@types/node@22.20.0)(esbuild@0.28.1)(jiti@2.7.0)(terser@5.49.0)(tsx@4.22.4)(yaml@2.9.0)) + version: 1.168.42(crossws@0.4.10(srvx@0.11.22))(esbuild@0.28.1)(react-dom@19.2.7(react@19.2.7))(react@19.2.7)(rolldown@1.1.5)(rollup@4.62.2)(vite-plugin-solid@2.11.12(@testing-library/jest-dom@6.9.1)(solid-js@1.9.14)(vite@8.1.3(@types/node@22.20.0)(esbuild@0.28.1)(jiti@2.7.0)(terser@5.49.0)(tsx@4.22.4)(yaml@2.9.0)))(vite@8.1.3(@types/node@22.20.0)(esbuild@0.28.1)(jiti@2.7.0)(terser@5.49.0)(tsx@4.22.4)(yaml@2.9.0)) '@tanstack/router-plugin': specifier: ^1.132.0 - version: 1.168.19(@tanstack/react-router@1.170.23(react-dom@19.2.7(react@19.2.7))(react@19.2.7))(esbuild@0.28.1)(rolldown@1.1.5)(rollup@4.62.2)(vite-plugin-solid@2.11.12(@testing-library/jest-dom@6.9.1)(solid-js@1.9.14)(vite@8.1.3(@types/node@22.20.0)(esbuild@0.28.1)(jiti@2.7.0)(terser@5.49.0)(tsx@4.22.4)(yaml@2.9.0)))(vite@8.1.3(@types/node@22.20.0)(esbuild@0.28.1)(jiti@2.7.0)(terser@5.49.0)(tsx@4.22.4)(yaml@2.9.0)) + version: 1.168.19(@tanstack/react-router@1.170.25(react-dom@19.2.7(react@19.2.7))(react@19.2.7))(esbuild@0.28.1)(rolldown@1.1.5)(rollup@4.62.2)(vite-plugin-solid@2.11.12(@testing-library/jest-dom@6.9.1)(solid-js@1.9.14)(vite@8.1.3(@types/node@22.20.0)(esbuild@0.28.1)(jiti@2.7.0)(terser@5.49.0)(tsx@4.22.4)(yaml@2.9.0)))(vite@8.1.3(@types/node@22.20.0)(esbuild@0.28.1)(jiti@2.7.0)(terser@5.49.0)(tsx@4.22.4)(yaml@2.9.0)) lucide-react: specifier: ^0.545.0 version: 0.545.0(react@19.2.7) @@ -1060,19 +1070,19 @@ importers: version: 0.10.9(@types/react-dom@19.2.3(@types/react@19.2.17))(@types/react@19.2.17)(csstype@3.2.3)(react-dom@19.2.7(react@19.2.7))(react@19.2.7)(solid-js@1.9.14) '@tanstack/react-router': specifier: latest - version: 1.170.23(react-dom@19.2.7(react@19.2.7))(react@19.2.7) + version: 1.170.25(react-dom@19.2.7(react@19.2.7))(react@19.2.7) '@tanstack/react-router-devtools': specifier: latest - version: 1.167.1(@tanstack/react-router@1.170.23(react-dom@19.2.7(react@19.2.7))(react@19.2.7))(@tanstack/router-core@1.171.19)(csstype@3.2.3)(react-dom@19.2.7(react@19.2.7))(react@19.2.7) + version: 1.167.1(@tanstack/react-router@1.170.25(react-dom@19.2.7(react@19.2.7))(react@19.2.7))(@tanstack/router-core@1.171.21)(csstype@3.2.3)(react-dom@19.2.7(react@19.2.7))(react@19.2.7) '@tanstack/react-start': specifier: latest - version: 1.168.40(crossws@0.4.10(srvx@0.11.22))(esbuild@0.28.1)(react-dom@19.2.7(react@19.2.7))(react@19.2.7)(rolldown@1.1.5)(rollup@4.62.2)(vite-plugin-solid@2.11.12(@testing-library/jest-dom@6.9.1)(solid-js@1.9.14)(vite@8.1.3(@types/node@22.20.0)(esbuild@0.28.1)(jiti@2.7.0)(terser@5.49.0)(tsx@4.22.4)(yaml@2.9.0)))(vite@8.1.3(@types/node@22.20.0)(esbuild@0.28.1)(jiti@2.7.0)(terser@5.49.0)(tsx@4.22.4)(yaml@2.9.0)) + version: 1.168.42(crossws@0.4.10(srvx@0.11.22))(esbuild@0.28.1)(react-dom@19.2.7(react@19.2.7))(react@19.2.7)(rolldown@1.1.5)(rollup@4.62.2)(vite-plugin-solid@2.11.12(@testing-library/jest-dom@6.9.1)(solid-js@1.9.14)(vite@8.1.3(@types/node@22.20.0)(esbuild@0.28.1)(jiti@2.7.0)(terser@5.49.0)(tsx@4.22.4)(yaml@2.9.0)))(vite@8.1.3(@types/node@22.20.0)(esbuild@0.28.1)(jiti@2.7.0)(terser@5.49.0)(tsx@4.22.4)(yaml@2.9.0)) '@tanstack/redact': specifier: ^0.0.18 version: 0.0.18(vite@8.1.3(@types/node@22.20.0)(esbuild@0.28.1)(jiti@2.7.0)(terser@5.49.0)(tsx@4.22.4)(yaml@2.9.0)) '@tanstack/router-plugin': specifier: ^1.132.0 - version: 1.168.22(@tanstack/react-router@1.170.23(react-dom@19.2.7(react@19.2.7))(react@19.2.7))(esbuild@0.28.1)(rolldown@1.1.5)(rollup@4.62.2)(vite-plugin-solid@2.11.12(@testing-library/jest-dom@6.9.1)(solid-js@1.9.14)(vite@8.1.3(@types/node@22.20.0)(esbuild@0.28.1)(jiti@2.7.0)(terser@5.49.0)(tsx@4.22.4)(yaml@2.9.0)))(vite@8.1.3(@types/node@22.20.0)(esbuild@0.28.1)(jiti@2.7.0)(terser@5.49.0)(tsx@4.22.4)(yaml@2.9.0)) + version: 1.168.22(@tanstack/react-router@1.170.25(react-dom@19.2.7(react@19.2.7))(react@19.2.7))(esbuild@0.28.1)(rolldown@1.1.5)(rollup@4.62.2)(vite-plugin-solid@2.11.12(@testing-library/jest-dom@6.9.1)(solid-js@1.9.14)(vite@8.1.3(@types/node@22.20.0)(esbuild@0.28.1)(jiti@2.7.0)(terser@5.49.0)(tsx@4.22.4)(yaml@2.9.0)))(vite@8.1.3(@types/node@22.20.0)(esbuild@0.28.1)(jiti@2.7.0)(terser@5.49.0)(tsx@4.22.4)(yaml@2.9.0)) nitro: specifier: npm:nitro-nightly@3.0.1-20260712-095235-05bf1c38 version: nitro-nightly@3.0.1-20260712-095235-05bf1c38(@electric-sql/pglite@0.3.16)(@libsql/client@0.17.4)(@netlify/blobs@10.7.9)(chokidar@5.0.0)(dotenv@17.4.2)(drizzle-orm@0.45.2(@electric-sql/pglite@0.3.16)(@libsql/client@0.17.4)(@opentelemetry/api@1.9.1))(giget@3.3.0)(ioredis@5.11.1)(jiti@2.7.0)(lru-cache@11.5.2)(miniflare@4.20260714.0)(nitro-nightly@3.0.1-20260712-095235-05bf1c38)(rollup@4.62.2)(vite@8.1.3(@types/node@22.20.0)(esbuild@0.28.1)(jiti@2.7.0)(terser@5.49.0)(tsx@4.22.4)(yaml@2.9.0))(wrangler@4.112.0) @@ -4745,6 +4755,32 @@ packages: resolution: {integrity: sha512-ooWCrlZP11i8GImSjTHYHLkvFDP48nS4+204nGb1RiX/WXYHmJA2III9/e2DWVabCESdW7hBAEzHRqUn9OUVvQ==} engines: {node: '>=0.1.90'} + '@conciv/extension-terminal@file:packages/extensions/terminal': + resolution: {directory: packages/extensions/terminal, type: directory} + peerDependencies: + solid-js: ^1.9.13 + + '@conciv/it@file:packages/it': + resolution: {directory: packages/it, type: directory} + peerDependencies: + next: ^15.3.0 || ^16.0.0 + vite: ^6.0.0 || ^7.0.0 || ^8.0.0 + peerDependenciesMeta: + next: + optional: true + vite: + optional: true + + '@conciv/react@file:packages/react': + resolution: {directory: packages/react, type: directory} + engines: {node: '>=22.13'} + peerDependencies: + '@types/react': '>=16.8' + react: '>=16.8' + peerDependenciesMeta: + '@types/react': + optional: true + '@cspotcode/source-map-support@0.8.1': resolution: {integrity: sha512-IchNf6dN4tHoMFIn/7OE8LWZ19Y6q/67Bmf6vnGREv8RSbBVb9LPJxEcnwrcwX6ixSvaiGoomAUvu4YSxXrVgw==} engines: {node: '>=12'} @@ -9429,8 +9465,8 @@ packages: react: '>=18.0.0 || >=19.0.0' react-dom: '>=18.0.0 || >=19.0.0' - '@tanstack/react-router@1.170.23': - resolution: {integrity: sha512-iKyHk7vGVaTdk7wukFZLjzlOs4TQbQJiRMkvFsphpysOlxzLaqWSlWHKU4gVPW3WjJ19k7EjVUCD4q3DJqZpZg==} + '@tanstack/react-router@1.170.25': + resolution: {integrity: sha512-XiWYvkLAGhcZHhV2xUvicpF/VfTVSnewP6CqviDONAjmD50tBob5x/93u2W8QZAc/JgkPd+jijCmu6t4NCzmew==} engines: {node: '>=20.19'} peerDependencies: react: '>=18.0.0 || >=19.0.0' @@ -9450,8 +9486,8 @@ packages: react: '>=18.0.0 || >=19.0.0' react-dom: '>=18.0.0 || >=19.0.0' - '@tanstack/react-start-client@1.168.21': - resolution: {integrity: sha512-H5LyBYZs8qBG0qlnbA213F4CaL3OKnEC6T3lmycR2UR1kWWKE43ERbcKDKz+ZjXlP2qTCYqoGlzeh58t7nfwPQ==} + '@tanstack/react-start-client@1.168.23': + resolution: {integrity: sha512-4tfprSCYVPb1vmhqv6t9lYxJ3FhJOiMHMknBOm9dRmakILk6h4J0tyENlN+yfJkTae5aKWweUd1CI1WmTrhUnA==} engines: {node: '>=22.12.0'} peerDependencies: react: '>=18.0.0 || >=19.0.0' @@ -9491,8 +9527,8 @@ packages: react-server-dom-rspack: optional: true - '@tanstack/react-start-rsc@0.1.39': - resolution: {integrity: sha512-/19+PnxBMoseBoydD1LMB4V31/uma/r6oQCr8ZCMXNm6lAw3bHfUHNQfc5CdrwZ9TGHkGvmecQ65RjiLhpdalQ==} + '@tanstack/react-start-rsc@0.1.41': + resolution: {integrity: sha512-wjk960LFDOatV1djlzwDdYov2SSvPG+EMZUV79PQdiSjyWl5fvuyJd1bRXXK6adovJVll38cA8GzJWKksSoYJg==} engines: {node: '>=22.12.0'} peerDependencies: '@rspack/core': '>=2.0.0-0' @@ -9522,8 +9558,8 @@ packages: react: '>=18.0.0 || >=19.0.0' react-dom: '>=18.0.0 || >=19.0.0' - '@tanstack/react-start-server@1.167.28': - resolution: {integrity: sha512-ouZmlPdEwaI3wzd+FfLAuo16UFqEusN7Rcu0QXFT020ledvtE5wAbkNQNE2dFiivtmV0BGg/Z37HDSM19aJm7w==} + '@tanstack/react-start-server@1.167.30': + resolution: {integrity: sha512-QcmUgbKgBj2S9113elDOeq8io3og5TzyJkOtjP9TXyEYgt2tjWSr7zzWtnH1CKYTkPn2XHSTSpLU3Ut2LF7zKw==} engines: {node: '>=22.12.0'} peerDependencies: react: '>=18.0.0 || >=19.0.0' @@ -9563,8 +9599,8 @@ packages: vite: optional: true - '@tanstack/react-start@1.168.40': - resolution: {integrity: sha512-MFwtKSdNos3sF8NzzI64qbupopi8/eR5NCsC+1TZ0LXHqUaBKZmbHOd6PTXq2fDRIofpVSPpZYXZYuYbYUTSog==} + '@tanstack/react-start@1.168.42': + resolution: {integrity: sha512-x6brZO9+aI/kfMItourwzSdCLgbDXaG8vjtuO5MJvopAk+SRxDBBYls2j9XxdqDx2WmOolNN5oZox8CGLcaNWg==} engines: {node: '>=22.12.0'} peerDependencies: '@rsbuild/core': ^2.0.0 @@ -9617,8 +9653,8 @@ packages: resolution: {integrity: sha512-IILCDcLaItMZQ2jEmCABHY1Nhjjn5XUvwpQp3e4Nmu+vfg0BgYFuu/QASz2SwE2ZNbVMrvt8X/wxa+Gg5aErxA==} engines: {node: '>=20.19'} - '@tanstack/router-core@1.171.19': - resolution: {integrity: sha512-uCZhgnfmuBA3PoRLIVSjUhQpJQd/HA7p0XxG1IFKnvXU9lIMZ7gIqx45hyuf9JopxXZI8k7qaz9/6PC7mZLdfQ==} + '@tanstack/router-core@1.171.21': + resolution: {integrity: sha512-t6xUHBO94nQDrPHPh6ag5UuKHWIkVjq9s63q2ctbxgzq3vtSoGKmAIdLD5o+NU6JUS1ppXRHgL0YGzEHvH32Ng==} engines: {node: '>=20.19'} '@tanstack/router-devtools-core@1.168.0': @@ -9653,8 +9689,8 @@ packages: resolution: {integrity: sha512-m3oXZyienj8owialdyoZ0txHQrnEx/Ra+D9kWtar5fC2cWZr5Pvxl86VY2mX5RRLC5QLKLeRGT1x4HV95wHVDQ==} engines: {node: '>=20.19'} - '@tanstack/router-generator@1.167.25': - resolution: {integrity: sha512-M+S+QvGicfiH7kMkjrm6q+UMWXTdl7v9+pvMVnzA+lFm7whe8qmVOY72h/O8GGnejNn14jxdPrnLXv97NJjlWQ==} + '@tanstack/router-generator@1.167.27': + resolution: {integrity: sha512-bfV44Nyy7XeSCCuvQWGc3qudqXfOqAwKiWXNymAuK+hy24vs3E75Aw1zMz97ajHXMjxm4nFVVjEnwZ/cDR74ug==} engines: {node: '>=20.19'} '@tanstack/router-plugin@1.168.18': @@ -9720,12 +9756,12 @@ packages: webpack: optional: true - '@tanstack/router-plugin@1.168.27': - resolution: {integrity: sha512-M/3XG6RIxid8+f5VKXILtPpapQPjIgKRKV1JxuvYJwQM811iSUzK9onrZnezUktZcHaWJN+wD7FR5HedH/WY7Q==} + '@tanstack/router-plugin@1.168.29': + resolution: {integrity: sha512-h1ZbnIvbAKIFeQ6JBRJ/xBP17tBdwjwzPBKVKUdVNYiob07SkrQLhqz+s41WtbNmHey5kQWN3HqP16Vl062bqg==} engines: {node: '>=20.19'} peerDependencies: '@rsbuild/core': '>=1.0.2 || ^2.0.0' - '@tanstack/react-router': ^1.170.22 + '@tanstack/react-router': ^1.170.25 vite: '>=5.0.0 || >=6.0.0 || >=7.0.0 || >=8.0.0' vite-plugin-solid: ^2.11.10 || ^3.0.0-0 webpack: '>=5.92.0' @@ -9800,8 +9836,8 @@ packages: resolution: {integrity: sha512-o37M3msIK5ec87kPrIYJWXb1XPnjIe5/jrkGLXiXpFuVL99z7mhoBCzftKtVPtzqI8EElnRE/VGFYT9BHNnWcw==} engines: {node: '>=22.12.0'} - '@tanstack/start-client-core@1.170.19': - resolution: {integrity: sha512-Tdr3djfTnIn5VcFjgtYI6DWcaD7aGP9rySe7TH1QPVcb29pyS3eGUy5sSt3tykD8Zbn9+lYsdiY7bzZadxJM+A==} + '@tanstack/start-client-core@1.170.21': + resolution: {integrity: sha512-TPjfGmgZ9jZ1JkcSMJtJuSxZHO+6B9A09oS4chTKql5z0a2+SqyVZ6P1WSH+N9z0SgghJeqiynUBiHRoVPSM8A==} engines: {node: '>=22.12.0'} '@tanstack/start-fn-stubs@1.162.0': @@ -9832,8 +9868,8 @@ packages: vite: optional: true - '@tanstack/start-plugin-core@1.171.31': - resolution: {integrity: sha512-7vHNDktNU+sh2fZLENd9vCkP73aWTv23IGo1cjn/4P5Y/OP7FuEruX28/Rqb6pzNKL9pLjcO/q+RdN8GsTdJ9g==} + '@tanstack/start-plugin-core@1.171.33': + resolution: {integrity: sha512-p2ykMoLR3aFnSygJjM7zKXGpJsbwzd0ct0dN678wLDhsEqlrP0sZ4PR+gMQSuLge0H8e6vlUoh+0r7x/eQyu2Q==} engines: {node: '>=22.12.0'} peerDependencies: '@rsbuild/core': ^2.0.0 @@ -9852,8 +9888,8 @@ packages: resolution: {integrity: sha512-lvAjQpH3nHJtd4xy0iHIaWbsTbyN9EBxuYCxbtXH0EpeBQPg+TCPhu9GQC9WbbA1rE//s82CpE55oYDQMqkU5A==} engines: {node: '>=22.12.0'} - '@tanstack/start-server-core@1.169.23': - resolution: {integrity: sha512-cQmGZmvFnX3aAwPqVASwqbq0jwYzQrr4bi+rv8t6DAt2G/UyRjKEHsE/r7HuxUR46jIa/DVaSPuizmNEgzBscw==} + '@tanstack/start-server-core@1.169.25': + resolution: {integrity: sha512-k+sg4NjmDCspVvec9Yx1vR5xEo7TBu7Nc85tglXhGY3UVoY9iDa1LZhoJxZ9AtOm6Ba3ZUTdeggXO2nPWeFFmA==} engines: {node: '>=22.12.0'} '@tanstack/start-storage-context@1.167.15': @@ -9864,8 +9900,8 @@ packages: resolution: {integrity: sha512-zTegxlij4BC1DbCrC6rsVlMOQVMzOuG5IllacZEkrUdhiFwMIMYpk0VWGH+d0ucx5RBkmv8e8GNX3AOVBWclfg==} engines: {node: '>=22.12.0'} - '@tanstack/start-storage-context@1.167.21': - resolution: {integrity: sha512-+S3ZkueTlNqpopkjQDJGAJeZ9MXAqjEsbfvJmsfMnf2Lr+Qm+8Y3B9r5khJuYfzcfF889tP0VXQ45JdzyJJwBw==} + '@tanstack/start-storage-context@1.167.23': + resolution: {integrity: sha512-HGK2zSMADRQAGboaX7MczhCt+Iwym4mnhxuo0nkce+epQXKiIsFFKC1Cra7mJWFpxknXmk0sHR1oODvghMFYHw==} engines: {node: '>=22.12.0'} '@tanstack/store@0.11.0': @@ -18277,6 +18313,49 @@ snapshots: '@colors/colors@1.5.0': optional: true + '@conciv/extension-terminal@file:packages/extensions/terminal(@opentelemetry/api@1.9.1)(crossws@0.4.10(srvx@0.11.22))(solid-js@1.9.14)(ws@8.21.0)': + dependencies: + '@conciv/extension': link:packages/extension + '@conciv/protocol': link:packages/protocol + '@conciv/ui-kit-chat': link:packages/ui-kit-chat + '@conciv/ui-kit-system': link:packages/ui-kit-system + '@conciv/ui-kit-terminal': link:packages/ui-kit-terminal + '@hono/node-server': 2.0.12(hono@4.12.27) + '@lydell/node-pty': 1.1.0 + '@orpc/client': 1.14.7(@opentelemetry/api@1.9.1) + '@orpc/server': 1.14.7(@opentelemetry/api@1.9.1)(crossws@0.4.10(srvx@0.11.22))(ws@8.21.0) + '@solid-primitives/event-listener': 2.4.6(solid-js@1.9.14) + hono: 4.12.27 + lucide-solid: 1.18.0(solid-js@1.9.14) + solid-js: 1.9.14 + zod: 4.4.3 + transitivePeerDependencies: + - '@opentelemetry/api' + - crossws + - fastify + - ws + + '@conciv/it@file:packages/it(next@16.2.10(@opentelemetry/api@1.9.1)(@playwright/test@1.61.1)(react-dom@19.2.4(react@19.2.4))(react@19.2.4)(sass@1.51.0))(vite@8.1.3(@types/node@20.19.43)(esbuild@0.28.1)(jiti@2.7.0)(sass@1.51.0)(terser@5.49.0)(tsx@4.22.4)(yaml@2.9.0))': + dependencies: + '@conciv/embed': link:packages/embed + '@conciv/extension-compiler': link:packages/extension-compiler + '@conciv/extension-ios': link:packages/extensions/ios + '@conciv/extension-recorder': link:packages/extensions/recorder + '@conciv/extension-terminal': link:packages/extensions/terminal + '@conciv/extension-test-runner': link:packages/extensions/test-runner + '@conciv/extension-whiteboard': link:packages/extensions/whiteboard + '@conciv/plugin': link:packages/plugin + optionalDependencies: + next: 16.2.10(@opentelemetry/api@1.9.1)(@playwright/test@1.61.1)(react-dom@19.2.4(react@19.2.4))(react@19.2.4)(sass@1.51.0) + vite: 8.1.3(@types/node@20.19.43)(esbuild@0.28.1)(jiti@2.7.0)(sass@1.51.0)(terser@5.49.0)(tsx@4.22.4)(yaml@2.9.0) + + '@conciv/react@file:packages/react(@types/react@19.2.17)(react@19.2.4)': + dependencies: + '@conciv/embed': link:packages/embed + react: 19.2.4 + optionalDependencies: + '@types/react': 19.2.17 + '@cspotcode/source-map-support@0.8.1': dependencies: '@jridgewell/trace-mapping': 0.3.9 @@ -22349,22 +22428,22 @@ snapshots: transitivePeerDependencies: - csstype - '@tanstack/react-router-devtools@1.167.1(@tanstack/react-router@1.170.23(react-dom@19.2.7(react@19.2.7))(react@19.2.7))(@tanstack/router-core@1.171.19)(csstype@3.2.3)(react-dom@19.2.7(react@19.2.7))(react@19.2.7)': + '@tanstack/react-router-devtools@1.167.1(@tanstack/react-router@1.170.25(react-dom@19.2.7(react@19.2.7))(react@19.2.7))(@tanstack/router-core@1.171.21)(csstype@3.2.3)(react-dom@19.2.7(react@19.2.7))(react@19.2.7)': dependencies: - '@tanstack/react-router': 1.170.23(react-dom@19.2.7(react@19.2.7))(react@19.2.7) - '@tanstack/router-devtools-core': 1.168.1(@tanstack/router-core@1.171.19)(csstype@3.2.3) + '@tanstack/react-router': 1.170.25(react-dom@19.2.7(react@19.2.7))(react@19.2.7) + '@tanstack/router-devtools-core': 1.168.1(@tanstack/router-core@1.171.21)(csstype@3.2.3) react: 19.2.7 react-dom: 19.2.7(react@19.2.7) optionalDependencies: - '@tanstack/router-core': 1.171.19 + '@tanstack/router-core': 1.171.21 transitivePeerDependencies: - csstype - '@tanstack/react-router-ssr-query@1.167.1(@tanstack/query-core@5.101.2)(@tanstack/react-query@5.101.2(react@19.2.7))(@tanstack/react-router@1.170.23(react-dom@19.2.7(react@19.2.7))(react@19.2.7))(@tanstack/router-core@1.171.14)(react-dom@19.2.7(react@19.2.7))(react@19.2.7)': + '@tanstack/react-router-ssr-query@1.167.1(@tanstack/query-core@5.101.2)(@tanstack/react-query@5.101.2(react@19.2.7))(@tanstack/react-router@1.170.25(react-dom@19.2.7(react@19.2.7))(react@19.2.7))(@tanstack/router-core@1.171.14)(react-dom@19.2.7(react@19.2.7))(react@19.2.7)': dependencies: '@tanstack/query-core': 5.101.2 '@tanstack/react-query': 5.101.2(react@19.2.7) - '@tanstack/react-router': 1.170.23(react-dom@19.2.7(react@19.2.7))(react@19.2.7) + '@tanstack/react-router': 1.170.25(react-dom@19.2.7(react@19.2.7))(react@19.2.7) '@tanstack/router-ssr-query-core': 1.169.1(@tanstack/query-core@5.101.2)(@tanstack/router-core@1.171.14) react: 19.2.7 react-dom: 19.2.7(react@19.2.7) @@ -22398,11 +22477,11 @@ snapshots: react: 19.2.7 react-dom: 19.2.7(react@19.2.7) - '@tanstack/react-router@1.170.23(react-dom@19.2.7(react@19.2.7))(react@19.2.7)': + '@tanstack/react-router@1.170.25(react-dom@19.2.7(react@19.2.7))(react@19.2.7)': dependencies: '@tanstack/history': 1.162.1 '@tanstack/react-store': 0.9.3(react-dom@19.2.7(react@19.2.7))(react@19.2.7) - '@tanstack/router-core': 1.171.19 + '@tanstack/router-core': 1.171.21 isbot: 5.2.1 react: 19.2.7 react-dom: 19.2.7(react@19.2.7) @@ -22423,11 +22502,11 @@ snapshots: react: 19.2.7 react-dom: 19.2.7(react@19.2.7) - '@tanstack/react-start-client@1.168.21(react-dom@19.2.7(react@19.2.7))(react@19.2.7)': + '@tanstack/react-start-client@1.168.23(react-dom@19.2.7(react@19.2.7))(react@19.2.7)': dependencies: - '@tanstack/react-router': 1.170.23(react-dom@19.2.7(react@19.2.7))(react@19.2.7) - '@tanstack/router-core': 1.171.19 - '@tanstack/start-client-core': 1.170.19 + '@tanstack/react-router': 1.170.25(react-dom@19.2.7(react@19.2.7))(react@19.2.7) + '@tanstack/router-core': 1.171.21 + '@tanstack/start-client-core': 1.170.21 react: 19.2.7 react-dom: 19.2.7(react@19.2.7) @@ -22485,15 +22564,15 @@ snapshots: - vite-plugin-solid - webpack - '@tanstack/react-start-rsc@0.1.39(crossws@0.4.10(srvx@0.11.22))(esbuild@0.28.1)(react-dom@19.2.7(react@19.2.7))(react@19.2.7)(rolldown@1.1.5)(rollup@4.62.2)(vite-plugin-solid@2.11.12(@testing-library/jest-dom@6.9.1)(solid-js@1.9.14)(vite@8.1.3(@types/node@22.20.0)(esbuild@0.28.1)(jiti@2.7.0)(terser@5.49.0)(tsx@4.22.4)(yaml@2.9.0)))(vite@8.1.3(@types/node@22.20.0)(esbuild@0.28.1)(jiti@2.7.0)(terser@5.49.0)(tsx@4.22.4)(yaml@2.9.0))': + '@tanstack/react-start-rsc@0.1.41(crossws@0.4.10(srvx@0.11.22))(esbuild@0.28.1)(react-dom@19.2.7(react@19.2.7))(react@19.2.7)(rolldown@1.1.5)(rollup@4.62.2)(vite-plugin-solid@2.11.12(@testing-library/jest-dom@6.9.1)(solid-js@1.9.14)(vite@8.1.3(@types/node@22.20.0)(esbuild@0.28.1)(jiti@2.7.0)(terser@5.49.0)(tsx@4.22.4)(yaml@2.9.0)))(vite@8.1.3(@types/node@22.20.0)(esbuild@0.28.1)(jiti@2.7.0)(terser@5.49.0)(tsx@4.22.4)(yaml@2.9.0))': dependencies: - '@tanstack/react-router': 1.170.23(react-dom@19.2.7(react@19.2.7))(react@19.2.7) - '@tanstack/router-core': 1.171.19 + '@tanstack/react-router': 1.170.25(react-dom@19.2.7(react@19.2.7))(react@19.2.7) + '@tanstack/router-core': 1.171.21 '@tanstack/router-utils': 1.162.2 - '@tanstack/start-client-core': 1.170.19 + '@tanstack/start-client-core': 1.170.21 '@tanstack/start-fn-stubs': 1.162.0 - '@tanstack/start-plugin-core': 1.171.31(@tanstack/react-router@1.170.23(react-dom@19.2.7(react@19.2.7))(react@19.2.7))(crossws@0.4.10(srvx@0.11.22))(esbuild@0.28.1)(rolldown@1.1.5)(rollup@4.62.2)(vite-plugin-solid@2.11.12(@testing-library/jest-dom@6.9.1)(solid-js@1.9.14)(vite@8.1.3(@types/node@22.20.0)(esbuild@0.28.1)(jiti@2.7.0)(terser@5.49.0)(tsx@4.22.4)(yaml@2.9.0)))(vite@8.1.3(@types/node@22.20.0)(esbuild@0.28.1)(jiti@2.7.0)(terser@5.49.0)(tsx@4.22.4)(yaml@2.9.0)) - '@tanstack/start-storage-context': 1.167.21 + '@tanstack/start-plugin-core': 1.171.33(@tanstack/react-router@1.170.25(react-dom@19.2.7(react@19.2.7))(react@19.2.7))(crossws@0.4.10(srvx@0.11.22))(esbuild@0.28.1)(rolldown@1.1.5)(rollup@4.62.2)(vite-plugin-solid@2.11.12(@testing-library/jest-dom@6.9.1)(solid-js@1.9.14)(vite@8.1.3(@types/node@22.20.0)(esbuild@0.28.1)(jiti@2.7.0)(terser@5.49.0)(tsx@4.22.4)(yaml@2.9.0)))(vite@8.1.3(@types/node@22.20.0)(esbuild@0.28.1)(jiti@2.7.0)(terser@5.49.0)(tsx@4.22.4)(yaml@2.9.0)) + '@tanstack/start-storage-context': 1.167.23 pathe: 2.0.3 react: 19.2.7 react-dom: 19.2.7(react@19.2.7) @@ -22531,11 +22610,11 @@ snapshots: transitivePeerDependencies: - crossws - '@tanstack/react-start-server@1.167.28(crossws@0.4.10(srvx@0.11.22))(react-dom@19.2.7(react@19.2.7))(react@19.2.7)': + '@tanstack/react-start-server@1.167.30(crossws@0.4.10(srvx@0.11.22))(react-dom@19.2.7(react@19.2.7))(react@19.2.7)': dependencies: - '@tanstack/react-router': 1.170.23(react-dom@19.2.7(react@19.2.7))(react@19.2.7) - '@tanstack/router-core': 1.171.19 - '@tanstack/start-server-core': 1.169.23(crossws@0.4.10(srvx@0.11.22)) + '@tanstack/react-router': 1.170.25(react-dom@19.2.7(react@19.2.7))(react@19.2.7) + '@tanstack/router-core': 1.171.21 + '@tanstack/start-server-core': 1.169.25(crossws@0.4.10(srvx@0.11.22)) react: 19.2.7 react-dom: 19.2.7(react@19.2.7) transitivePeerDependencies: @@ -22599,16 +22678,16 @@ snapshots: - vite-plugin-solid - webpack - '@tanstack/react-start@1.168.40(crossws@0.4.10(srvx@0.11.22))(esbuild@0.28.1)(react-dom@19.2.7(react@19.2.7))(react@19.2.7)(rolldown@1.1.5)(rollup@4.62.2)(vite-plugin-solid@2.11.12(@testing-library/jest-dom@6.9.1)(solid-js@1.9.14)(vite@8.1.3(@types/node@22.20.0)(esbuild@0.28.1)(jiti@2.7.0)(terser@5.49.0)(tsx@4.22.4)(yaml@2.9.0)))(vite@8.1.3(@types/node@22.20.0)(esbuild@0.28.1)(jiti@2.7.0)(terser@5.49.0)(tsx@4.22.4)(yaml@2.9.0))': + '@tanstack/react-start@1.168.42(crossws@0.4.10(srvx@0.11.22))(esbuild@0.28.1)(react-dom@19.2.7(react@19.2.7))(react@19.2.7)(rolldown@1.1.5)(rollup@4.62.2)(vite-plugin-solid@2.11.12(@testing-library/jest-dom@6.9.1)(solid-js@1.9.14)(vite@8.1.3(@types/node@22.20.0)(esbuild@0.28.1)(jiti@2.7.0)(terser@5.49.0)(tsx@4.22.4)(yaml@2.9.0)))(vite@8.1.3(@types/node@22.20.0)(esbuild@0.28.1)(jiti@2.7.0)(terser@5.49.0)(tsx@4.22.4)(yaml@2.9.0))': dependencies: - '@tanstack/react-router': 1.170.23(react-dom@19.2.7(react@19.2.7))(react@19.2.7) - '@tanstack/react-start-client': 1.168.21(react-dom@19.2.7(react@19.2.7))(react@19.2.7) - '@tanstack/react-start-rsc': 0.1.39(crossws@0.4.10(srvx@0.11.22))(esbuild@0.28.1)(react-dom@19.2.7(react@19.2.7))(react@19.2.7)(rolldown@1.1.5)(rollup@4.62.2)(vite-plugin-solid@2.11.12(@testing-library/jest-dom@6.9.1)(solid-js@1.9.14)(vite@8.1.3(@types/node@22.20.0)(esbuild@0.28.1)(jiti@2.7.0)(terser@5.49.0)(tsx@4.22.4)(yaml@2.9.0)))(vite@8.1.3(@types/node@22.20.0)(esbuild@0.28.1)(jiti@2.7.0)(terser@5.49.0)(tsx@4.22.4)(yaml@2.9.0)) - '@tanstack/react-start-server': 1.167.28(crossws@0.4.10(srvx@0.11.22))(react-dom@19.2.7(react@19.2.7))(react@19.2.7) + '@tanstack/react-router': 1.170.25(react-dom@19.2.7(react@19.2.7))(react@19.2.7) + '@tanstack/react-start-client': 1.168.23(react-dom@19.2.7(react@19.2.7))(react@19.2.7) + '@tanstack/react-start-rsc': 0.1.41(crossws@0.4.10(srvx@0.11.22))(esbuild@0.28.1)(react-dom@19.2.7(react@19.2.7))(react@19.2.7)(rolldown@1.1.5)(rollup@4.62.2)(vite-plugin-solid@2.11.12(@testing-library/jest-dom@6.9.1)(solid-js@1.9.14)(vite@8.1.3(@types/node@22.20.0)(esbuild@0.28.1)(jiti@2.7.0)(terser@5.49.0)(tsx@4.22.4)(yaml@2.9.0)))(vite@8.1.3(@types/node@22.20.0)(esbuild@0.28.1)(jiti@2.7.0)(terser@5.49.0)(tsx@4.22.4)(yaml@2.9.0)) + '@tanstack/react-start-server': 1.167.30(crossws@0.4.10(srvx@0.11.22))(react-dom@19.2.7(react@19.2.7))(react@19.2.7) '@tanstack/router-utils': 1.162.2 - '@tanstack/start-client-core': 1.170.19 - '@tanstack/start-plugin-core': 1.171.31(@tanstack/react-router@1.170.23(react-dom@19.2.7(react@19.2.7))(react@19.2.7))(crossws@0.4.10(srvx@0.11.22))(esbuild@0.28.1)(rolldown@1.1.5)(rollup@4.62.2)(vite-plugin-solid@2.11.12(@testing-library/jest-dom@6.9.1)(solid-js@1.9.14)(vite@8.1.3(@types/node@22.20.0)(esbuild@0.28.1)(jiti@2.7.0)(terser@5.49.0)(tsx@4.22.4)(yaml@2.9.0)))(vite@8.1.3(@types/node@22.20.0)(esbuild@0.28.1)(jiti@2.7.0)(terser@5.49.0)(tsx@4.22.4)(yaml@2.9.0)) - '@tanstack/start-server-core': 1.169.23(crossws@0.4.10(srvx@0.11.22)) + '@tanstack/start-client-core': 1.170.21 + '@tanstack/start-plugin-core': 1.171.33(@tanstack/react-router@1.170.25(react-dom@19.2.7(react@19.2.7))(react@19.2.7))(crossws@0.4.10(srvx@0.11.22))(esbuild@0.28.1)(rolldown@1.1.5)(rollup@4.62.2)(vite-plugin-solid@2.11.12(@testing-library/jest-dom@6.9.1)(solid-js@1.9.14)(vite@8.1.3(@types/node@22.20.0)(esbuild@0.28.1)(jiti@2.7.0)(terser@5.49.0)(tsx@4.22.4)(yaml@2.9.0)))(vite@8.1.3(@types/node@22.20.0)(esbuild@0.28.1)(jiti@2.7.0)(terser@5.49.0)(tsx@4.22.4)(yaml@2.9.0)) + '@tanstack/start-server-core': 1.169.25(crossws@0.4.10(srvx@0.11.22)) pathe: 2.0.3 react: 19.2.7 react-dom: 19.2.7(react@19.2.7) @@ -22675,7 +22754,7 @@ snapshots: seroval: 1.6.2 seroval-plugins: 1.6.2(seroval@1.6.2) - '@tanstack/router-core@1.171.19': + '@tanstack/router-core@1.171.21': dependencies: '@tanstack/history': 1.162.1 cookie-es: 3.1.1 @@ -22690,9 +22769,9 @@ snapshots: optionalDependencies: csstype: 3.2.3 - '@tanstack/router-devtools-core@1.168.1(@tanstack/router-core@1.171.19)(csstype@3.2.3)': + '@tanstack/router-devtools-core@1.168.1(@tanstack/router-core@1.171.21)(csstype@3.2.3)': dependencies: - '@tanstack/router-core': 1.171.19 + '@tanstack/router-core': 1.171.21 clsx: 2.1.1 goober: 2.1.19(csstype@3.2.3) optionalDependencies: @@ -22737,10 +22816,10 @@ snapshots: transitivePeerDependencies: - supports-color - '@tanstack/router-generator@1.167.25': + '@tanstack/router-generator@1.167.27': dependencies: '@babel/types': 7.29.7 - '@tanstack/router-core': 1.171.19 + '@tanstack/router-core': 1.171.21 '@tanstack/router-utils': 1.162.2 '@tanstack/virtual-file-routes': 1.162.0 jiti: 2.7.0 @@ -22800,7 +22879,7 @@ snapshots: - supports-color - unloader - '@tanstack/router-plugin@1.168.19(@tanstack/react-router@1.170.23(react-dom@19.2.7(react@19.2.7))(react@19.2.7))(esbuild@0.28.1)(rolldown@1.1.5)(rollup@4.62.2)(vite-plugin-solid@2.11.12(@testing-library/jest-dom@6.9.1)(solid-js@1.9.14)(vite@8.1.3(@types/node@22.20.0)(esbuild@0.28.1)(jiti@2.7.0)(terser@5.49.0)(tsx@4.22.4)(yaml@2.9.0)))(vite@8.1.3(@types/node@22.20.0)(esbuild@0.28.1)(jiti@2.7.0)(terser@5.49.0)(tsx@4.22.4)(yaml@2.9.0))': + '@tanstack/router-plugin@1.168.19(@tanstack/react-router@1.170.25(react-dom@19.2.7(react@19.2.7))(react@19.2.7))(esbuild@0.28.1)(rolldown@1.1.5)(rollup@4.62.2)(vite-plugin-solid@2.11.12(@testing-library/jest-dom@6.9.1)(solid-js@1.9.14)(vite@8.1.3(@types/node@22.20.0)(esbuild@0.28.1)(jiti@2.7.0)(terser@5.49.0)(tsx@4.22.4)(yaml@2.9.0)))(vite@8.1.3(@types/node@22.20.0)(esbuild@0.28.1)(jiti@2.7.0)(terser@5.49.0)(tsx@4.22.4)(yaml@2.9.0))': dependencies: '@babel/core': 7.29.7 '@babel/template': 7.29.7 @@ -22812,7 +22891,7 @@ snapshots: unplugin: 3.3.0(esbuild@0.28.1)(rolldown@1.1.5)(rollup@4.62.2)(vite@8.1.3(@types/node@22.20.0)(esbuild@0.28.1)(jiti@2.7.0)(terser@5.49.0)(tsx@4.22.4)(yaml@2.9.0)) zod: 4.4.3 optionalDependencies: - '@tanstack/react-router': 1.170.23(react-dom@19.2.7(react@19.2.7))(react@19.2.7) + '@tanstack/react-router': 1.170.25(react-dom@19.2.7(react@19.2.7))(react@19.2.7) vite: 8.1.3(@types/node@22.20.0)(esbuild@0.28.1)(jiti@2.7.0)(sass@1.51.0)(terser@5.49.0)(tsx@4.22.4)(yaml@2.9.0) vite-plugin-solid: 2.11.12(@testing-library/jest-dom@6.9.1)(solid-js@1.9.14)(vite@8.1.3(@types/node@22.20.0)(esbuild@0.28.1)(jiti@2.7.0)(terser@5.49.0)(tsx@4.22.4)(yaml@2.9.0)) transitivePeerDependencies: @@ -22825,7 +22904,7 @@ snapshots: - supports-color - unloader - '@tanstack/router-plugin@1.168.19(@tanstack/react-router@1.170.23(react-dom@19.2.7(react@19.2.7))(react@19.2.7))(esbuild@0.28.1)(rolldown@1.1.5)(rollup@4.62.2)(vite-plugin-solid@2.11.12(@testing-library/jest-dom@6.9.1)(solid-js@1.9.14)(vite@8.1.3(@types/node@26.1.0)(esbuild@0.28.1)(jiti@2.7.0)(terser@5.49.0)(tsx@4.22.4)(yaml@2.9.0)))(vite@8.1.3(@types/node@26.1.0)(esbuild@0.28.1)(jiti@2.7.0)(terser@5.49.0)(tsx@4.22.4)(yaml@2.9.0))': + '@tanstack/router-plugin@1.168.19(@tanstack/react-router@1.170.25(react-dom@19.2.7(react@19.2.7))(react@19.2.7))(esbuild@0.28.1)(rolldown@1.1.5)(rollup@4.62.2)(vite-plugin-solid@2.11.12(@testing-library/jest-dom@6.9.1)(solid-js@1.9.14)(vite@8.1.3(@types/node@26.1.0)(esbuild@0.28.1)(jiti@2.7.0)(terser@5.49.0)(tsx@4.22.4)(yaml@2.9.0)))(vite@8.1.3(@types/node@26.1.0)(esbuild@0.28.1)(jiti@2.7.0)(terser@5.49.0)(tsx@4.22.4)(yaml@2.9.0))': dependencies: '@babel/core': 7.29.7 '@babel/template': 7.29.7 @@ -22837,7 +22916,7 @@ snapshots: unplugin: 3.3.0(esbuild@0.28.1)(rolldown@1.1.5)(rollup@4.62.2)(vite@8.1.3(@types/node@26.1.0)(esbuild@0.28.1)(jiti@2.7.0)(terser@5.49.0)(tsx@4.22.4)(yaml@2.9.0)) zod: 4.4.3 optionalDependencies: - '@tanstack/react-router': 1.170.23(react-dom@19.2.7(react@19.2.7))(react@19.2.7) + '@tanstack/react-router': 1.170.25(react-dom@19.2.7(react@19.2.7))(react@19.2.7) vite: 8.1.3(@types/node@26.1.0)(esbuild@0.28.1)(jiti@2.7.0)(terser@5.49.0)(tsx@4.22.4)(yaml@2.9.0) vite-plugin-solid: 2.11.12(@testing-library/jest-dom@6.9.1)(solid-js@1.9.14)(vite@8.1.3(@types/node@26.1.0)(esbuild@0.28.1)(jiti@2.7.0)(terser@5.49.0)(tsx@4.22.4)(yaml@2.9.0)) transitivePeerDependencies: @@ -22850,7 +22929,7 @@ snapshots: - supports-color - unloader - '@tanstack/router-plugin@1.168.22(@tanstack/react-router@1.170.23(react-dom@19.2.7(react@19.2.7))(react@19.2.7))(esbuild@0.28.1)(rolldown@1.1.5)(rollup@4.62.2)(vite-plugin-solid@2.11.12(@testing-library/jest-dom@6.9.1)(solid-js@1.9.14)(vite@8.1.3(@types/node@22.20.0)(esbuild@0.28.1)(jiti@2.7.0)(terser@5.49.0)(tsx@4.22.4)(yaml@2.9.0)))(vite@8.1.3(@types/node@22.20.0)(esbuild@0.28.1)(jiti@2.7.0)(terser@5.49.0)(tsx@4.22.4)(yaml@2.9.0))': + '@tanstack/router-plugin@1.168.22(@tanstack/react-router@1.170.25(react-dom@19.2.7(react@19.2.7))(react@19.2.7))(esbuild@0.28.1)(rolldown@1.1.5)(rollup@4.62.2)(vite-plugin-solid@2.11.12(@testing-library/jest-dom@6.9.1)(solid-js@1.9.14)(vite@8.1.3(@types/node@22.20.0)(esbuild@0.28.1)(jiti@2.7.0)(terser@5.49.0)(tsx@4.22.4)(yaml@2.9.0)))(vite@8.1.3(@types/node@22.20.0)(esbuild@0.28.1)(jiti@2.7.0)(terser@5.49.0)(tsx@4.22.4)(yaml@2.9.0))': dependencies: '@babel/core': 7.29.7 '@babel/template': 7.29.7 @@ -22862,7 +22941,7 @@ snapshots: unplugin: 3.3.0(esbuild@0.28.1)(rolldown@1.1.5)(rollup@4.62.2)(vite@8.1.3(@types/node@22.20.0)(esbuild@0.28.1)(jiti@2.7.0)(terser@5.49.0)(tsx@4.22.4)(yaml@2.9.0)) zod: 4.4.3 optionalDependencies: - '@tanstack/react-router': 1.170.23(react-dom@19.2.7(react@19.2.7))(react@19.2.7) + '@tanstack/react-router': 1.170.25(react-dom@19.2.7(react@19.2.7))(react@19.2.7) vite: 8.1.3(@types/node@22.20.0)(esbuild@0.28.1)(jiti@2.7.0)(sass@1.51.0)(terser@5.49.0)(tsx@4.22.4)(yaml@2.9.0) vite-plugin-solid: 2.11.12(@testing-library/jest-dom@6.9.1)(solid-js@1.9.14)(vite@8.1.3(@types/node@22.20.0)(esbuild@0.28.1)(jiti@2.7.0)(terser@5.49.0)(tsx@4.22.4)(yaml@2.9.0)) transitivePeerDependencies: @@ -22875,19 +22954,19 @@ snapshots: - supports-color - unloader - '@tanstack/router-plugin@1.168.27(@tanstack/react-router@1.170.23(react-dom@19.2.7(react@19.2.7))(react@19.2.7))(esbuild@0.28.1)(rolldown@1.1.5)(rollup@4.62.2)(vite-plugin-solid@2.11.12(@testing-library/jest-dom@6.9.1)(solid-js@1.9.14)(vite@8.1.3(@types/node@22.20.0)(esbuild@0.28.1)(jiti@2.7.0)(terser@5.49.0)(tsx@4.22.4)(yaml@2.9.0)))(vite@8.1.3(@types/node@22.20.0)(esbuild@0.28.1)(jiti@2.7.0)(terser@5.49.0)(tsx@4.22.4)(yaml@2.9.0))': + '@tanstack/router-plugin@1.168.29(@tanstack/react-router@1.170.25(react-dom@19.2.7(react@19.2.7))(react@19.2.7))(esbuild@0.28.1)(rolldown@1.1.5)(rollup@4.62.2)(vite-plugin-solid@2.11.12(@testing-library/jest-dom@6.9.1)(solid-js@1.9.14)(vite@8.1.3(@types/node@22.20.0)(esbuild@0.28.1)(jiti@2.7.0)(terser@5.49.0)(tsx@4.22.4)(yaml@2.9.0)))(vite@8.1.3(@types/node@22.20.0)(esbuild@0.28.1)(jiti@2.7.0)(terser@5.49.0)(tsx@4.22.4)(yaml@2.9.0))': dependencies: '@babel/core': 7.29.7 '@babel/template': 7.29.7 '@babel/types': 7.29.7 - '@tanstack/router-core': 1.171.19 - '@tanstack/router-generator': 1.167.25 + '@tanstack/router-core': 1.171.21 + '@tanstack/router-generator': 1.167.27 '@tanstack/router-utils': 1.162.2 chokidar: 5.0.0 unplugin: 3.3.0(esbuild@0.28.1)(rolldown@1.1.5)(rollup@4.62.2)(vite@8.1.3(@types/node@22.20.0)(esbuild@0.28.1)(jiti@2.7.0)(terser@5.49.0)(tsx@4.22.4)(yaml@2.9.0)) zod: 4.4.3 optionalDependencies: - '@tanstack/react-router': 1.170.23(react-dom@19.2.7(react@19.2.7))(react@19.2.7) + '@tanstack/react-router': 1.170.25(react-dom@19.2.7(react@19.2.7))(react@19.2.7) vite: 8.1.3(@types/node@22.20.0)(esbuild@0.28.1)(jiti@2.7.0)(sass@1.51.0)(terser@5.49.0)(tsx@4.22.4)(yaml@2.9.0) vite-plugin-solid: 2.11.12(@testing-library/jest-dom@6.9.1)(solid-js@1.9.14)(vite@8.1.3(@types/node@22.20.0)(esbuild@0.28.1)(jiti@2.7.0)(terser@5.49.0)(tsx@4.22.4)(yaml@2.9.0)) transitivePeerDependencies: @@ -22999,11 +23078,11 @@ snapshots: '@tanstack/start-storage-context': 1.167.16 seroval: 1.6.2 - '@tanstack/start-client-core@1.170.19': + '@tanstack/start-client-core@1.170.21': dependencies: - '@tanstack/router-core': 1.171.19 + '@tanstack/router-core': 1.171.21 '@tanstack/start-fn-stubs': 1.162.0 - '@tanstack/start-storage-context': 1.167.21 + '@tanstack/start-storage-context': 1.167.23 seroval: 1.6.2 '@tanstack/start-fn-stubs@1.162.0': {} @@ -23084,16 +23163,16 @@ snapshots: - vite-plugin-solid - webpack - '@tanstack/start-plugin-core@1.171.31(@tanstack/react-router@1.170.23(react-dom@19.2.7(react@19.2.7))(react@19.2.7))(crossws@0.4.10(srvx@0.11.22))(esbuild@0.28.1)(rolldown@1.1.5)(rollup@4.62.2)(vite-plugin-solid@2.11.12(@testing-library/jest-dom@6.9.1)(solid-js@1.9.14)(vite@8.1.3(@types/node@22.20.0)(esbuild@0.28.1)(jiti@2.7.0)(terser@5.49.0)(tsx@4.22.4)(yaml@2.9.0)))(vite@8.1.3(@types/node@22.20.0)(esbuild@0.28.1)(jiti@2.7.0)(terser@5.49.0)(tsx@4.22.4)(yaml@2.9.0))': + '@tanstack/start-plugin-core@1.171.33(@tanstack/react-router@1.170.25(react-dom@19.2.7(react@19.2.7))(react@19.2.7))(crossws@0.4.10(srvx@0.11.22))(esbuild@0.28.1)(rolldown@1.1.5)(rollup@4.62.2)(vite-plugin-solid@2.11.12(@testing-library/jest-dom@6.9.1)(solid-js@1.9.14)(vite@8.1.3(@types/node@22.20.0)(esbuild@0.28.1)(jiti@2.7.0)(terser@5.49.0)(tsx@4.22.4)(yaml@2.9.0)))(vite@8.1.3(@types/node@22.20.0)(esbuild@0.28.1)(jiti@2.7.0)(terser@5.49.0)(tsx@4.22.4)(yaml@2.9.0))': dependencies: '@babel/code-frame': 7.27.1 '@babel/core': 7.29.7 '@babel/types': 7.29.7 - '@tanstack/router-core': 1.171.19 - '@tanstack/router-generator': 1.167.25 - '@tanstack/router-plugin': 1.168.27(@tanstack/react-router@1.170.23(react-dom@19.2.7(react@19.2.7))(react@19.2.7))(esbuild@0.28.1)(rolldown@1.1.5)(rollup@4.62.2)(vite-plugin-solid@2.11.12(@testing-library/jest-dom@6.9.1)(solid-js@1.9.14)(vite@8.1.3(@types/node@22.20.0)(esbuild@0.28.1)(jiti@2.7.0)(terser@5.49.0)(tsx@4.22.4)(yaml@2.9.0)))(vite@8.1.3(@types/node@22.20.0)(esbuild@0.28.1)(jiti@2.7.0)(terser@5.49.0)(tsx@4.22.4)(yaml@2.9.0)) + '@tanstack/router-core': 1.171.21 + '@tanstack/router-generator': 1.167.27 + '@tanstack/router-plugin': 1.168.29(@tanstack/react-router@1.170.25(react-dom@19.2.7(react@19.2.7))(react@19.2.7))(esbuild@0.28.1)(rolldown@1.1.5)(rollup@4.62.2)(vite-plugin-solid@2.11.12(@testing-library/jest-dom@6.9.1)(solid-js@1.9.14)(vite@8.1.3(@types/node@22.20.0)(esbuild@0.28.1)(jiti@2.7.0)(terser@5.49.0)(tsx@4.22.4)(yaml@2.9.0)))(vite@8.1.3(@types/node@22.20.0)(esbuild@0.28.1)(jiti@2.7.0)(terser@5.49.0)(tsx@4.22.4)(yaml@2.9.0)) '@tanstack/router-utils': 1.162.2 - '@tanstack/start-server-core': 1.169.23(crossws@0.4.10(srvx@0.11.22)) + '@tanstack/start-server-core': 1.169.25(crossws@0.4.10(srvx@0.11.22)) exsolve: 1.1.0 lightningcss: 1.33.0 pathe: 2.0.3 @@ -23146,12 +23225,12 @@ snapshots: transitivePeerDependencies: - crossws - '@tanstack/start-server-core@1.169.23(crossws@0.4.10(srvx@0.11.22))': + '@tanstack/start-server-core@1.169.25(crossws@0.4.10(srvx@0.11.22))': dependencies: '@tanstack/history': 1.162.1 - '@tanstack/router-core': 1.171.19 - '@tanstack/start-client-core': 1.170.19 - '@tanstack/start-storage-context': 1.167.21 + '@tanstack/router-core': 1.171.21 + '@tanstack/start-client-core': 1.170.21 + '@tanstack/start-storage-context': 1.167.23 fetchdts: 0.1.7 h3-v2: h3@2.0.1-rc.20(crossws@0.4.10(srvx@0.11.22)) seroval: 1.6.2 @@ -23166,9 +23245,9 @@ snapshots: dependencies: '@tanstack/router-core': 1.171.14 - '@tanstack/start-storage-context@1.167.21': + '@tanstack/start-storage-context@1.167.23': dependencies: - '@tanstack/router-core': 1.171.19 + '@tanstack/router-core': 1.171.21 '@tanstack/store@0.11.0': {} @@ -32195,6 +32274,24 @@ snapshots: tsx: 4.22.4 yaml: 2.9.0 + vite@8.1.3(@types/node@20.19.43)(esbuild@0.28.1)(jiti@2.7.0)(sass@1.51.0)(terser@5.49.0)(tsx@4.22.4)(yaml@2.9.0): + dependencies: + lightningcss: 1.33.0 + picomatch: 4.0.5 + postcss: 8.5.25 + rolldown: 1.1.5 + tinyglobby: 0.2.17 + optionalDependencies: + '@types/node': 20.19.43 + esbuild: 0.28.1 + fsevents: 2.3.3 + jiti: 2.7.0 + sass: 1.51.0 + terser: 5.49.0 + tsx: 4.22.4 + yaml: 2.9.0 + optional: true + vite@8.1.3(@types/node@22.20.0)(esbuild@0.28.1)(jiti@2.7.0)(sass@1.51.0)(terser@5.49.0)(tsx@4.22.4)(yaml@2.9.0): dependencies: lightningcss: 1.33.0 diff --git a/pnpm-workspace.yaml b/pnpm-workspace.yaml index 1f8acbf9b..a7ccaecad 100644 --- a/pnpm-workspace.yaml +++ b/pnpm-workspace.yaml @@ -5,6 +5,25 @@ packages: - apps/examples/* - e2e/* +# e2e/nextjs and e2e/nextjs-component declare their @conciv/* runtime deps as +# dependenciesMeta.injected (real hard-copies under node_modules, not symlinks) because +# Turbopack's serverExternalPackages resolution requires packages to live under node_modules/ +# on disk. This resyncs the injected copies to a package's latest dist whenever that package's +# own "build" script actually RUNS (a direct `pnpm --filter run build`) — but on a turbo cache +# hit, turbo restores dist straight into the source package dir without executing the script, so +# the sync never fires and injected copies silently go stale (proven on CI: cold install before +# any dist exists → distless injected copies → turbo cache-hits every build → next dev +# MODULE_NOT_FOUND). Neither a bare CLI resync command nor a plain `pnpm install` reliably +# recovers from that drift (verified: pnpm 11.7.0 has no such command, and `pnpm install +# --frozen-lockfile` no-ops on an already-satisfied lockfile even with a drifted injected copy). +# So each nextjs e2e app's playwright.config.ts webServer command prepends a direct +# `pnpm --filter ... run build` for exactly its injected deps, bypassing turbo's cache so the +# script always actually runs and the sync always fires (not the app's own package.json test:e2e +# script — e2e/init clones these apps as consumer templates and strips @conciv/* wiring from +# package.json before running `conciv init`, so wiring stays out of anything that file governs). +syncInjectedDepsAfterScripts: + - build + # @orpc peer-pins every sibling package to the identical version (tanstack-query@1.15.0 # peer-requires client@1.15.0 exactly), so a caret range is unsafe on any fresh install: # it can resolve two different @orpc releases and split the pair. Single-sourcing the From 4fec21e8e9e05e62951ec5a7883d879cc0802b19 Mon Sep 17 00:00:00 2001 From: Omri Katz <9701896+omridevk@users.noreply.github.com> Date: Thu, 13 Aug 2026 01:38:22 +0300 Subject: [PATCH 2/2] chore(e2e): drop the injected-deps essay comment The mechanism story lives in the history of this branch and PR #452: injected deps exist because Turbopack's serverExternalPackages needs real dirs under node_modules; syncInjectedDepsAfterScripts only fires when a dep's build script runs, so each nextjs e2e app's playwright webServer command runs those builds directly (turbo cache hits restore dist without executing scripts and would leave injected copies stale). Co-Authored-By: Claude Fable 5 --- pnpm-workspace.yaml | 16 ---------------- 1 file changed, 16 deletions(-) diff --git a/pnpm-workspace.yaml b/pnpm-workspace.yaml index a7ccaecad..ed701b82c 100644 --- a/pnpm-workspace.yaml +++ b/pnpm-workspace.yaml @@ -5,22 +5,6 @@ packages: - apps/examples/* - e2e/* -# e2e/nextjs and e2e/nextjs-component declare their @conciv/* runtime deps as -# dependenciesMeta.injected (real hard-copies under node_modules, not symlinks) because -# Turbopack's serverExternalPackages resolution requires packages to live under node_modules/ -# on disk. This resyncs the injected copies to a package's latest dist whenever that package's -# own "build" script actually RUNS (a direct `pnpm --filter run build`) — but on a turbo cache -# hit, turbo restores dist straight into the source package dir without executing the script, so -# the sync never fires and injected copies silently go stale (proven on CI: cold install before -# any dist exists → distless injected copies → turbo cache-hits every build → next dev -# MODULE_NOT_FOUND). Neither a bare CLI resync command nor a plain `pnpm install` reliably -# recovers from that drift (verified: pnpm 11.7.0 has no such command, and `pnpm install -# --frozen-lockfile` no-ops on an already-satisfied lockfile even with a drifted injected copy). -# So each nextjs e2e app's playwright.config.ts webServer command prepends a direct -# `pnpm --filter ... run build` for exactly its injected deps, bypassing turbo's cache so the -# script always actually runs and the sync always fires (not the app's own package.json test:e2e -# script — e2e/init clones these apps as consumer templates and strips @conciv/* wiring from -# package.json before running `conciv init`, so wiring stays out of anything that file governs). syncInjectedDepsAfterScripts: - build