Skip to content

SrcBox v1.1.14

Choose a tag to compare

@github-actions github-actions released this 03 Oct 14:11
· 101 commits to main since this release

v1.1.14 Release Notes

Release Date: 2026-10-03
Previous Version: v1.1.13


Highlights

本版是一次质量与安全补丁:基于对全仓代码的完整审查(224 个 C# 文件 / 3.4 万行),修复了 20+ 个确定影响功能的问题,并完成本地化与安全加固。回看/时移、设置持久化、录制、上传、菜单与多语言行为均有改动,详见下文。


Bug Fixes

问题 修复
设置页填写的第 2 个及以后 EPG 地址保存后消失(#38 多 EPG 无法维护) 表单复制与保存回写统一走 EpgConfig.CopyFrom,附加 EPG 列表不再丢失
上传队列「重试」按钮无效 重试会重置尝试次数并真正重启上传消费者,不再需要重启程序
主动停止后台录制被标记为「失败」并弹失败通知 新增结果判定:用户停止保持 Stopped/Cancelled,只有真实错误才算 Failed
系统代理为 http=host:port;https=... 形式时被忽略(源/EPG/台标全部直连失败) 重写代理解析(原判定条件恒假),支持逐协议写法
设置保存中途崩溃导致 user_settings.json 损坏、全套配置静默回默认 改为临时文件 + 原子替换(保留 .bak),失败记 Error;损坏文件备份为 .broken 并记录日志
旧版配置里的 CustomEpgUrl/CustomLogoUrl/TimeshiftHours 升级后失效 加载时自动迁移(新的嵌套配置优先)
设置窗口开着时从菜单改编码器,再保存会把改动回滚 复用设置窗口前重新载入全部表单字段
构建设置对象异常时用「默认设置」覆盖并落盘 异常时取消保存并提示,不再覆盖用户配置
全屏切换失败留下"主窗口隐藏、全屏未显示"的不可见状态(甚至异常穿透崩溃) 进入失败即回滚,覆盖层步骤失败只记日志;退出路径在 finally 中保证主窗口恢复
退出时 mpv 已释放但未置空,定时器/回调仍可能打到空句柄 退出先停全部定时器、解除引擎引用、Dispose 并置空;录制与多屏窗口定时器补齐释放
顶栏标题菜单与主菜单音量项可点击但无响应 回调为空的菜单项自动禁用;主菜单音量 ± 接到现有快捷键动作
mpv 属性名不存在导致功能静默失效 经随包 DLL 校验后修正:record-file→stream-record(录制回退真正可用)、源超时→network-timeout、HLS 直播边缘→demuxer-readahead-secs;移除无效的 RTP/音频下混属性
RTSP 认证从未生效(mpv 无 rtsp-user/rtsp-password 属性) 凭据改为注入播放地址(rtsp://user:pass@host/...)
>2GB 录像不显示时长 时长估算改为 long 运算,不再溢出
WebDAV 建目录失败仍报成功,后续上传报无关错误 MKCOL 真实失败时返回失败并记日志
回看/时移的「追加 epg_time」开关状态显示错误且不保存 表单复制与保存回写补齐该字段
代理失败后的"直连兜底"只生效一次 不再释放共享 handler(disposeHandler: false),兜底始终可用
精简模式退出后悬浮工具条残留、多屏窗口关闭后定时器不停 关闭/退出路径补齐定时器与控件释放
打开菜单越用越慢(菜单项列表只增不减) 见「已知问题」,本版未改动

Localization

  • 四种语言现在各定义 655 个 key,完全一致:
    • 补齐了此前四语言全缺导致界面空白的 key(Overlay_Speed、Drawer_Recordings_Upload 实为拼写错误,已改为已有 key;Common_Minimize/Common_Maximize 新增)。
    • 补齐 35 个只在代码里以中文兜底出现的 key(toast、录制状态、删除确认、预约状态等),现在英文/繁体/俄文都能正确显示。
    • 补齐各语言缺失的 13 个 key(Msg_ConfirmExit、EPG_Status_*、更新进度与 CDN 等)。
  • 新增单元测试:四语言 key 集合必须一致,且代码/XAML 引用的文本 key 必须存在(防止再次漂移)。

Security

  • HTTPS 证书默认校验:共享 HttpClient 原先接受任意证书(中间人可替换源/EPG/台标并读取其中凭据)。现在默认严格校验;如你的源使用自签名证书,请在「设置 → HTTP/RTSP」勾选新增的允许无效/自签名证书(改动后自动重建客户端,无需重启)。
  • WebRemote /logo/ 端点收窄:原先可读取本机任意文件,现在只允许台标缓存目录或程序目录下的图片文件,其余返回 403。
  • 日志脱敏:认证失败日志不再写入明文口令;LogRedactor 新增 password=/pwd:/JSON 键值/token= 形态的掩码。
  • 下载与并发上限:M3U/EPG 下载改为流式并限制 64MB(含解压后,防 gzip 炸弹);台标预热并发限制为 8。

Behavior Changes

  1. 自签名/无效证书的 https 源需要在设置里显式放行(见上)。
  2. /logo/ 仅服务图片文件(WebRemote 显示台标不受影响)。
  3. 设置目录会新增 user_settings.json.bak(上一份)与 user_settings.json.broken(仅在文件损坏时)。
  4. 提醒的台标解析改为非阻塞(本地缓存命中则显示,否则后台预热,下次生效),不再有卡死风险。

Known Issues

  • 菜单构建仍会累积内部菜单项引用(长时间运行后菜单刷新略慢),已在审查中记录,本版未改动。
  • 仍有大量 catch { } 未记录上下文(本版补了最影响排障的几处)。
  • 播放侧的 tls-verify 保持原样(仅流播放),HTTP 下载侧才走严格校验。

Download