39 Commits

Author SHA1 Message Date
编程专家
45831ad586 fix: 自动清理 domain 配置中的 Markdown 链接格式
- setConfigValue: 添加 URL 清理逻辑,移除 Markdown 链接格式和末尾斜杠
- handleConfigCommandV2: /config add 命令自动清理 domain 参数
- 防止用户从飞书卡片复制 URL 时带入 Markdown 格式

修复场景:
- 用户从卡片复制域名 [https://example.com](https://example.com/)
- 使用 /config set 命令设置 domain
- 自动清理为纯 URL: https://example.com
2026-03-25 11:12:52 +08:00
编程专家
1506c77a53 fix: 修复 CDN 刷新静默失败问题
- 添加 CDN 刷新日志输出,便于排查问题
- 添加密钥配置检查,未配置时给出明确提示
- 修复生产环境日志不输出的问题
- CDN 刷新失败不影响上传结果,仅记录警告
2026-03-25 10:59:54 +08:00
编程专家
0d98013464 feat: 添加 Windows 专用部署脚本
- deploy-windows.bat: 一键部署脚本 (Node.js + PM2)
- docker-windows.bat: Docker 一键部署脚本
- manage-windows.bat: 服务管理工具 (启动/停止/日志/自启)
- check-env.bat: 环境检查工具
- uninstall.bat: 卸载清理工具
- WINDOWS_DEPLOY.md: Windows 部署完整文档
2026-03-25 08:23:50 +08:00
饭团
68f7fb57ee fix: 上传成功后清除文件状态,防止重复使用旧文件
- select_profile: 选择配置时清除 file_key,确保必须重新发送文件
- confirm_upload: 上传成功后 clearUserState() 完整清除状态
- handleFileReceived: 收到新文件时清除旧配置,避免配置污染

修复问题:之前上传成功后 userStates 中的 file_key 未清除,
导致再次点击配置可能误用之前的文件,造成混乱。
2026-03-20 00:48:13 +08:00
饭团
7a183d3324 fix: 修复 /profile rename 命令中 args 未定义的问题
- 在 handleProfileCommandV2 中添加 args 变量定义
- 现在 /profile rename 可以正常使用
2026-03-15 00:41:26 +08:00
饭团
79112210d4 feat: 添加 rename 重命名功能
- /config rename <旧名称> <新名称> - 重命名存储桶
  - 自动更新引用此存储桶的上传配置
  - 禁止重命名 default 存储桶
  - 检查新名称是否已存在

- /path rename <旧名称> <新名称> - 重命名预设路径
  - 自动更新引用此路径的上传配置
  - 检查新名称是否已存在

- /profile rename <旧名称> <新名称> - 重命名上传配置
  - 检查新名称是否已存在

- 更新帮助卡片和 README.md 文档
- 支持带空格的名称(如 'IPA 上传')
2026-03-15 00:36:03 +08:00
饭团
257d52c1a8 fix: 改用 DaoCloud 镜像源 2026-03-14 23:10:34 +08:00
饭团
7ccb9b2cb2 fix: 改用腾讯云镜像源
- Dockerfile: 使用 ccr.ccs.tencentyun.com/library/node:18-alpine
- 阿里云镜像仓库无 node 镜像
2026-03-14 23:09:52 +08:00
饭团
22e7baa3e7 fix: 使用阿里云镜像源解决国内拉取问题
- Dockerfile: 改用 registry.cn-hangzhou.aliyuncs.com/library/node:18-alpine
- 解决 Docker Hub 访问超时问题
2026-03-14 23:06:01 +08:00
饭团
f856b00eed docs: 添加国内 Docker 镜像加速器配置说明
- README.md: 新增国内网络问题解决方案
  - Docker 镜像加速器配置
  - 使用国内 Node.js 镜像
  - 手动拉取镜像方法
- Dockerfile: 注释说明国内镜像源用法
2026-03-14 22:56:10 +08:00
饭团
f7e71a9bb0 docs: 添加完整的 Docker 部署教程
- README.md: 新增详细的 Docker 部署章节
  - Docker Compose 方式(推荐)
  - Docker 命令方式
  - 多阶段构建(生产环境)
  - 故障排查命令
  - 部署检查清单
- Dockerfile: 优化安全配置
  - 使用非 root 用户运行
  - 添加健康检查
  - 修正端口为 3030
  - 优化目录权限
- 新增 docker-compose.yml 示例文件
- 更新 .gitignore 忽略 docker-compose.override.yml
2026-03-14 22:24:56 +08:00
饭团
9f5aaacb10 security: 从 Git 中移除敏感配置文件
- 从 Git 历史中移除 .env.production(包含敏感信息)
- 更新 .gitignore 忽略所有 .env.* 文件
- 添加更完整的 .gitignore 规则

⚠️ 注意:服务器上的 .env.production 文件仍然保留,只是不再提交到 Git
2026-03-14 22:00:33 +08:00
饭团
52ac421a0b docs: 在 README 中说明配置文件的作用和安全注意事项
- 添加 .env.example/.env/.env.production 的用途说明表格
- 说明哪些文件应该/不应该提交到 Git
- 添加安全提示,强调敏感信息不要提交
2026-03-14 21:57:40 +08:00
饭团
67fb630069 fix: 支持带空格的名称参数
- 修改 /profile remove 命令,支持删除带空格的配置名称(如 'IPA 上传')
- 修改 /config remove 命令,支持删除带空格的存储桶名称
- 修改 /path remove 命令,支持删除带空格的预设路径名称
- 修改 /profile add 命令,支持带空格的配置名称
- 修改 /config add 命令,支持带空格的存储桶名称
- 修改 /path add 命令,支持带空格的路径名称

参数解析逻辑:
- 先提取子命令(第一个空格前的内容)
- 剩余内容作为参数文本
- remove 命令:整个参数文本作为名称(支持空格)
- add 命令:从后往前解析固定参数,其余合并为名称
2026-03-14 21:46:02 +08:00
饭团
3045cc86d5 feat: 完善 /config /path /profile 命令的 add/remove/list 功能
- /config: 新增 add/remove 命令,支持存储桶的添加和删除(带引用检查)
- /path: 新增 remove 命令,支持预设路径删除(带引用检查)
- /profile: 已有 add/remove/list 功能,增强验证逻辑
- 帮助卡片:全面更新所有命令的详细说明和示例
- README.md: 补充完整的命令表格和使用示例
- CHANGELOG.md: 创建更新日志文档
- 安全保护:删除前检查引用关系,禁止删除 default 存储桶
2026-03-14 20:16:05 +08:00
饭团
4cf65bd9bd fix: 上传成功回复显示实际存储桶名称而非配置别名
- 修复上传成功消息中存储桶名称显示问题
- 现在显示七牛云实际 bucket 名称(如 daoqires)而不是配置别名(如 default)
- 提升用户体验,避免混淆
2026-03-07 15:17:29 +08:00
饭团
a1dacdbda5 修复卡片交互回调响应超时问题 (错误码 200341)
根据飞书官方文档,卡片交互回调需要在 3 秒内响应。
修改:
- 立即返回 toast 响应(3 秒内)
- 异步处理后续操作(发送消息、上传文件等)
- 使用规范的响应格式

修复前:
- 等待所有处理完成后返回空对象
- 导致响应超时,弹出错误提示

修复后:
- 立即返回 toast 提示
- 后台异步处理业务逻辑
- 用户通过消息接收处理结果
2026-03-06 17:53:41 +08:00
饭团
85b9b95441 更新 README.md,移除已删除文档的引用 2026-03-06 14:29:54 +08:00
饭团
be5400c39e 添加飞书权限配置文档 2026-03-06 14:18:39 +08:00
饭团
5ca8f9a02f 删除 /skill list 命令(独立版本不需要) 2026-03-06 12:23:37 +08:00
饭团
a18ddc028c 清理调试代码和废弃文件
清理内容:
- 删除废弃文档:DEPLOY.md, FEISHU_PERMISSIONS.md, NGINX.md, WEBSOCKET.md, WINDOWS.md
- 删除废弃服务文件:qiniu-bot.service, start.bat, start.sh
- 删除废弃代码目录:src/cards/
- 优化日志:仅非生产环境输出调试日志
- 保留核心文件:Dockerfile, .env*, README.md, pm2.config.cjs

生产环境设置:
- NODE_ENV=production 时不输出调试日志
- NODE_ENV=development 时输出完整日志
2026-03-06 12:22:31 +08:00
饭团
875df38c0c 添加 /skill list 命令查看技能列表 2026-03-06 12:14:44 +08:00
饭团
cc961e3b4e 完善欢迎卡片和帮助信息
修改:
- 欢迎卡片添加帮助按钮
- 帮助信息使用卡片形式展示,更美观
- 帮助卡片包含:
  - 上传方式说明
  - 配置命令列表
  - 路径命令列表
  - 使用示例
  - 快捷操作按钮
2026-03-06 12:06:31 +08:00
饭团
596869260f profile 路径改为引用 path 的键名
修改:
- profile 配置中的 path 字段现在存储路径键名,而不是直接路径值
- /profile add 命令现在使用路径键名:/profile add IPA 上传 default ipa
- 上传时根据路径键名从 uploadPaths 中获取实际路径
- 列表卡片显示路径键名和对应的值

配置示例:
{
  "uploadPaths": {
    "ipa": "/ipa/gamehall.ipa"
  },
  "uploadProfiles": {
    "IPA 上传": {
      "bucket": "default",
      "path": "ipa"  // 引用 uploadPaths 中的键名
    }
  }
}
2026-03-06 11:57:00 +08:00
饭团
9bad70436a 优化列表显示为表格形式
修改:
- /config list - 使用表格展示存储桶配置
- /path list - 使用表格展示预设路径
- /profile list - 使用表格展示上传配置模板

表格格式:
| 名称 | 存储桶 | 区域 | CDN 域名 |
|------|--------|------|----------|
| default | daoqires | z2 | https://...
2026-03-06 10:47:37 +08:00
饭团
4d2001865d 添加上传配置模板命令管理
新命令:
/profile list - 查看上传配置模板
/profile add <名称> <存储桶> [路径] - 添加上传配置
/profile remove <名称> - 删除上传配置

使用示例:
/profile add IPA 上传 default /ipa/
/profile add 备份 default /backup/
/profile list
/profile remove 备份

配置存储在 config/qiniu-config.json 的 uploadProfiles 字段
2026-03-06 10:37:54 +08:00
饭团
00824c8433 v5 - 简化流程:上传配置 + 一键上传 2026-03-06 10:21:13 +08:00
饭团
6deae77a15 v4 - 主动触发 + 确认上传流程 2026-03-06 10:05:34 +08:00
饭团
e13b86fcd0 修复死循环问题 - 添加状态记忆功能
问题:
选择路径后重新发送文件,又显示选择卡片,导致死循环

解决方案:
1. 添加用户状态临时存储(内存)
2. 选择存储桶/路径后保存状态(5 分钟有效)
3. 重新发送文件时,检测是否有保存的状态
4. 有状态则直接上传,无状态则显示选择卡片

使用流程:
1. 发送文件 → 显示选择卡片
2. 选择存储桶 → 保存状态,提示重新发送
3. 选择路径 → 保存状态,提示重新发送
4. 重新发送文件 → 使用保存的状态直接上传
5. 上传完成后清除状态

状态有效期:5 分钟
2026-03-06 09:12:18 +08:00
饭团
bf5b79c62b 添加路径管理命令
功能:
1. 简化预设路径配置(原文件名 + ipa)
2. 添加/path 命令管理预设路径
   - /path list - 查看预设路径
   - /path add <名称> <路径> - 添加预设路径
   - /path remove <名称> - 删除预设路径

配置示例:
{
  "uploadPaths": {
    "原文件名": "",
    "ipa": "/ipa/gamehall_jinxianv2.ipa"
  }
}

使用示例:
/path add backup /backup/files/
/path list
/path remove backup
2026-03-06 08:57:18 +08:00
饭团
0bb34a774d v3 版本 - 支持存储桶和路径选择
功能:
1. 预设路径配置(在 config/qiniu-config.json 中配置 uploadPaths)
2. 文件上传时显示存储桶选择按钮
3. 文件上传时显示路径选择按钮
4. 快速上传按钮(使用默认配置)
5. 取消按钮

配置示例:
{
  "buckets": { ... },
  "uploadPaths": {
    "原文件名": "",
    "/config/": "config/",
    "/backup/": "backup/",
    "/uploads/": "uploads/"
  }
}

使用流程:
1. 发送文件
2. 选择存储桶(可选)
3. 选择路径(可选)
4. 点击"使用默认配置上传"
5. 或重新发送文件(使用选择的配置)
2026-03-06 08:44:12 +08:00
饭团
019a013b5e 添加存储桶选择功能
功能:
1. 文件上传时显示存储桶选择按钮
2. 选择存储桶后显示确认卡片
3. 支持使用原文件名或自定义路径上传
4. 支持命令:/upload /路径/文件名 存储桶名

交互流程:
1. 发送文件 → 显示存储桶选择按钮
2. 点击存储桶 → 显示确认卡片
3. 点击使用原文件名上传 → 开始上传
4. 或回复消息设置路径

配置:
- 多存储桶配置在 config/qiniu-config.json
- 当前配置:default 存储桶
2026-03-06 08:40:19 +08:00
饭团
f7776aaf69 v2 版本 - 飞书文件上传功能修复完成
主要修复:
1. 使用飞书 SDK im.messageResource.get API 下载文件(和 OpenClaw 一致)
2. 修复 sendMessage 方法,自动判断 receive_id_type(oc_=chat_id, ou_=open_id)
3. 修复 sendCard 方法,传递正确的 receive_id_type 参数
4. 修复事件类型识别,支持飞书 v2 schema(header.event_type)
5. 添加临时文件清理机制(每小时清理 1 小时前的文件)
6. 完善卡片交互(确认上传/取消按钮)
7. 完善错误处理和日志记录

功能:
-  飞书文件接收和卡片回复
-  卡片交互(确认/取消)
-  七牛云上传(支持多存储桶)
-  CDN 自动刷新
-  临时文件自动清理
-  配置管理命令(/config)

配置文件:
- config/qiniu-config.json - 七牛云配置
- .env - 飞书应用配置
2026-03-06 08:38:52 +08:00
饭团
3769d164b1 feat: 支持 HTTP 回调和 WebSocket 长连接两种模式
新增功能:
- 通过 FEISHU_MODE 配置切换模式 (http/websocket)
- 安装飞书 SDK (@larksuiteoapi/node-sdk)
- WebSocket 模式支持内网部署(无需公网 IP)
- 新增 WEBSOCKET.md 配置指南

更新:
- README.md 添加两种模式说明
- .env.example 添加 FEISHU_MODE 配置
- 健康检查返回当前模式信息
2026-03-05 16:42:17 +08:00
饭团
5294bf49d8 docs: 修正 README.md 中的端口为 3030
- Docker 端口映射
- Nginx 配置示例
- 环境变量示例
2026-03-05 15:44:46 +08:00
饭团
8e1462a6db docs: 修正飞书权限说明
- 移除不准确的权限代码(im:resource)
- 使用实际导出的权限:im:message, im:message:readonly, aily:file:read, aily:file:write
2026-03-05 15:43:40 +08:00
饭团
ff3ce48207 chore: 默认端口改为 3030
- 更新 .env, .env.example, .env.production
- 避免与 3000 端口冲突
2026-03-05 15:37:12 +08:00
饭团
2bc5c7e0be docs: 添加 Nginx 部署指南和飞书权限说明
新增:
- NGINX.md: Nginx 反向代理部署指南(含 HTTPS 配置)
- FEISHU_PERMISSIONS.md: 飞书权限配置指南

修正:
- README.md: 更正飞书权限(im:file → im:message + im:resource)
- 添加文档链接
2026-03-05 14:48:36 +08:00
饭团
b00567762f Initial commit: 七牛云上传飞书机器人
功能:
- 飞书交互卡片支持
- 七牛云文件上传
- 自动 CDN 刷新
- 多存储桶配置
- 跨平台部署(Linux/macOS/Windows)
- Docker 支持
2026-03-05 14:22:26 +08:00