From af1fe6a34c7a954d4bb455db63d2a58d33141064 Mon Sep 17 00:00:00 2001 From: Aymeric Rabot Date: Wed, 8 Jul 2026 13:32:36 +0200 Subject: [PATCH] chore(deps): add @pascal-app/lingo to the lockfile; note duplicated helper Records @pascal-app/lingo@^0.1.0 in bun.lock (added to @pascal-app/editor and @pascal-app/mcp), so `bun install --frozen-lockfile` in CI resolves it. Also documents that measurement.ts is intentionally duplicated with the AI-chat copy across the submodule boundary and must be kept in sync. Co-Authored-By: Claude Opus 4.8 (1M context) --- bun.lock | 4 ++++ packages/mcp/src/tools/measurement.ts | 6 ++++++ 2 files changed, 10 insertions(+) diff --git a/bun.lock b/bun.lock index f402fa78..304552a1 100644 --- a/bun.lock +++ b/bun.lock @@ -131,6 +131,7 @@ "@dnd-kit/utilities": "^3.2.2", "@iconify/react": "^6.0.2", "@number-flow/react": "^0.6.0", + "@pascal-app/lingo": "^0.1.0", "@radix-ui/react-alert-dialog": "^1.1.15", "@radix-ui/react-context-menu": "^2.2.16", "@radix-ui/react-dialog": "^1.1.15", @@ -220,6 +221,7 @@ }, "dependencies": { "@modelcontextprotocol/sdk": "^1.29.0", + "@pascal-app/lingo": "^0.1.0", "zod": "^4.3.5", }, "devDependencies": { @@ -714,6 +716,8 @@ "@pascal-app/ifc-converter": ["@pascal-app/ifc-converter@workspace:packages/ifc-converter"], + "@pascal-app/lingo": ["@pascal-app/lingo@0.1.0", "", { "peerDependencies": { "react": "^19" }, "optionalPeers": ["react"] }, "sha512-j4cN9DSc3QD4LGG003TCIO5+jMYySFpJO6467V0Q3IPumVkwq7/BpEAw8JGY6zTZFmFETIeupuPEi4drnA9m+g=="], + "@pascal-app/mcp": ["@pascal-app/mcp@workspace:packages/mcp"], "@pascal-app/nodes": ["@pascal-app/nodes@workspace:packages/nodes"], diff --git a/packages/mcp/src/tools/measurement.ts b/packages/mcp/src/tools/measurement.ts index 6df60b1e..d17a5cc0 100644 --- a/packages/mcp/src/tools/measurement.ts +++ b/packages/mcp/src/tools/measurement.ts @@ -17,6 +17,12 @@ import { z } from 'zod' * Tool-boundary safety: genuinely ambiguous separators (`"1,234"`, which could * mean 1234 or 1.234) are rejected rather than silently absorbed, so a European * decimal never becomes a 1000× value. + * + * NOTE: intentionally duplicated as `editor/packages/mcp/src/tools/measurement.ts` + * (MCP tools) and `packages/ai/src/tools/scene/measurement.ts` (AI-chat tools). + * The two tool stacks live in different packages — one inside the `editor` + * submodule — so they can't share a module. Keep the two copies identical; the + * clean long-term dedup is a zod-field adapter exported from `@pascal-app/lingo`. */ export interface MeasurementOptions {