7 Commits

Author SHA1 Message Date
kuaifan
531129f48d feat(push): 移除友盟推送,APP 推送改为系统配置 / 自定义 / 关闭三档
- 删除友盟别名接口、模型、日志清理及 hedeqiang/umeng 依赖,迁移删除 umeng_alias / umeng_logs 表
- 系统配置(默认):通过官方 DooPush 共享通道自助注册租户,按 App 上报的推送 Token 绑定设备
- 自定义:沿用自有 DooPush 应用凭证;关闭:不推送也不记录设备
- 老站点升级后统一为系统配置,原自定义凭证保留
- PushUmengMsg 更名为 PushAppMsg;同步语言包、API 对照表与 ai-kb
2026-10-19 15:46:16 +00:00
kuaifan
a49ee608a5 feat(push): 新增 DooPush 推送通道,与友盟并存
- 新增 app_push_devices 表与 api/push/device 接口(新版 App 上报/删除 DooPush 设备)
- app/Module/AppPush 统一分发友盟与 DooPush,业务字段经 payload.data 下发
- 系统设置「App 推送」新增 DooPush 配置;点击通知打开对应会话
- 更新 Expo 壳子模块(接入 DooPush)、语言包与 ai-kb
2026-10-19 10:33:19 +00:00
kuaifan
5ce39a8dc4 feat(task): 建立与解除任务关联时记录双方任务动态 2026-10-10 02:41:15 +00:00
kuaifan
5a10f59df8 fix(task): 修复周期任务到点后无限复制重复任务
Carbon 3 的 addDays() 不接受字符串,自定义天数周期(loop="90")在
refreshLoop() 中抛 TypeError。LoopTask 先提交副本再刷新周期,异常后
副本与原任务的 loop_at 都留在 10 分钟窗口内,每分钟翻倍并在同一轮内
被 chunkById 继续扫到。

- refreshLoop:自定义天数转 int 且必须大于 0,拒绝 0 天周期
- LoopTask:复制、刷新周期、关闭旧周期放入同一事务,失败整体回滚;
  锁定并复核原任务防并发重入;refreshLoop 失败即抛出;只处理本轮
  开始前已存在的任务
- ai-kb:更正周期任务按 loop_at 到点生成(而非完成时生成)、不依赖
  end_at、会复制附件,并补充自定义天数须为正整数
2026-09-30 14:48:43 +00:00
kuaifan
519e8dbd54 feat(task): 支持任务流转与部门指派 2026-09-09 02:36:52 +00:00
kuaifan
ac43f630d3 fix(task): 支持为未领取任务指定负责人 2026-09-04 06:23:20 +00:00
kuaifan
af206480fb feat(ai-kb): 落地 RAG 知识库与灰度链路(48 feature / 546 chunk) 2026-06-10 04:08:17 +00:00