Skip to content

仅关注往期班级时,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 请求已能读取历史数据。

Metadata

Metadata

Assignees

No one assigned

    Labels

    Type

    No type

    Fields

    No fields configured for issues without a type.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions