4ad6d0b9f6
🔧 修复:前端 API 地址改为 9000 端口
2026-04-04 19:08:55 +08:00
7be35039ed
🔧 修改端口:避免与会议厅冲突
...
变更:
- 前端:3000 → 4000
- 后端:8000 → 9000
原因:
- 会议厅使用 3000/8000
- 避免端口冲突
新访问地址:
- 前端:http://localhost:4000
- 后端 API: http://localhost:9000/api/
2026-04-04 18:20:02 +08:00
ac5dd3a91e
feat: 完善放虾归海交互 - 方块动态显示 🦐
...
✨ 新特性:
- 拖入河中:下方龙虾卡片自动消失
- 拖出河水:下方龙虾卡片重新出现
- 动态过滤:根据河中状态实时更新列表
🎨 界面优化:
- 移除标题文字,更简洁
- 鼠标移入河水显示使用提示
- 提示内容:'放虾' 和 '用虾'
- 空状态显示波浪 emoji 🌊
🎮 完整玩法:
1. 🦐 捞虾 - 从 Docker 海洋捞到龙虾
2. 🌊 放虾 - 拖到河水中消失,变成游动的 emoji
3. 🔍 观察 - 悬停显示龙虾名字
4. 🦐 用虾 - 拖出河水,卡片重新出现
5. 🔄 循环 - 可以反复拖入拖出
💡 智能提示:
- 鼠标移入河水区域时显示
- 指导用户如何'放虾'和'用虾'
- 鼠标移出时自动隐藏
🦀 Logo 已集成:
- 浏览器 favicon
- Dashboard 顶部显示
- 标题 emoji
🦸 感谢北极星 ⭐ 的创意和耐心!
'放虾归海' - 从想法到现实,太好玩了!😄
2026-04-03 21:14:36 +08:00
b48964ebf6
feat: 添加放虾归海功能(龙虾河) 🦐 🌊
...
🎨 新设计:
- 龙虾河:200px 高,蓝色渐变背景
- 波浪动画:三层半透明波浪滚动效果
- 河水分界线:贯穿的蓝线 + '河岸'文字
- 河中的龙虾:随机位置,游动动画
🦐 交互玩法:
1. 拖拽龙虾卡片到河水中
2. 龙虾变成 emoji 在河中游动
3. 鼠标悬停显示名字 tooltip
4. 可以从河中拖回下方列表
✨ 功能特性:
- 龙虾在河中随机分布(10%-90% 位置)
- 游动动画(上下浮动 + 左右摇摆)
- 悬停显示名字
- 拖拽出河水后从河中移除
- 成功提示:'XX 已放归河水中!🌊 '
🦀 Logo 更新:
- 添加 favicon(浏览器标签页图标)
- Dashboard 顶部显示 logo
- 标题 emoji 更新为 🦀
🎯 组件重构:
- LobsterPool → LobsterRiver(更贴切)
- 简化组件结构
- 优化动画效果
🦸 感谢北极星 ⭐ 的创意!
'放虾归海' - 太好玩了!😄
2026-04-03 21:02:38 +08:00
52ef5cc095
feat: 添加捞虾功能(自动扫描 Agent) 🦐
...
🎯 新功能:
- 捞虾按钮:自动扫描 Docker 容器和宿主机进程
- 发现 openclaw 相关的 Agent 实例
- 自动创建或更新 Agent 记录
- 过滤掉没有端口的'石头'(无效进程)
🦐 捞虾逻辑:
1. 扫描 Docker 容器(跳过数据库、网关等辅助容器)
2. 扫描宿主机进程(ps aux)
3. 从容器名/进程名推断 Agent 名称和专长
4. 提取端口信息
5. 只保存有端口的有效 Agent
✨ 优化:
- 处理复杂的容器名称(如 openclaw-instance2-openclaw-cn-gateway-1)
- 自动推断 Emoji 和专长
- 避免重复创建
📊 捞虾结果:
- 显示捞到的虾数量
- 显示新增和更新数量
- 区分 Docker 容器和宿主机进程
🎨 界面:
- 按钮文案:'🦐 捞虾' / '🦐 捞虾中...'
- 提示信息生动有趣
- 加载状态显示
🐛 修复:
- 不过滤 gateway/watcher 容器(可能包含 Agent)
- 只跳过数据库容器(postgres/db/redis)
🦸 感谢北极星 ⭐ 的'捞虾'命名灵感!
2026-04-03 20:35:06 +08:00
6cc47ef45c
feat: 完成 Agent Diary 开源重构 🎉
...
🚀 重构内容:
- 重命名 Lobster → Agent(通用化)
- 重命名 LobsterDiary → AgentDiary
- 更新所有 API 端点:/api/lobsters/ → /api/agents/
- 前端组件重命名:LobsterDetail → AgentDetail
- 数据迁移:8 Lobsters → 8 Agents, 4 Diaries
📦 开源准备:
- 创建 .env.example(环境变量配置)
- 创建 docker-compose.yml(一键部署)
- 创建 Dockerfile(前后端)
- 创建 .gitignore
- 添加 MIT LICENSE
- 完善 README.md(中英双语)
- 创建 USAGE.md(使用说明)
📝 文档完善:
- REFACTOR_PLAN.md(重构计划)
- REFACTOR_PROGRESS.md(重构进度)
- REFACTOR_COMPLETE.md(重构完成报告)
- FINAL_REPORT.md(最终报告)
- 工作区同步报告.md
✨ 功能特性:
- 多 Agent 实例管理
- 日记系统(成长之路/工作记忆)
- 工作记忆完全隔离
- 日历视图
- 标签和分类
- RAG 支持(预留 embedding 字段)
🎯 开源准备度:100%
🦸 感谢北极星 ⭐ 的耐心指导!
2026-04-03 19:14:21 +08:00
2dc130df9d
fix: 修复工作记忆隔离 BUG
...
🐛 问题发现:
- lobster_memory_dates 和 lobster_memory_detail API
- 定义了 lobster_map 但没有使用
- 所有龙虾都读取 flying-hero/memory/
- 没有真正实现工作记忆隔离
✅ 修复内容:
1. 更新 API 从数据库读取工作记忆
- lobster_memory_dates: 从 LobsterDiary 查询
- lobster_memory_detail: 从 LobsterDiary 查询
- 根据 lobster_id 过滤,实现隔离
2. 更新 Lobster 模型的 workspace 字段
- 飞行侠: flying-hero
- 道童: daotong
- 墨子: coder
- 织网者: web
- 费曼: physics
- 守望者: watcher
- 白泽: secretary
- 谛听: ditin
3. 创建各龙虾的工作区目录
- /home/node/.openclaw/workspace/{lobster_name}/memory/
- 8 个龙虾都有独立的 memory 目录
4. 创建初始工作记忆文件
- 道童、墨子、白泽、谛听
- 每个龙虾有自己的工作计划
🎯 现在的工作记忆:
- 从数据库读取 (LobsterDiary, category='memory')
- 每个龙虾独立存储
- 完全隔离
🔧 为未来扩展做好准备:
- 可以在各自工作区记录日常工作
- 支持导入到数据库
- 支持 RAG 检索
2026-04-03 18:07:13 +08:00
ed42211c2e
fix: 优化日历弹窗样式
...
- 缩小日历组件尺寸
* 日历面板宽度:固定 260px
* 日期格子高度:固定 32px
* 导航按钮:24x24px
* 字体大小:0.75em
- 修复格子大小不一致问题
* 移除 aspect-ratio: 1
* 使用固定宽高
* 添加 box-sizing: border-box
* 所有格子统一尺寸
- 优化间距
* grid gap: 4px → 2px
* padding: 12px → 10px
* margin-bottom: 15px → 10px
- 视觉优化
* border-radius: 8px → 6px → 3px
* 更紧凑的布局
* 防止内容溢出容器
🎨 日历现在紧凑又美观!
2026-04-03 17:56:41 +08:00
b369a165b2
feat: 迁移到 PostgreSQL 数据库 🐘
...
- 使用 Docker 运行 PostgreSQL 15
* 镜像源:ezqbxkijjcpdb204j4.xuanyuan.run/postgres:15
* 数据库:lobster_db
* 用户:lobster_user
* 端口:5432
- 切换 Django 数据库配置
* SQLite → PostgreSQL
* 安装 psycopg2-binary 驱动
* 配置连接池和超时
- 数据迁移
* 导入 8 只龙虾数据
* 导入飞行侠的 3 篇日记
* 所有数据成功迁移到 PostgreSQL
- 优势
* 支持大规模数据
* 支持高并发
* 支持 pgvector 扩展(未来 RAG)
* 生产级数据库
🗄️ 龙虾舰队进入 PostgreSQL 时代!
2026-04-03 17:42:31 +08:00
24e4ca2c82
feat: 创建 LobsterDiary 模型,支持数据库存储日记
...
- 创建 LobsterDiary 模型
* 关联龙虾(ForeignKey)
* 日期、标题、内容
* 分类(成才之路/工作记忆/技术笔记)
* 标签(JSONField)
* Embedding 字段(预留 RAG 支持)
* 数据库索引优化
- 数据库迁移
* 添加 LobsterDiary 表
* 添加索引:lobster+date, category+date, date
- 导入脚本
* 创建 import_diaries 管理命令
* 导入飞行侠的成才之路日记(3 篇)
- 更新 API
* /api/lobsters/<id>/diary/dates/ - 从数据库查询
* /api/lobsters/<id>/diary/<date>/ - 从数据库读取
- PostgreSQL 配置模板
* settings_postgresql.py
* 准备好 PostgreSQL 迁移
技术栈:SQLite(当前) → PostgreSQL(未来)
RAG 支持:预留 embedding 字段,未来可扩展
🗄️ 日记正式进入数据库时代!
2026-04-03 17:38:18 +08:00
689851e762
refactor: 使用数据库管理龙虾配置
...
- 创建 Lobster 模型 (lobsters/models.py)
* name, emoji, port, specialty, container
* app_name, app_id (外部应用信息)
* created_at, updated_at (自动时间戳)
- 数据库迁移
* 创建 lobsters 表
* 导入 7 只龙虾初始数据
- 更新 API 视图
* lobster_list: 从数据库读取所有龙虾
* lobster_detail: 从数据库读取单个龙虾
* 移除硬编码的 LOBSTERS 配置
- 注册 lobsters 应用到 settings.py
优势:
✅ 添加龙虾不需要改代码
✅ 可通过 Django Admin 管理
✅ 支持动态增删改查
✅ 符合 Django 最佳实践
🦄 白泽成为第 7 只数据库龙虾!
2026-04-02 19:16:45 +08:00
1f61aff26e
feat: 添加秘书龙虾白泽 🦄
...
- 新增第 7 只龙虾:白泽
* 名字:白泽(中国古代神兽,通晓万物)
* Emoji: 🦄
* 专长:秘书/助理
* 端口:18389
* 容器:openclaw-secretary
- 白泽的寓意:
* 传说中能言人语,通晓万物
* 适合作为秘书和助理角色
* 帮助北极星处理日常事务
🦄 白泽加入龙虾舰队!
2026-04-02 19:14:51 +08:00
b852186920
feat: 添加外部应用卡片和可复制优化
...
- 新增'📱 外部应用'卡片,显示飞书应用信息
* 应用名称和图标
* 应用 ID(等宽字体显示)
* 一键复制按钮
* 未配置应用显示友好提示
- 优化工作区路径显示
* 代码样式(等宽字体 + 背景色)
* 添加'📋 复制'按钮
* 复制成功有提示消息
- 后端添加龙虾应用配置
* 飞行侠:IT 项目推广运营平台 (cli_a92413cfb0791bce)
* 道童:道德经新解 (cli_a9439b614f38dbd2)
* 其他龙虾:未配置
- 样式优化
* 绿色渐变复制按钮
* 悬停动画效果
* 响应式布局
📱 让重要信息一键可复制
2026-04-02 18:44:20 +08:00
f5ac1e85bf
feat: 优化日新功能交互流程
...
- 移除首页的'日新'按钮,每个龙虾卡片只保留'详情'按钮
- 日新功能整合到 LobsterDetail 组件内(弹窗形式)
- 删除 MemoryPage 路由组件(不再需要独立路由)
- 简化 App.js 路由配置,只保留两条路由:
* / - Dashboard 首页
* /lobster/:id - LobsterDetail 详情页
交互流程:
1. 首页点击'详情' → 进入龙虾详情页
2. 详情页点击'日新' → 打开 MemoryModal 弹窗
3. 弹窗内切换标签:成才之路 / 工作记忆
4. 关闭弹窗 → 返回详情页
优点:
- 首页更简洁,一个卡片一个按钮
- 所有龙虾共用弹窗组件,无需 n 个路由
- 功能整合,逻辑更清晰
- 更符合 React 组件化设计
📖 苟日新,日日新,又日新
2026-04-02 14:15:46 +08:00
4b4cd73a77
fix: 添加 MemoryPage 路由组件
...
- 创建 MemoryPage 页面组件
- 在 App.js 中添加 /lobster/:id/memory 路由
- 修复 MemoryModal 导入路径
- 关闭弹窗时返回龙虾详情页
📖 日新模块现在可以正常访问了
2026-04-02 13:33:17 +08:00
6a2a5bc469
feat: 添加日记(成才之路)功能
...
- 前端 MemoryModal 添加标签切换(成才之路/工作记忆)
- Dashboard 按钮更名为'日新'(📖 )
- 后端添加日记 API:
* /api/lobsters/<id>/diary/dates/ - 获取日记日期
* /api/lobsters/<id>/diary/<date>/ - 获取日记内容
- 日记优先显示故事版,其次技术版
- 日历显示本月日记统计
- 优化 UI 样式和加载状态
📖 苟日新,日日新,又日新
2026-04-02 13:27:48 +08:00
c39a912456
feat: 添加龙虾详情页面功能
...
- 新建 LobsterDetail 组件,显示龙虾详细信息
- 添加 React Router 路由配置 (/lobster/:id)
- Dashboard 添加详情按钮,支持跳转到详情页
- 详情页功能:
* 基本信息展示(名称、专长、端口、容器、工作区)
* 运行状态指示器(带脉冲动画)
* 快速操作(查看记忆、访问服务、复制地址)
* 运行统计卡片
- 修复 index.html 缺少 root 挂载点问题
- 添加一键重启脚本 restart.sh
- 更新任务跟踪文档
🦸 北极星指引方向,飞行侠展翅飞翔
2026-04-02 13:15:41 +08:00
57fa27c616
feat: 添加记忆功能 - 日记查看器和日历组件
...
- 后端 API: 获取日记日期列表和详情
- 前端组件:记忆弹窗、日历组件
- 点击记忆按钮查看龙虾工作日记
- 日历高亮显示有日记的日期
2026-04-01 22:36:06 +08:00
0c0466e378
Add WSGI config and ignore database file
2026-04-01 21:48:14 +08:00
4be901b1b0
Complete backend API and deployment guide
...
- Django REST API with lobster endpoints
- API views: list, detail, memory, tools
- Deployment guide with instructions
- Startup script for easy launch
- Requirements.txt for dependencies
- API URL routing
2026-04-01 20:52:03 +08:00
5386db423a
Add complete frontend UI and update README
...
- Complete HTML/CSS dashboard with lobster cards
- Auto-refresh every 5 seconds
- Statistics overview (total, healthy, error)
- Updated README with project info
2026-04-01 20:48:44 +08:00
1cbbf11fcf
Add React frontend and Django backend code
...
- React components: Dashboard, MemoryCalendar, SearchBox, ToolList
- Django backend structure
- Package configuration files
2026-04-01 20:43:25 +08:00