Skip to content

fix(sharing): 稳定网页观看端启动与诊断#74

Merged
iamsyc merged 6 commits into
mainfrom
codex/stabilize-viewer-loading-overlay
May 10, 2026
Merged

fix(sharing): 稳定网页观看端启动与诊断#74
iamsyc merged 6 commits into
mainfrom
codex/stabilize-viewer-loading-overlay

Conversation

@iamsyc
Copy link
Copy Markdown
Owner

@iamsyc iamsyc commented May 10, 2026

What Changed

  • Shortened the WebRTC publisher startup path by removing the fixed ICE gathering wait before handing the answer back to the browser.
  • Added bounded first-frame and publisher-startup waits so stalled startup paths retry or report codec preparation instead of hanging indefinitely.
  • Split the display page into HTML, CSS, messages, and runtime resources.
  • Updated viewer diagnostics so low-motion desktop updates are described as change-driven screen updates while real degradation remains tied to resolution loss, packet loss, or dropped frames.
  • Added coverage for relay startup timeout behavior, service restart cleanup, socket restart reuse, and display page runtime diagnostics.

Why

Opening the viewer page could feel slow before the first picture appeared, and static desktop scenes made browser WebRTC freezeCount look worse than the actual stream quality. The flow now reaches negotiation sooner, handles missing first frames with bounded retry behavior, and reports static low-motion scenes with a product diagnosis that matches how screen capture emits frames.

Validation

  • swift test --filter 'RelaySessionHubTests|WebServerSocketIntegrationTests|WebServiceControllerTests|SharingEndToEndIntegrationTests'
  • xcodebuild build -workspace VoidDisplay.xcworkspace -scheme VoidDisplay -configuration Debug -destination 'platform=macOS'
  • Scanned .ai-tmp/pr-merge/xcodebuild-debug.log for warning/error patterns: no matches.
  • git diff --check

Manual Verification

  • Browser viewer reported AV1 3840×2160 source and playback resolution.
  • Dynamic motion on the shared display reached about 50.78 decoded fps over a 5-second sample with no dropped frames in the observed interval.
  • Static desktop low-fps readings were confirmed to come from change-driven screen updates rather than reduced source resolution.

@github-actions
Copy link
Copy Markdown

github-actions Bot commented May 10, 2026

CI Summary

Run: Open

Check Status Details
Change Scope ui_code code=true
ui=true
script=true
product=true
test=true
ci=true
release=true
dependency=false
tooling=true
docs_only=false
unknown=false
Required Gates derived static=true
dependency=false
unit=true
xcode=true
ui=true
release=true
Dependency Review skipped required=false
high and critical vulnerabilities block
Static Checks success required=true
actionlint, shellcheck, shfmt, SwiftFormat, SwiftLint, action pinning
Unit Tests success required=true
Swift tests: 552
Go packages: 2
Reason: passed
Artifact: unit-gate
Xcode Build success required=true
Debug build with zero warning scan
Artifact: xcode-build
UI Smoke success required=true
Failure classification is written by ui-smoke-summary.json in each artifact.
Artifacts: ui-smoke-baseline, ui-smoke-permissionDenied, ui-smoke-rebuildFailed
Release Smoke success required=true
arm64=success
intel64=skipped
PR release smoke requires arm64 only.
Artifacts: release-smoke-arm64
Release verify summaries are produced by release.yml before publishing.
Artifacts link Open artifacts
CI Gate success single branch protection check

iamsyc added 3 commits May 11, 2026 03:03
- 缩短 WebRTC 发布端建连等待并为首帧等待增加超时重试
- 拆分网页观看端资源并修正低变化画面的诊断口径
- 补充 Relay、WebServer 和服务重启相关测试覆盖
- 新增 mise.lock 覆盖 macOS arm64 与 x64 工具下载
- CI 下启用 mise locked 安装以避开 GitHub API 限流
- 补充 mise.lock 的分类与 workflow 触发规则
- 对刚停止 listener 的 EADDRINUSE 做短暂重试
- 保留真实端口占用的最终失败结果
- 调整同端口重启测试避免依赖单次内核释放时机
@iamsyc iamsyc force-pushed the codex/stabilize-viewer-loading-overlay branch from 0aad10a to a0ef22f Compare May 10, 2026 19:08
iamsyc added 3 commits May 11, 2026 03:12
- CI locked bootstrap 禁用安装期 provenance 复验
- 移除 lockfile 中需要在线 attestation 的 provenance 标记
- 验证无 GitHub token 的冷启动工具安装流程
- 为 static、unit、xcode、ui-smoke 增加 bootstrap profile
- CI job 按实际需求安装最小工具集合
- 避免非静态 job 安装无关 syft 触发 GitHub API 限流
- 为 ui-smoke profile 安装 ripgrep

- 在 UI smoke 脚本入口显式校验 rg

- 修复 xcresult 解析缺少工具导致的 unknown 结果
@iamsyc iamsyc merged commit b9525f3 into main May 10, 2026
12 checks passed
@iamsyc iamsyc deleted the codex/stabilize-viewer-loading-overlay branch May 10, 2026 19:37
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