Repository navigation
Releases: newMalloc/SeriTerm
Release list
SeriTerm v1.1.3
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
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
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如实报出。
- 8 个工具:
SeriTerm.exe --mcp-stdio:同一个 exe 的第二种模式。被 AI 客户端拉起时它不建窗口,
只把 stdio 上的 MCP 请求转成一次命名管道往返;界面没开着会自动把界面拉起来(最多等 20 秒)。- 启动器认识
--mcp-stdio:这种模式下它会陪着主程序直到客户端断开——
启动器原本"拉起主程序就自己退出",而 MCP 客户端盯着的正是它拉起的那个进程,早退会被当成连接断开。
变更
- 左栏新增「AI 接入」卡片:服务开关、权限勾选、服务状态、已接入客户端数、复制配置;
- 状态栏新增
MCP: 只读 / 完全权限,完全权限用警示色加粗显示。
测试
- 新增 52 个 MCP 单元测试(帧缓冲淘汰与游标、限速器、关键词匹配、派发层护栏、stdio 协议、管道客户端),
含两个回归用例:tools/call只把params.arguments转发给后端、字符串 id 原样回传; dotnet build0 警告 0 错误;dotnet test354/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
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
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
v1.0.2 — 2026-10-01
修复
- 修复自动重连的一处竞态:链路故障后立刻停止重连(关串口、关掉自动重连、或退出程序)时,
重连监督者可能抛NullReferenceException。原因是BeginReconnect里Task.Run的 lambda
捕获的是字段_cts,而StopAsync会先把_cts置空、再await这个任务——
lambda 若晚一步开跑就是空引用,异常还会经StopAsync冒给调用方。
现在 CTS 先落进局部变量再交给后台任务。
这扇窗口只有几个指令宽,本地反复跑几百次都不出现,是 CI 撞出来的(见docs/development-plan.md11.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
新增
- 标题栏右上角新增「关于」入口(按 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
首个发布版本:串口收发(文本 / 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 许可。