## Problem and outcome / 问题与结果 App startup rejected short or non-ASCII site passwords, viewers lacked picture-click playback gestures, and text-mode hints hid the existing illustrations. This phase accepts site passwords verbatim, combines shared illustrations with localized captions in tooltips and stage overlays, and adds desktop single-click play/pause and double-click fullscreen through the existing playback owner. Pure-visual mode remains available. App ZIP names are now stable per platform, allowing the website to use GitHub's native latest-download URLs. The App update link selects the ZIP matching its compiled OS and architecture from the checked release metadata, falling back to the release page if the package is unavailable. Verified Gitee links retain their explicit release version. The Windows packaging workflow also stops restoring a redundant Go toolchain cache that caused setup-go to fail. ## Release notes ### 中文 - 中英文操作提示和画面状态覆盖层加入动态漫画,说明更直观;纯视觉模式继续保留。 - 观众可单击画面暂停或继续播放,双击进入或退出全屏;触屏仍通过单击显示或隐藏播放栏。 - 修复设置短密码、中文密码时 App 或 Server 无法启动的问题。站点密码仍可留空。 - 官网各系统的 GitHub 下载按钮直接获取最新 ZIP 包,并保留 Gitee 备用下载线路。 - App 内的更新入口直接下载对应系统和架构的 ZIP 包。 ### English - Chinese and English tooltips and picture status overlays now pair concise explanations with animated illustrations. Pure-visual mode remains available. - Viewers can click the picture to pause or resume and double-click to enter or exit fullscreen. Touch taps continue to show or hide playback controls. - Fixed App and Server startup rejecting short or non-ASCII site passwords. Site passwords remain optional. - Each platform's GitHub download button now fetches the latest ZIP package, with Gitee retained as an alternative download source. - App update links download the ZIP matching the installed platform and architecture. ## Verification / 验证 - `npm run check`: 59 test files / 774 tests, TypeScript and production build passed. - `npm run check:client-core`: Go tests, formatting, vet and supported local target builds passed for the included runtime changes. Native macOS packaging remains on its macOS runner. - Desktop and 390px touch playback checks passed, including double-click without an intermediate pause and control/keyboard interaction. - Illustrated tooltip checks passed in Chinese, English and pure-visual modes, light/dark themes, 260/360/390px layouts, keyboard, touch hold and reduced motion. User accepted the resulting UI. - Real stage overlay components passed 46 checks across the three modes and 260/390/1280px layouts, including keyboard play activation, reduced motion, and no overlay over healthy playback with a quality limitation. - Bounded release review confirmed JSON password authentication retains old bodyless Bearer compatibility and ZIP names match packaging, publisher, mirror and website consumers. - After checking both providers' real API shapes, 27 focused update tests and type-checking passed; anonymous GitHub and Gitee metadata each selected all three actual platform ZIPs without downloading them. - Documentation, repository hygiene and diff checks passed. ## Impact / 影响 Compatible feature release. Signaling, Native control, capture protocol and persistent room schema are unchanged. The new latest-download filenames must be published before the matching website deploys; the existing CI-to-Website sequence provides that order. Production service updates use the immutable Server artifact and bounded rollback. Broader physical macOS/Linux, network and endurance acceptance stays under the existing documented deferrals.
6.3 KiB
Current TODO Ledger
Last reviewed: 2026-09-13
Only Now is executable. Product modules own behavior; Git/PRs own completed history. A parked idea is not implementation authority.
Now
- Post-launch monitoring. Collect App/Server feedback and verify the public download path and deployed services after product releases. Follow the deployment runbook for the private service and keep public demo deployment separate. Preserve the owner's device/network deferrals.
Keep fixes on a maintenance branch until acceptance. The public release is the compatibility baseline; private service deployment stays independent.
Next: P2P Connection And Feedback Review
After the current phase, measure connection success, time to first picture and failure causes on representative networks, especially App and P2P-only sites. Review user progress/failure feedback and useful privacy-conscious diagnostics. Trace the existing ICE and P2P/SFU handoffs, including background P2P attempts behind working SFU media; compare SFU-first startup with measured current behavior before choosing changes. Preserve one graph and one operation under the routing contract and ADR-0005. Prior ownership audits do not establish better connection success or speed; this note adds no retry policy.
Parked Product Work
The reported persistent low resolution after Viewer backgrounding and square black video remain unconfirmed incident leads, separate from the closed, reproduced reconnect ownership bug. They do not block this release. Reopen from matching upstream/receiver evidence; local H264 relay background checks did not reproduce them. Missing NAT attempt text alone does not prove skipped attempts. If Native adaptation is implicated, compare actual VSE limitations with sender quality evidence before changing policy. Do not add retry budgets, visibility resets or resolution heuristics without proof. Sanitized aggregates and the isolated reconnect reproductions are diagnostic evidence, not a recovery policy. Game/background settings behavior also remains an unconfirmed incident lead; reopen from actual control actions and matching requested/applied media evidence. Clarify whether Viewer-local pause should survive replacement media before adding playback-intent state; the current binding starts new media unless the Host is paused. No preservation policy has been accepted for that transition.
- Representative device/network acceptance. Resume the remaining matrix in verification status when directed, preserving the owner's platform deferrals. Correlate freezes with publisher/receiver evidence before changing media policy. Run physical workloads serially from stable executable paths with cleanup between runs.
- Broader quality work. Reopen from measured benefit at acceptable complexity. Preserve chosen profiles, bitrate ceilings, endpoint capacity and P2P-first routing unless a new accepted decision supports changing them. No weighted score, all-pairs probes, periodic rebalancing, parent-wide prediction or room-wide minimum. Check whether a quality move merely shifts pressure to another parent's siblings before widening policy.
- Control/resource fairness and input review. Reassess the authenticated WebSocket/SFU owner, HTTP/body/resource bounds, authorization and error/log handling before adding a queue or limiter. No parallel security framework, accounts, risk score or speculative policy layer. Measure signaling-lock contention and synchronous diagnostic I/O before changing the lock or execution model; their cost remains a tradeoff.
- Reachable ownership/refactor work. Retain Host/Viewer page media-session extraction as a candidate alongside related behavior changes. Evaluate clear resource owners, fewer shared writers and a smaller change surface under engineering review; file size alone does not justify a split. The completed audits do not close this candidate. Reopen C=3 structural-intent retention, SFU failure during unrelated prepare and multi-child evidence ownership only with current-contract reproductions. No new revision namespace, failure-state mirror or topology queue by default.
- Storage fault recovery. Choose and verify a damaged-disk/COMMIT/ROLLBACK recovery policy before adding catch-and-continue or retries. This failure boundary remains unestablished after ordinary persistence checks.
- Platform output. Reopen for a registered receiver acting as an ordinary Viewer only after the platform-output gate passes.
- Full UI themes. After the base version, research themes that can change layout, composition and motion, including a restrained graphic/cinematic direction with original Piik assets. Assess extension boundaries and cost before scheduling any theme/plugin API. Design experiments remain in Git history, outside the main source tree.
- Community translations. Prepare the existing locale catalogs for community contributions when scheduled. No new translation framework is needed for the current Chinese, English and optional pure-visual modes.
- Website illustration polish. Match the Host's held prop to the four existing hero activities: gamepad, paintbrush, camera and remote. Keep the accepted bright cast, floating hands and shared activity timing.
- First-share startup quality. Verify that the existing five-frame startup
protection for
motion + balancedstill takes effect on every active sender and shared-encoding path. Compare with the documented startup regression and check whether later audits or refactors bypassed a necessary guard. Do not remove the workaround without evidence that first-share quality remains correct. - 32-bit App packages. Deferred until suitable native capture dependencies are available. Windows x86 core compilation alone does not establish App support: the pinned capture SDK currently has no Windows x86 package. Complete native packaging and real launch/capture acceptance before advertising a 32-bit target.