kuaifan 6b54b7b1c5 feat(todo): 聊天待办支持提醒时间(到点引用原消息+@提及)
给消息待办增加可选「提醒时间」,到点由 todo-alert 机器人对原消息发起
reply、正文 @ 仍在群内的被指派成员,完全复用原生回复/提及链路(定向未读、
红点、绕过会话免打扰、App 推送);被指派人全部退群则跳过发送并标记已提醒。
设/改/取消提醒的权限沿用 todo_set_permission 开关与 checkTodoOwnerPermission。

后端:
- 迁移:web_socket_dialog_msg_todos 增加 remind_at/reminded_at 及索引,
  注册为日期字段
- WebSocketDialogMsgTodo::dueReminders() 选取到点(未提醒/未完成)待办(limit 500)
- WebSocketDialogMsg::setTodoRemind() 纯数据写入(改时间重置 reminded_at),
  接入 toggleTodoMsg($remindAt) 与 msg__todo 透传
- 接口 msg__todoremind 设置/修改/取消提醒(权限闸门、消息类型校验、
  pushMsg 同步 todo_done)
- TodoRemindTask 到点按消息发提醒(reminded_at 防重复、迟发补发、原消息/
  会话删除兜底),buildRemindText 生成 <span class="mention user"> 文本,
  接入 crontab;登记 todo-alert 机器人
- msgJoinGroup 从提醒文本中提取被 @ 成员

前端:
- 设待办弹窗新增「提醒时间」(预设 + 自定义 DatePicker)
- 待办详情浮层每条待办可查看/修改/取消提醒:DatePicker on-clear「清空」
  二次确认后取消,无时间时仅关闭面板不发请求
- 待办浮层窄屏(≤500px)改为 待办/完成 tab 切换,宽屏维持双列;列表为空
  展示空状态占位;提醒时间用 Icon 替换 emoji
- 时间读写对齐项目任务时间的时区约定

测试:tests/Feature/TodoRemindTest(数据/选取/写入/权限决策/buildRemindText/
text mention 提取),TodoSetPermissionTest 无回归。

任务 #124 后续增强。

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-06-01 12:08:34 +00:00
2021-05-29 16:52:48 +08:00
2024-11-11 23:31:20 +08:00
2021-05-29 16:52:48 +08:00
2025-09-27 07:09:08 +08:00
2024-11-04 20:11:18 +08:00
2021-05-29 16:52:48 +08:00
2025-03-21 11:34:09 +08:00
2021-05-29 16:52:48 +08:00
2023-03-24 09:08:53 +08:00
2024-12-10 09:09:19 +08:00
2021-05-29 16:52:48 +08:00
2021-05-29 16:52:48 +08:00
2026-05-21 23:07:02 +00:00
2023-03-24 09:08:53 +08:00
2025-05-14 23:55:00 +08:00
2025-09-29 09:19:28 +08:00
2025-10-25 10:46:01 +08:00
2021-11-18 02:31:17 +00:00
2026-05-21 23:07:02 +00:00
2021-05-29 16:52:48 +08:00
2025-05-27 07:32:48 +08:00
2021-08-29 15:49:54 +08:00
2024-11-15 00:23:11 +08:00
2025-05-27 07:32:48 +08:00
2021-05-29 16:52:48 +08:00
2025-10-16 23:56:48 +00:00

DooTask - Open Source Task Management System

English | 中文文档

QQ Group

  • Group Number: 546574618

📍 Migration from 0.x to 1.x

  • Please ensure to back up your data before upgrading!
  • If the upgrade fails, try running ./cmd update multiple times.
  • If you encounter "Container xxx not found" during upgrade, run ./cmd reup and then execute ./cmd update.
  • If you see a 502 error after upgrading, run ./cmd reup to restart the services.
  • If you encounter "Application 'xxx' not installed" after upgrading, log in with the admin account and install the relevant applications from the App Store.

Installation Requirements

  • Required: Docker v20.10+ and Docker Compose v2.0+
  • Supported Systems: CentOS/Debian/Ubuntu/macOS and other Linux/Unix systems
  • Hardware Recommendation: 2+ cores, 4GB+ memory
  • Special Note: Windows users can install Linux environment using WSL2 before installing DooTask.

Deploy Project

# 1、Clone the project to your local machine or server

# Clone project from GitHub
git clone --depth=1 https://github.com/kuaifan/dootask.git
# Or you can use Gitee
git clone --depth=1 https://gitee.com/aipaw/dootask.git

# 2、Enter directory
cd dootask

# 3、One-click installation (Custom port installation: ./cmd install --port 80)
./cmd install

Reset Password

# Reset default administrator password
./cmd repassword

Change Port

# This method only changes HTTP port. For HTTPS port, please read SSL configuration below
./cmd port 80

Stop Service

./cmd down

Start Service

./cmd up

Development & Build

Please ensure you have installed NodeJs 20+

# Development mode
./cmd dev
   
# Build project (This is for web client. For desktop apps, refer to ".github/workflows/publish.yml")
./cmd prod  

SSL Configuration

Method 1: Automatic Configuration

# Run command and follow the prompts
./cmd https

Method 2: Nginx Proxy Configuration

# 1、Add Nginx proxy configuration
proxy_set_header X-Forwarded-Host $http_host;
proxy_set_header X-Forwarded-Proto $scheme;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;

# 2、Run command (To cancel Nginx proxy configuration: ./cmd https close)
./cmd https agent

Upgrade & Update

Note: Please backup your data before upgrading!

./cmd update
  • Please retry if upgrade fails across major versions.
  • If you encounter 502 errors after upgrade, run ./cmd reup to restart services.

Project Migration

After installing the new project, follow these steps to complete migration:

1、Backup original database

# Run command in the old project
./cmd mysql backup

2、Copy the following files and directories from old project to the same paths in new project

  • Database backup file
  • docker/appstore
  • public/uploads

3、Restore database to new project

# Run command in the new project
./cmd mysql recovery

Uninstall Project

./cmd uninstall

More Commands

./cmd help
Description
DooTask是一款开源在线项目任务管理工具,提供各类文档协作工具、在线思维导图、在线流程图、项目管理、任务分发、即时IM,文件管理等工具;同时消息功能使用非对称加密技术让你的沟通更安全。
Readme AGPL-3.0 403 MiB
Languages
PHP 58.5%
Vue 36.1%
HTML 2.8%
Shell 0.9%
JavaScript 0.9%
Other 0.8%