背景
本 Issue 是人员二号(日程模块)的总跟踪 Issue。后续允许由多个 PR 分阶段交付,所有阶段性 PR 使用 Part of #176 关联;只有全部验收项完成后,最后一个 PR 才使用 Closes #176。
相关设计:
目标
实现 Schedule 聚合在云端 PostgreSQL 和客户端 SQLite 的完整数据闭环,为 Agent 提供日程业务操作,为客户端提供云端确认快照落库、按日读取、日历展示及本地提醒数据读取能力。云端是业务写入的唯一权威,客户端只应用服务端确认后的最终快照。
核心协作接口
提供给 Agent(人员五号)
提供给客户端
后端工作范围
客户端工作范围
数据与业务约束
- 每条日程最多一个提醒,提醒配置作为 Schedule 字段保存,不建立独立 Reminder 表或 Reminder CRUD。
- 周期日程只持久化 RRULE;正常实例按需展开,单次删除或替换写入 occurrence override。
next_trigger_at、snoozed_until、geofence_armed 等仅属于客户端运行状态,不上传云端。
- 客户端不得生成服务端不存在的新日程,也不得绕过云端自行确认创建、修改或删除。
- 云端事务成功并返回最终快照后,客户端才能应用业务变更。
职责边界(不在本 Issue 范围)
- 账号注册、JWT、HTTP 路由和数据库基础设施由人员一号负责。
- Android 权限、时间/地点监听、提醒送达、完成和延期由人员三号负责。
- WebSocket 连接、音频收发和消息传输由人员四号负责。
- LLM 意图理解、追问、消歧和二次确认由人员五号负责。
- 不实现 GUI 日程创建或编辑表单。
分阶段交付
验收标准
背景
本 Issue 是人员二号(日程模块)的总跟踪 Issue。后续允许由多个 PR 分阶段交付,所有阶段性 PR 使用
Part of #176关联;只有全部验收项完成后,最后一个 PR 才使用Closes #176。相关设计:
目标
实现 Schedule 聚合在云端 PostgreSQL 和客户端 SQLite 的完整数据闭环,为 Agent 提供日程业务操作,为客户端提供云端确认快照落库、按日读取、日历展示及本地提醒数据读取能力。云端是业务写入的唯一权威,客户端只应用服务端确认后的最终快照。
核心协作接口
提供给 Agent(人员五号)
title、location_name等日程字段;周期日程修改作用于整个系列。提供给客户端
后端工作范围
Schedule、周期例外、命令、查询、快照、结果及业务错误契约。schedules模型和 Alembic 迁移。schedule_occurrence_overrides模型和迁移。revision乐观版本校验、软删除和最终持久化快照生成。客户端工作范围
local_schedules表及版本化迁移。local_schedule_occurrence_overrides表及版本化迁移。cloud_revision忽略旧快照,维护软删除和账号隔离。cancel/replace周期例外。数据与业务约束
next_trigger_at、snoozed_until、geofence_armed等仅属于客户端运行状态,不上传云端。职责边界(不在本 Issue 范围)
分阶段交付
验收标准
cancel/replace例外在云端与本地结果一致。