Page:
Task-72-Fix-Supervisor-SYB-startup-race
Pages
Android-Agent-API-Contract
Architecture-and-Code-Map
Business-Rules-and-Glossary
Common-Changes
Delivery-Issues
Deployment-Template
Deployment-and-Operations
Development-Workflow
Home
Local-Development-and-Verification
OnePlus-Real-Device-Acceptance
PDD-Detail-Rule-Migration-Analysis
Product-Requirements-Overview
Project-Profile
SYB-ERP-Interface-Contract
Task 26 PDD spec traversal
Task 31 PDD product archive
Task 32 procurement closed loop prototype
Task 33 purchase task contract
Task 34 purchase task state machine
Task-35-Admin-采购任务与人工处理页面
Task-36-Android地址后缀不可逆门禁与创建订单
Task 40 Shopee product archive
Task 41 SYB product import
Task-42-Android-采购演练规则与持久执行基线
Task-43-升级-DevHarness-文档基线
Task-43-升级-GoAuto-DevHarness-文档基线
Task-44-Admin-SYB商品列表规格匹配入口与批量采购创建
Task-47-升级-DevHarness-文档基线至-bfdf648
Task-49-店铺管理与-SYB-同步店铺过滤
Task 50 SYB async sync
Task 51 SYB list layout
Task 52 SYB sync diagnostics
Task-53-补齐采购规则参数化动作契约
Task-54-统一采集与采购任务设备状态
Task-55-补齐采购任务-Admin-列表与详情查询接口
Task-56-采购-Admin-接口成功响应兼容
Task-57-优化采购管理筛选栏布局
Task-58-采购管理失败任务批量重试
Task-59-修复-PDD-规格入口误触商品评论页
Task-60-修复可选颜色切换后价格缺失
Task-61-修复采购规格探测未识别安全入口
Task-62-采购规格标准化匹配与-AI-Provider-设置
Task-63-采购列表刷新不得触发-AI-规格匹配
Task-64-修复正式采购规格滚动定位与重复探测卡死
Task 65 purchase address panel recovery
Task 66 Android payment chooser reconciliation
Task-67-SYB-与采购任务蝦皮订单号
Task-68-调整-SYB-商品页顶部工具栏与采购入口
Task-69-蝦皮与-PDD-规格匹配.-
Task-70-从-cmautobuy-线上库导入-PDD-与蝦皮商品
Task-71-Supervisor-GoAuto-services
Task-72-Fix-Supervisor-SYB-startup-race
Task-73-优化-SYB-商品列表加载与采购准备预检
Task-74-优化-SYB-商品筛选与列表列宽
Task-75-SYB-Hourly-Sync
Task-78-在-SYB-同步记录页增加管理员立即同步
Task-79-SYB-只读分页请求超时后有限重试
Task-81-修复-SYB-查看-PDD-商品跳转
Task-82-区分去关联-PDD-与去匹配动作
Task-83-PDD-商品单商品定位模式
Task-85-修复采购员账号登录并补齐最小权限
Task-Archive-Template
Troubleshooting
unnamed
Clone
This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
#72 修复 Supervisor 重启后 SYB 页面短暂报错
- 类型:缺陷
- 所属 Epic:本地开发与运行稳定性
- 所属 MVP / 版本:T59
- 状态:待验收
- 日期:2026-08-24
- Gitea 工单:#72
- Wiki 页面:Task-72-Fix-Supervisor-SYB-startup-race
- Wiki revision:见页面 revision
背景与目标
Supervisor 同时重启 Admin API 和 Admin UI 时,Vite 比 API 的迁移、编译和 HTTP 监听更早就绪。SYB 商品页随即请求列表和采购准备预检,短暂连接失败被统一显示为“服务器连接异常”。本任务使 UI 等待 API 真正就绪,并让 SYB 页面对一次短暂网络断开做有界恢复。
最终方案
start-web.ps1在启动 Vite 前轮询config.yaml的ports.server对应/api/v1/health。- API 返回 HTTP 200 后才启动 UI;60 秒仍未就绪则明确失败,由 Supervisor 按既有策略重启。
- SYB 商品列表和采购准备预检第一次遇到 Axios
Network Error时,静默等待 1 秒并只重试一次。 - 第二次网络失败显示原有提示;认证、权限、业务错误及有响应的服务端错误不重试。
- 与建单方案一致,无数据库、接口、认证、Android 或业务规则变化。
修改文件
scripts/start-web.ps1:增加 API HTTP 就绪轮询。web/src/utils/request.js:支持首次网络失败的静默处理。web/src/api/goauto/syb-products.js:允许传入请求控制选项。web/src/api/goauto/purchase-tasks.js:允许采购准备预检传入请求控制选项。web/src/views/goauto/syb-products/index.vue:增加一次性网络重试。web/tests/e2e/syb-network-retry.spec.ts:覆盖恢复和不重试边界。docs/04-local-development-and-verification.md:同步长期 Wiki 镜像。
验收结果
| 验收标准 | 结果 |
|---|---|
| UI 等待 API HTTP 就绪后再启动 | 通过 |
| 首次短暂网络失败自动恢复且不显示最终错误 | 通过 |
| 业务错误不重试 | 通过 |
| API/UI HTTP 200,GoAuto 与 Chorus 实例 RUNNING | 通过 |
| 用户页面验收 | 待验收 |
测试
- 执行命令:PowerShell Parser、
start-web.ps1 -ValidateConfigOnly - 结果:通过。
- 执行命令:
pnpm exec playwright test tests/e2e/syb-network-retry.spec.ts --workers=1 - 结果:2 项通过。
- 执行命令:
.\scripts\verify.ps1 -Component web - 结果:通过;lint 0 error、30 个既有 warning,生产构建成功。
- 执行命令:Supervisor 同时重启两个 GoAuto 实例并检查日志、HTTP 和全部实例状态。
- 结果:UI 等待 API ready 后启动;8010/9527 返回 200;GoAuto 和 Chorus 均 RUNNING。
- 执行命令:
python dev_scripts/harness.py sync --check、python dev_scripts/harness.py check --strict、git diff --check - 结果:通过。
- 未验证部分:用户登录后的 SYB 页面人工验收待用户完成。
相关提交
476ca64fix(#72): wait for API and retry SYB load