Skip to content

Releases: newMalloc/SeriTerm

SeriTerm v1.1.3

Choose a tag to compare

@github-actions github-actions released this 10 Oct 03:37

v1.1.3 — 2026-10-10

  • 修:数据持续高速到达时日志区不再自动滚动。跟随请求原来排进 DispatcherPriority.Background,
    比追加行的 DataBind 与布局的 Render 都低,数据一密集就永远轮不到它——视口会一路停在原处
    (离底 55 万像素),看上去就是"自动滚动失灵"。改为在内容高度变化的 ScrollChanged 里就地滚到底:
    这条事件由布局自己派发,不参与那条优先级链,跟随滞后的上限也不再是"一整批"。

详见 验证记录。


下载

两个产物功能完全一样,按你的情况选一个即可。文件名里的 1.1.3 就是程序内显示的版本号。

1. SeriTerm-1.1.3-win-x64.exe —— 推荐,3.8 MB

  • 大小:3985920 字节(3.8 MB)
  • SHA256:911CA7171AA90AECD5FD8124B0E9C0DADB7ACB629FC6A7AAE19DEA2B65EDC80B
  • 本身不含 .NET 运行时,因此在没装运行时的机器上也能双击运行:
    启动时会检查 .NET 8 桌面运行时,已装就直接启动;没装会先问一句,
    同意后从微软官方站点下载官方安装包(校验数字签名)并安装,装完自动继续启动。
  • 已经装过 .NET 8/9/10 桌面运行时的机器,只下载这 3.8 MB;
    没有任何 .NET 的机器需要额外下载约 56 MB 的官方运行时安装包(装一次,之后所有 .NET 程序共用)。

2. SeriTerm-1.1.3-win-x64-full.exe —— 离线/内网用,64 MB

  • 大小:67125478 字节(64 MB)
  • SHA256:1AE96D315453C0F6F3F83AAD144053DD9EB4A7304CC320C8AFB7E8F75C41A71B
  • 运行时整套打包在 exe 里,不联网、不装任何东西,下载后直接双击运行。
    首次启动需要自解压到临时目录,会比常规安装版稍慢一点。

系统要求

  • Windows 10 1809 或更高 / Windows 11(64 位)

文档

许可

MIT License。运行时依赖 CommunityToolkit.Mvvm、Microsoft.Extensions.*、System.IO.Ports、
System.Management,均为 MIT 许可。

SeriTerm v1.1.2

Choose a tag to compare

@github-actions github-actions released this 08 Oct 10:17

v1.1.2 — 2026-10-08

  • 修:日志区卡顿。日志到几千行或拖动滚动条时,每滚一步都在回收重绑一屏只读 TextBox
    (各带 ScrollViewer、TextEditor 与 TSF 文本服务)。改为三列 TextBlock + 底色按字符矩形自绘:
    同一注入速率下 CPU 8797% → 56%,选择与复制行为不变。
  • 修:连续多行选中时行间露出背景色横线。底色层原在行 Border 内边距内、被裁掉上下各 1 px,
    移出后不换行的行按整行高铺。
  • 修:右键菜单「复制」不可读。Aero2 高亮项的系统浅蓝底 × 本主题覆盖过的 HighlightTextBrushKey 白字 = 1.1:1,改为主题自绘(深色 9.3:1、浅色 14.1:1)。

详见 验证记录。

SeriTerm v1.1.0

Choose a tag to compare

@github-actions github-actions released this 07 Oct 01:34

v1.1.0 — 2026-10-07

新增

  • AI 接入(MCP):内置 MCP 服务端,Claude Desktop / Cursor / VS Code
    里的模型能直接读到设备的输出,不必再把日志复制粘贴给它。界面左栏「AI 接入」→「复制配置」,粘进 AI 客户端即可。
    • 8 个工具:serial_list_ports、serial_get_status、serial_read_frames、serial_wait_for_pattern、
      serial_open、serial_close、serial_set_baud_rate、serial_write;
    • serial_wait_for_pattern 会阻塞等到设备打印出指定内容(重启后的第一行、OK、panic),
      这是"复制粘贴日志"做不到的;读帧带游标(nextCursor),按游标续读不重复也不漏;
    • 权限两档:默认只读,此时只暴露 4 个读工具(写入类工具连清单都不出现,免得模型反复撞墙);
      要发送数据必须由用户在界面上勾选「允许 AI 发送数据(完全权限)」,状态栏常驻显示当前档位;
    • 完全权限下的四条护栏:单次 ≤ 4096 字节、发送 ≤ 3 次/秒(突发 6 次)、
      每次发送在日志里留一行 [AI] 发送 N 字节:… 的审计记录、随时取消勾选即可收回权限;
    • 通信只走本机命名管道且仅当前用户可连(PipeOptions.CurrentUserOnly),不开任何网络端口;
    • AI 读的是独立帧缓冲(2 万帧 / 16 MB):界面上的「暂停显示」骗不到它,日志区淘汰旧行也不会让它悄悄漏数据
      ——中间丢了多少由 evictedFrames 如实报出。
  • SeriTerm.exe --mcp-stdio:同一个 exe 的第二种模式。被 AI 客户端拉起时它不建窗口,
    只把 stdio 上的 MCP 请求转成一次命名管道往返;界面没开着会自动把界面拉起来(最多等 20 秒)。
  • 启动器认识 --mcp-stdio:这种模式下它会陪着主程序直到客户端断开——
    启动器原本"拉起主程序就自己退出",而 MCP 客户端盯着的正是它拉起的那个进程,早退会被当成连接断开。

变更

  • 左栏新增「AI 接入」卡片:服务开关、权限勾选、服务状态、已接入客户端数、复制配置;
  • 状态栏新增 MCP: 只读 / 完全权限,完全权限用警示色加粗显示。

测试

  • 新增 52 个 MCP 单元测试(帧缓冲淘汰与游标、限速器、关键词匹配、派发层护栏、stdio 协议、管道客户端),
    含两个回归用例:tools/call 只把 params.arguments 转发给后端、字符串 id 原样回传;
  • dotnet build 0 警告 0 错误;dotnet test 354/354(346 纯逻辑 + 8 回环集成);
  • 端到端冒烟(新增 tools/mcp-smoke.ps1,COM5 回环):只读档下工具清单是 4 项、
    serial_open / serial_write 返回 [permission_denied];完全权限档下工具清单 8 项,
    打开 COM5(1000000) → 发送 20 字节 → serial_wait_for_pattern 命中回环数据 → serial_read_frames 游标正确,
    审计行 [AI] 已接入 / 已打开串口 / 发送 20 字节 全部落在日志里。

下载

两个产物功能完全一样,按你的情况选一个即可。文件名里的 1.1.0 就是程序内显示的版本号。

1. SeriTerm-1.1.0-win-x64.exe —— 推荐,3.8 MB

  • 大小:3984896 字节(3.8 MB)
  • SHA256:C7350C7C886C29BA15BC6488B45A1FC0A5ED6C2AC7178E9B8BA6F2F2093DFAC1
  • 本身不含 .NET 运行时,因此在没装运行时的机器上也能双击运行:
    启动时会检查 .NET 8 桌面运行时,已装就直接启动;没装会先问一句,
    同意后从微软官方站点下载官方安装包(校验数字签名)并安装,装完自动继续启动。
  • 已经装过 .NET 8/9/10 桌面运行时的机器,只下载这 3.8 MB;
    没有任何 .NET 的机器需要额外下载约 56 MB 的官方运行时安装包(装一次,之后所有 .NET 程序共用)。

2. SeriTerm-1.1.0-win-x64-full.exe —— 离线/内网用,64 MB

  • 大小:67124410 字节(64 MB)
  • SHA256:2759CA8888748AE47DE7B620426C7D18D7BC9CCF1F7E35AE263D44CCF66049D8
  • 运行时整套打包在 exe 里,不联网、不装任何东西,下载后直接双击运行。
    首次启动需要自解压到临时目录,会比常规安装版稍慢一点。

系统要求

  • Windows 10 1809 或更高 / Windows 11(64 位)

文档

许可

MIT License。运行时依赖 CommunityToolkit.Mvvm、Microsoft.Extensions.*、System.IO.Ports、
System.Management,均为 MIT 许可。

SeriTerm v1.0.4

Choose a tag to compare

@github-actions github-actions released this 03 Oct 03:00

v1.0.4 — 2026-10-03

新增

  • 小体积启动器(3.8 MB):默认发布产物从 64 MB 的自包含单文件换成启动器。它本身用
    NativeAOT 编成原生 exe、不含 .NET 运行时,
    所以"机器上什么都没装"时也能双击运行;真正的程序体(框架依赖单文件 1.7 MB)Brotli 压缩后内嵌其中。
    对已经装了 .NET 8/9/10 桌面运行时的机器,用户下载量从 64 MB 降到 3.8 MB。
  • 启动时探测 .NET 桌面运行时:已装就直接解包运行;没装则弹一次说明,同意后从微软官方短链下载官方安装包
    (校验 Authenticode 签名后才执行)、以 /install /passive /norestart 静默安装,装完自动继续启动。
    下载走系统 WinHTTP(系统代理、系统证书库),只有一个"是/否"对话框和一个系统进度窗口。
  • runtimeconfig 增加 rollForward: Major:只有 .NET 9/10 桌面运行时的机器可以直接跑,不再被迫装 8.x;
    探测逻辑与之一致(优先 8.x,找不到才往上跨大版本)。
  • 排障开关:--diagnose(把探测、解包结果写成报告,不启动程序)、--install-runtime(只装运行时)。
    环境变量 SERITERM_DOTNET_ROOT 可指定运行时目录,启动器会把它转成 DOTNET_ROOT_X64 交给主程序。

变更

  • 发布两种产物:启动器 SeriTerm-<版本>-win-x64.exe(约 3.8 MB,推荐)与自包含完整版
    SeriTerm-<版本>-win-x64-full.exe(约 64 MB,离线/内网用);release.yml 一次构建并挂两个。
  • tools/publish.ps1:默认改为出启动器,新增 -All 与 -SelfContained,自包含产物文件名加 -full 后缀
    (-FrameworkDependent 不变,仍出 -fd)。

实测

  • 产物:启动器 3,936,768 字节(3.8 MB),自包含完整版 67,127,223 字节(64.0 MB),相差 17 倍。
    内嵌程序体 1,698,661 字节 → Brotli 后 625,533 字节。
  • 体积来源做了对照实验:启动器本体(不含内嵌程序体)在换掉托管 HTTPS 之前是 6,170,624 字节(5.88 MB),
    其中托管 System.Net.Security/Sockets/托管加密占 3.25 MB(对照:把下载那段整个去掉后为 2,755,072 字节),
    Brotli 解包占 0.77 MB;改用 WinHTTP 后本体 3,311,104 字节(3.16 MB)。
  • 官方安装包实测下载 58,715,896 字节、SHA256 C375DFD8…84D1CC(与另一次独立下载逐字节一致)、
    WinVerifyTrust 返回 0x00000000。
  • 分支验证:已装运行时 → 解包到 %LocalAppData%\SeriTerm\app\1.0.4.0\ 并启动主程序,
    同时自动清掉伪造的旧版本目录 0.9.9.0,且设置文件 SHA256 前后一致;
    未装运行时(用 SERITERM_DOTNET_ROOT 指向空目录模拟)→ 依次弹出说明框与提示框,点「否」后退出码 2。
  • 未验证:安装程序本身的执行(/install /passive + UAC)没有在本机跑,因为它会改动本机已装的
    .NET 8 桌面运行时(8.0.19 → 8.0.31);这一步之前的所有环节(下载、签名校验、退出码判定分支)都单独验证过。

下载

两个产物功能完全一样,按你的情况选一个即可。文件名里的 1.0.4 就是程序内显示的版本号。

1. SeriTerm-1.0.4-win-x64.exe —— 推荐,3.75 MB

  • 大小:3935232 字节(3.75 MB)
  • SHA256:15ABC7C7484929495D04F9E7CD958C80FE7B106C0BA7DC65B87E9314AD566C55
  • 本身不含 .NET 运行时,因此在没装运行时的机器上也能双击运行:
    启动时会检查 .NET 8 桌面运行时,已装就直接启动;没装会先问一句,
    同意后从微软官方站点下载官方安装包(校验数字签名)并安装,装完自动继续启动。
  • 已经装过 .NET 8/9/10 桌面运行时的机器,只下载这 3.75 MB;
    没有任何 .NET 的机器需要额外下载约 56 MB 的官方运行时安装包(装一次,之后所有 .NET 程序共用)。

2. SeriTerm-1.0.4-win-x64-full.exe —— 离线/内网用,64 MB

  • 大小:67073690 字节(64 MB)
  • SHA256:D5661EDF96C2ECB651214B63C10FF52C4F94B1A18D770182F0B37F57DB2AC3A1
  • 运行时整套打包在 exe 里,不联网、不装任何东西,下载后直接双击运行。
    首次启动需要自解压到临时目录,会比常规安装版稍慢一点。

系统要求

  • Windows 10 1809 或更高 / Windows 11(64 位)

文档

许可

MIT License。运行时依赖 CommunityToolkit.Mvvm、Microsoft.Extensions.*、System.IO.Ports、
System.Management,均为 MIT 许可。

SeriTerm v1.0.3

Choose a tag to compare

@github-actions github-actions released this 02 Oct 13:44

v1.0.3 — 2026-10-02

新增

  • 串口打开时也能改波特率:端口名、数据位这些参数在打开状态下会禁用,波特率不该跟着一起锁——
    Windows 允许在句柄打开期间 SetCommState,收发表不用关、缓冲不清空。输入停顿 400 ms 后写进已打开的端口,
    改完回读确认驱动真的接受了(有些驱动会静默保持原值),失败只写状态栏与日志、不弹模态框、不回滚输入框;
    「套用预设」的提示同步改成「波特率立即生效,其余参数重新打开后生效」。

修复

  • 自绘标题栏的窗口自己处理 WM_GETMINMAXINFO 并标记「已处理」,把 WPF 落实 MinWidth 的那一步整条跳过了
    (向窗口回读可拖下限是 0×0px):窗口能被拖到 700 DIP,而布局仍按 920 DIP 排,右侧 67 DIP 连同发送按钮、
    查找浮层的 ✕、收藏行的 ✕ 一起被裁掉;现在把最小尺寸按 MinWidth 换算成设备像素填回去,越界元素 20 → 0。
  • 存过查找收藏之后,按 Esc 关掉查找,整块浮层还被收藏栏撑着压在日志文字上;现在浮层只跟着查找框走。

界面

  • 右栏拆成「日志」与「发送」两张独立卡片,各带圆角和描边,滚动与输入不再挤在同一块面板里。
  • 标题栏底色改成与窗口底色相同;开启「模糊背景」时标题栏不再自己盖一层半透明,
    顶部那道比日志区更深的横带消失。
  • 去掉左栏里多余的两道竖线(表单滚动条与分隔条)——原来宽窄两栏之间会同时出现两条细线。
  • 标题栏右上角的「关于」由纯文字换成自绘 ⓘ 图标,与旁边的主题、模糊按钮同一套线宽和配色;
    点击、F1 快捷键与无障碍名称「关于」都不变。

文档

  • README 精简:一屏能扫完,宣传页只留一张深色主界面截图,不再提任何"复刻"来源。

测试

  • 自动化测试 297 → 302(新增波特率热改与重连的回归)。

下载

  • 文件:SeriTerm-1.0.3-win-x64.exe(文件名里的 1.0.3 就是程序内显示的版本号)
  • 大小:67073694 字节(64 MB)
  • SHA256:9589BBE8C9716B6949DEB5CE81BD3FF982AA1BBC960D308B54A3D1FAFB3710FD
  • 单文件绿色版(win-x64、自包含):目标机器无需安装 .NET 运行时,下载后直接双击运行。
    首次启动需要自解压到临时目录,会比常规安装版稍慢一点。

系统要求

  • Windows 10 1809 或更高 / Windows 11(64 位)

文档

许可

MIT License。运行时依赖 CommunityToolkit.Mvvm、Microsoft.Extensions.*、System.IO.Ports、
System.Management,均为 MIT 许可。

SeriTerm v1.0.2

Choose a tag to compare

@github-actions github-actions released this 01 Oct 07:41

v1.0.2 — 2026-10-01

修复

  • 修复自动重连的一处竞态:链路故障后立刻停止重连(关串口、关掉自动重连、或退出程序)时,
    重连监督者可能抛 NullReferenceException。原因是 BeginReconnect 里 Task.Run 的 lambda
    捕获的是字段 _cts,而 StopAsync 会先把 _cts 置空、再 await 这个任务——
    lambda 若晚一步开跑就是空引用,异常还会经 StopAsync 冒给调用方。
    现在 CTS 先落进局部变量再交给后台任务。
    这扇窗口只有几个指令宽,本地反复跑几百次都不出现,是 CI 撞出来的(见 docs/development-plan.md 11.34)。

测试

  • 新增回归测试「故障后立刻停止不应把异常抛给调用方」(发完故障不等重连跑起来就直接停止,重复 200 次),
    自动化测试 296 → 297。

下载

  • 文件:SeriTerm-1.0.2-win-x64.exe(文件名里的 1.0.2 就是程序内显示的版本号)
  • 大小:67071623 字节(64 MB)
  • SHA256:A648BD504F32AB12CF48C1F43FAFDDCFB91E2BFC120916B5A16235DECE064094
  • 单文件绿色版(win-x64、自包含):目标机器无需安装 .NET 运行时,下载后直接双击运行。
    首次启动需要自解压到临时目录,会比常规安装版稍慢一点。

系统要求

  • Windows 10 1809 或更高 / Windows 11(64 位)

文档

许可

MIT License。运行时依赖 CommunityToolkit.Mvvm、Microsoft.Extensions.*、System.IO.Ports、
System.Management,均为 MIT 许可。

SeriTerm v1.0.1

Choose a tag to compare

@github-actions github-actions released this 01 Oct 07:33

新增

  • 标题栏右上角新增「关于」入口(按 F1 也能开):版本号、提交号、运行时、许可,
    以及 GitHub 仓库 / 发布版下载两个入口。版本号取自程序集属性,界面里没有任何写死的版本字符串。
  • 发布产物文件名带上版本号:SeriTerm-1.0.1-win-x64.exe(版本读自产物自身的版本资源,
    所以文件名与属性页显示的版本永远一致)。

修复

  • 「关于」窗口开着「模糊背景」时是灰蒙蒙的半透明(主窗口的半透明表面覆盖字典也命中了它,
    而它没有壁纸层垫底):浅色主题下正文底从 #F4F4F4 变成 #A1A1A1,
    副标题这类次要文字的对比度掉到 2.06:1(设计值 4.85:1,WCAG AA 正文要求 4.5:1)。
    现在窗口与标题栏取主题里的原始不透明画刷。
  • 日志区改成跨行按字符自由选择:以前拖动一旦离开按下那一行就把整段设成选中行,
    想复制「loopback test\r\n14:27:52.373 Tx SeriTerm 」这种半截行做不到。
  • 追加日志改为逐行 Add(Reset 会让 WPF 丢掉全部行容器重建),并让日志落行抢在输入处理之前。
  • 定时发送的输入框被行高锁死,数字被切掉上半截、输入时还会上下滑动。
  • tools/publish.ps1 -FrameworkDependent 会因 EnableCompressionInSingleFile 报 NETSDK1176。

变更

  • 应用图标换成设计稿(tools/make-icon.ps1 改成"读源图 + 取景":自动裁到设备主体、
    全程预乘 alpha 缩放、输出 16/24/32/48/64/128/256 七帧,可复现)。
  • 「关于」窗口只留 GitHub 仓库 / 发布版下载两颗按钮——「关闭」与标题栏的 ✕ 重复,
    「复制版本信息」「使用说明」「开发文档」也不需要。
  • 左栏表单改「一行两个」,波特率下拉新增「自定义输入…」;新增英文版 README。

下载

  • 文件:$(@{url=https://api.github.com/repos/newMalloc/SeriTerm/releases/assets/602706872; id=602706872; node_id=RA_kwDOU2P_kM4j7JO4; name=SeriTerm-1.0.1-win-x64.exe; label=; uploader=; content_type=application/x-msdownload; state=uploaded; size=67071601; digest=sha256:caf62f2dce91bc89141f289a5b13c154c680cb0aa4f115f5f319ea4180e4de1f; download_count=0; created_at=10/01/2026 07:33:43; updated_at=10/01/2026 07:33:46; browser_download_url=https://github.com/newMalloc/SeriTerm/releases/download/v1.0.1/SeriTerm-1.0.1-win-x64.exe}.name) (文件名里的版本就是程序内显示的版本号)
  • 大小:67071601 字节(64 MB)
  • SHA256:$sha
  • 单文件绿色版(win-x64、自包含):目标机器无需安装 .NET 运行时,下载后直接双击运行。
    首次启动需要自解压到临时目录,会比常规安装版稍慢一点。

系统要求

  • Windows 10 1809 或更高 / Windows 11(64 位)

文档

许可

MIT License。运行时依赖 CommunityToolkit.Mvvm、Microsoft.Extensions.*、System.IO.Ports、
System.Management,均为 MIT 许可。

SeriTerm v1.0.0

Choose a tag to compare

@github-actions github-actions released this 01 Oct 04:33

首个发布版本:串口收发(文本 / HEX、多编码、空闲间隔与分隔符断帧)、发送(定时循环、文件分块)、
终端模式(逐键即发、回车/退格/Ctrl+C 透传、本地回显)、日志落盘与原始字节重放、自动重连(指数退避)、
查找与收藏(字符级高亮)、深 / 浅两套主题、自绘标题栏与窗口背景模糊、
单文件绿色发布(win-x64、自包含,目标机器无需安装 .NET 运行时)。

自动化测试 286 个(280 纯逻辑单测 + 6 回环集成测试)全绿。


下载

  • 文件:$(@{url=https://api.github.com/repos/newMalloc/SeriTerm/releases/assets/602439589; id=602439589; node_id=RA_kwDOU2P_kM4j6H-l; name=SeriTerm.exe; label=; uploader=; content_type=application/x-msdownload; state=uploaded; size=66801750; digest=sha256:341a38efe575762104bab99bd0c86165d1aaf2ad52fe3e1492906eeb2dab27e7; download_count=0; created_at=10/01/2026 04:33:46; updated_at=10/01/2026 04:33:49; browser_download_url=https://github.com/newMalloc/SeriTerm/releases/download/v1.0.0/SeriTerm.exe}.name) (v1.0.0 的产物文件名还没有带版本号,从 v1.0.1 起改成 SeriTerm-<版本>-win-x64.exe)
  • 大小:66801750 字节(63.7 MB)
  • SHA256:$sha
  • 单文件绿色版(win-x64、自包含):目标机器无需安装 .NET 运行时,下载后直接双击运行。
    首次启动需要自解压到临时目录,会比常规安装版稍慢一点。

系统要求

  • Windows 10 1809 或更高 / Windows 11(64 位)

文档

许可

MIT License。运行时依赖 CommunityToolkit.Mvvm、Microsoft.Extensions.*、System.IO.Ports、
System.Management,均为 MIT 许可。