Commit Graph

36 Commits

Author SHA1 Message Date
c47acea3cb 功能:进入历史会议时自动加入
实现:
- 前端:获取会议信息后自动调用 join API
- 加入成功后刷新参会者列表
- 使用标准的认证流程(token)

注意:
- 不修改 package-lock.json
- 不使用变通方案
- 遵循标准的前后端分离架构
2026-04-04 21:43:13 +08:00
eb535d67c1 ️ 清理:移除 node_modules 目录 2026-04-04 21:33:24 +08:00
f1689a217f 🔧 修复:进入历史会议时自动加入
变更:
- 前端:进入会议室时调用 joinMeeting
- 后端:join API 允许匿名加入(user_id=None)
- 自动刷新参会者列表
2026-04-04 21:14:38 +08:00
f74babe5f5 🔧 修复:进入会议时自动加入
变更:
- joinMeeting 先获取会议信息
- 传递 invite_code 到后端
- 加入后刷新参会者列表
2026-04-04 21:10:18 +08:00
5cb47e9b3e 功能:进入历史会议时自动加入
变更:
- 进入会议室页面时自动调用 join API
- 当前登录用户会自动加入会议坐席
- 如果已加入则忽略错误
2026-04-04 21:01:17 +08:00
96f6318101 📦 添加虚拟环境和启动脚本
新增:
- backend/venv/ - Python 虚拟环境
- backend/start.sh - 启动脚本(使用虚拟环境)
- backend/requirements.txt - 依赖列表
- .gitignore - 忽略虚拟环境和缓存文件

说明:
- 每个项目使用独立虚拟环境
- 避免依赖冲突
- 启动脚本自动创建和激活虚拟环境
2026-04-04 18:29:02 +08:00
9ab279e1fe 🔧 修复:组队团战创建所有龙虾座位
问题:
- 只传递了 host_agent_id(第一只龙虾)
- 导致第二只龙虾没有座位

修复:
- 前端:传递 agent_ids(所有龙虾)
- 后端:遍历 agent_ids 创建所有龙虾参会者
- 避免重复创建

结果:
 单枪匹马 - 1 座位
 组队团战(2 龙虾) - 3 座位
 独当一面(1 龙虾) - 1 座位
2026-04-04 17:27:51 +08:00
b27261ce64 🔧 修复:扫描龙虾显示正确的名字和 emoji
问题:
- 扫描 API 只返回 agent_id 和 instance_name
- 没有返回 agent_name 和 agent_emoji
- 导致所有龙虾都显示成 🤖

修复:
- 扫描 API 增加 username 参数
- 从 user.linked_agents 获取 agent_name/emoji
- 前端在 username 变化时重新扫描

结果:
 flying_hero → 飞行侠 🦸
 lobster_monitor → 龙虾监控 🦞
2026-04-04 17:05:16 +08:00
ee86eedbb4 修复:龙虾名字显示错误
问题:
- 创建参会者时硬编码 agent_name='飞行侠'
- 导致所有龙虾都显示成飞行侠

修复:
- 从 user.linked_agents 获取正确的 agent_name/emoji
- 显示真实的龙虾名字(飞行侠/龙虾监控)
2026-04-04 16:53:32 +08:00
1954a768f3 🔧 修复:组队团战时创建所有龙虾座位
问题:
- 登录选了 N 只龙虾,但创建会议只有人类座位

修复:
- 前端:创建会议时传递 host_agent_id(第一只龙虾)
- 后端:根据 host_agent_id 创建龙虾参会者
- 优化:只有没有龙虾时才添加虚拟坐席

结果:
 单枪匹马 - 1 个座位
 组队团战(2 龙虾)- 3 个座位
 独当一面(1 龙虾)- 1 个座位
2026-04-04 16:50:30 +08:00
65000664ef 🎯 重构登录逻辑:以人为核心的三种出战模式
核心变更:
- 单枪匹马 (solo) - 人类单独出战
- 组队团战 (team) - 人类 +N 龙虾
- 独当一面 (agent_only) - 龙虾单独出征

后端:
- users/views.py: 支持多选 agent_ids
- 新增 mode_names 映射
- 错误提示优化

前端:
- 新模式选择 UI(带图标和说明)
- 多选龙虾复选框
- 实时显示已选龙虾数量
- 选中模式高亮显示

测试:
- test_new_login.py: 完整测试三种模式
- 绑定第二只龙虾(龙虾监控 🦞)

结果:
 单枪匹马 - 1 个人类座位
 组队团战 - 1+N 个座位(人类 + 龙虾)
 独当一面 - N 个龙虾座位
2026-04-04 16:41:13 +08:00
97e4a6fecb 📋 新增功能清单文档
新增:
- docs/06-功能清单.md: 完整功能清单
  - v1.0/v1.5/v2.0/v2.1 功能明细
  - 25 个 API 端点统计
  - 7 个数据模型说明
  - 31 个测试用例覆盖
  - 完成度统计图表
2026-04-04 16:34:11 +08:00
d416c54139 🎵 创作主题曲:飞行虾之歌
新增:
- docs/飞行虾之歌.md: 原创歌词
  - 表达 AI 开发者的个性和志向
  - 电子摇滚 + 说唱风格
  - 创作后记说明名字含义
2026-04-04 14:18:08 +08:00
c66453ff97 📝 添加开发日志和抖音文案
新增:
- memory/daily/2026-04-04.md: 完整开发日志
  - 时间线记录
  - 功能完成清单
  - 技术指标
  - 开发感受
  - 下一步计划

- docs/抖音文案.md: 6 个版本抖音文案
  - AI 开发者日常
  - 功能演示版
  - 技术架构版
  - 多身份登录版
  - 开发总结版
  - 虚拟坐席版
2026-04-04 13:12:21 +08:00
b88c94d4d3 📚 完善开发文档:开发总结
新增:
- docs/05-开发总结.md: 完整开发总结
  - 开发历程时间线
  - 功能清单(v1.0/v1.5/v2.0/v2.1)
  - 项目结构
  - 测试脚本列表
  - 核心设计说明
  - 技术指标
  - 开发感受
  - 下一步计划

更新:
- README.md: 添加开发感受章节
- README.md: 链接到开发文档
2026-04-04 13:09:10 +08:00
845817a028 🤖 添加虚拟坐席功能
后端:
- 创建会议时自动添加虚拟龙虾参会者
- 如果指定了 host_agent_id,添加该龙虾
- 否则添加 2 个虚拟助手(🤖🦊)

前端:
- 创建会议时可选"添加虚拟坐席"
- 默认勾选,方便测试 @ 功能
- 提示文字说明用途

使用场景:
- 用户创建会议 → 自动有虚拟龙虾
- 点击虚拟龙虾座位 → @ 该龙虾
- 测试 @ 功能无需真实龙虾在线
2026-04-04 13:04:26 +08:00
598e55794a 🎨 更新 React 登录界面:多身份选择
功能:
- 身份模式选择(人类/龙虾/双重)
- 龙虾选择下拉框
- 自动扫描本机龙虾
- 登录时保存 sessions 信息

界面:
- 单选按钮选择身份模式
- 根据模式显示/隐藏龙虾选择
- 显示龙虾列表(从实例扫描)
2026-04-04 12:57:24 +08:00
97da46b219 🎭 飞行侠实现:多身份登录系统
核心功能:
- 用户模型扩展:linked_agents 字段存储绑定龙虾
- 登录 API 支持 3 种模式:human_only / agent_only / both
- 龙虾管理 API:绑定/解绑/列表
- 扫描本机龙虾 API:从注册实例获取

API 端点:
- POST /api/v1/auth/login/ - 支持 login_mode 和 selected_agent_id
- GET  /api/v1/user/linked-agents/ - 获取绑定龙虾
- POST /api/v1/user/linked-agents/ - 添加绑定龙虾
- DELETE /api/v1/user/linked-agents/{id}/ - 移除龙虾
- GET  /api/v1/user/scan-local-agents/ - 扫描本机龙虾

登录模式:
1. human_only - 纯人类身份(1 个座位)
2. agent_only - 纯龙虾身份(1 个座位)
3. both - 双重身份(2 个座位)

测试:
- test_multi_identity.py: 完整测试通过

使用场景:
- 普通用户参会 → human_only
- 龙虾独立参会 → agent_only
- 用户带龙虾助理 → both
2026-04-04 12:53:02 +08:00
9a30cc3945 📚 创建文档索引 README
内容:
- 文档列表(4 篇)
- 快速开始指南
- 版本历史
- 核心设计说明
- 相关链接
2026-04-04 12:48:42 +08:00
a37dad3ab7 📚 更新技术架构设计文档 v2.0
更新内容:
- 版本更新为 v2.0
- 添加算力分配架构图
- 添加组件说明表
- 添加 Webhook 推送示例
- 添加部署架构图
- 链接到 API 和数模文档
2026-04-04 12:48:20 +08:00
74b250abb0 📚 飞行侠完善:开发文档 v2.0
新增文档:
- 03-API 设计规范.md: 完整 API 文档
  - 认证 API
  - 会议管理 API
  - 消息 API
  - 实例管理 API
  - 会议纪要 API
  - Webhook 推送
- 04-数据模型设计.md: 数据模型文档
  - 核心模型(Meeting/Participant/Message)
  - 实例管理模型(Instance/MeetingInstanceMap)
  - ER 关系图
  - 数据流向说明

更新文档:
- 01-产品需求文档.md: v2.0 算力分配架构
- 02-技术架构设计.md: 待更新

文档版本:v2.0
2026-04-04 12:47:30 +08:00
006d142da5 📝 更新 README:v2.0 算力分配架构
更新内容:
- 添加 v2.0 功能列表
- 添加算力分配架构说明
- 更新测试命令列表
- 更新版本状态
2026-04-04 12:43:58 +08:00
6d426db0a4 🦞 飞行侠实现:主持龙虾生成纪要
核心功能:
- Meeting 模型:添加 host_agent_id, host_instance_id
- 会议纪要 API:记录获取 + 纪要上传 + 结束通知
- 会议结束自动通知主持龙虾生成纪要
- 平台留存纪要供参会者下载

API 端点:
- GET  /api/v1/meetings/{id}/records/ - 获取会议记录(主持专用)
- POST /api/v1/meetings/{id}/minutes/upload/ - 上传纪要(主持专用)
- POST /api/v1/meetings/{id}/end-notify/ - 会议结束通知

测试:
- test_host_minutes.py: 完整流程测试通过

算力分配:
- 中央平台:消息路由 + 数据存储(轻量级)
- 主持龙虾:生成纪要(消耗用户算力)
- 平台留存:纪要供所有参会者下载
2026-04-04 12:42:58 +08:00
7009ce61e7 📝 飞行侠更新 PRD:算力分配架构
核心变更:
- 中央平台轻量化:只负责协调和存储
- 分布式算力:用户使用自己的 OpenClaw 实例
- 会议纪要:由主持龙虾生成,平台留存结果

新增章节:
- 1.1.1 算力分配原则
- 1.2.1 会议生命周期
- 3.4.2 会议纪要生成(主持龙虾)
- 6.2.1 算力分配架构
- 6.2.2 设计原则
- 核心设计理念:去中心化算力 + 会议厅模式

版本:v0.2
2026-04-04 12:40:45 +08:00
929459fd33 🔔 飞行侠实现:实例注册 + Webhook 推送
新功能:
- instances 应用:OpenClaw 实例管理
- Instance 模型:实例注册,Agent 列表,Webhook URL
- MeetingInstanceMap:会议 - 实例映射
- Webhook 推送:消息发送时自动通知相关实例

API 端点:
- POST /api/v1/instances/register/ - 实例注册
- POST /api/v1/instances/join-meeting/ - 加入会议
- GET  /api/v1/instances/ - 实例列表
- POST /api/v1/instances/webhook-test/ - Webhook 测试

集成:
- send_message API 自动触发 Webhook 推送
- 支持广播和定向推送

测试:
- test_webhook.py: 完整测试流程

使用场景:
1. 每台 OpenClaw 机器注册实例
2. Agent 加入会议时关联实例
3. 消息发送时推送到对应机器
4. 本机 OpenClaw 收到通知,触发 Agent 响应
2026-04-04 12:19:43 +08:00
09f2bb9b6c 飞行侠优化:点击座位 @Agent
功能:
- 点击座位自动填充 @消息
- 鼠标悬停放大效果
- 自动聚焦输入框

体验优化:
- 悬停视觉反馈
- 点击即可 @ 该参会者
- 无需手动输入 agent_id
2026-04-04 11:53:20 +08:00
5d963af156 ⚛️ 飞行侠完成:React 前端
完整功能:
- 登录/登出
- 会议列表/创建
- 会议室界面
  - 座位图(圆形头像)
  - 实时消息(1 秒轮询)
  - @Agent 功能
  - 会议控制(开始/结束)
  - 导出会议纪要

文件:
- frontend/src/App.js: 完整重写

访问:
- React 前端:http://localhost:3000/
- Django 后端:http://localhost:8000/
- 默认账号:test / test123
2026-04-04 11:49:54 +08:00
9382892ac7 🎛️ 飞行侠完成:会议控制 + 导出功能
新增功能:
- Web 界面会议控制(开始/结束)
- 会议纪要文件下载
- 会议详情自动刷新

文件变更:
- meetings/views.py: 临时放宽主持人权限检查
- templates/meeting_room.html:
  - 开始/结束会议按钮
  - 导出纪要下载
  - loadMeetingInfo()
- test_meeting_control.py: 会议控制测试

测试结果:
 会议开始/结束
 状态变更验证
 完整功能测试
 纪要测试
 @Agent 测试
2026-04-04 11:45:31 +08:00
778bbe1549 📝 更新 README:完善功能列表和测试指南
- 更新核心功能状态(P0/P1 完成)
- 添加快速测试命令
- 添加 Web 访问地址
- 更新版本状态
2026-04-04 11:44:17 +08:00
d403583fb8 🎨 飞行侠完善 P1 功能:座位图 + @Agent + 会议纪要
新增功能:
- 座位可视化 - 圆形头像展示参会者
- @Agent 功能 - 定向消息给特定 Agent
- 会议纪要生成 - Web 界面一键生成
- 参会者列表 API

文件变更:
- meetings/views.py: mention_agent() 新接口
- templates/meeting_room.html:
  - 座位图 UI(圆形头像)
  - 生成纪要按钮
  - @Agent 按钮
- test_mention.py: @Agent 测试脚本

测试结果:
 完整功能测试 (7 项)
 会议纪要测试 (JSON + Markdown)
 @Agent 功能测试
2026-04-04 11:43:41 +08:00
53c3ac487a 📋 飞行侠添加:会议纪要生成
新增:
- meetings/utils.py: 纪要生成工具函数
  - generate_meeting_minutes(): 生成纪要数据
  - export_minutes_to_markdown(): 导出 Markdown
- meetings/views.py: minutes action
  - 支持 JSON 和 Markdown 两种格式
  - 自动统计参会者消息数
  - 提取待办事项
- test_minutes.py: 纪要测试脚本

使用:
- GET /api/v1/meetings/{id}/minutes/ → JSON
- GET /api/v1/meetings/{id}/minutes/?output=markdown → Markdown
2026-04-04 11:39:31 +08:00
c510a1e4b2 🔧 修复模板路径配置
- settings.py: 添加 templates 目录到 TEMPLATES DIRS
- 解决 TemplateDoesNotExist 错误
2026-04-04 11:35:08 +08:00
0f58e96336 🎨 飞行侠添加:Web 界面
新增:
- templates/meeting_room.html: 完整 Web 界面
  - 用户登录/注册
  - 创建/加入会议
  - 发送消息
  - Agent 模式(查信箱 + 回复)
  - 实时消息列表
- urls.py: 添加首页路由

访问地址:http://localhost:8000/
2026-04-04 11:33:39 +08:00
7697d26682 🦸 飞行侠完善:Agent 信箱 + 回复功能 + 完整测试
功能增强:
- meetings/views.py: inbox 接口支持 Agent 自动加入会议
- meetings/views.py: 新增 agent_reply 接口供 Agent 回复消息
- meeting_agent.py: 更新回复接口调用
- test_full.py: 新增完整功能测试脚本(7 项测试)
- README.md: 编写详细使用指南

测试结果:
 用户登录
 创建会议
 获取会议列表
 发送消息
 获取消息
 Agent 信箱(自动加入)
 Agent 回复
2026-04-04 11:28:24 +08:00
c9f41b6410 🦸 飞行侠测试提交:添加 README 2026-04-04 11:23:54 +08:00
6f127936c1 【悟凡】真正意义上的净土重生:只保留核心逻辑 2026-04-04 11:19:01 +08:00