Repository navigation
Show install progress and retry guidance / 显示安装进度与重试提示 - #2
Merged
icodesign merged 3 commits intoSep 16, 2026
Merged
Conversation
Track package transfer state for each install page, preserve native install links and download quota accounting, and show actionable waiting, progress, interruption, and completion feedback. Include regression tests and WebP QA screenshots. cosigned by OpenAI Codex at M1 Max
cosigned by OpenAI Codex at M1 Max
Separate observed transfer completion from successful-response quota accounting. Keep retry liveness active while retransmitting already-covered bytes. Refresh stale iOS manifest grants without reviving package or status access. Add regression coverage and document resumed and stale-page behavior. cosigned by OpenAI Codex at M1 Max
Owner
|
Awesome. Thanks! |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
The install page now responds immediately when users tap Install, shows package transfer progress, and offers confirmation, interruption and retry guidance.
安装页现在会在点击 Install 后立即反馈,显示安装包传输进度,并提供系统确认、中断和重试提示。
Changes / 变更
Each page links its iOS manifest or Android download to an authenticated, non-cacheable status endpoint. Native install/download links still work with JavaScript disabled.
每个页面通过授权令牌关联 iOS manifest 或 Android 下载与不可缓存的状态接口;关闭 JavaScript 后,原生安装/下载链接仍可使用。
Range progress deduplicates repeated bytes and includes data sent before an interruption. A resumed suffix can finish the displayed transfer independently of successful-response quota accounting. A separate activity counter keeps active retransmissions from falsely appearing stalled.
范围进度会去重并保留中断前已传输的数据;续传剩余部分后,页面可正确显示传输完成,成功下载次数仍按原有规则计算。独立的传输活动计数避免将重传误判为停滞。
An expired or evicted iOS page grant can obtain a fresh manifest grant while the share remains available. Expired shares and stale package/status tokens remain blocked. The server keeps final status available for five seconds after the download limit is reached.
分享仍有效时,iOS 旧页面中过期或被清理的令牌可在请求 manifest 时换取新令牌;已过期分享及旧的下载/状态令牌仍被拒绝。达到下载次数限制后,服务器保留五秒最终状态查询时间。
Progress measures bytes sent by the server and may run ahead of the device because of tunnel buffering. Transfer complete does not mean installation succeeded; users are directed to the Home Screen or Android downloads.
进度表示服务器已发送的字节,隧道缓冲可能使其领先于设备实际接收量。传输完成不代表安装成功;页面会提示用户检查主屏幕或 Android 下载目录。
Validation / 验证
Local checks passed / 本地验证通过:
cargo test --locked: 151 tests / 151 项测试。node --test tests/install-progress.test.mjs: 11 tests / 11 项测试。Physical-device installation, a live tunnel and Intel builds remain unverified. / 尚未验证真机安装、真实隧道和 Intel 构建。
QA screenshots / QA 截图
Captured during earlier local WebKit QA using a synthetic IPA fixture. These illustrate browser feedback; physical-device installation remains unverified.
截图来自此前使用测试 IPA 的本地 WebKit QA,用于展示网页反馈;真机安装仍未验证。
Human QA / 人工验证步骤
Share a signed IPA over HTTPS, open it in Safari on a provisioned iPhone, tap Install and confirm the system prompt. Check immediate feedback, transfer progress and the app on the Home Screen.
通过 HTTPS 分享已签名 IPA,在已配置的 iPhone Safari 中打开,点击 Install 并确认系统提示;检查即时反馈、传输进度及主屏幕上的应用。
Cancel the prompt, interrupt a transfer, then retry or resume. Verify helpful guidance, accurate progress and no false installation result. An active retry of already-sent data should not show a stall warning.
取消系统提示、中断传输,再重试或续传;确认提示和进度正确且不误报安装结果。正在重传已有数据时,不应误报停滞。
Keep an iOS page open beyond its 30-minute progress session, then tap Install while the share is still available. Verify native handoff still works; reload the page for a new tracked attempt. Also check native links with JavaScript disabled and an Android APK download.
保持 iOS 页面打开超过进度会话的 30 分钟有效期,在分享仍有效时点击 Install;确认仍可触发原生安装,刷新页面可跟踪新尝试。同时验证关闭 JavaScript 的原生链接及 Android APK 下载。
Repeat with
--max-downloads 1; confirm final status is available for five seconds and new download attempts are blocked.使用
--max-downloads 1重复测试;确认最终状态可查询五秒,且新的下载尝试被拒绝。