45badfee82
v2.0: 架构大版本升级
...
任务 3.2+3.3: 飞书入口迁移到 MessagePipeline
- feishu_bot.py 改用 pipeline.handle_message(去掉 30 行会话管理代码)
- feishu_longconn_service.py 改用 pipeline.handle_message(去掉 25 行)
- 各入口只负责协议适配,业务逻辑统一在 Pipeline
任务 5: 统一配置管理
- 新增 src/config/config_service.py(ConfigService 单例)
- 优先级:环境变量 > system_settings.json > 代码默认值
- 支持点号分隔的嵌套 key、自动类型转换
任务 8: 密码哈希升级
- SHA-256 bcrypt(User.set_password/check_password)
- AuthManager.hash_password/verify_password 同步升级
- 兼容旧密码:登录时检测 SHA-256 格式,验证通过后自动升级为 bcrypt
- auth_manager.secret_key 改为从环境变量读取
任务 9: 前端事件总线
- TSPDashboard 新增 on/off/emit 方法
- 模块间可通过事件通信,不再只靠直接读写共享状态
README.md 重写
- 功能概览、技术栈、快速开始、项目结构
- 架构要点、多租户、飞书机器人、环境变量
- 开发和部署说明
2026-04-08 08:53:43 +08:00
7151070c99
refactor: 第二轮架构缺陷修复 (1/2/3/4/9/10)
...
1. 内存泄漏修复:RealtimeChatManager 添加会话自动清理机制
- 每10次操作检查超时会话(1小时无活动自动清理)
- 最大活跃会话数限制500,超限清理最旧会话
2. 数据库索引补全:
- Conversation: session_id, work_order_id 添加索引
- WorkOrder: status 添加索引
- ChatSession: user_id 添加索引
- KnowledgeEntry: category, is_active, is_verified 添加索引
3. ServiceManager 线程安全:
- 添加 threading.Lock 双重检查锁
- 防止多线程并发初始化同一服务
4. API 响应格式统一:
- 新增 api_response() 标准响应函数
- 统一格式: {success, message, data} / {success, error}
9. asyncio 误用修复:
- knowledge.py 文件上传改用安全的 asyncio 调用方式
- 兼容已有事件循环和无事件循环两种场景
10. 请求限流:
- 新增 rate_limit 装饰器(按 IP 限流)
- chat/message 限制 20次/分钟
- workorder/ai-suggestion 限制 5次/分钟
2026-04-02 22:37:44 +08:00
587933f668
refactor: 架构缺陷 6-12 修复
...
6. SECRET_KEY 从硬编码改为环境变量读取,未设置时自动生成随机值
7. 登录时 session 存储 tenant_id,auth_manager 返回用户的 tenant_id
8. 前端共享状态集中声明并添加注释,标注每个状态由哪个模块管理
9. 数据库启动时自动检测并添加缺失的 tenant_id 列(SQLite ADD COLUMN 迁移)
10. Webhook handler 添加文档说明双通道互斥建议
11. LLM chat_completion 添加自动重试(max_retries=2),服务端错误和超时自动重试
12. 知识库向量化器和 Embedding 禁用日志从 INFO 降为 DEBUG,减少噪音
2026-04-02 22:19:56 +08:00
d27b6a9c87
fix: 飞书发送者信息获取修复
...
- sender_id 优先用 open_id(user_id 在无权限时为 None)
- get_user_info 默认用 open_id 类型查询
- contact API 无权限时优雅降级,用 ID 缩写作为标识(用户_xxx)
- feishu_bot 和 longconn 都统一了 sender 提取逻辑
2026-04-02 15:47:36 +08:00
c07cbf47c8
feat: 飞书消息记录完善 记录发送者ID、姓名、群信息
...
- FeishuService 新增 get_user_info() 根据 user_id 获取飞书用户姓名
- feishu_bot.py 处理消息时获取发送者姓名,日志格式改为:发送者=姓名(ID), 群=chat_id, 类型=群聊/私聊, 租户=xxx
- feishu_longconn_service.py 同样获取发送者姓名并记录
- Conversation.ip_address 存储 feishu:user_id:sender_name(扩大字段到200字符)
- Conversation.invocation_method 存储 feishu_bot(group) / feishu_longconn(p2p) 等详细来源
- ChatSession.source 同步记录详细来源信息
2026-04-02 15:40:26 +08:00
28e90d2182
fix: 飞书群绑定租户完善
...
- tenants.js 去掉已删除的 appid/appsecret 元素引用
- showEditTenantModal 改为从 API 加载完整租户数据(不再传参拼接)
- saveTenant 保留已有的非 feishu 配置,只更新 chat_groups
- 租户列表显示绑定群数量或'未绑定飞书群'
- 飞书 bot/longconn 复用已有会话时同步更新 tenant_id(群重新绑定后立即生效)
- 删除租户后同步刷新租户选择器
2026-04-02 15:25:50 +08:00
7950cd8237
feat: 飞书机器人按租户路由 群组绑定租户 + 独立凭证 + 知识库隔离
...
1. 新增 resolve_tenant_by_chat_id() 根据飞书群 chat_id 查找绑定的租户
2. 新增 get_tenant_feishu_config() 获取租户级飞书凭证
3. FeishuService 支持传入自定义 app_id/app_secret(租户级别)
4. feishu_bot.py 收到消息时自动解析租户,使用租户凭证回复
5. feishu_longconn_service.py 同样按 chat_id 解析租户并传递 tenant_id
6. 租户管理 UI 新增飞书配置字段:App ID、App Secret、绑定群 Chat ID
7. 租户列表展示飞书绑定状态和群数量
8. 保存租户时同步更新飞书配置到 config JSON
2026-04-02 09:58:04 +08:00
zhaojie
d0dd18342f
feat: 优化飞书集成、知识库、Agent、工单管理及AI建议功能,统一前端对话字体样式并移除工单模板文件。
2026-02-11 22:53:08 +08:00
zhaojie
e3a0396567
feat: 新增飞书长连接模式,无需公网域名
...
## 🚀 重大更新
### 飞书集成升级
- ✅ 迁移到飞书官方 SDK 的事件订阅 2.0(长连接模式)
- ✅ 无需公网域名和 webhook 配置
- ✅ 支持内网部署
- ✅ 自动重连机制
### 核心功能优化
- ✅ 优化群聊隔离机制(每个用户在每个群独立会话)
- ✅ 增强日志输出(emoji 标记便于快速识别)
- ✅ 完善错误处理和异常恢复
- ✅ 添加 SSL 证书问题解决方案
### 新增文件
- `src/integrations/feishu_longconn_service.py` - 飞书长连接服务
- `start_feishu_bot.py` - 启动脚本
- `test_feishu_connection.py` - 连接诊断工具
- `docs/FEISHU_LONGCONN.md` - 详细使用文档
- `README.md` - 项目说明文档
### 技术改进
- 添加 lark-oapi==1.3.5 官方 SDK
- 升级 certifi 包以支持 SSL 验证
- 优化配置加载逻辑
- 改进会话管理机制
### 文档更新
- 新增飞书长连接模式完整文档
- 更新快速开始指南
- 添加常见问题解答(SSL、权限、部署等)
- 完善架构说明和技术栈介绍
## 📝 使用方式
启动飞书长连接服务(无需公网域名):
```bash
python3 start_feishu_bot.py
```
详见:docs/FEISHU_LONGCONN.md
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com >
2026-02-11 14:10:18 +08:00
zhaojie
c3560b43fd
docs: update README and CLAUDE.md to v2.2.0
...
- Added documentation for audit tracking (IP address, invocation method).
- Updated database model descriptions for enhanced WorkOrder and Conversation fields.
- Documented the new UnifiedConfig system.
- Reflected enhanced logging transparency for knowledge base parsing.
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com >
2026-02-11 00:08:09 +08:00