Skip to content

fix(dsh): synchronize observation state and manage thumbnail capture - #190

Merged
iuyo5678 merged 4 commits into
mainfrom
fix/dsh-observation-sync-and-capture
Sep 7, 2026
Merged

fix(dsh): synchronize observation state and manage thumbnail capture#190
iuyo5678 merged 4 commits into
mainfrom
fix/dsh-observation-sync-and-capture

Conversation

@iuyo5678

@iuyo5678 iuyo5678 commented Sep 7, 2026

Copy link
Copy Markdown
Collaborator

问题表现

  • 初始化或重连时,独立请求的状态快照可能覆盖较新的 SSE 事件,导致状态回退或已移除会话重新出现。
  • 缩略图加载失败后,同一图片 ID 无法自动恢复;迟到的加载结果还可能污染缓存或泄漏 Blob URL。
  • 无人查看观察画面时,仍持续执行周期截图,造成额外开销。

修复方案

  • 通过同一条 SSE 连接依次发送完整快照和增量事件,重连时重新同步,并忽略旧连接的迟到消息。
  • 缩略图失败后按 1 秒、3 秒间隔最多自动重试两次,支持手动及重连重试;保留上一张可用图,清理失效结果、图片 URL 和重试定时器。
  • 区分状态订阅与截图需求:最后一个可见观察画面关闭、折叠或隐藏后暂停截图,恢复查看时继续;支持多个观察画面及画中画独立判断可见性。

范围与边界

改动限定在 DSH 观察模块及其测试。暂停时取消待调度截图,并在排队任务执行前再次检查需求;已经开始的截图允许完成。客户端依赖新增的 SSE snapshot 事件,服务端和客户端需随插件一起更新。

验证

  • 完整插件测试 210 项通过,覆盖快照同步、旧连接消息、重试上限、资源清理、多个观察者及可见性生命周期。
  • 类型检查、格式检查、git diff --check 和生产构建通过。
  • 尚未进行完整 DSH 宿主实机回归;画中画和可见性行为通过模拟环境测试。

@iuyo5678
iuyo5678 merged commit 1eeb55a into main Sep 7, 2026
4 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants