🚀 SeatFlow v1.3.0
发布时间:2026年6月28日
🆕 新增
- 📦 .seatsets 应用数据打包:将全部应用数据(设置、会场、名单、快照、策略配置)打包为单个 .seatsets JSON 归档文件
- 分块 SHA256 完整性校验,防篡改检测
- 三种导入途径:设置页按钮 / 双击 .seatsets 文件(OS 文件关联)/ 首次启动自动发现
- 尽力而为策略:单文件失败不中断整体,返回详细计数
- 类别选择对话框(SeatSetsSelectionWindow),支持导出/导入模式
- 📝 日志系统:Serilog 4 + Microsoft.Extensions.Logging,文件 Sink 输出,支持按模块分级覆盖
- 🛡️ 文件关联:Windows 注册 .seatsets 文件类型,命名管道进程间通信实现单实例文件传递
- 📋 策略数据韧性:无效策略/数据集/会场配置自动清理(ConfigCleanupService)
- 🧪 11 个 SeatSetsServiceTests 单元测试
- 📖 文档:docs/LOGGING.md、docs/SEATSETS_FORMAT.md
🔧 改进
- 项目重命名:A_Pair → SeatFlow(命名空间、文件结构、脚本全面同步)
- 导入校验增强:提前扫描时机、管道传递文件信息、修复 seatsets 工作目录错误
- 引导系统修复:退出死锁修复、引导竞态修复、窗口失焦处理、步骤顺序调整
- 人员管理:"仅更新数据集"功能、脏数据检测与拦截覆盖全部页面
- 发布脚本:自包含/依赖框架输出文件标签改为 full / slim
🎨 UI 改进
- 弹窗主题跟随:所有对话框标题栏随 Light/Dark 主题变色
- 禁用全屏按钮:所有窗口隐藏最大化按钮
- 设计令牌迁移:Typography 排版类新增 bodySmallStrong、hero;全项目 120+ 处硬编码替换为排版/间距令牌
🐛 修复
- SeatSetsImportResult.Failed 计数器跳过块时产生负数
- VenueConfigurationViewModel 离开页面后预览数据残留
- OnboardingService.AnimateCardBounce async void 崩溃风险
- Serilog dispose:true 关闭时潜在竞态条件
- 版本检查脚本 seatsets 类型缺少 Model 类映射
- 导入数据后未自动刷新问题
- 教师视角导出列镜像问题
- 编译时 Warning 清理
下载注意事项
版本选择
每个平台提供两种版本,文件名格式为 Seatflow-{类型}-{平台}:
| 后缀 | 类型 | 体积 | 前提 |
|---|---|---|---|
-full- |
自包含(full) | ~150 MB | 无需安装任何运行时,开箱即用 |
-slim- |
依赖运行时(slim) | ~80 MB | 需安装 .NET 10 运行时 |
文件名示例:
Seatflow-v1.3.0-full-win-x64-unsigned.exe= 自包含版 · Windows 64位 · 无需装 .NET
程序未签名
当前版本尚未进行代码签名,运行时可能遇到以下情况:
- Windows:双击后 SmartScreen 弹出 "Windows 保护了你的电脑" 警告。点击「更多信息」→「仍要运行」即可。
- macOS:首次打开时提示 "无法验证开发者"。前往「系统设置 → 隐私与安全性」→ 点击「仍要打开」。
- Linux:下载后需手动赋予执行权限:
chmod +x Seatflow-v1.3.0-full-linux-x64-unsigned && ./Seatflow-v1.3.0-full-linux-x64-unsigned
后续版本计划申请代码签名证书以消除这些警告。
使用方式
- 将下载的单个可执行文件放入一个空文件夹
- 直接运行即可(程序会在同目录创建
AppData/存放配置和数据)
下载后请校验哈希值
| 文件 | SHA256 |
|---|---|
SeatFlow-v1.3.0-full-linux-x64-unsigned |
fe54dfef7058295c1b607e3d451842afbd7c38cc7a498db12375fec0140c788f |
SeatFlow-v1.3.0-full-osx-arm64-unsigned |
df3895e6546a6958da519bc76f5ecb449728bed52194ca9c546e3c7882fb2006 |
SeatFlow-v1.3.0-full-osx-x64-unsigned |
275c235fc37face332c228b5f046e8888810d265978047b7dc7bcde31f0762cd |
SeatFlow-v1.3.0-full-win-x64-unsigned.exe |
eddf082185cc5c7e871e3cafb437b60ed71741fa4dcda50b308b1c2ac740a7de |
SeatFlow-v1.3.0-slim-linux-x64-unsigned |
fe19f99f79ab8abb6f23b97fd1cb3f4531aaf4b220dbd7c2a005c794672230d6 |
SeatFlow-v1.3.0-slim-osx-arm64-unsigned |
801c58f09a30fddcdb0d6d9b3392382eb52b4c7ae6bee436ca76fce537b243ca |
SeatFlow-v1.3.0-slim-osx-x64-unsigned |
98553d4e06ab0f3e38f554e0b55b82e53e6fe72742752279801dfec80a1c8648 |
SeatFlow-v1.3.0-slim-win-x64-unsigned.exe |
b10595597272e693cf51f4fc8a657277d6b104384c5e52a2407c36e183eb12cb |
完整 Changelog:参见 CHANGELOG.md (https://github.com/Helio-RC/Seatflow/blob/main/CHANGELOG.md)