From d0e9d33c847aa78ce472101283b3994ea391580c Mon Sep 17 00:00:00 2001 From: Claude Date: Mon, 26 Oct 2026 04:18:56 +0000 Subject: [PATCH] Take TelnetNegotiationCore from 2.12.0 to 4.5.2 The 4.0 parser rewrite, the 3.0 OneOf removal and the 4.1.1 duplicate-plugin rule need no source change here. The two reflective reaches (CallbackOnByteAsync, CurrentEncoding's internal setter) and NAWSProtocol's subclassability are unchanged. 4.x needs Microsoft.Extensions.Logging.Abstractions 10.0.13, so that pin moves too. This is Phase 0 of the implementation plan: nothing else is in it, so a regression from the new parser points at one change. Later phases use the GMCP Core session, typed packages, PuebloProtocol and MCP 2.1 that this version brings. Co-Authored-By: Claude Opus 5.5 (1M context) Claude-Session: https://claude.ai/code/session_01WXyHEoxwX8GurTHxwPinQY --- CLAUDE.md | 9 +++++++++ Directory.Packages.props | 4 ++-- 2 files changed, 11 insertions(+), 2 deletions(-) diff --git a/CLAUDE.md b/CLAUDE.md index 0adb1e9c..0867e2fb 100644 --- a/CLAUDE.md +++ b/CLAUDE.md @@ -1626,6 +1626,15 @@ markup (`[bold #rrggbb on #rrggbb]…[/]`, `[[`/`]]` escaping, `[link=url]…[/] `CurrentPrompt`, which nothing renders — the text is simply gone, silently. Before 2.12.0 that same fragment was merely glued to the head of the next line, which reads as a cosmetic wrap issue rather than lost text. Revert both together or neither. + - **The 2.x → 4.x jump compiled with no source change here.** 4.0.0 replaced the interpreter with a + generated state machine (4 KiB batches, returning at MCCP boundaries); 3.0.0 dropped OneOf; 4.1.1 + made a second plugin for one protocol throw (EOR, SGA and PacketPatch are three plugins, each + registered once — keep it that way). The two reflective reaches above (`CallbackOnByteAsync`, + `CurrentEncoding`'s internal setter) and `NAWSProtocol`'s subclassability are unchanged. The only + build change was `Microsoft.Extensions.Logging.Abstractions`, which 4.x needs at a newer patch. + What the jump *makes available* and is not yet used: a GMCP `Core` client session + (`UseGmcpClientSession`, `TelnetNegotiationCore.Gmcp`), typed GMCP packages, MSDP over GMCP, + `PuebloProtocol`, and MCP 2.1 (`MudClientProtocol`). - **Never pin a version that is not on nuget.org, and never work around it with a local feed.** A pin that only resolves from a local `nuget.config` builds here and fails `NU1101` everywhere else; if a locally-built nupkg of that version is already in `~/.nuget/packages/`, the real package diff --git a/Directory.Packages.props b/Directory.Packages.props index 1794d1ca..007afc90 100644 --- a/Directory.Packages.props +++ b/Directory.Packages.props @@ -10,7 +10,7 @@ - + @@ -33,7 +33,7 @@ - +