From 1341a64e7b8c519ed2a365cbbac651ffb914c9dc Mon Sep 17 00:00:00 2001 From: Claude Date: Mon, 21 Sep 2026 23:32:57 +0000 Subject: [PATCH] [patch] Correct the stale Hexa Widgets.Extras note in CLAUDE.md MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit CLAUDE.md described Hexa.NET.ImGui.Widgets.Extras as "referenced for a future tier but not yet used by any Tier 1 widget". It is used, by CurveField.cs and BezierEditor.cs, so a reader was being told the reference was removable for free when it is not. Record what the reference actually costs and what it does not. The Roslyn compiler and scripting host arrive through it (5 packages, ~107 MB unpacked) and every consumer of ktsu.ImGui.Widgets restores and publishes them. Scanning all 366 method bodies in Extras 1.0.9 shows the Microsoft.CodeAnalysis types are reached from exactly nine methods, all on TextEditor's CSharpSyntaxHighlight, which nothing here touches — so the weight is a restore and publish cost, not a runtime one. Also note the dead end, so it is not rediscovered: ExcludeAssets and PrivateAssets cannot drop it, because the dependency is declared in Extras' own nuspec and a package cannot prune its dependency's dependencies for its consumers. Refs #384 Co-Authored-By: Claude Opus 5 Claude-Session: https://claude.ai/code/session_01FrbYB3Qv8zvJfGCGbqr4dk --- CLAUDE.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/CLAUDE.md b/CLAUDE.md index a201e301..19a12cb1 100644 --- a/CLAUDE.md +++ b/CLAUDE.md @@ -132,7 +132,7 @@ This is the **ktsu ImGui Suite**, a collection of .NET libraries for building De - **ktsu.Semantics.Strings** (1.0.28) - Type-safe string wrappers - **ktsu.Semantics.Quantities** (1.0.29) - Typed quantity calculations - **Hexa.NET.ImGui.Widgets** (1.2.18) - Upstream widget collection backing the Hexa-delegated widgets in `ImGui.Widgets` -- **Hexa.NET.ImGui.Widgets.Extras** (1.0.9) - Curve editor, bezier and text editor extras; referenced for a future tier but not yet used by any Tier 1 widget. Pulls `Microsoft.CodeAnalysis.CSharp.Scripting` and `Hexa.NET.Math` into the dependency graph. +- **Hexa.NET.ImGui.Widgets.Extras** (1.0.9) - Curve editor, bezier and text editor extras. Used by exactly two call sites, both under `ImGui.Widgets/Editors`: `CurveField.cs` (`ImGuiCurveEditor.Curve`) and `BezierEditor.cs` (`ImGuiBezierWidget.Bezier`). Pulls `Hexa.NET.Math` and `Microsoft.CodeAnalysis.CSharp.Scripting` into the dependency graph, and the latter brings the Roslyn compiler and scripting host with it — 5 packages, ~107 MB unpacked, which every consumer of `ktsu.ImGui.Widgets` restores and publishes whether or not it draws a curve. Roslyn is reachable only from Extras' `CSharpSyntaxHighlight`, a TextEditor type nothing here touches, so this is a restore and publish cost rather than a runtime one. Do not expect `ExcludeAssets`/`PrivateAssets` to remove it: the Roslyn dependency is declared in Extras' own nuspec, and a package cannot prune its dependency's dependencies for its consumers. Dropping the weight means splitting the two editors into an opt-in package or reimplementing them — tracked in #384. - **ktsu.Invoker** (1.1.2) - Delegate invocation utilities - **ktsu.ScopedAction** (1.1.6) - RAII-pattern scoped actions - **Polyfill** (9.7.7) - Backport newer .NET APIs