Skip to content

fix(capture): 收敛屏幕监听预览窗口行为与自验证#39

Merged
iamsyc merged 11 commits intomainfrom
codex/capture-preview-self-verify
Mar 12, 2026
Merged

fix(capture): 收敛屏幕监听预览窗口行为与自验证#39
iamsyc merged 11 commits intomainfrom
codex/capture-preview-self-verify

Conversation

@iamsyc
Copy link
Copy Markdown
Owner

@iamsyc iamsyc commented Mar 12, 2026

变更内容

  • 收敛屏幕监听预览窗口的窗口行为与工具栏外观,修复黑边、全屏、缩放、标题栏高度和光标开关相关问题
  • 新增预览自验证链路、诊断测试与排障文档,便于后续独立验证预览窗口画面
  • 修复本地化敏感测试与本次协议扩展后的测试桩,保证本地单测和 UI smoke 可继续通过

变更原因

  • 预览窗口此前在左右黑边、全屏工具栏、缩放比例、标题栏布局和光标状态语义上存在一系列可见问题
  • 这些问题彼此耦合,需要在同一条分支里把窗口行为、验证手段和测试兼容性一起收敛

验证方式

  • xcodebuild -project VoidDisplay.xcodeproj -scheme VoidDisplay -configuration Debug -destination 'platform=macOS,arch=arm64' -derivedDataPath .ai-tmp/pr-verify-3/build build
  • xcodebuild -project VoidDisplay.xcodeproj -scheme VoidDisplay -destination 'platform=macOS,arch=arm64' -derivedDataPath .ai-tmp/pr-verify-3/unit-tests -testLanguage zh-Hans -testRegion CN -only-testing:VoidDisplayTests test
  • xcodebuild -project VoidDisplay.xcodeproj -scheme VoidDisplay -destination 'platform=macOS,arch=arm64' -derivedDataPath .ai-tmp/pr-verify-3/home-smoke -only-testing:VoidDisplayUITests/HomeSmokeTests test

iamsyc added 10 commits March 11, 2026 13:33
- 新增参数化预览诊断会话与真实首帧录制回放支持

- 新增专用 UI test、截图导出和像素分析脚本

- 接入自动开窗与预览内容标识,便于本地独立判断黑边问题
…分析脚本,提升超宽和圆角场景下的像素判定稳定性\n- 补充黑边问题定位、修复原理与自验证流程文档
- 将写死英文的错误提示断言改为与产品代码同源的本地化文案
- 覆盖虚拟显示器、屏幕监听与 Web 服务相关的语言敏感测试场景
- 验证中英文环境下整套 VoidDisplayTests 均可稳定通过
- 预览窗口改用 unified toolbar,避免 compact 标题栏下 principal 分段控件明显偏位
- 将黑底限制在实际预览画面层,保留内容映射的悬浮感并避免 toolbar 被整块压黑
- 撤回失败的滚动隐藏尝试,保持交互代码和视图层级简洁
- 统一预览窗口在适应与 1:1 模式下的 toolbar 材质承接
- 全屏时自动隐藏 toolbar 并修复 1:1 滚动宿主背景影响
- 为适应模式补充拖拽 resize 比例锁定并更新排障文档
- 以 NSWindowDelegate 主导预览窗口的缩放、拖拽与全屏行为
- 删除通知驱动与 contentAspectRatio 补丁,保留 1:1 自由拖拽
- 为双击标题栏缩放与全屏隐藏 toolbar 保留原 delegate 转发能力
- 为适应模式的缩放与拖拽结果增加物理像素对齐,消除静态细白边
- 将原窗口代理改为强持有,确保窗口行为转发在接管期间稳定有效
- 保持 1:1 自由拖拽与现有预览窗口视觉方案不变
- 预览窗口改用 unifiedCompact 工具栏样式,降低标题栏整体高度
- 为比例切换分段控件使用 small control size,保持紧凑且几何居中
- 保持现有预览窗口缩放、全屏与背景承接行为不变
- 为屏幕监听预览增加光标开关并补齐多语言文案
- 维持单条 SCStream 复用并支持共享时强制显示光标
- 共享进行中将预览开关同步为开启态并禁用交互
- 为采集相关 mock 和 fake 会话补齐新的光标控制协议方法
- 同步更新测试用监控会话的 capturesCursor 初始字段
- 确保本地单测与 HomeSmokeTests 可继续编译并通过
@github-actions
Copy link
Copy Markdown

github-actions bot commented Mar 12, 2026

CI Summary

Run: Open

Check Status Details
Change Scope code code-relevant change set
Unit Tests success required
UI Smoke Tests (matrix: baseline + permissionDenied + rebuildFailed) success required; matrix: baseline + permissionDenied + rebuildFailed
Release Build Check (Release arch smoke: arm64 + x86_64) success required; Release arch smoke check (arm64 + x86_64 with thin/sign/verify)
CI Gate success required; driven by Unit Tests + UI Smoke Tests + Release Build Check

Gate rule: target main 的代码相关 PR 必须通过 Unit Tests + UI Smoke Tests + Release Build Check

- 补充 CaptureController 光标状态同步用例
- 补充 CaptureMonitoringService 光标状态更新用例
- 覆盖 AppBootstrap 诊断场景与默认监控服务分支
@iamsyc iamsyc merged commit 62681ad into main Mar 12, 2026
9 checks passed
@iamsyc iamsyc deleted the codex/capture-preview-self-verify branch March 12, 2026 04:02
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.

1 participant