AskaEth
|
3a1287dd24
|
feat: Docker 部署完整环境变量 — 不再依赖 backend/.env
docker-compose.yml 新增 ADMIN_PASSWORD/INTERNAL_SERVICE_TOKEN 等关键变量,
.docker.env.example 覆盖所有可配置项,确保容器内各服务启动不 panic。
Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
|
2026-05-30 09:10:50 +08:00 |
|
AskaEth
|
6a83624579
|
chore: 从仓库移除 docs/debug_log/ — 调试日志不进版本管理
Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
|
2026-05-30 09:04:00 +08:00 |
|
AskaEth
|
914957d667
|
docs: 恢复并更新 Deploy.md — 生产部署使用 .docker.env.example
Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
|
2026-05-30 08:52:40 +08:00 |
|
AskaEth
|
77d12aefa6
|
docs: Docker Compose 生产部署指南 + OS 环境配置文档
Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
|
2026-05-30 08:49:07 +08:00 |
|
AskaEth
|
617f44a2fb
|
fix: Docker 生产部署构建上下文 — 统一 Dockerfile 从仓库根复制 shared pkg
Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
|
2026-05-30 08:46:06 +08:00 |
|
AskaEth
|
22d7b91cb1
|
feat: Gateway 消息排队机制 — 同会话串行化处理
同一 session 的消息按顺序处理:当前回复未完成时新消息进入队列,
完成后自动消费下一条。避免并发请求导致上下文竞争和响应交错。
客户端收到 type:"queued" 时可显示排队状态。
Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
|
2026-05-29 21:06:59 +08:00 |
|
AskaEth
|
61284c9c6a
|
feat: DevTools DOM 增量更新优化 — 减少全量重建
三层优化:
- 第1层:所有自动刷新面板加入 djb2 哈希跳过,数据未变不重建 DOM
- 第2层:Tool Calls/STT/Timeline 展开状态保存/恢复,重建后自动恢复
- 第3层:Services/Dashboard/Sessions 面板就地更新属性值,不重建卡片
Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
|
2026-05-29 21:00:21 +08:00 |
|
AskaEth
|
85f7f90318
|
fix: 修复间隔对话后首条回复为上一次对话内容的问题
根因:用户消息在回复完成后才缓存到 ConversationStore,而 assistant
回复在 orchestrator 中先缓存,导致存储顺序为 assistant → user 颠倒。
下次请求时 LLM 看到连续两条 assistant 再连续两条 user,对两条 user
消息都生成回复。
修复:将用户消息缓存移到 orchestrator 调用之前,确保 user → assistant
正确顺序;synthesizer 中对 DialogHistory 末尾与当前消息相同的 user
消息去重。
同时包含之前的 action 消息类型检测修复(isActionLike 启发式 +
injector XML 标签格式改进)。
Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
|
2026-05-29 21:00:15 +08:00 |
|
AskaEth
|
80dad9a018
|
docs: 更新动作消息格式为 XML 标签 + 图片 file_id 引用
Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
|
2026-05-29 19:28:09 +08:00 |
|
AskaEth
|
c4de813629
|
fix: XML动作标签 + 意图分析上下文 + 图片file_id引用
- 动作消息改用 <action>...</action> XML 标签(注入器 + 解析器 + 测试)
- 括号解析保留为降级方案,确保向后兼容
- 意图分析传入最近对话历史,防止短追问误判为 iot_query
- 意图提示词强化:短追问明确归为 question,iot_query 需设备名词
- 图片附件支持 file_id 轻量引用(Gateway FileStore 解析 + 上传端点复用)
- API 文档更新:附件新格式 + 图片传递链路
Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
|
2026-05-29 19:27:25 +08:00 |
|
AskaEth
|
3e15285065
|
feat: 双模型并行图片预处理 — 视觉理解+OCR 同时调用,由会话模型自主判断
- preprocessImages 同时调用 vision 和 OCR 模型(并行 goroutine)
- 当两个模型不同时,OCR 专注文字提取,视觉模型负责场景理解
- 两种结果合并传给会话模型,由 LLM 自主判断和融合
- 修复 LoadFromDB 旧 action 角色记录映射为 assistant
Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
|
2026-05-29 13:03:04 +08:00 |
|
AskaEth
|
91c9ee4b2d
|
fix: 修复 AI 回复无法送达发送者 + 重复消息 + action角色泄露 + OS环境支持
广播逻辑重构:
- AI 回复 (stream_start/response/stream_segments/multi_message/stream_end) 改用 broadcastToUser 发送给所有客户端
- 用户消息回显保持 broadcastToUserExcept 排除发送者
消息去重与角色修复:
- CacheMessage(user) 移至回复生成后,避免本轮 LLM 调用出现重复用户消息
- action 角色消息在 DB 存储时映射为 assistant,DeepSeek 等模型不支持自定义角色
- stream_end defer 机制确保错误路径也会终止客户端思考指示器
OS 完整环境支持:
- host 包重构为 HostBackend 接口 + Direct/WSL/Docker 三种后端
- 新增 os_exec/os_file/os_system 工具供 AI 在完整 Linux 环境中自由操作
其他:
- 视觉模型注入 + 图片预处理后清空 Images 避免传给 Chat 模型
- 图片 URL 相对路径→绝对 URL 转换
- DevTools 链路追踪页面 + 重启修复
- 记忆搜索模糊匹配增强
- 后台思考定时调度支持
- 管理后台页面 (模型配置/用户管理等)
- docs/api 更新广播机制说明
Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
|
2026-05-29 12:46:17 +08:00 |
|
AskaEth
|
aac64ed8b7
|
feat: DevTools 检测 Docker 运行的服务并禁用本地操作
- process-manager: 新增 detectDockerServices() 通过 docker ps 匹配端口,
getStatus() 返回 source 字段 (docker/local/none) 和容器名
- process-manager: Docker 服务拒绝 start/stop/restart/build,
批量操作自动跳过 Docker 服务
- index.js: Docker 管理服务返回 409 Conflict
- UI: Docker 服务显示蓝色 "🐳 Docker" badge + 容器名,
隐藏操作按钮并提示 "请使用 docker compose"
Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
|
2026-05-27 18:37:48 +08:00 |
|
AskaEth
|
ee3c851d17
|
docs: 清理 tool-engine 残留引用 + 更新架构文档与 README
- Migration.md: 移除 tool-engine 编译/启动/验证 4 处引用
- 架构分析: 移除 Tool Engine :8092 图示和端口表行,更新 msg_type 限制说明
- README: 统一插件数量为 15
Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
|
2026-05-27 12:46:23 +08:00 |
|
AskaEth
|
4035f8b1e0
|
chore: 生产 docker-compose.yml 添加 container_name
Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
|
2026-05-27 12:36:36 +08:00 |
|
AskaEth
|
24f827fe02
|
feat: 富文本消息类型支持 — Markdown/代码块安全渲染 + 审查解析器
添加 review_parser.go 从 LLM 输出中提取 Markdown 和代码块,创建独立
ReviewMessage 类型 (markdown/code/search_result)。前端新增安全 Markdown
渲染器 (HTML 转义优先),代码块以深色背景+语言标签展示。Markdown/代码
类型禁止断句拆分,避免格式损坏。
Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
|
2026-05-26 21:57:09 +08:00 |
|
AskaEth
|
9f3b0f386d
|
docs: 更新 tool-engine 移除后的文档引用
- tool-engine.md: 迁移至 AI-Core (8081),更新为内存环形缓冲区字段
- devtools.md: 移除 tool-engine 服务引用,更新启动顺序和代理路由
- architecture-analysis.md: Section 3.4 重写为 pkg/plugins 工具系统
Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
|
2026-05-26 21:39:46 +08:00 |
|
AskaEth
|
251068a7db
|
feat: 主聊天流程接入工具调用 — Synthesizer 支持 ChatWithTools
Synthesizer 现在向 LLM 传递工具定义并通过 ChatWithTools 执行
工具调用循环(最多5轮),执行结果通过 ToolRegistry 记录到调用
日志。Orchestrator 通过 SetToolRegistry() 注入。用户聊天现在可以
触发 web_search 等工具,调用记录在 DevTools 监控页面可见。
Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
|
2026-05-26 21:30:30 +08:00 |
|
AskaEth
|
12e9f7da6e
|
fix: 搜索走 SearXNG + 工具调用分页修复
- ai-core DevTools 启动配置补充 SEARXNG_URL,避免回退到 DuckDuckGo 导致超时
- 工具调用 API 加入 offset 分页,修复 page 参数不生效问题
- 响应新增 total_pages 字段,修复前端分页栏不渲染
Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
|
2026-05-26 20:58:37 +08:00 |
|
AskaEth
|
dffaf7e123
|
fix: SearXNG 引擎优先级调整 — Bing 置顶,百度垫底
Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
|
2026-05-26 20:40:34 +08:00 |
|
AskaEth
|
b14d267642
|
feat: SearXNG 搜索集成 + DevTools Docker + PG 备份 + 文档更新
- web_search 工具/插件接入自托管 SearXNG,支持百度/必应/搜狗/360搜索
- DevTools 加入 docker-compose.dev.yml,devtools/Dockerfile
- scripts/pg-backup.sh 数据库备份恢复脚本,docs/pg-backup-migration.md
- 后台思考 + datetime 插件时区默认 Asia/Shanghai
- docker-compose 对齐 volume 名称,清理 tool-engine 残留引用
- README.md / Deploy.md 更新至当前架构(移除简报/tool-engine,新增搜索/跨端同步/DevTools)
Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
|
2026-05-26 20:36:38 +08:00 |
|
AskaEth
|
08687bb13d
|
fix: 跨端消息同步 — 用户消息广播 + 会话隔离 + 去重
后端: handleChatMessage 将用户消息通过 broadcastToUser 广播给同用户所有设备
协议: ClientMessage 新增 ClientMsgID 字段用于跨端去重
前端: 发送消息时携带 client_msg_id,收到回显时跳过本地已添加的消息
前端: handleServerMessage 新增 session_id 过滤,防止不同会话消息串扰
Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
|
2026-05-26 13:06:44 +08:00 |
|
AskaEth
|
2574f60823
|
feat: 后端统一消息类型分类 + 更新 API 文档
msg_type 现在由后端在所有消息路径上自动填充,前端无需解析内容猜测类型。
- chat_handler: SendSystemMessage → system_info, parseMultiMessage 返回 proactiveSegment{msgType}
- protocol: MultiMessageItem 增加 MsgType 字段
- useWebSocket: 所有 handler 直接读取 msg_type,移除前端类型推断
- docs/api/gateway-api.md: 文档化 msg_type 分类机制,移除已删除的每日简报章节
Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
|
2026-05-26 12:35:13 +08:00 |
|
AskaEth
|
6f4056eefb
|
feat: DevTools 仪表盘新增自重启功能
- 新增 POST /api/devtools/restart 端点(spawn 新进程 + exit 旧进程)
- 仪表盘服务状态卡片新增「🔁 重启 DevTools」按钮
- 重启流程:确认 → API 调用 → 2s 后自动刷新页面
Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
|
2026-05-25 21:42:09 +08:00 |
|
AskaEth
|
8587bdfee5
|
fix: DevTools 工具调用面板字段映射修复 + 清理 TOOL_ENGINE_URL 残留
- 移除 config.js 中已无引用的 TOOL_ENGINE_URL 导出
- 修复工具调用记录时间字段:call.created_at → call.timestamp
- 修复行展开 ID:call.id → call.call_id
- 错误提示从"启动 Tool-Engine"改为"启动 AI-Core"
Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
|
2026-05-25 21:33:39 +08:00 |
|
AskaEth
|
d1b8f8e3b2
|
fix: 移除早间简报功能 + 修复多处"人机感"用语
- 删除 briefing_handler.go / briefing_store.go 及所有相关路由与配置
- 移除 Gateway Config 中 ToolEngineURL / BriefingTime 字段
- 移除 DevTools 中 gateway 的 TOOL_ENGINE_URL 环境变量
- webhook 错误提示从"AI 服务异常/暂不可用"改为昔涟自然口吻
- markdown 导出中昔涟头像从 🤖 改为 💫
- 后台思考提示词"系统会误解析"改为"我会误解析"
Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
|
2026-05-25 21:00:15 +08:00 |
|
AskaEth
|
673ff752c5
|
feat: 插件-工具合并 — 创建 pkg/plugins 共享模块并移除 tool-engine
- 新增 backend/pkg/plugins/ 共享模块:SDK 接口、PluginManager、ToolRegistry(含环形缓冲区调用日志)
- 13 个通用插件从 plugin-manager 迁移至共享模块(import 路径统一)
- ai-core 切换至共享 ToolRegistry,进程内执行(零网络开销),包装 6 个专属工具
- plugin-manager 迁移至共享模块,保留管理 REST API
- 新增 DevTools 插件管理面板(侧边栏 → 🔌 插件管理)
- 移除 tool-engine 服务(从 go.work、DevTools 配置、编译系统)
- 工具调用记录 API 从 Tool-Engine 迁至 AI-Core(/api/v1/tools/calls)
- ai-core ContextStore 启动时从 PostgreSQL 恢复会话历史
- 清理所有过时引用和备份文件
Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
|
2026-05-25 20:52:39 +08:00 |
|
AskaEth
|
5325eaca3f
|
fix: 后台思考使用深度思考模型 + 主动消息推送冷却优化
- thinker.go: Round 0 优先调用 llmAdapter(deepseek-v4-pro),失败回退 toolAdapter
- thinker.go: RecordUserMessage 重置 lastProactiveMsgTime,活跃对话中允许推送
- proactive_decision.go: MinGap low 30→15min, medium 10→5min, high 2→1min; 小时上限 3→5
Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
|
2026-05-24 17:10:28 +08:00 |
|
AskaEth
|
79af5c15c3
|
fix: 侧边栏展开超出屏幕时支持滚动 + 增大导航项点击高度
- .sidebar-nav 添加 overflow-y: auto + 细滚动条样式
- .nav-item padding 10px → 12px,summary padding 增大
Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
|
2026-05-24 16:51:15 +08:00 |
|
AskaEth
|
8fda174752
|
feat: DevTools 侧边栏分类折叠 — 5 个可折叠分组 + 高度自适应展开
- 仪表盘独立在外,其余 14 个面板分为 AI 认知/系统运维/工具插件/通信平台/模型 5 组
- 屏幕高度 >= 900px 自动展开,< 900px 折叠
- 侧边栏折叠模式强制展开分组以保持 icon-only 可用
- 使用原生 details/summary 元素,零依赖
Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
|
2026-05-24 16:48:20 +08:00 |
|
AskaEth
|
271a3a048d
|
fix: DevTools 仪表盘平均请求延迟显示进程运行时间而非实际请求耗时
- performance.js: 新增 recordLatency/getAverageLatency, 用 HTTP 请求环缓冲区替换 pidusage elapsed
- index.js: 新增 Express 中间件追踪每个请求耗时
- index.html: 移除前端 elapsed-based fallback 计算
Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
|
2026-05-24 16:37:25 +08:00 |
|
AskaEth
|
189f7b999b
|
feat: VisionTool 集成多模态 LLM 直接调用 — OCR/视觉分析
- VisionTool 改为接受可选 llm.LLMProvider,有模型时直接调用视觉模型分析,
无模型时回退 base64 data URL 模式,不影响基本功能
- ModelSelector 新增 PurposeVision 路由用途
- main.go 按 vision routing 自动发现并注入视觉模型 provider
- 支持 models.json 中 qwen3.6-flash / qwen-vl-ocr-latest fallback 链
Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
|
2026-05-24 16:25:56 +08:00 |
|
AskaEth
|
47f9de2409
|
feat: LLM 调用日志 + ModelSelector 优化 + devtools.bat 编码修复
- 新增 call_log.go: 全局环形缓冲区记录每次 LLM 调用(模型/Token/耗时/错误)
- OpenAIProvider.doChat/ChatStreamWithTools 自动记录调用日志
- ai-core 暴露 GET /api/v1/llm-calls 端点, DevTools 代理 + UI 面板
- ModelSelector.envProvider 改为单例缓存, 避免重复创建 HTTP Client
- 新增 PurposeToolCalling 适配器, 后台思考工具调用走专用路由
- envFallback 超时 120s→180s, 显式设置 MaxRetries
- devtools.bat 全英文, 解决 Windows CMD GBK 编码乱码问题
Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
|
2026-05-24 15:44:53 +08:00 |
|
AskaEth
|
7eb5e984c2
|
refactor: 认证系统重构 + DevTools CLI 重写 + 文档全面更新
- auth: Login 简化为管理员始终通过 .env 验证,GetProfile 修正 admin DB 查询
- devtools: .sh/.bat 同步重写为完整 CLI (start/stop/status/logs/build/db:*)
- docs: 新增 devtools.md,重写 Deploy.md (三种方式+Windows说明),更新 README/gateway-api
- voice-service: DashScope 实时流式 STT 支持
- gateway: Phase 6 多模型配置 + 多端客户端管理 + WebSocket 增强
Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
|
2026-05-24 14:55:47 +08:00 |
|
AskaEth
|
83e94d9e97
|
feat: 新增 GET /api/v1/profile 用户信息查询接口,支持前端凭据查询当前用户
Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
|
2026-05-24 14:00:35 +08:00 |
|
AskaEth
|
aab8e47d3e
|
chore: 同步 .env.example — 新增 DashScope STT、微服务地址、离线思考间隔等缺失配置
Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
|
2026-05-24 12:53:11 +08:00 |
|
AskaEth
|
3c2bf9206f
|
fix: 修复后台思考离线时被拉长到30分钟的问题
离线最小思考间隔从硬编码30分钟改为可配置环境变量 THINK_OFFLINE_GAP_SEC (默认10分钟)。
新增服务启动后首次思考触发,确保即使无客户端连接也能立即开始后台思考。
Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
|
2026-05-24 12:52:00 +08:00 |
|
AskaEth
|
70f8b30d04
|
docs: 添加完整 API 文档 — Gateway 统一文档 + 后端服务文档
新增 docs/api/gateway-api.md:面向客户端开发的网关 API 统一文档,覆盖全部 16 个模块。
新增 docs/api/backend-services/:后端服务详细文档 (ai-core, memory-service, voice-service, iot-debug, tool-engine)。
更新 .gitignore:docs/api/ 例外允许推送,其他 docs/ 内容仍忽略。
Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
|
2026-05-24 12:39:55 +08:00 |
|
AskaEth
|
9c29459fb6
|
fix: 修复 DevTools 前端 JS 语法错误 — 路由表单字符串拼接异常
目的路由 select 选项中缩进空格被错误拆分为独立字符串字面量,
缺少 + 连接符导致 SyntaxError,连锁导致 connectWS 未定义。
Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
|
2026-05-24 08:06:32 +08:00 |
|
AskaEth
|
a7fb35dd45
|
chore: 移除 ROADMAP.md,不推送到仓库
Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
|
2026-05-24 07:51:51 +08:00 |
|
AskaEth
|
63a8f95de1
|
test: Phase 6 全功能测试 — 19个测试全部通过 + 开发路线文档
- host: 沙箱执行/命令拦截/超时/文件读写/系统信息/路径验证 (6 tests)
- rag: 文本分块/余弦相似度/关键词匹配/文档索引+搜索 (4 tests)
- tools: host_exec/host_file/host_system/knowledge_search/knowledge_ingest (5 tests)
- vision: 图片编码/错误处理/定义验证/执行流程 (4 tests)
- Embedder 重构为接口,支持 API 和 Simple 两种实现
- 添加 ROADMAP.md 未来开发路线
Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
|
2026-05-24 07:51:07 +08:00 |
|
AskaEth
|
edc20170b9
|
fix: 修复 calculator_tool.go 中 import path 误入 switch case 的 bug
Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
|
2026-05-23 22:34:29 +08:00 |
|
AskaEth
|
cd83eec39e
|
feat: Phase 6.6 知识库 RAG 增强 — 文档索引 + 语义检索 + KnowledgeProvider
- rag.Embedder: LLM API 文本向量化 (OpenAI-compatible)
- rag.KnowledgeStore: 文档分块 + 重叠窗口 + 余弦相似度搜索
- rag.Retriever: 高级知识检索 + 格式化摘要
- KnowledgeProvider: 子会话提供者,整合入编排管线
- knowledge_search / knowledge_ingest 工具
- EnrichmentData 管线全线支持 KnowledgeInfo
Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
|
2026-05-23 22:33:26 +08:00 |
|
AskaEth
|
9a8fb8d0ce
|
feat: Phase 6.3 视觉理解 — 多模态图片输入 + OCR/Vision 工具 + 图片编码管线
- LLMMessage 新增 Images 字段支持多模态 content array
- OpenAIProvider 支持 image_url content parts
- VisionTool: 图片读取 + base64 编码 + OCR/场景描述/综合分析
- 对话管道全线支持 images 参数传递 (Gateway->Orchestrator->Synthesizer->LLM)
- 自动根据图片有无构建 text-only 或 multimodal content
Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
|
2026-05-23 22:28:42 +08:00 |
|
AskaEth
|
38b36fc5ad
|
feat: Phase 6.2 宿主机安全操控 — 沙箱执行 + 文件系统隔离 + 进程管理
- host.Sandbox: 命令白名单 + 目录限制 + 超时控制 + 环境变量过滤
- host.Manager: 文件读写列表 + 系统信息查询 + 路径验证
- 3个新工具: host_exec (沙箱命令执行), host_file (文件操作), host_system (系统信息)
- 后台思考器自主工具策略已更新,允许安全使用主机工具
- host_exec 标记为高风险工具,受频率限制
Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
|
2026-05-23 22:23:45 +08:00 |
|
AskaEth
|
313f41633a
|
feat: Phase 6.1 收尾 — 目的路由接入所有AI组件
- Orchestrator 现在接受独立的 chatAdapter 和 intentAdapter
- BackgroundThinker 使用 deep_thinking purpose 适配器
- MemoryExtractor 使用 memory_extraction purpose 适配器
- Synthesizer 使用 chat purpose 适配器
- .env 回退时所有适配器共享同一 provider,完全向后兼容
Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
|
2026-05-23 22:19:57 +08:00 |
|
AskaEth
|
b1e89c606e
|
feat: Phase 5 STT — DashScope Gummy 实时语音识别 + 本地 Whisper 回退
- DashScope WebSocket STT 客户端 (gummy-chat-v1)
- 双引擎架构: DashScope 优先, Whisper 本地回退
- 实时流式 STT WebSocket 端点
- DevTools 模型搜索框焦点修复
Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
|
2026-05-23 22:15:43 +08:00 |
|
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
|
965cce7192
|
feat: Phase 4 多平台接入 — Platform Bridge + 6平台适配器 + 身份权限系统 (22文件, 2129行)
Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
|
2026-05-23 16:19:57 +08:00 |
|
AskaEth
|
717ad65b05
|
feat: Phase 3 插件与工具系统 — Plugin SDK + Plugin Manager + 13内置插件 (40文件, 3293行)
- Plugin SDK: Plugin/Tool/ComplexTool/HostAPI 标准化接口
- Plugin Manager: 插件生命周期管理 (Install/Enable/Disable/Uninstall/Reload)
- Tool Registry: 聚合工具注册表 (Register/Execute/Dispatch)
- 13 个内置插件: 将原有硬编码工具迁移为标准插件格式
- REST API: 11 个端点 (net/http, 零外部依赖)
- ai-core 集成: PluginManagerClient 替代本地工具调用
- plugin.json 元数据: 每个插件含完整 author/version/category/permissions
Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
|
2026-05-23 15:50:19 +08:00 |
|