From 5046dfa9ec6480da72e9c16cde6134b79e9c29e4 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Roland=20B=C3=BCrgi?= Date: Wed, 26 Aug 2026 20:19:48 +0200 Subject: [PATCH] =?UTF-8?q?fix:=20main=20does=20not=20build=20=E2=80=94=20?= =?UTF-8?q?the=20MeshWeaver.AI=20using=20was=20restored=20TWICE?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit #2349 removed `using MeshWeaver.AI;` from MeshApiEndpoints as a phantom, and main went red with CS0246. Two fixes then restored it independently — #2408 added it under a banner comment at the top of the file, #2411 added it again inline further down with its own explanation. Both landed, so main now carries the SAME using twice and fails CS0105 under warnings-as-errors. The type genuinely needs it: MeshOperations ships in assembly MeshWeaver.Mesh.Operations but keeps namespace MeshWeaver.AI, frozen by the TypeForwardedTo contract in #2370. So this keeps ONE directive and folds both explanations into the banner that sits directly above it, including why it looks removable and the fact that removing it has now cost three red-main incidents. One directive, one explanation, kept together — the two split copies are exactly how the second restore could not see the first. Verified: Memex.Portal.Shared builds clean. --- memex/Memex.Portal.Shared/Api/MeshApiEndpoints.cs | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/memex/Memex.Portal.Shared/Api/MeshApiEndpoints.cs b/memex/Memex.Portal.Shared/Api/MeshApiEndpoints.cs index 883e57d31a..88d12950a3 100644 --- a/memex/Memex.Portal.Shared/Api/MeshApiEndpoints.cs +++ b/memex/Memex.Portal.Shared/Api/MeshApiEndpoints.cs @@ -3,6 +3,11 @@ // modules through [assembly: TypeForwardedTo], and a forwarder cannot rename — so the namespace is // frozen at whatever it was when those modules were built. Do not "tidy" this using to match the // assembly name; that is what broke main at 17:26. +// +// This import is therefore load-bearing and is NOT an AI-assembly dependency. It was removed as a +// "phantom" in #2349 and restored twice independently (#2408 and #2411) — once with this banner and +// once inline further down, which is how main ended up with the SAME using twice and CS0105 under +// warnings-as-errors. One directive, one explanation: keep them together. using MeshWeaver.AI; using MeshWeaver.Mesh; using System.Reactive.Linq; @@ -12,11 +17,6 @@ using MeshWeaver.Hosting.AspNetCore; // SessionHubResolver, McpConfiguration using MeshWeaver.Mesh.Security; // WellKnownUsers using MeshWeaver.Mesh.Services; -using MeshWeaver.AI; // MeshOperations — the TYPE ships in - // MeshWeaver.Mesh.Operations, but its namespace is a - // FROZEN binary contract (#2370), so this import is - // load-bearing and is NOT an AI-assembly dependency. - // Removed as a 'phantom' in #2349 and restored here. using MeshWeaver.Messaging; // AccessService using Memex.Portal.Shared.Authentication; using Microsoft.AspNetCore.Builder;