# 2026-06-08 — 脚本执行:全局进度 + 看板 + Telegram 汇总 ## 摘要 脚本批量执行改为真后台(API 立即返回 `running`);扩展 `/ws/alerts` 推送 `script_progress` / `script_complete`;全局顶栏进度条与完成 Alert+提示音;新建「脚本看板」页;Telegram 仅发成功/失败汇总与看板深链。 ## 动机 366 台同步执行阻塞 HTTP 请求;用户需跨页面查看进度;失败明细应在看板而非 Telegram 长列表。 ## 涉及文件 ### 后端 - `server/application/services/script_service.py` — `asyncio` 后台批次 - `server/application/services/script_execution_notify.py` — WS + Telegram 编排 - `server/application/services/script_job_callback.py` — 长任务终态通知 - `server/infrastructure/redis/script_execution_store.py` — `execution_progress_stats` - `server/api/websocket.py` — `broadcast_script_progress/complete` - `server/infrastructure/telegram/__init__.py` — `send_telegram_script_summary` - `server/config.py` / `server/api/settings.py` — `NOTIFY_SCRIPT_COMPLETE` ### 前端 - `frontend/src/composables/useScriptExecutionQueue.ts` - `frontend/src/composables/useWebSocket.ts` - `frontend/src/App.vue` — 全局进度与完成 Alert - `frontend/src/pages/ScriptRunsPage.vue` — 第 15 页 - `frontend/src/pages/ScriptsPage.vue` — 移除页内批量状态面板 - `frontend/src/router/index.ts` / `frontend/src/types/api.ts` ### 文档 - `docs/project/nexus-functional-development-guide.md` — 15 页 SSOT - `docs/changelog/2026-06-08-script-exec-global-progress-board.md` - `docs/audit/2026-06-08-script-exec-global-progress-board.md` ## 迁移 / 重启 - 无需 DB 迁移 - 需重启 API worker;前端 `vite build` 后部署 `web/app/` - 可选:在设置中配置 `notify_script_complete` ## 验证 ```bash pytest tests/test_script_execution_progress_stats.py tests/test_exec_detail_grouping.py -q cd frontend && npm run build bash scripts/local_verify.sh ``` - 提交执行后 1s 内对话框关闭,顶栏显示「已进行 X 台,剩余 Y 台」 - 结束:提示音 + Alert,Telegram 仅汇总 + `#/script-runs/{id}` 链接 - WS 断线:3s 轮询直至终态