Add a dedicated acceptance script for providers.html, cover it in the local real-host script regression suite, and document the current frontend review baseline, closure audit, providers action matrix, and remediation task board. This keeps the frontend acceptance boundary explicit: providers.html now has a repeatable verification entry point for its page-level actions, while non-UI provider operations remain documented as backend-only capabilities.
19 KiB
19 KiB
sub2api-cn-relay-manager 前端系统性修复完善任务清单(2026-05-31)
日期:2026-05-31
输入依据
本任务清单基于以下审查结果整理:
docs/2026-05-31-FRONTEND_REVIEW_CHECKLIST.mddocs/2026-05-31-FRONTEND_CLOSURE_AUDIT.mddocs/2026-05-31-PROVIDERS_ACTION_ACCEPTANCE_MATRIX.md
总体目标
把当前前端从“有多页真实资产和部分历史闭环证据,但缺统一前端验收与边界治理”的状态,收口成:
- 页面范围清晰
- 闭环证据可重复执行
- 前后端边界不漂移
- 管理端 UI 行为一致
- 发布前有最小前端门禁
当前问题归纳
P0 级问题
- 前端真实资产在
deploy/tksea-portal/,但仓库长期缺少前端专项 source of truth PRD.md与实际交付范围存在明显漂移,导致“前端算不算已完成”口径不稳- 多数页面只有历史真验证据,没有统一可重复的前端 acceptance 入口
P1 级问题
providers.html页面边界不清,后端 provider 运维动作和当前页面能力容易被混为一谈- 当前只有静态资产回归,没有浏览器级 smoke/E2E 门禁
- 管理页视觉和交互基本一致,但靠多份静态 HTML 手工复制维护,长期漂移风险高
P2 级问题
- 用户 portal 仍有部分链路依赖宿主兼容线路,不是完全插件产品层闭环
- provider 运维动作还停留在 API / 脚本层,未进入正式前端运维视图
执行原则
- 先收口证据,再补 UI
- 先修边界,再扩能力
- 先补最小门禁,再谈重构
- 不做 SPA 重写,不引入无必要前端框架迁移
任务板
F0. 前端范围与口径收口
F0-T1 建立前端 source of truth
- 问题:
- 当前前端入口、页面范围、反代依赖、验收入口分散在执行板、脚本和静态资产里
- 目标:
- 形成一个正式文档,明确:
- 前端资产目录
- 页面清单
- 反代依赖
- 页面与后端接口映射
- 页面当前状态
- 形成一个正式文档,明确:
- 主要文件:
docs/2026-05-31-FRONTEND_REVIEW_CHECKLIST.mddocs/2026-05-31-FRONTEND_CLOSURE_AUDIT.mddocs/2026-05-31-PROVIDERS_ACTION_ACCEPTANCE_MATRIX.mddocs/PROJECT_STRUCTURE.mddocs/SOURCE_OF_TRUTH.md
- 输出:
- 在
SOURCE_OF_TRUTH.md或独立 frontend source-of-truth 文档中挂出统一入口
- 在
- 验收:
- 新人只读一份文档就能知道“前端在哪、有哪些页、哪些页已闭环、哪些只是兼容入口”
- 优先级:
Must
F0-T2 修正文档边界漂移
- 问题:
PRD.md仍写“首版暂不做 Web 控制台”,与现状不符
- 目标:
- 明确是:
PRD保持历史事实,但补“后续范围已扩展”的说明- 还是显式新增“前端扩展边界”文档承接
- 明确是:
- 主要文件:
docs/PRD.mddocs/EXECUTION_BOARD.mddocs/PLUGIN_REQUIREMENTS_OVERVIEW_2026-05-28.md
- 输出:
- 不再出现“PRD 说没做,执行板说已完成”的冲突口径
- 验收:
- 前端是否在交付范围内,有明确单一解释
- 优先级:
Must
F0-T3 把前端 review 纳入项目门禁
- 问题:
- 当前
AGENTS.md质量门禁偏 Go/后端,没有前端专项 gate
- 当前
- 目标:
- 把前端 review / acceptance 最小要求加入项目门禁
- 主要文件:
AGENTS.mddocs/DEPLOYMENT.mdscripts/README.md
- 输出:
- 形成最小门槛,例如:
test_tksea_portal_assets.sh- 指定前端 acceptance 脚本
- 页面级审计文档更新
- 形成最小门槛,例如:
- 验收:
- 以后任何前端变更不能只跑 Go 门禁就宣称完成
- 优先级:
Must
F1. 前端验收体系补齐
F1-T1 为 providers.html 补页面内显式动作 acceptance
- 当前状态:
已完成(脚本与本地伪远端回归已落地)
- 问题:
- 当前
providers.html只有动作级审计矩阵,没有页面内显式动作的统一验收脚本
- 当前
- 目标:
- 至少覆盖:
- 目录加载
preview-importimport- draft
save - draft
update - draft
delete - draft
publish
- 至少覆盖:
- 主要文件:
deploy/tksea-portal/admin/providers.htmlscripts/acceptance/scripts/test/docs/2026-05-31-PROVIDERS_ACTION_ACCEPTANCE_MATRIX.mddocs/EXECUTION_BOARD.md
- 输出:
- 新增一条可重复执行的 provider-admin acceptance 入口
- 验收:
- 能对每个页面内显式动作给出:
- 请求
- 回读
- 页面证据或结果 JSON
- 能对每个页面内显式动作给出:
- 优先级:
Must
F1-T2 把已有历史真验证据统一成可重跑入口
- 问题:
logical-groups、route-health、accounts、portal的历史真验证据散落在EXECUTION_BOARD.md
- 目标:
- 为这些页面建立统一的 acceptance 入口或至少统一入口文档
- 主要文件:
scripts/acceptance/verify_route_health_ui.shscripts/acceptance/verify_route_control_plane.shscripts/acceptance/verify_route_data_plane.shdocs/2026-05-31-FRONTEND_CLOSURE_AUDIT.mddocs/ROUTE_ACCEPTANCE_MATRIX.md
- 输出:
- 页面级 acceptance 索引表
- 验收:
- 不再只能从执行板里手工翻历史记录判断闭环
- 优先级:
Must
F1-T3 增加最小浏览器级 smoke
- 问题:
- 当前只有静态字符串检查,没有浏览器级基础回归
- 目标:
- 至少补一层最小 smoke,覆盖:
- 页面可打开
- 导航可跳
- 管理员 session 可检查
- 关键页面主标题 / 主动作 / 结果区存在
- 至少补一层最小 smoke,覆盖:
- 主要文件:
scripts/test/docs/DEPLOYMENT.mddocs/2026-05-31-FRONTEND_REVIEW_CHECKLIST.md
- 输出:
- 一个不依赖完整产品重构的轻量 smoke gate
- 验收:
- 前端页面不再只靠
grep文本检查就放行
- 前端页面不再只靠
- 优先级:
Must
- 说明:
- 优先轻量方案,不先做大而全的 Playwright 套件
F2. providers.html 边界与能力收口
F2-T1 正式声明 providers.html 的页面边界
- 问题:
- 容易把
rollback / reconcile / status / import-batches误认为这页已前端支持
- 容易把
- 目标:
- 页面文案、文档、验收矩阵三处统一:
- 页面内显式动作是什么
- 页面外 provider 运维动作是什么
- 页面文案、文档、验收矩阵三处统一:
- 主要文件:
deploy/tksea-portal/admin/providers.htmldocs/2026-05-31-PROVIDERS_ACTION_ACCEPTANCE_MATRIX.mddocs/2026-05-31-FRONTEND_CLOSURE_AUDIT.md
- 输出:
- 页面边界不再靠口头解释
- 验收:
- 任何 review 不会再把“后端有接口”误写成“页面已支持”
- 优先级:
Must
F2-T2 决策:provider 运维动作是否进入正式前端
- 问题:
rollback / reconcile / status / access status / import-batches现在有后端能力,但没有正式前端承载
- 目标:
- 做出明确产品决策:
- 方案 A:继续停留在脚本/API 运维面
- 方案 B:新增正式的
Provider Operations视图
- 做出明确产品决策:
- 主要文件:
docs/2026-05-31-PROVIDERS_ACTION_ACCEPTANCE_MATRIX.mddocs/PLUGIN_REQUIREMENTS_OVERVIEW_2026-05-28.mddocs/EXECUTION_BOARD.md
- 输出:
- 明确不再摇摆
- 验收:
- 后续实现不会在
providers.html上继续无边界堆动作
- 后续实现不会在
- 优先级:
Must
F2-T3 若选择进入前端,新增 Provider Operations 页面
- 前提:
- 仅在
F2-T2选择方案 B 时执行
- 仅在
- 目标:
- 用独立页面承载:
- provider status
- access status
- resources
- import-batches
- reconcile
- rollback
- 用独立页面承载:
- 主要文件:
deploy/tksea-portal/admin/internal/app/http_api.godocs/openapi.yamlscripts/test/test_tksea_portal_assets.sh
- 输出:
- 不再把运维动作挤在
providers.html
- 不再把运维动作挤在
- 验收:
- 页面动作、结果区、host_id 查询维度、错误提示全部清晰
- 优先级:
Should
F3. 管理端 UI 一致性与去重复
F3-T1 抽离共享 admin 资产
- 问题:
- 多份静态 HTML 重复维护导航、session、API Base、状态栏、配色和局部脚本
- 目标:
- 提取共享资产,例如:
admin-common.cssadmin-common.js- 共享导航片段约定
- 提取共享资产,例如:
- 主要文件:
deploy/tksea-portal/admin/*.htmldeploy/tksea-portal/scripts/test/test_tksea_portal_assets.sh
- 输出:
- 减少重复代码和样式漂移
- 验收:
- 修改一个公共导航或 session 行为,不需要在 4-6 个页面重复改
- 优先级:
Should
F3-T2 统一错误与状态提示语义
- 问题:
- 目前各页虽大体一致,但错误提示和状态栏语气、字段名、回读行为仍有分散实现
- 目标:
- 统一:
- API 错误展示
- 登录态提示
- 成功后回读
- “当前边界”提示文案
- 统一:
- 主要文件:
deploy/tksea-portal/admin/*.htmldocs/2026-05-31-FRONTEND_REVIEW_CHECKLIST.md
- 输出:
- 页面行为一致,不只视觉一致
- 验收:
- 管理员切换页面时不会遇到完全不同的反馈模型
- 优先级:
Should
F4. 用户 Portal 闭环补强
F4-T1 显式暴露“申请 Key”链路依赖状态
- 问题:
- 当前用户 portal 的产品层已经较完整,但“申请测试 Key”仍依赖宿主兼容线路
- 目标:
- 页面上明确区分:
- 逻辑分组产品态
- 宿主兼容线路依赖态
- 无法申请时的具体原因
- 页面上明确区分:
- 主要文件:
deploy/tksea-portal/index.htmlinternal/app/portal_api.godocs/2026-05-31-FRONTEND_CLOSURE_AUDIT.md
- 输出:
- 用户端不再只看到“失败”,而能看到失败类型
- 验收:
目录可读但申请不可用的场景能被明确解释
- 优先级:
Should
F4-T2 评估是否继续保留宿主兼容泄漏
- 问题:
- portal 已转到 logical-group 产品层,但仍残留部分宿主兼容实现细节
- 目标:
- 明确哪些宿主字段必须保留,哪些应继续下沉
- 主要文件:
deploy/tksea-portal/index.htmldocs/PLUGIN_REQUIREMENTS_OVERVIEW_2026-05-28.mddocs/2026-05-31-FRONTEND_CLOSURE_AUDIT.md
- 输出:
- 用户端产品语言进一步收口
- 验收:
- 普通用户主视角不再被宿主概念主导
- 优先级:
Could
F5. 发布门禁与维护流程
F5-T1 前端发布前最小检查标准固化
- 问题:
- 现在前端放行标准更多靠执行板记录,不够制度化
- 目标:
- 形成一条最小前端 release checklist
- 主要文件:
docs/DEPLOYMENT.mddocs/REAL_HOST_ACCEPTANCE_CHECKLIST.mddocs/2026-05-31-FRONTEND_REVIEW_CHECKLIST.md
- 输出:
- 发布前必须勾选:
- 静态资产回归
- 页面级 acceptance
- 文档同步
- 发布前必须勾选:
- 验收:
- 前端上线不再只凭“页面 200 + 人工看过”放行
- 优先级:
Must
F5-T2 执行板记录模板标准化
- 问题:
- 当前
EXECUTION_BOARD.md信息丰富,但对前端页面证据没有统一模板
- 当前
- 目标:
- 固定每个前端条目的记录结构:
- 页面
- 动作
- 接口
- 真实回读
- 是否留测试垃圾
- 固定每个前端条目的记录结构:
- 主要文件:
docs/EXECUTION_BOARD.md
- 输出:
- 后续前端条目结构统一,利于审计
- 验收:
- 不再需要从长篇执行板里手工提炼页面闭环
- 优先级:
Should
建议实施顺序
第一批:立即做
F0-T1建立前端 source of truthF0-T2修正文档边界漂移F0-T3把前端 review 纳入门禁F1-T1为providers.html补页面内显式动作 acceptanceF1-T3增加最小浏览器级 smokeF2-T1正式声明providers.html页面边界F5-T1固化前端发布前最小检查标准
第二批:紧随其后
F1-T2把已有历史真验证据统一成可重跑入口F2-T2决策 provider 运维动作是否进入正式前端F3-T1抽离共享 admin 资产F3-T2统一错误与状态提示语义F5-T2标准化执行板记录模板
第三批:按产品需要推进
F2-T3新增Provider Operations页面F4-T1portal 的“申请 Key”依赖状态显式化F4-T2继续下沉宿主兼容泄漏
按迭代排期
这部分不是重复任务板,而是把上面的任务压成真正可执行的排期顺序。
本周必须做
1. F0-T1 建立前端 source of truth
- 原因:
- 现在已经有 review/checklist/audit/matrix 四份前端文档,但还没有正式挂到项目统一 truth 入口
- 目标产物:
- 在
docs/SOURCE_OF_TRUTH.md或等价入口中正式引用前端文档 - 在
docs/PROJECT_STRUCTURE.md明确deploy/tksea-portal/是前端真实资产目录
- 在
- 本周完成标准:
- 新人进入仓库后,不会再先去
web/找前端
- 新人进入仓库后,不会再先去
2. F0-T2 修正文档边界漂移
- 原因:
- 这是前端范围所有争议的根源
- 目标产物:
PRD / EXECUTION_BOARD / PLUGIN_REQUIREMENTS_OVERVIEW对前端交付范围给出单一解释
- 本周完成标准:
- 不再出现“PRD 说不做 Web 控制台,但执行板写多页前端已完成”的冲突表述
3. F0-T3 把前端 review 纳入项目门禁
- 原因:
- 现在最大风险不是“没有页面”,而是前端变更没有正式 gate
- 目标产物:
AGENTS.md、docs/DEPLOYMENT.md、scripts/README.md明确前端最小门禁
- 本周完成标准:
- 任何涉及
deploy/tksea-portal/的改动,不能只跑 Go 门禁就算完成
- 任何涉及
4. F2-T1 正式声明 providers.html 页面边界
- 原因:
- 这是当前 review 里最容易被误解的页面
- 目标产物:
- 页面文案、总审计文档、动作级矩阵三处口径完全一致
- 本周完成标准:
rollback / reconcile / status / import-batches不再被误写成这页已支持的前端动作
5. F1-T1 为 providers.html 补页面内显式动作 acceptance
- 原因:
- 这是当前最关键的实质性验收缺口
- 目标产物:
- 至少覆盖:
- 目录加载
preview-importimport- draft
save / update / delete / publish
- 至少覆盖:
- 本周完成标准:
providers.html从“部分闭环但口径模糊”升级到“页面内显式动作有独立 acceptance”
6. F1-T3 增加最小浏览器级 smoke
- 原因:
- 现在只有静态字符串检查,防不了页面级退化
- 目标产物:
- 一个轻量 smoke,至少覆盖页面可开、导航可跳、主标题/主动作/结果区存在
- 本周完成标准:
- 发布前不再只靠
test_tksea_portal_assets.sh
- 发布前不再只靠
7. F5-T1 固化前端发布前最小检查标准
- 原因:
- 没有 release checklist,就算补了验收也容易再次失效
- 目标产物:
- 前端 release checklist
- 本周完成标准:
- 发布前必须显式勾选前端检查项
下一迭代
1. F1-T2 把已有历史真验证据统一成可重跑入口
- 为什么放下一迭代:
- 这项收益很高,但需要先把本周的门禁和边界收口,否则入口会继续漂移
- 交付目标:
logical-groups / route-health / accounts / portal不再主要依赖执行板历史记录判断闭环
2. F2-T2 决策 provider 运维动作是否进入正式前端
- 为什么放下一迭代:
- 这是产品/运维边界决策,不该阻塞本周基础收口
- 交付目标:
- 明确选择:
- 继续留在脚本/API 面
- 或新增
Provider Operations视图
- 明确选择:
3. F3-T1 抽离共享 admin 资产
- 为什么放下一迭代:
- 这是减少重复和长期漂移的工程优化,不是当前最急 gate 问题
- 交付目标:
- 提取共享
admin-common.css/admin-common.js或等价方案
- 提取共享
4. F3-T2 统一错误与状态提示语义
- 为什么放下一迭代:
- 先把 acceptance 和边界固定,再统一交互反馈更稳
- 交付目标:
- 管理页统一错误提示、登录态反馈、成功后回读提示和边界说明
5. F5-T2 标准化执行板记录模板
- 为什么放下一迭代:
- 这项会显著提升后续审计效率,但不阻塞本周修复
- 交付目标:
- 前端条目在
EXECUTION_BOARD.md中采用统一结构记录
- 前端条目在
6. F4-T1 显式暴露用户 portal 的“申请 Key”依赖状态
- 为什么放下一迭代:
- 用户 portal 当前已有较强历史闭环证据,优先级低于管理端门禁和 provider 页
- 交付目标:
目录可读但申请不可用的场景能在用户页明确解释
暂缓
1. F2-T3 新增 Provider Operations 页面
- 暂缓原因:
- 在
F2-T2做出正式产品决策前,不应直接开做
- 在
- 重启条件:
- 明确决定把
rollback / reconcile / status / access / import-batches做成正式前端能力
- 明确决定把
2. F4-T2 继续下沉宿主兼容泄漏
- 暂缓原因:
- 这是产品化质量提升项,不是当前最核心的稳定性或验收缺口
- 重启条件:
- 用户 portal 的依赖状态已显式化,且团队确认要继续推进普通用户产品层收口
3. 管理端整体重构或前端框架迁移
- 暂缓原因:
- 当前主要问题是门禁、边界、闭环证据,不是技术栈本身
- 重启条件:
- 完成前端最小门禁和 acceptance 体系后,再评估是否值得重构
排期建议摘要
如果按一个正常迭代节奏推进,最合理的执行顺序是:
本周
- 收口文档口径
- 收口
providers.html页面边界 - 补
providers.html页面内显式动作 acceptance - 加最小浏览器 smoke
- 固化发布前 front-end checklist
下一迭代
- 把已有历史闭环页收成统一 acceptance 入口
- 决策 provider 运维动作是否进入正式前端
- 做管理端共享资产和交互一致性整理
- 规范执行板记录模板
后续
- 再决定要不要新增
Provider Operations - 再推进用户 portal 更彻底的产品层收口
不建议现在做的事
- 不建议现在把整套静态页面重写成 SPA
- 不建议先做大而全的前端框架迁移
- 不建议先做纯视觉重设计
- 不建议在页面边界未定之前,把 provider 运维动作继续堆进
providers.html
完成标准
可认为“前端系统性修复完成”的最小标准是:
- 前端范围与页面状态有单一 source of truth
- 项目门禁里正式出现前端 review / acceptance
providers.html的页面内显式动作有独立 acceptance- 管理端至少有一层最小浏览器级 smoke
PRD / EXECUTION_BOARD / 审计文档对前端范围不再互相冲突
当前最关键的判断
如果只能先做一件事,优先做:
F1-T1为providers.html补页面内显式动作 acceptance
原因:
- 这是当前审查里边界最模糊、最容易被误判为“全闭环”的页面
- 它同时连接导入主链、草稿发布链和后端 provider 运维能力
- 一旦这页边界与验收收口,整套前端审查口径会立刻稳定很多