Files
Nexus/docs/changelog/2026-06-07-scripts-spa-perfect-implementation.md
T
Nexus Agent dfb0ea2d8f fix(frontend): 脚本库与推送调度对齐设计文档
修复 ScriptsPage 执行契约(script_id/command、历史过滤、长任务/凭据)及 SchedulesPage 缺失能力(target_path、next_run、push/script、cron/once、sync_mode);后端补迁移与 schedule_runner 传参。
2026-06-08 02:39:18 +08:00

1.6 KiB
Raw Blame History

Changelog — 2026-06-07 脚本库 SPA 对齐设计文档

摘要

修复脚本库前后端多处契约断裂:库内脚本执行不传 command、分类校验失败、执行历史无法按 script_id 过滤、执行状态/重试/长任务/DB 凭据等设计能力在 SPA 缺失。

动机

用户反馈脚本库「大量问题」;对照 docs/project/script-execution.mdScriptsPage.vue 发现执行链路几乎不可用(422/tracking id 错误),且 UI 未覆盖长任务、凭据、停止/重试/详情等 SSOT 能力。

变更

后端

  • ScriptExecutecommandscript_id 二选一;API 按 script_id 加载脚本内容
  • GET /api/scripts/executions?script_id= 过滤单脚本历史
  • 创建脚本时自动写入 created_by

前端

  • 新建 ScriptContentEditor.vueMonaco shell 编辑)
  • 重写 ScriptsPage.vue:分类下拉、exec-config 提示、长任务/DB 凭据、执行状态条(10s 轮询)、停止/重试/标记卡住、历史与详情(含长任务拉日志)
  • 修正 ScriptItem / ScriptExecItem / DbCredentialItem 类型

涉及文件

  • server/api/schemas.py, server/api/scripts.py
  • server/application/services/script_service.py
  • server/infrastructure/database/script_repo.py
  • frontend/src/pages/ScriptsPage.vue
  • frontend/src/components/ScriptContentEditor.vue
  • frontend/src/types/api.ts

迁移 / 重启

  • 需部署后端 + 前端构建
  • 无 DB 迁移

验证

cd frontend && npx vite build
# 脚本库:新建(ops 分类) → 选服务器执行 → 状态条出现 #id
# 历史对话框仅显示该脚本记录;失败可重试;长任务可勾选