From 95d2faaab1a378377ef403139a486f4e78928253 Mon Sep 17 00:00:00 2001 From: Marci Date: Thu, 15 Oct 2026 21:50:13 +0800 Subject: [PATCH] =?UTF-8?q?build:=20=E7=89=88=E6=9C=AC=E5=8D=87=E8=87=B3?= =?UTF-8?q?=202.7.0=EF=BC=88#68=20=E7=AB=9E=E9=80=9F=E6=94=B6=E6=95=9B?= =?UTF-8?q?=E4=B8=8E=E4=BC=9A=E8=AF=9D=E5=AF=B9=E8=B1=A1=E5=8C=96=20+=20?= =?UTF-8?q?=E4=BF=AE=E5=A4=8D=E6=89=B9=E6=AC=A1=EF=BC=89?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - 两个 csproj 的 同步升至 2.7.0(release.yml 校验 tag 与其一致) - CHANGELOG:Unreleased 归档为 [2.7.0] - 2026-10-15 段(打 tag 前完成, 避免 Release 正文回退自动生成的失误复演),补 2.7.0 对比链接 --- CHANGELOG.md | 5 +++-- .../StreamFrame.Protocols.Xml.csproj | 2 +- src/StreamFrame/StreamFrame.csproj | 2 +- 3 files changed, 5 insertions(+), 4 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index b7624a3..e396ee9 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -3,7 +3,7 @@ 本项目版本变更记录,格式遵循 [Keep a Changelog](https://keepachangelog.com/zh-CN/1.1.0/), 版本号遵循 [语义化版本](https://semver.org/lang/zh-CN/)。 -## [Unreleased] +## [2.7.0] - 2026-10-15 ### 修复 - **被取代接受循环的状态杂音与迟到接入语义澄清([#68](https://github.com/CSJ608/StreamFrame/issues/68) PR-3,#47 世代语义边界定稿)**:用户重连与自动重连竞速产生的被取代"僵尸"接受循环——① 循环头代次复查前置:此前从重试退避中醒来的被取代循环会先发布 Connecting 再检查代次退出,状态序列混入替换者之外的杂音;② 明确并测试锁定迟到 accept 的收编语义:监听器是连接级共享资源,客户端向服务器端口的接入本身合法——被取代循环迟到完成的 accept **照常发布 Connected 并建立会话**(纪元机制与会话隔离收敛,取代者循环经代次检查静默退出)。曾评估"迟到连接当场释放"方案:会重置真实客户端、违背接入契约,已否决(实现一度引入后回归测试即复现客户端被吞)。新增确定性回归:accept 等待期间 Reconnect 取代循环,迟到客户端照常收编、状态序列恰为 Connecting→Retry→Connecting→Connected。 @@ -202,7 +202,8 @@ - 发布自动化:`release.yml`(tag 自动建 GitHub Release)、`publish-nuget.yml`(OIDC Trusted Publishing 推送 nuget.org)。 - 单元测试 25 个 + 三场景端到端 demo。 -[Unreleased]: https://github.com/CSJ608/StreamFrame/compare/v2.6.0...HEAD +[Unreleased]: https://github.com/CSJ608/StreamFrame/compare/v2.7.0...HEAD +[2.7.0]: https://github.com/CSJ608/StreamFrame/compare/v2.6.0...v2.7.0 [2.6.0]: https://github.com/CSJ608/StreamFrame/compare/v2.5.0...v2.6.0 [2.5.0]: https://github.com/CSJ608/StreamFrame/compare/v2.4.0...v2.5.0 [2.4.0]: https://github.com/CSJ608/StreamFrame/compare/v2.3.1...v2.4.0 diff --git a/src/StreamFrame.Protocols.Xml/StreamFrame.Protocols.Xml.csproj b/src/StreamFrame.Protocols.Xml/StreamFrame.Protocols.Xml.csproj index cdc2ba6..c5c75df 100644 --- a/src/StreamFrame.Protocols.Xml/StreamFrame.Protocols.Xml.csproj +++ b/src/StreamFrame.Protocols.Xml/StreamFrame.Protocols.Xml.csproj @@ -32,7 +32,7 @@ StreamFrame.Protocols.Xml - 2.6.0 + 2.7.0 StreamFrame 的 XML 报文示例驱动:XmlDocumentCodec(XmlReader/XDocument 解码、XmlWriter 编码)。 Marci MIT diff --git a/src/StreamFrame/StreamFrame.csproj b/src/StreamFrame/StreamFrame.csproj index 053477e..7f11405 100644 --- a/src/StreamFrame/StreamFrame.csproj +++ b/src/StreamFrame/StreamFrame.csproj @@ -13,7 +13,7 @@ StreamFrame - 2.6.0 + 2.7.0 通用 socket 通讯框架:帧定界(IFramer)与帧内编解码(ICodec<TMessage>)插件化,支持长度前缀 / STX-ETX 定界与 IPv4/IPv6 双栈,可选流式零拷贝发送。 Marci MIT