Repository navigation
SrcBox v1.1.14
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(
- 新增单元测试:四语言 key 集合必须一致,且代码/XAML 引用的文本 key 必须存在(防止再次漂移)。
Security
- HTTPS 证书默认校验:共享 HttpClient 原先接受任意证书(中间人可替换源/EPG/台标并读取其中凭据)。现在默认严格校验;如你的源使用自签名证书,请在「设置 → HTTP/RTSP」勾选新增的允许无效/自签名证书(改动后自动重建客户端,无需重启)。
- WebRemote
/logo/端点收窄:原先可读取本机任意文件,现在只允许台标缓存目录或程序目录下的图片文件,其余返回 403。 - 日志脱敏:认证失败日志不再写入明文口令;
LogRedactor新增password=/pwd:/JSON 键值/token=形态的掩码。 - 下载与并发上限:M3U/EPG 下载改为流式并限制 64MB(含解压后,防 gzip 炸弹);台标预热并发限制为 8。
Behavior Changes
- 自签名/无效证书的 https 源需要在设置里显式放行(见上)。
/logo/仅服务图片文件(WebRemote 显示台标不受影响)。- 设置目录会新增
user_settings.json.bak(上一份)与user_settings.json.broken(仅在文件损坏时)。 - 提醒的台标解析改为非阻塞(本地缓存命中则显示,否则后台预热,下次生效),不再有卡死风险。
Known Issues
- 菜单构建仍会累积内部菜单项引用(长时间运行后菜单刷新略慢),已在审查中记录,本版未改动。
- 仍有大量
catch { }未记录上下文(本版补了最影响排障的几处)。 - 播放侧的
tls-verify保持原样(仅流播放),HTTP 下载侧才走严格校验。