Skip to content

ui(dashboard): 仅关注往期班级时,Dashboard 与 Bot 聚合快照会误导为“没有课程” #431

Description

@tiankaima

问题描述

当用户只关注了往期学期的班级、当前学期没有关注班级时,Dashboard 首页会显示当前学期空状态,并隐藏正常的作业/课表概览。空状态只提供“浏览课程 / 按代码匹配”,没有任何历史内容入口,因此很容易被理解成“账号没有课程,历史作业和课表已丢失”。

Bot 的 get_my_dashboard 聚合快照也有同样的误导风险:它会同时返回 subscriptions.totalCount > 0subscriptions.currentSemesterCount = 0,但当前学期明细及 upcoming 为空;缺少历史恢复提示时,调用方容易直接回答“没有课程”。

复现步骤

  1. 准备两个学期:当前学期 A、往期学期 B。
  2. 用户仅关注 B 中的一个班级,并让该班级包含历史作业、课表和考试。
  3. 登录后打开 /
  4. 观察首页仅显示“本学期未选择班级”的空状态,无法从该状态进入往期作业或课表。
  5. 调用 MCP get_my_dashboardsubscriptions.totalCount = 1currentSemesterCount = 0,但当前课程详情和 upcoming 均为空。

核查结果

历史数据实际上仍然存在:

  • GET /api/me/subscriptions/homeworks 默认读取全部已关注学期;
  • GET /api/me/subscriptions/schedules 默认读取全部已关注学期,可通过日期范围回溯;
  • Dashboard 的作业页和关注班级页仍可读取往期内容;
  • MCP 的 list_my_subscribed_sectionslist_my_homeworkslist_my_scheduleslist_my_exams 均可读取往期数据,并可用 semesterId 缩小范围;
  • Bot 与 CLI 的普通作业/课表命令没有自行添加“仅当前学期”过滤。

因此问题不是历史数据丢失,而是当前学期空状态与聚合快照缺少历史内容的发现路径。

期望行为

  • 仅有往期关注时,首页明确说明往期班级、作业和课表仍然保留;
  • 首页提供“查看往期作业 / 往期课表 / 往期班级”的直达入口;
  • 往期课表入口固定到最近一个已关注的往期学期;
  • MCP server/tool 描述明确:currentSemesterCount = 0 不代表没有历史课程,省略 semesterId 时默认读取全部已关注学期;
  • 用 Web、REST 与 MCP 自动化测试覆盖该场景。

涉及范围

  • server:Dashboard 空状态、MCP 描述与契约、回归测试;
  • Bot:无需改数据请求逻辑,依赖 server MCP 提示修正聚合回答;
  • CLI:无需改动,现有 REST 请求已能读取历史数据。

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

    Type

    No type

    Projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions