AskaEth
|
0717928496
|
fix: Phase 6联调 — 插件管理器端口修正 + 多模型配置系统整合 + 历史消息刷新修复
## 调试日志
### 1. 插件管理器启动失败
- **症状**: DevTools 显示插件管理器一直"已停止",手动启动正常
- **排查**: 对比 process-manager.js 传入的环境变量 vs plugin-manager config.go 读取的变量
- **根因**: config.js 传入 PLUGIN_MANAGER_PORT=8094,但 config.go 读取 os.Getenv("PORT"),env 名不匹配。且 process.env 中 PORT 泄露时被误读为 9090,与 DevTools 端口冲突
- **修复**: config.js 将 PLUGIN_MANAGER_PORT → PORT,使 env 名与代码一致 (c3055f4)
### 2. 历史消息刷新后消失
- **症状**: 浏览器刷新后聊天历史清空
- **排查**: WebSocket history_response handler 中 if (msg.messages) 对空数组 [] 为 truthy
- **根因**: 后端返回空的 history_response (缓存为空) 时,空数组覆盖了 HTTP 已加载的消息
- **修复**: useWebSocket.ts 改为 if (msg.messages && msg.messages.length > 0),空数组走 else-if 分支仅打日志,不覆盖已有消息
### 3. Phase 6 多模型配置系统
- Gateway: ModelsConfigStore (JSON文件持久化) + Admin CRUD API (providers/models/routing)
- ai-core: ModelSelector 支持按 purpose 选择 + fallback_chain,无配置时回退 .env
- DevTools: 模型配置管理面板 (Providers/Models/Routing 三Tab)、在线模型查询代理、路由表单 checkbox 多选、关键词搜索过滤
- .gitignore: models.json + platform_configs.json
### 4. 多端客户端追踪
- Hub 新增 knownClients 映射 (clientID → KnownClient),在线/离线状态追踪
- 客户端备注持久化到 PostgreSQL
- DevTools 客户端管理面板
Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
|
2026-05-23 21:23:10 +08:00 |
|
AskaEth
|
87214b9441
|
feat: Phase 1+2 架构进化 — 连续思考链/主动消息决策/情感状态机/离线自主思考 (86文件)
Phase 1 (基础设施):
- ThinkChain 思考链连续性 + 差异化思考提示词 (persistent)
- AutonomousToolPolicy 工具安全策略 (safe/unsafe/conditional)
- MessageScheduler 自适应消息节奏 (Idle/Available/Busy)
- SessionEnrichmentStore 渐进式上下文丰富 (5层)
- ConversationBus 事件总线 + ResponseCache (dedup)
- pkg/logger 统一日志 + 所有 handler 替换 fmt.Printf
- NPE 守卫/链路优化/数据库表修复/Go workspace
Phase 2 (人格交互):
- EmotionState/EmotionTracker 情感状态机 (5种心情, 情绪衰减)
- ProactiveGuard 主动消息多维决策 (静默时段/紧急度/频率/校验)
- Gateway↔ai-core 在线状态感知链路 (presence notification)
- 离线思考频率控制 + 重连问候 + 离线消息排队
Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
|
2026-05-23 15:25:12 +08:00 |
|
AskaEth
|
773f19f009
|
fix: DevTools 读取 .env 管理员凭据 + 统一 main.go 密码 fallback
两个问题导致用户无法用 .env 中的管理员账户登录:
1. DevTools 未读取 backend/.env,始终传 admin/cyrene-dev-admin 给 gateway
2. gateway main.go 中创建管理员时独立读取 os.Getenv 并以 "admin123"
为 fallback,与 config.go 的 cfg.AdminPassword 不一致
修复:
- config.js: 启动时加载 backend/.env 到 process.env (不覆盖已有环境变量)
- main.go: 移除独立的 os.Getenv 读取,统一使用 cfg.AdminPassword
Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
|
2026-05-22 22:01:30 +08:00 |
|
AskaEth
|
380cc24913
|
fix(security): 修复 P0 安全漏洞 (Session越权+CORS白名单+用户名枚举)
|
2026-05-21 16:12:54 +08:00 |
|
AskaEth
|
1fc2b41d36
|
fix: 将管理员 user_id 从动态 admin_{username} 改为固定 admin
根因:admin user_id 由 admin_ + req.Username 动态拼接,
当 .env 中 ADMIN_USERNAME 更改时,新登录会生成不同的 user_id,
导致旧会话成为孤儿且消息历史不可见。
修复方案 (Plan A):
- auth_handler.go: Login 时 userID 固定为 admin
- auth.go: IsAdminKey 从 HasPrefix(admin_) 改为 == admin
- chat_handler.go: 主对话管理员检查改为 userID == admin
- memory_handler.go: 3处 admin_ 前缀检查改为 == admin
- briefing_handler.go: 3处 admin_ 前缀检查改为 != admin
- sessionStore.ts: isAdminUser 从 startsWith 改为 ===
- MessageBubble.tsx: UserAvatar 管理员判断改为 ===
- main.go: 添加旧管理员用户清理逻辑 (ListUsers+DeleteUser)
- user_store.go: 新增 ListUsers 和 DeleteUser 函数
- ai-core/main.go: adminUserID 从 admin_admin 改为 admin
- memory-service/store.go: 默认 user_id 改为 admin
- memory-service/memory_service.go: 默认 UserID 改为 admin
- devtools/src/index.js: URL 参数 user_id=admin
验证: Go build 通过 (gateway/ai-core/memory-service),
tsc --noEmit 通过, vite build 通过
|
2026-05-20 22:13:21 +08:00 |
|
AskaEth
|
25d6eff7c3
|
fix: 种子用户日志和密码配置化 + 第2轮调试文档
|
2026-05-20 14:02:09 +08:00 |
|
AskaEth
|
9dd1582987
|
fix: 创建users表 + 用户认证系统 (REG1) — 第1轮调试修复
新增 user_store.go 实现 users 表自动建表和 CRUD
注册使用 bcrypt 哈希密码存入 users 表
登录从 users 表查询用户并验证密码
启动时自动种子 admin/admin123 用户
调试文档: docs/debug/2026-05-20-round1-regression-verification.md
|
2026-05-20 13:52:12 +08:00 |
|
AskaEth
|
4b35736f73
|
fix: 修复19个Bug (P0-P3) — 持续性调试第7轮发现的问题
P0 (5): crypto/rand session ID, TTS fallback可达性, goroutine defer recover, adminAuth前缀修正
P1 (5): 普通用户密码验证, context传递, priority clamp, 超时重试, 自主思考速率限制
P2 (4): Briefing AI降级, 前端消息类型渲染, Docker Compose补全, PWA 192图标
P3 (5): goroutine错误处理, .gitignore完善, reminder created_at, voice Dockerfile, Go版本更新
|
2026-05-20 13:30:32 +08:00 |
|
AskaEth
|
bcf4d4e621
|
feat: 第五轮开发 - 14项未来路线图功能完整实现
W1-W14 全部完成:
- W1: 消息搜索 (ILIKE全文检索 + SearchModal)
- W2: 对话导出 (JSON/Markdown/TXT三格式)
- W3: 记忆时间线 DevTools 可视化
- W4: 通知推送系统 (WebSocket + Browser Notification API)
- W5: 定时提醒 (30s轮询 + 重复提醒 + WebSocket推送)
- W6: 每日简报 (08:00自动生成: 天气+新闻+提醒+AI摘要)
- W7: IoT场景自动化 (规则引擎 10s轮询 + 条件评估 + 场景执行)
- W8: 语音输入 (浏览器 Speech Recognition API)
- W9: STT服务 (voice-service + whisper.cpp)
- W10: TTS服务 (浏览器 Speech Synthesis + edge-tts三档回退)
- W11: 文件管理 (上传/下载/缩略图/纯Go bilinear缩放)
- W12: 知识库RAG (PostgreSQL tsvector + 文档分块 + 检索)
- W13: 多模态 (图片上传+分析: Vision API + 本地Go分析回退)
- W14: PWA (Service Worker + 离线页 + install prompt)
总计: 6个Go微服务 + 10+前端组件 + 10+ PostgreSQL表 + 4个后台调度器
|
2026-05-19 12:01:09 +08:00 |
|
AskaEth
|
e7b7eff0d8
|
fix: 第二轮修复 — 数据库启动检查、会话持久化、URL路由、设备排序等
1. DevTools 启动前检查数据库状态,失败时自动尝试启动
2. ai-core 添加数据库断线重连机制 (30秒间隔)
3. Dashboard 添加数据库状态卡片 (启动/停止/重启)
4. Gateway 会话空闲超时管理 (30分钟标记空闲)
5. 会话/消息 PostgreSQL 持久化 (SessionStore + REST API)
6. 前端服务端会话持久化 + URL hash 路由 + 侧边栏管理
7. 管理员回到主对话按钮
8. IoT 设备卡片固定排序
9. 更新相关文档
|
2026-05-17 17:18:02 +08:00 |
|
AskaEth
|
a80bfd12eb
|
fix: 修复6个bug + IoT设备控制增强 + DevTools IoT面板
问题1: 刷新后主对话历史不显示,侧边栏子对话列表为空
- sessionStore: 修复 setCurrentSessionId 用 Map 去重消息
- AppLayout: 修复 autoLoadNewSession 逻辑
- useWebSocket: 修复 setMessages 调用时机
问题2: 切换到次级对话后无法切换回主对话
- Sidebar: 为删除按钮添加 e.stopPropagation()
问题3&4: IoT设备列表展开导致输入栏消失 + 聊天消息无法滚动
- IoTStatusBar: 从fixed定位改为inline布局
- ChatContainer: 重构flex布局,MessageList自动撑满
问题5: AI核心无法操作IoT设备 + 无法设置温度等属性
- 新增 IoTControlTool (iot_control_tool.go)
- IoTClient: 新增 ToggleDevice/SetProperty/GetHistory
- 支持 set_temperature/set_brightness/set_position/set_mode/set_color
问题6: DevTools启动时Gateway代理登录异常
- devtools: 登录失败时静默降级,不阻塞启动
额外修复:
- iot_tools.go: 修复fmt.Sprintf参数缺失
- iot-debug-service: 修复并发死锁问题
- DevTools: 新增IoT设备控制面板(API代理+前端UI)
|
2026-05-17 14:37:44 +08:00 |
|
AskaEth
|
d15acf587c
|
feat: DevTools综合升级 — 记忆查询 + 会话监看 + WebUI侧边栏重构
- docs: 17个文件重命名为 YYYY-MM-DD.HH-mm-SS-内容.md 格式
- config: 管理员凭据移至 backend/.env (ADMIN_USERNAME/PASSWORD)
- gateway: 新增 SessionState 会话追踪 + GET /api/v1/admin/sessions
- devtools: 新增7个代理端点 (dashboard/sessions/memory)
- devtools: WebUI重构为侧边栏 + 5面板 (仪表盘/记忆/会话/服务/性能)
|
2026-05-16 15:02:44 +08:00 |
|
AskaEth
|
6bde87f807
|
init: 昔涟项目骨架
|
2026-05-15 20:10:35 +08:00 |
|