Skip to content

[Dashboard] Phase 1:渐进加载 + 术语统一 + 中英双语 + 过程指标折叠 #30

Description

@Protocol-zero-0

把现有 Flask dashboard 打磨成:加载快 / 术语统一不混淆 / 中英双语 / 关键信息一目了然 / 过程指标折叠。本任务 = Phase 1(性能/术语/i18n/折叠,均可机验);审美级视觉重设计(见 #19)留 Phase 2,不在本任务。不大改重写,在现有原生 JS + Flask 模板栈上改。

代码在 master 分支(默认分支)。从 master 切分支 feat/dashboard-refresh,不动主线、不动数据库、不改后端 API 的返回字段/语义(只改前端怎么展示)。改动范围:web/templates/index.htmlweb/static/js/app.js(及 agenda.js / manuscript_routing.js)、web/static/css/style.css、新增 web/static/js/i18n.js

代码定位若行号漂移,以函数名/字段名/语义为准。

A. 渐进加载(修首屏慢)

现状:app.js 初始化时一次性触发多个 loadXTab() + overview 多个接口 → 首屏并发 8–10 个请求,几个是重查询。
目标:

  1. 首屏只加载当前(默认 Overview)tab 的数据;其余 tab 的 load 不在 init 触发。
  2. 切到某 tab 才加载;已加载过缓存,不重复请求(沿用现有 papersLoaded 这类标志)。
  3. 首屏渲染完且空闲后(requestIdleCallback,无则 setTimeout),后台预取其余 tab 写入缓存,切过去秒开。
  4. 重的 overview 知识图谱延后到首屏文字内容之后渲染。

B. 术语统一(消除"同概念多名字")

只改前端展示用词,不改后端字段名/表名/API。同一概念全站一个名;修掉 tab 导航名与标题不一致。

规范名(en) 中文 替换掉这些旧叫法
Source Paper 文献 "Papers"(输入文献处)/"Paper DB"/"Pipeline Papers"
Research Area 研究领域 "Taxonomy Node"/"Field"/"domain"/"node";子级 Sub-area 子领域
Result 基准结果 "Results"
Benchmark Matrix 基准矩阵 "Evidence"(矩阵处)/"Method × Dataset Matrix"
Claim 论断 "Claims & Insights" 里的 claims
Research Insight 研究洞见 "Insights"/"Research Insights"(= insights 表)
Discovery 深度发现 "Deep Discovery"/"Deep Insight"/"Idea"/"IDEA #"/"Paper Idea"(= deep_insights 表)
Opportunity 机会点 保留,但与 Insight 区分清楚(= node_opportunities 表)
Experiment Run 实验运行 "Experiment"/"Run"/"RUN #"/"Main run";"forge" 字样从界面去掉
Generated Manuscript 生成稿件 "Generated Paper"/"Manuscript"/"Research Paper Generation"
Submission Bundle 投稿包 "Complete Papers"/"Bundle"

关键消歧:insights(Research Insight)与 deep_insights(Discovery)是两张不同的表,绝不可再共用 "insight" 一词;Experiments 里那行 deep_insights 不准再叫 "Idea",叫 Discovery。explore 视图三名("Taxonomy Map"/"Research Area Explorer"/"Opportunity Map")统一为一个;tab 导航名与标题全部对齐。

C. i18n 中英双语

  1. 默认语言 = navigator.language:以 zh 开头→中文,否则→英文;右上角手动切换,选择存 localStorage
  2. 新增 web/static/js/i18n.js:{en:{...}, zh:{...}} 词典(en/zh 键集合必须相等)+ t(key) + 扫描 data-i18n 属性替换文本的应用函数。
  3. HTML 静态文案加 data-i18n;JS 注入文案走 t(key)
  4. 清理死代码:web/app.py 中重复定义的中文版 _planned_tracks(被英文版覆盖)、app.js 中被 renderExperimentGroupsV2 覆盖的中文版 renderExperimentGroups,删掉;界面里写死的遗留中文(tooltip、实验组渲染等)收进 i18n 词典。

D. 精简 / 折叠(前台留 6,过程指标进"高级",不删除)

  • 前台保留 6 个主 tab:Overview、Explore(Research Area Explorer)、Evidence(Benchmark Matrix)、Generated(Generated Manuscript)、Insights(Research Insight)、Papers(Source Paper)。
  • 其余收进可展开的 "Advanced / 高级" 区(默认收起,不删):Feed、Providers、Paper-progress、Experiments 内部字段、Discoveries(并入 Overview 最新动态)、Agenda;以及概览里的 Meta-Learning Report / Loop Inspection / Automation Services / GPU 调度 / 文件路径 / "Internal stage" / CPU eligible / Manuscript Routing & Lint 等过程项。
  • 去重:顶栏 4 项指标条与概览 4 张卡完全重复 → 去掉或改成不重复内容(PR 说明选哪个);合并 "Generated Papers" 与 "Total Manuscripts" 同数双标;合并三处重复的"已完成论文"计数。

Allowed / Forbidden

Allowed: web/templates/*.htmlweb/static/js/*.js(含新增 i18n.js)、web/static/css/style.css;web/app.py/web/*_routes.py仅限删除已确认的死代码(重复中文 _planned_tracks)。
Forbidden: 不改任何后端 API 的返回字段/语义;不删 tab/功能(过程项是折叠,不是删);不动 DB / agents/ / orchestrator/ / contracts/;不引入前端框架(保持原生 JS + Flask);不做 #19 审美级重设计(Phase 2)。

验收标准(可机验)

  1. 渐进加载:init/DOMContentLoaded 路径不再调用非当前 tab 的 loadXTab();有 idle 预取(requestIdleCallback/setTimeout)+ 每 tab 缓存标志;init 直接触发的数据请求数 ≤ 当前 tab 所需。
  2. 术语统一:全站搜索,旧词不再作为用户可见 label 出现(IDEA #、作标题的 Deep Insight、大小写混用的 RUN #、"Method × Dataset Matrix"、explore 三名);每个规范概念只对应一个展示名。
  3. i18n:i18n.js 存在且 en/zh 键集合相等;navigator.language zh→中文、否则英文(切换函数可字符串级断言);data-i18n 覆盖原写死文案;遗留中文不再硬编码于 HTML/JS 文案。
  4. 死代码清理:中文版 renderExperimentGroups 与重复 _planned_tracks 已删,引用指向保留版本。
  5. 折叠结构:前台只剩 6 个主 tab,其余在"Advanced/高级"默认收起;顶栏重复指标条已去重;重复计数已合并。
  6. 不破坏:python -c "import web.app" 可导入;启动 Flask 后 //api/stats 返回 200(API 行为未变)。

实现红线(不可用这些方式蒙混过验收): 旧 label 必须真改而非注释掉;i18n en/zh 键必须对齐;懒加载不可表面改而别处又全量拉;"折叠"不可只 CSS 隐藏却仍在首屏请求其数据。

不在本任务(留 Phase 2)

#19 审美(配色/留白/知识图谱美观)——本任务不做。

重部署步骤(写进 PR 描述)

  1. host 上 git fetch && git checkout feat/dashboard-refresh
  2. .env / 数据库不动(配置与数据自动保留)
  3. sudo systemctl restart deepgraph-web
  4. 验证 https://deepgraph.sora2.today 首屏更快、双语生效、术语清爽

完成定义

六条验收全过 + 死代码清理 + 在 feat/dashboard-refresh 分支(不推 main/master、不自行合并)+ 开 PR,PR 描述含 changed files / 验收命令与结果 / 重部署步骤 / 已知 non-goals(#19 审美)。

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions