You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
Rodger-Wang
733367002a
闹钟真正排进系统通知:排期不再只认服务端,且当场重排
真机上「对助手说定个闹钟」完全不响,三个原因叠加,每一个都不报错:
1. MemoryReminderScheduler.reschedule 的数据源只有 MemoryService.loadUpcoming,
那是纯服务端接口。后端还没部署时它恒返回空,于是 SET_clock 把闹钟写进了
本地 reminders、拾忆页也显示出来了,却一条通知都没排。用户看到的是
「记下了但不会响」,而这跟「指令压根没落地」在表现上分不出来。
→ 加 _localSlots:未同步的本地闹钟也排进来,重复规则口径与
CalendarController._expandItem 逐条对齐。合流后必须自己再排一次序,
否则本地那批会按插入位置抢占前 N 个名额、把服务端更早的挤掉。
2. reschedule 只挂在 AppLifecycleManager 的「切回前台」上。新定的闹钟要等
下次切前台才进系统排期——「5 分钟后提醒我」当场就废了;冷启动那一轮
也根本不会排。
→ SET_clock 落地后(无论上传成败)当场重排;补传成功后也重排(来源从
本地兜底变成服务端,不重排会响两遍);CalendarController.refreshFromServer
末尾也排一次,覆盖冷启动。
3. 没有通知权限时 reschedule 直接 return,而 permissionDenied 这个标志
**没有任何 UI 在读**(注释里写了要显示提示,实际没接)。测试机上
POST_NOTIFICATIONS granted=false,所以无论如何都不会响、也没有任何解释。
→ 首页加一条常驻提示条指向权限管理页。刻意不是弹窗:申请必须由用户在
权限管理里主动发起,PermissionUtil 有 48 小时合规冷却。
文案 memNotifyDisabled 41 个语言文件里都已存在,无需补 key。
另外把指令链路的日志提到 warn 级(同上一轮恒玄那批的理由:release 的级别
门槛是 warning,写 info 等于真机上查不到)。协议层新增一行「指令帧」日志,
只在这一帧真带了 extra_info 或 command_calls 时打——它是区分
「百炼没下发」和「下发了但端侧没落地」的唯一证据。
Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
|
1 month ago |
| .. |
|
models
|
修拾忆页看不到助手闹钟:换源时把本地那份的展示出口弄丢了
|
1 month ago |
|
providers
|
apps/client 首次入库(Flutter 移动端)
|
1 month ago |
|
services
|
闹钟真正排进系统通知:排期不再只认服务端,且当场重排
|
1 month ago |
|
utils
|
拾忆:修分类筛选无效、加自动补传与提示节流;试修 iOS 播报
|
1 month ago |