Skip to content

Proposal:消息提醒 #47

Description

@Alexander-Noah

Issue:消息提醒模块

1. 功能描述

消息提醒模块负责当前设备上的本地提醒和前台通知展示。它提醒用户处理事项、补充反馈、查看待确认结果或进入复盘,但不改变业务事实。

MVP 提醒对象包括 Schedule、Todo、Task、FeedbackEntry、待确认 ReschedulePlan、目标拆分和规划产出的 GoalPlanDraft,以及进入复盘的 ReviewEntry

复盘提醒只提醒用户可以发起复盘,点击后进入 AI Tab 现场生成,不提示“报告已生成”。

2. 用户 / 用户故事

目标用户:需要在 App 外及时获知事项、反馈入口、待确认 Plan 和复盘入口的移动端用户。

  • 日程开始前 30 分钟收到提醒。
  • Todo 截止前 1 小时收到提醒。
  • Task 到执行时间前收到提醒。
  • Schedule 或 Task 结束后收到“补充反馈”的提醒,点击进入 Feedback 入口。
  • 长任务拆分排期完成后收到提醒,点击查看待确认 GoalPlanDraft,确认前不创建正式 Task。
  • 系统生成待确认 ReschedulePlan 后提醒用户查看,确认前不应用重排。
  • 每周提醒用户“可以复盘本周”,点击后进入 AI Tab 现场生成。
  • Goal 到期后提醒用户“可以复盘这个目标”,点击后进入 AI Tab 现场生成。

3. 现有做法及不足

如果提醒只覆盖事项本身,用户仍然容易漏掉执行后的反馈、耗时任务完成后的待确认结果,以及每周 / Goal 到期后的复盘入口。

消息提醒模块需要统一处理事项提醒、Feedback 入口、GoalPlanDraft / ReschedulePlan 待确认结果和 ReviewEntry 入口。复盘只保留入口提醒,不提供“报告已生成”的通知,也不引入 ReviewReport 报告实体。

4. 本期范围

  1. Schedule / Todo / Task 本地提醒。
  2. Schedule / Task 结束后的 Feedback 入口提醒。
  3. GoalPlanDraft 生成完成后的待确认提醒。
  4. 待确认 ReschedulePlan 通知。
  5. 每周和 Goal 到期后的复盘入口提醒。
  6. 权限关闭或注册失败时,不阻断业务保存。
  7. 点击通知进入对应事项、Feedback 入口、确认页或 AI Tab。
  8. 固定时间提醒由客户端注册给操作系统;耗时结果由前端轮询后端状态,结果可用时展示前台通知或本地提醒。
  9. 支持自定义提示音、震动和 MVP 前台保活提醒;前台保活提醒保持可见,提醒记录可追踪。

5. 明确不做

  • 不做服务端实时推送。
  • 不做多端通知去重。
  • 不做完整消息中心。
  • 不做营销推送。
  • 不做已生成 ReviewReport 通知。
  • 不由消息提醒模块直接修改业务事实。
  • 不由子 Agent 直接发送通知。
  • 不把 GoalPlanDraft 完成提醒等同于 Task 已创建。
  • 不把 ReschedulePlan 完成提醒等同于重排已应用。
  • 不把 Feedback 入口提醒等同于已经产生 Feedback 事实。

6. 关键决策

决策点 备选方案 选择 理由
P0 通道 本地通知 / 完整远程推送 当前设备本地通知 成本可控,能验证提醒价值
权限请求 启动即请求 / 用户开启时请求 用户开启提醒时请求 与明确意图一致
提醒失败 回滚业务 / 独立失败 不阻断业务保存 提醒是附加能力
事项提醒 自动改状态 / 只提醒 提醒开始、截止或即将执行 只触达用户,不改变状态
Feedback 提醒 自动生成 Feedback / 打开入口 事项结束后打开反馈入口 用户提交后才生成 Feedback
耗时结果提醒 自动应用 / 打开待确认结果 通知 GoalPlanDraft / ReschedulePlan 待确认 不自动创建 Task,不自动应用重排
复盘通知 报告就绪通知 / 入口提醒 每周 / Goal 到期后的入口提醒 复盘现场生成,无报告实体
实现方式 固定时间走系统本地通知;耗时结果走前端轮询 后台轮询 / 系统通知 不要求子 Agent 主动推送,也同时需要保证应用活动,不使用前端轮询,因为在进入后台后,前端活动会被停止

7. 边界与异常

  • 权限拒绝:业务对象保存成功,显示提醒不可用。
  • 提醒时间已过:不注册提醒,提示用户修改或关闭。
  • 目标删除后点击通知:提示目标不存在。
  • Feedback 入口对应事项已删除或已取消:提示目标不存在或状态已变化。
  • GoalPlanDraft 已取消、过期或已确认后点击旧通知:展示当前状态,不重复创建 Task。
  • ReschedulePlan 已取消或已应用后点击旧通知:展示当前状态,不重复应用。
  • 复盘提醒点击后需要现场搜索和生成;如果用户取消,不产生报告。
  • 应用退到后台后不依赖普通定时器持续检查;固定时间提醒以操作系统已注册通知为准。
  • 耗时接口轮询中断时,恢复前台后重新同步结果状态;重复结果不得重复创建 Task 或应用方案。

8. 基本概念与信息结构

概念 含义
Reminder 本地提醒记录
FeedbackEntry 反馈入口意图和对象配置,不是 Feedback 事实
ReviewEntry 复盘入口意图和范围配置,不是复盘报告实体
target_type schedule / todo / task / feedback_entry / goal_plan_draft / reschedule_plan / review_entry
target_id 目标对象;Feedback 入口关联已结束的 Schedule / Task,Review 入口可为空或为范围配置
remind_at 提醒时间
channel MVP 为本地通知
status PENDINGTRIGGEREDCANCELLEDFAILED

9. Agent / 模块约束

  • 消息提醒模块属于基础 / 前端通知能力,不是子 Agent。
  • 提醒源可以来自业务模块或主 Agent 处理结果。
  • 子 Agent 不直接发送通知。
  • 固定时间提醒由客户端调用系统通知能力注册、更新和取消;耗时任务由前端轮询状态,不把通知模块接入子 Agent 数据流。
  • 通知点击只导航或打开待确认内容,不执行写操作。
  • GoalPlanDraftReschedulePlan 等耗时结果通知只能打开确认卡片。
  • ReviewEntry 点击后进入 AI Tab,由主 Agent 现场生成复盘。

10. 验收标准

  • Schedule / Todo / Task 可以设置本地提醒。
  • 修改时间后旧提醒取消,新提醒注册。
  • 完成、取消、删除事项后未触发提醒取消。
  • 通知权限关闭时业务对象仍可保存。
  • Schedule / Task 结束后可提醒用户补充 Feedback,点击后进入反馈入口。
  • GoalPlanDraft 生成完成后可通知用户查看,但不自动创建 Task。
  • 待确认 ReschedulePlan 可通知用户查看,但不自动应用。
  • 每周复盘提醒点击后进入 AI Tab 现场生成。
  • Goal 到期复盘提醒点击后进入 AI Tab 现场生成。
  • 系统不出现“ReviewReport 已生成”的通知。
  • 提醒失败不改变 Schedule / Todo / Task / GoalPlanDraft / ReschedulePlan 状态。
  • 自定义提示音、震动和前台保活提醒可按设置生效;提醒记录可追踪。
  • App 恢复前台后可同步 GoalPlanDraft / ReschedulePlan 最新状态,重复结果不产生重复业务动作。

Metadata

Metadata

Assignees

No one assigned

    Labels

    FullSpec完整规格提案:影响面较大,需要写清楚动机、范围、不做、备选方案、接口/数据结构、原型、验收标准Proposal-Acceptedproposal

    Type

    No type

    Fields

    No fields configured for issues without a type.

    Projects

    No projects

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions