Skip to content

feat(client): 优化启动、后台配置与设置体验,补齐预览链接 - #128

Merged
xiaoland merged 5 commits into
mainfrom
feat/web-peer-startup
Oct 12, 2026
Merged

xiaoland merged 5 commits into
mainfrom
feat/web-peer-startup

Conversation

@xiaoland

@xiaoland xiaoland commented Oct 11, 2026 •

Copy link
Copy Markdown
Member

意图与范围

已配置的浏览器原先必须依次完成 Peer 查询、注册更新、重复配置读取和首次续租才能打开业务页面,开启遥测时还有额外等待。现在已有 Peer 读取一次完整当前配置即可显示页面,注册更新和续租在后台完成;新身份仍等待创建成功。页面显示连接中、后台关闭或失败状态,保留恢复入口;浏览器任务与自动扩展恢复必须等待 lease 成功。后台 runtime 绑定本次连接,停止后不能继续续租或启动 worker,注册响应不会覆盖用户后续编辑的配置。

peer_lease_renew_interval_seconds 纳入 meta config,默认 30 秒,允许 0–86400 秒。正数统一控制续租和任务扫描,TTL 为间隔的三倍;0 停止后台任务、自动扩展恢复和可选遥测,保留数据页面与向外委派。关闭或更换连接先在原连接完成活跃任务清理;仅调节正数频率不会取消任务。较长间隔会延迟接单和离线判定。任务关闭等待完整读取、资格检查、领取、执行与清理;旧取消查询仅作用于查询时的执行实例,避免跨连接复用 Job ID 时误取消新任务。

Peers 刷新在公开 readiness 探测后重新读取 live lease,避免沿用唤醒前状态。readiness 超时默认 5 秒,Settings 可设置 1–300 秒。两项 meta 设置均随保存、导入导出和重新打开保留。路由按需加载,内容哈希资源使用一年 immutable 缓存;静态缓存只改善下载,不作为初始化等待的根因修复。

Settings 按部署连接、Peer 运行和遥测分组,语言和备份独立展示;用准确标签表达用途、单位及 0 关闭,移除长篇实现说明。关闭后台的必要后果仅在输入 0 时显示,保留统一保存入口、校验与配置格式。

修复 preview 地址只出现在 Wrangler 日志的问题:GitHub environment 使用 Pages alias,运行摘要记录 alias、部署快照 URL 和精确源码提交。由受信任 controller 的独立脚本报告输出,不重新引入网络验收门槛。

验证证据

  • 本次改动格式检查、git diff --check、全仓 pnpm lint、全 workspace pnpm type-check、pnpm build 与 package artifact contract 通过。
  • 完整 pnpm check 在格式检查阶段被工作区两份无关、未跟踪的 .agents/skills/vue-ts-code/ 文件阻挡;它们不在本 PR 中。其余检查分项通过。
  • pnpm test:e2e:web:21 项通过,覆盖启动与后台失败、新身份创建、reset/连接隔离、自定义续租与扫描、0 关闭和配置恢复。首次运行因 WSL Docker 引擎未启动而在测试前失败,恢复引擎后完整重跑通过。
  • 最后复核修复 pending claim 与 late abort 查询两个连接切换竞态。新增真实数据库 E2E 验证已发领取回包前关闭/保存等待、旧 handler 不执行及 Job aborted;扩展到 22 项。隔离实际 SDK 检查普通/非法参数领取、旧库清理、旧 abort 回包不取消新库同 ID 任务,以及正数调频保留活跃任务。
  • Settings 分组后完整 Web E2E 再次通过(21 项,14.6 秒);桌面 1280 和手机 390 宽度下检查分组、条件说明、保存与备份操作,无横向溢出。全仓 lint、类型检查和构建再次通过。
  • 隔离检查使用实际 JobManager handler/run 与当前版本 Extension Manager,验证正数调频保留活跃任务、关闭等待清理,以及扩展关闭后可重新激活。
  • 本地候选连接真实 self-hosted PostgREST:首次 Peer 请求至 Sources 页面出现,旧线上版本约 3.8–4.0 秒,候选约 0.8–1.9 秒;前端 origin 和网络条件不同,不代表固定提速比例或冷启动保证。0 模式静置 35 秒无续租、任务扫描或自动扩展读取;2 秒模式在 8 秒内续租和扫描各 5 次,TTL 均为 6 秒。临时测试 Peer 已删除并回读确认。
  • 与 CI 一致的 actionlint v1.7.12 验证全部 workflow。预览摘要隔离检查验证两种可点击链接、源码身份和非法元数据拒绝。
  • 更新现有 Unit TDD/Deployment 文档,维护原排查任务包;分支基于当前 main,未携带旧可观测性 PR 提交。

交付影响

修改环境无关的 Web artifact、共享浏览器 runtime 和 preview 报告。没有数据库迁移、服务配置或凭据变更;不迁移 Registry、不升级 Eco、不预装扩展。正式 Web 仍由受保护 main 的原交付流程发布。

预览入口:打开 PR #128 预览。pull_request_target 使用受信任 main workflow,因此本 PR 的新摘要/环境 URL 绑定合并后才用于后续运行;不能追补已结束 run 的 summary。原 run 的 GitHub deployment 已补上其实际部署快照 URL。

提交栈

  • 父 PR:无。
  • 子 PR:无。

风险与回滚

页面访问与后台执行资格是不同状态,worker 和自动扩展恢复的 lease 门槛不可移除。关闭后台会取消本浏览器正在执行的任务;已有 lease 自然过期,其他 Tab 和页面观察仍可能产生请求。已派发写入可能在原数据库完成,停止只阻止后续动作;首次必要配置 GET 仍可能等待服务唤醒。回滚本 PR 并重新交付 Web artifact 和受信任 workflow 即可,不需要数据回滚。

- 读取当前配置后开放页面,后台完成注册和续租,保留失败反馈与连接切换隔离
- 任务 worker 和自动扩展恢复等待 lease 成功,遥测不再阻塞启动
- 将 readiness 超时纳入 meta config,刷新探测后重读 live lease
- 按需加载路由并缓存内容哈希资源,补充文档与端到端验收
- 默认保留 30 秒,统一调整续租与任务扫描,0 停止后台参与
- 关闭或切换连接前在原连接完成任务和扩展清理,调频不取消活跃任务
- 补齐设置持久化、关闭状态说明及端到端验收
- 将 Pages alias 接入 GitHub environment URL
- 由可信控制器写入预览、部署快照与精确源码提交摘要
- 保留既有交付边界,不加入网络验收门槛
@xiaoland xiaoland changed the title fix(client): 缩短初始化等待并改进 Peer 刷新 feat(client): 优化启动与后台参与,补齐预览链接 Oct 12, 2026
- 精简标签与说明,按部署连接、Peer 运行和遥测分组
- 保留关闭后台的必要后果和既有保存流程
- 更新端到端标签及无障碍分组断言
@xiaoland xiaoland changed the title feat(client): 优化启动与后台参与,补齐预览链接 feat(client): 优化启动、后台配置与设置体验,补齐预览链接 Oct 12, 2026
- 等待完整任务流程,防止旧领取请求越过连接切换
- 取消查询绑定原执行实例,隔离跨连接复用的任务 ID
- 补充真实数据库领取回归并同步运行文档
@xiaoland
xiaoland merged commit dff7663 into main Oct 12, 2026
7 checks passed

This branch was successfully deployed

1 active deployment
preview — 74c648b3 Deployed Oct 12, 2026 by xiaoland via Retire exact Pages preview #108
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