Skip to content

Releases: GameFrameX/GameFrameX.Foundation

4.1.1

Choose a tag to compare

@github-actions github-actions released this 13 Sep 07:03

[4.1.1] - 2026-09-13

Bug Fixes

  • 修复协调器 Sonar 违规:删除未读注入字段并拆解 BeginAsync 认知复杂度 (#272)

Testing

  • EventEnvelope 合法信封测试补充 Record.Exception 显式断言 (#271)
  • 无订阅者发布测试补充 Record.ExceptionAsync 显式断言 (#273)

Ci

  • 发布改为 workflow_dispatch 手动触发 (#274)

[4.1.0] - 2026-09-12

Features

  • 新增幂等与事件信封基础包 GameFrameX.Foundation.Idempotency (#267)

[4.0.2] - 2026-08-30

Bug Fixes

  • 日志目录创建按 IsWriteToFile 短路,权限不足时降级不崩溃 (#265)

Ci

  • Notify Bluesky on release via reusable workflow

[4.0.1] - 2026-08-13

Bug Fixes

  • 解耦 Loki sink 批量配置并对齐全局日志级别
  • Loki 推送周期配置改为秒并兜底非法值

Features

  • 支持自定义位宽生成雪花ID

Miscellaneous Tasks

  • 升级 nuget 依赖版本

[3.1.2] - 2026-08-12

Testing

  • 消除 FlagOptionAttributeTests 的 Sonar S2701 字面量布尔断言 (#261)

[3.1.1] - 2026-08-12

Testing

  • 为 DsaHelper Dispose 测试补显式断言以消除 S2699 (#257)
  • 补全 SetFrameLength 测试断言以消除 Sonar S2699 (#258)
  • 为 RsaHelper Dispose 测试补显式断言以消除 S2699 (#259)

[3.1.0] - 2026-08-12

Features

  • 新增 data 字符串契约解析方法

Build

  • 忽略 .codegraph 索引目录

[3.0.0] - 2026-08-12

Bug Fixes

  • 升级 semantic-version 至 v6 并采用 Conventional Commits 默认 pattern

[2.9.1] - 2026-08-12

Bug Fixes

  • 修复语义版本识别并补正版本号至 3.0.0

[2.9.0] - 2026-08-12

Bug Fixes

  • 修复 DisposableDictionaryTests 缺失断言的 Sonar S2699 违规 (#94)
  • 消除 DisposableConcurrentDictionaryTests 的 Sonar S2699 缺失断言违规 (#95)
  • 消除 LocalizationServiceTests 的 Sonar S2699 缺失断言违规 (#98)
  • 消除 SpanExtensions.WriteBytesWithoutLength 的 Sonar S6640 unsafe 违规 (#100)
  • 重命名 NullObject.CompareTo 参数 value 为 obj (#103)
  • 修复 ConcurrentLimitedQueue.Limit setter 不直接引用 _limit 字段的 Sonar S4275 违规 (#104)
  • 为 CnReg 补传 Regex matchTimeout 消除 Sonar S6444 (#105)
  • 抑制 Md5Helper.Hash(byte[]) 的 Sonar S4790 弱哈希漏洞告警 (#107)
  • 抑制 Md5Helper.HashWithSalt(string, byte[]) 的 Sonar S4790 弱哈希漏洞告警 (#108)
  • 抑制 Md5Helper.Hash(Stream) 的 Sonar S4790 弱哈希告警 (#110)
  • 抑制 Md5Helper.HashAsync(Stream) 的 Sonar S4790 弱哈希告警 (#112)
  • 抑制 Md5Helper 的 Sonar S4790 弱哈希漏洞告警 (#106)
  • 重命名 XxHashHelper 内层 Hash64 unsafe 方法规避 Sonar S3218 shadow (#114)
  • 重命名 XxHashHelper 内层 Hash32(string) 消除 Sonar S3218 shadow (#116)
  • 重命名内部类型哈希方法 (#117)
  • 重命名内部字节哈希方法 (#118)
  • 重命名 xxHash 内部 Hash32 以消除外层成员遮蔽 (#115)
  • 消除 CrcHelper.Crc64.GetHashCode 的 Sonar S3877 BLOCKER (#109)
  • 实现 ResourceManager 的 IDisposable 接口 (#111)
  • 重命名 InternalXxHashHelper 公开方法消除 Sonar S3218 遮蔽 (#119)
  • 消除 XxHashHelper Hash64Core 的 Sonar S6640 unsafe 违规 (#155)
  • 消除 XxHashHelper 的 Sonar S6640 unsafe 代码块违规 (#154)
  • 消除 Sha1Helper.ComputeHash(byte[]) 的 Sonar S4790 弱哈希违规 (#162)
  • 抑制 Sha1Helper.ComputeHash(Stream) 的 Sonar S4790 弱哈希告警 (#160)
  • 抑制 Sha1Helper.ComputeHashAsync(Stream) 的 Sonar S4790 弱哈希告警 (#159)
  • 消除 XxHashHelper 32位路径的 Sonar S6640 unsafe 违规 (#158)
  • 消除 XxHashHelper ComputeHash32 的 Sonar S6640 unsafe 违规 (#161)
  • 抑制 Sha1Helper.ComputeFileHash(string) 的 Sonar S4790 弱哈希告警 (#166)
  • 重构 OptionsDebugger.IsWideCharacter 降低 Cognitive Complexity 至阈值内 (#170)
  • 修复中性文化资源基础名未剥离文化段
  • 消除 OptionsBuilder._ensurePrefixedKeys 的 Sonar S4487 未读取字段告警 (#175)
  • 消除 OptionsBuilder._boolFormat 的 Sonar S4487 未读取字段告警 (#188)
  • 移除 Hash 项目不再需要的 AllowUnsafeBlocks 编译开关 (#209)
  • 移除 NonCryptographicHashAlgorithm.GetHashCode 的 throw 消除 Sonar S3877 (#210)
  • JsonHelper 正则替换补 matchTimeout 限制执行时间 (S6444) (#213)
  • 抑制 DsaHelper.SignData(byte[], string) 的 Sonar S4790 弱哈希告警 (#214)
  • 抑制 DsaHelper(string) 构造函数的 Sonar S4790 弱哈希告警 (#230)
  • 抑制 DsaHelper.Make/VerifyData 的 Sonar S4790 弱哈希告警 (#232)
  • 钉 SHA 并只传必要 secret 修复 sonar-issues.yml 的 S7635/S7637 安全违规 (#234)
  • 抑制 UnicodeJsonEncoder 两个 unsafe override 的 Sonar S6640 告警 (#239)
  • 补齐 Logger 参数空校验并扩充测试
  • 强化 ORM 属性与实体契约校验
  • 补齐 Snowflake 解析校验并扩充工具测试
  • SM2/SM4 输入异常统一为 CryptographicException
  • 命令行参数拒绝 null 元素
  • 集成测试改用 httpbingo 提升稳定性
  • Using 声明改为带大括号的 using 语句
  • Using 声明改为带大括号的 using 语句
  • Using 声明改为带大括号的 using 语句
  • Using 声明改为带大括号的 using 语句
  • Using 声明改为带大括号的 using 语句
  • Using 声明改为带大括号的 using 语句
  • Using 声明改为带大括号的 using 语句
  • Using 声明改为带大括号的 using 语句
  • RSA 分块加解密复用缓冲池与切片写入
  • MD5 带盐哈希改用增量哈希并简化十六进制编码
  • SHA 系列十六进制编码改用 Convert.ToHexString

Documentation

  • 更新 QQ 群号

Features

  • HttpJsonResult 增加 TrackId/ErrorCode/Type/Time/Extras 字段及链路追踪中间件 (#247)
  • 补充加密算法边界与综合测试
  • 补充扩展方法边界与综合测试
  • 补充哈希算法边界与 HMAC 测试
  • 补充 HttpClient 扩展边界与综合测试
  • 补充 HttpJsonResult 与 TrackId 中间件边界测试
  • 补充 JsonHelper 与编码器边界测试
  • 补充资源管理器与本地化测试
  • 补充命令行与环境变量选项解析测试
  • Disposable 字典补齐释放后访问保护
  • 统一 TimerHelper 命名规范并补充 TimeSpan 转换
  • 迁移 TimeOffset 测试至新命名
  • 支持动态加载程序集的资源发现
  • SM2/SM4 异常消息迁移至本地化
  • 异常消息迁移至本地化资源
  • 异常消息迁移至本地化资源
  • 行版本冲突消息迁移至本地化
  • 补齐 PUT/PATCH/DELETE 对称重载
  • 新增 HttpClientResponse 原始响应 API

Refactor

  • 拆分 LogHandler.Create 私有 helper 降低认知复杂度 (#93)
  • 拆分 SequenceEqualSameType 降低认知复杂度 (#101)
  • 降低 SequenceEqual<T1,T2> 认知复杂度 (#102)
  • 降低 CrcHelper.GetCrc32(Stream, byte[], int) 认知复杂度 (#113)
  • 拆分 LoadResources baseName 解析降低认知复杂度 (#171)
  • 拆分 GetFriendlyTypeName 类型映射表降低认知复杂度 (#172)
  • 抽取 TrySetPropertyValue 降低 ApplyDefaultValues 认知复杂度 (#178)
  • 拆分 PrintParsedOptions 编排阶段降低认知复杂度 (#180)
  • 抽取 TryGetDebugFromOptionsEnvVar 与 TryGetDebugFromRuntimeEnvironment 降低 ShouldEnableDebugOutput 认知复杂度 (#182)
  • 抽取辅助方法降低 GetEnvironmentVariables 认知复杂度 (#184)
  • 抽取 ExecuteAttemptAsync 降低 SendJsonCoreAsync 认知复杂度 (#187)
  • 抽取辅助方法降低 ValidateRequiredOptions 认知复杂度 (#191)
  • 抽取 ApplyKeyValuePair 与 ApplySeparatedOption 降低 ConvertToOptionsDictionary 认知复杂度 (#192)
  • 抽取 ConvertBoolOptionValue 与 ConvertToTargetType 降低 ConvertOptionValue 认知复杂度 (#195)
  • 抽取 ApplyOptions 辅助方法降 Cognitive Complexity (25→≤15) (#197)
  • 抽取辅助方法降低 ConvertToStandardFormat 认知复杂度 (42→≤5) (#199)
  • 重命名 Sm3Digest.ProcessWord 形参 in_Renamed 为 input 与基类对齐 (#201)
  • 抽取辅助方法降低 ToCommandLineString 认知复杂度 (19→≤9) (#203)
  • 移除 Sm3Digest.ProcessLength 中恒等的位与掩码 (#204)
  • 重命名 Sm3Digest.DoFinal 形参 out_Renamed 为 output 与基类对齐 (#207)
  • 重命名 GeneralDigest.BlockUpdate 形参 length 为 inLen 与接口对齐 (#215)
  • 拆分 Sm4_crypt_cbc 加解密分块循环降低 Cognitive Complexity (S3776) (#229)
  • 降低 SpecialFloatingPointDocumentConverter.GetModifiedJson Cognitive Complexity (S3776) (#240)
  • 降低 OptionsBuilder.NormalizePropertyName Cognitive Complexity (S3776) (#242)
  • 废弃 HttpJsonResult,统一为 HttpJsonResultData (#250)

Testing

  • 消除 EnsureLoaded_ShouldNotThrow 的 Sonar S2699 缺失断言违规 (#97)
  • 为 AssemblyResourceProvider 释放测试补充显式断言 (#99)
  • 消除 OrmAttributeTests 第17行 Sonar S2701 字面量布尔断言 (#211)
  • 消除 OrmAttributeTests 第19行 Sonar S2701 字面量布尔断言 (#212)
  • 补充 Helper/TrackId 边界与逆向测试(null/空/类型不匹配/Unicode 往返/AsyncLocal 隔离/异常穿透)

Build

  • 串行化测试执行以消除全局状态串扰

Ci

  • 忽略 .github 目录的 SonarCloud 分析 (#252)
  • 启用 Release 发布流水线

[2.8.3] - 2026-08-05

Testing

  • 消除 OrmAttributeTests Sonar S2701 残存的平凡断言 (#92)

[2.8.2] - 2026-07-29

Bug Fixes

  • 修复 OrmEntityTests 缺失断言的 Sonar S2699 违规 (#89)

[2.8.1] - 2026-07-29

Styling

  • 消除 OrmAttributeTests 的 Sonar S2701 布尔字面量断言违规 (#88)

[2.7.0] - 2026-07-15

Features

  • 重命名 Version 为 RowVersion

[2.6.0] - 2026-07-13

Documentation

  • 更新 README 补齐密码哈希 KDF 文档

Features

  • 新增租户/数据权限/敏感字段/树形/导入导出特性
  • 新增下一代密码哈希 KDF

[2.5.2] - 2026-07-08

Bug Fixes

  • SHA1/256/512 哈希校验改用常量时间比较

[2.5.1] - 2026-06-09

Bug Fixes

  • 修复测试并行冲突和异步时序问题

Styling

  • 移除测试文件尾部空行

Build

  • 升级 Localization.Abstractions 至 10.0.8
  • 升级 Grafana.Loki 并适配压缩 API
  • 升级测试框架至 xunit v3

[2.5.0] - 2026-06-09

Bug Fixes

  • SM4 兼容 C# 10.0 无符号右移
  • 修复 GetNowWithUtc 返回非 UTC Kind
  • 修复 ToHttpJsonResultData 转换失败时返回值

Features

  • 新增异步释放字典和异步集合扩展
  • 增强 BidirectionalDictionary
  • ConcurrentLimitedQueue 溢出策略和丢弃通知
  • 新增 HashHelper 统一入口和 HashAlgorithmKind
  • 各哈希 Helper 新增流式和异步重载
  • HMAC Helper 新增重载和验证方法
  • 新增类型化 JSON 请求扩展
  • 新增源生成、流式异步及错误详情重载
  • 文化回退链、格式化错误策略及缺失键追踪
  • 新增领域事件、租户组织基类和契约验证器
  • 新增 ID 解析、WorkerId 提供者和统计指标
  • TimerHelper 支持 TimeProvider 注入
  • 新增 TryToHttpJsonResultData 转换诊断
  • 新增日志敏感字段脱敏
  • 新增 Sensitive 属性脱敏
  • 新增 WorkerId 冲突检测与稳定哈希

Refactor

  • Disposable 字典增加错误处理,移除终结器

Styling

  • 测试代码适配 C# 10.0 语法

Testing

  • 集成测试默认跳过,需环境变量启用
  • 修复 OptionsBuilder 集合隔离,添加 HttpJsonResult 单元测试
  • 新增异步释放字典和异步集合扩展测试
  • BidirectionalDictionary 和 ConcurrentLimitedQueue 增强测试
  • Disposable 字典错误处理测试
  • 新增流式、异步和统一入口测试
  • 新增源生成、流式异步和错误详情测试
  • 新增高优先级功能测试
  • 新增 ID 解析和 Worker 测试
  • 新增 TimeProvider 注入测试

Build

  • 更新各模块包描述和标签
  • 测试项目禁用文档文件生成
  • 降级 LangVersion 至 10.0
  • 目标框架切换为 net10.0 单目标
  • 升级 Localization.Abstractions 至 10.0.0

[2.4.9] - 2026-06-03

Bug Fixes

  • 月份时区时间戳未应用时区偏移

[2.4.8] - 2026-06-03

Documentation

  • 修复 README 文件 Markdown 格式

Styling

  • 修复 TimerHelper XML 文档注释缩进
  • 批量修复 C# 代码格式问题

[2.4.7] - 2026-05-30

Bug Fixes

  • HmacSha256Helper 补充参数验证
  • RsaHelper.SignData 不再静默返回 null
  • DisposableDictionary.Dispose(bool) 检查 disposing 参数
  • Sm4Helper 标记 ECB 模式方法为 Obsolete
  • JsonHelper 简化反序列化 fallback 模式
  • LogHelper.Error 移除昂贵的 StackTrace 构造
  • HttpJsonResultHelper 日志级别 Fatal 降级为 Error
  • NullObject.GetHashCode 增加 null 检查
  • Md5Helper 移除静态 MD5 缓存实例,改用 MD5.Create()
  • LogConsole 补全标题超长时的边界处理
  • LogHandler 修复 GrafanaLoki null 检查与错误日志结构化
  • Info(ILogger, Exception) 实际使用传入的 logger 参数
  • WarningConsole 用 try/finally 保护 ConsoleColor.Reset
  • DisposableAction 用 Interlocked 防止重复执行
  • HmacSha256Helper 空字符串改为合法输入,仅拒绝 null

Testing

  • RsaHelperTests 适配 SignData 不再返回 null 的新行为
  • DisposableDictionaryTests 终结器不再释放值的测试适配

[2.4.6] - 2026-05-12

Bug Fixes

  • ResourceManager 线程安全修复
  • Async void 修正为 ValueTask
  • 修复命令行解析负数参数问题

Refactor

  • 加密算法升级
  • ConcurrentLimitedQueue 改为组合模式
  • CrcHelper 清理静态缓存字段
  • 提取超时和响应流辅助类
  • 移除 Deserialize 泛型约束
  • 移除 ToHttpJsonResultData 泛型约束
  • LogOptions.Default 改为共享实例

Testing

  • 更新测试适配业务代码变更
  • 添加测试集合隔离

[2.4.5] - 2026-05-08

Build

  • 迁移解决方案文件为 .slnx 格式

[2.4.4] - 2026-05-08

Bug Fixes

  • 修复文档链接地址和语言路径

Documentation

  • 精简主 README 为项目概览
  • 完善 ORM Entity 模块文档
  • 完善 Utility 模块文档
  • 添加 Localization 模块文档

[2.4.3] - 2026-05-07

Documentation

  • 添加多语言 README 支持 (zh-CN, zh-TW, ja, ko)
  • 完善多语言翻译内容

[2.4.2] - 2026-04-28

Ci

  • 升级 actions/setup-dotnet@v5 和 action-gh-release@v3 适配 Node.js 24

[2.4.1] - 2026-04-28

Ci

  • 迁移到 NuGet Trusted Publishing (OIDC)
  • 添加 production 环境以匹配 NuGet Trusted Publishing 策略

[2.2.10] - 2026-04-0...

Read more

4.1.0

Choose a tag to compare

@github-actions github-actions released this 12 Sep 10:38

[4.1.0] - 2026-09-12

Features

  • 新增幂等与事件信封基础包 GameFrameX.Foundation.Idempotency (#267)

[4.0.2] - 2026-08-30

Bug Fixes

  • 日志目录创建按 IsWriteToFile 短路,权限不足时降级不崩溃 (#265)

Ci

  • Notify Bluesky on release via reusable workflow

[4.0.1] - 2026-08-13

Bug Fixes

  • 解耦 Loki sink 批量配置并对齐全局日志级别
  • Loki 推送周期配置改为秒并兜底非法值

Features

  • 支持自定义位宽生成雪花ID

Miscellaneous Tasks

  • 升级 nuget 依赖版本

[3.1.2] - 2026-08-12

Testing

  • 消除 FlagOptionAttributeTests 的 Sonar S2701 字面量布尔断言 (#261)

[3.1.1] - 2026-08-12

Testing

  • 为 DsaHelper Dispose 测试补显式断言以消除 S2699 (#257)
  • 补全 SetFrameLength 测试断言以消除 Sonar S2699 (#258)
  • 为 RsaHelper Dispose 测试补显式断言以消除 S2699 (#259)

[3.1.0] - 2026-08-12

Features

  • 新增 data 字符串契约解析方法

Build

  • 忽略 .codegraph 索引目录

[3.0.0] - 2026-08-12

Bug Fixes

  • 升级 semantic-version 至 v6 并采用 Conventional Commits 默认 pattern

[2.9.1] - 2026-08-12

Bug Fixes

  • 修复语义版本识别并补正版本号至 3.0.0

[2.9.0] - 2026-08-12

Bug Fixes

  • 修复 DisposableDictionaryTests 缺失断言的 Sonar S2699 违规 (