AskaEth
|
6faef5b6e5
|
feat: 群聊并发 — 主会话繁忙时创建协会议话
- Orchestrator 新增 per-session 处理锁 + co-session 跟踪
- 主会话处理中时,新消息自动创建协会议话(并发 LLM 调用)
- 协会议话上限 3 个,超出排队等待 500ms
- 主会话结束后自动释放锁
Co-Authored-By: Claude <noreply@anthropic.com>
|
2026-06-22 21:07:16 +08:00 |
|
AskaEth
|
489657ec08
|
feat: 提醒到期 → LLM生成自然提醒语 → 推送
- Gateway ReminderScheduler 到期时调用 ai-core /api/v1/internal/reminder-trigger
- ai-core 用 LLM 生成温柔俏皮的提醒语,通过 messagePusher 推送
- Thinker 新增 TriggerReminderMessage 方法
- 环境变量: AI_CORE_URL (Gateway 已有)
Co-Authored-By: Claude <noreply@anthropic.com>
|
2026-06-22 21:04:21 +08:00 |
|
AskaEth
|
2b17bb5b03
|
feat: 同平台多账号支持 — adapter_name 贯穿全链路
- UnifiedMessage 新增 AdapterName 字段
- router 从适配器 ConfigName() 捕获 adapter 实例名
- forwardToAICore source 新增 adapter_name
- ai-core SetBotUID key 优先用 adapter_name,回退 platform
- 更新优化大纲加入 P4.1
Co-Authored-By: Claude <noreply@anthropic.com>
|
2026-06-22 20:53:40 +08:00 |
|
AskaEth
|
41f653b672
|
refactor: QQ → OBv11 重命名 + 平台格式统一抽象
- 所有对外称呼从 QQ 改为 OBv11(注释/提示词/日志/配置项)
- 新增 PlatformFormat 结构体,统一管理平台消息标记格式
- defaultPlatformFormats() 注册表替代硬编码 qqTargetRe
- extractProactiveMessage 改为 Thinker 方法,遍历格式注册表匹配
- 配置项重命名: QQ_BOT_PORT → OBV11_BOT_PORT, QQBotPort → OBv11BotPort
- 标记格式: 【QQ群聊】→【OBv11群聊】、【QQ私聊】→【OBv11私聊】
Co-Authored-By: Claude <noreply@anthropic.com>
|
2026-06-22 20:48:07 +08:00 |
|
AskaEth
|
70dbb23234
|
chore: 同步 .env.example — 补全所有代码引用的环境变量
- 新增: 后台思考分层 (LIGHT_THINK_*), 平台桥接, 知识库/人格路径, Gateway URL 等
- 移除: TOOL_ENGINE_URL (已废弃), 过时的 VECTOR_DB 相关变量
- 按分类重新组织: 服务/数据库/LLM/思考/平台/OS环境等
Co-Authored-By: Claude <noreply@anthropic.com>
|
2026-06-22 20:41:36 +08:00 |
|
AskaEth
|
a46b5f6238
|
feat: 自主思考分层 — 轻量思考(简单)+深度思考(复杂)双模型
- 新增轻量思考循环 lightThinkLoop (默认60s间隔,快速模型)
- 轻量思考用极简 prompt 做快速状态检查
- 检测到「需要深思」时自动唤醒深度思考 performThink("light_wake")
- 环境变量: LIGHT_THINK_ENABLED / LIGHT_THINK_INTERVAL_SEC
- 轻量思考跳过活跃用户 (30s内有消息) 和重复触发 (10s内)
Co-Authored-By: Claude <noreply@anthropic.com>
|
2026-06-22 20:39:20 +08:00 |
|
AskaEth
|
485d845f3e
|
feat: LLM可自主操作提醒 — reminder_create/list/delete 工具
- 新增 GatewayClient HTTP 客户端,调用 Gateway /api/v1/reminders API
- 新增 3 个提醒工具:reminder_create / reminder_list / reminder_delete
- main.go 注册提醒工具,需 GATEWAY_URL + INTERNAL_SERVICE_TOKEN 环境变量
- AutonomousToolPolicy 白名单加入提醒工具,允许自主思考中创建提醒
Co-Authored-By: Claude <noreply@anthropic.com>
|
2026-06-22 20:37:27 +08:00 |
|
AskaEth
|
7e475bdfa6
|
feat: 子会话结果增加创建/结束时间戳
- SubSessionResult 新增 CreatedAt / FinishedAt 字段
- manager.Dispatch 在各路径统一设置时间戳:成功/失败/超时
Co-Authored-By: Claude <noreply@anthropic.com>
|
2026-06-22 20:31:48 +08:00 |
|
AskaEth
|
8783cadf9b
|
feat: 思考追加机制 — 所有思考类型支持【继续思考】标记循环
- performThink 改为循环执行,最多3轮
- LLM输出含【继续思考】时自动追加一轮
- post_chat/silence/default三种提示词均告知可用此标记
- 存储前剥离控制标记,不污染思考内容
Co-Authored-By: Claude <noreply@anthropic.com>
|
2026-06-22 20:29:17 +08:00 |
|
AskaEth
|
cadd5f2233
|
feat: QQ主动消息管道 + 戳一戳事件 + thinker提示词优化
- ProactiveTarget 结构体 + QQ目标正则解析(extractProactiveMessage 返回双值)
- storeThought 双路推送:platform消息 → platformMessagePusher,web消息 → messagePusher
- platform-bridge: SendProactive接口 + ProactiveSender + /api/v1/internal/send-proactive端点
- QQ戳一戳/notice事件 → noticeToUnified → ContentType "action"
- thinker提示词注入QQ频道上下文:群名称(群号)、活跃时间、trigger-aware引导
- SetBotUID/SetPlatformMessagePusher/AddOrUpdatePlatformChannel 方法
- ai-core source 增加 BotUID/GroupName,platform-bridge source 增加 bot_uid/group_name
- 支持 [CQ:at,qq=xxx] @提及标签自动拼接
Co-Authored-By: Claude <noreply@anthropic.com>
|
2026-06-22 20:26:36 +08:00 |
|
AskaEth
|
cd053194a9
|
fix: RAG IngestDirectory 跳过 persona.md 和 _index.md
避免人格文档在RAG检索中重复出现,persona.md已通过系统提示注入。
Co-Authored-By: Claude <noreply@anthropic.com>
|
2026-06-22 20:26:28 +08:00 |
|
AskaEth
|
dbd89f39ab
|
feat: 人格文档双层架构 — persona.md全量注入system prompt + RAG黑名单过滤
- PersonaConfig 新增 NarrativePersona 字段,在 system prompt 的「你的身份」和「你的性格」之间插入「## 你的叙事人格」
- Loader.NewLoader 自动读取同目录 persona.md 注入所有 config;Reload 同步热更新
- RAG IngestDirectory 跳过 persona.md 和 _index.md,避免重复检索浪费token
- 新增 docs/dev-plan/12-next-phase-optimization.md 下一阶段优化大纲
Co-Authored-By: Claude <noreply@anthropic.com>
|
2026-06-22 20:25:45 +08:00 |
|
AskaEth
|
6ef9e082a6
|
feat: 语音流式输入管线 + VAD前端集成 + 插件-工具合并清理
- 前端: VAD语音检测(@ricky0123/vad-web) + useVoiceInput双模式(流式WS/REST)
- Gateway: VoiceStreamManager代理WS流式STT到voice-service
- Voice-service: DashScope REST → Realtime WS → Whisper三级引擎 + ffmpeg转码
- 共享模块: pkg/audio(音频转换) + pkg/dashscope(ASR REST客户端)
- 清理: 移除旧plugin-manager和pkg/plugins,完成插件→工具合并
- 文档: 完善gateway-api.md和voice-service.md语音API文档
- 工具: scripts/voice/ 语音转换脚本集
Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
|
2026-06-06 11:50:40 +08:00 |
|
AskaEth
|
258cf81b25
|
chore: 添加昔涟语音模型目录到 .gitignore
data/cyrene_voice/ + models/cyrene_voice/ + voice-service 模型路径
关联仓库: Cyrene-Voice-Model
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
|
2026-06-06 10:58:36 +08:00 |
|
AskaEth
|
4954c1e58b
|
feat: 消息并行处理 + QQ卡片完整解析 + 视觉OCR融合格式修复
- platform-bridge: 8-worker per-session 并行分发,同会话保序跨会话并行
- platform-bridge: 静默消息 fire-and-forget,不阻塞同用户后续消息
- QQ卡片: html.UnescapeString 解码 NapCat HTML实体,正确解析卡片JSON
- QQ卡片: 输出含应用名/简介/来源/封面URL,封面注入图片管线走视觉
- ai-core: 视觉+OCR结果融合为单句,单图不编号,避免LLM误解为多张图
Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
|
2026-06-06 09:08:03 +08:00 |
|
AskaEth
|
67b204b23c
|
fix: 对话历史上限增至100条 + filterActions 兼容 <app> 动作标签
- 会话历史存储上限从 50 条增至 100 条
- filterActions 同时处理 <action> 和 <app> 标签(DeepSeek 偶用 <app> 替代 <action>)
Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
|
2026-06-02 12:31:48 +08:00 |
|
AskaEth
|
b085e58031
|
fix: 后台思考身份混淆 + 静默模式视觉理解 + QQ卡片解析 + 仪表盘状态修复
- 后台思考对话历史增加标签说明,严格区分群聊中不同发送者
- 静默观察模式传入图片URL并预处理,供后台思考参考
- 视觉+OCR双模型结果合并格式优化,避免LLM误认为多张图片
- QQ卡片消息(CQ:json)正确解析标题/类型,不再丢失为[JSON]
- 进程管理器stop()在进程为null时重置pid/startTime,消除矛盾状态
Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
|
2026-05-31 21:07:25 +08:00 |
|
AskaEth
|
a9c79d7887
|
feat: ASR语音转写管线 + 群聊身份混淆修复
- 新增ASR语音识别管线: QQ语音→下载音频→qwen3-asr-flash转录→注入用户消息
- 模型名称全部从models.json路由获取,无硬编码
- 修复群聊中AI将非管理员用户误称为管理员昵称(叶酱)的问题
- 助手回复缓存时标注[回复 昵称 (UID)],防止对话历史中身份混淆
- 群聊上下文指令改为肯定性表述,移除具体名称提及
- trace面板时间戳改为YYYY-MM-DD HH:MM:SS格式,耗时统一显示为秒
- 修复Go time.Duration纳秒值在前端显示问题(Duration/1e6转毫秒)
- 新增video_tool插件模板
- 优化OpenAI adapter reasoning_content处理
Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
|
2026-05-31 16:46:47 +08:00 |
|
AskaEth
|
d112fdd540
|
fix: 思考对话历史中识别管理员 — 含【管理员】标记的消息标签为'管理员'而非'用户'
之前所有非昔涟的消息都标为[用户],管理员在群聊中的发言也不例外,
导致模型将管理员误认为普通群友。现在检测内容中的【管理员】前缀。
Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
|
2026-05-31 13:11:10 +08:00 |
|
AskaEth
|
e5f8e42a78
|
fix: removeCodeBlocks 给每行末尾追加 \n 导致发送消息多一个换行
改为用 strings.Join 拼接,只在行间加 \n,末行不追加。
Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
|
2026-05-31 13:05:52 +08:00 |
|
AskaEth
|
7e29be8ae3
|
fix: 后台思考记忆来源感知 — 不再将所有记忆标为'关于开拓者的事'
两个改动:
1. 提示词中将「你记得的关于开拓者的事」改为「你近期收集到的信息」,
并注明记忆可能来自不同对话和群聊,不都与开拓者有关
2. 思考时除管理员个人记忆外,额外检索各平台频道的群聊记忆,
以 [群聊123] 前缀标注来源,让模型能区分信息来源
Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
|
2026-05-31 12:58:39 +08:00 |
|
AskaEth
|
eef21fc91a
|
fix: 热重载时 nil pointer panic — ReadMessages 中 Disconnect 与错误处理竞态
热重载流程:ReplaceAdapter → old.Disconnect() 将 a.conn 置 nil →
旧的 ReadMessages goroutine 中 conn.ReadMessage() 因连接关闭返回错误 →
错误处理中 a.conn.Close() 对 nil 指针调用导致 panic。
修复:Close 前检查 a.conn != nil。
Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
|
2026-05-31 12:46:05 +08:00 |
|
AskaEth
|
465fa4307f
|
fix: QQ发送消息时剥离Markdown格式 — 防止**粗体**等标记泄露到聊天
Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
|
2026-05-31 12:35:29 +08:00 |
|
AskaEth
|
3ad728406e
|
fix: 消息日志增强 + 历史消息抑制 + SSE实时追踪 + 群聊上下文优化
- 日志:收/发消息均显示群名称,管理员显示真实QQ昵称而非"开拓者"
- 历史消息:服务重启后NapCat回放的历史消息不再触发回复,静默注入上下文
- 消息时间戳:转发给AI时附带【消息时间: HH:MM:SS (XmXs前)】标记
- ♪ 分割符:QQ消息支持♪作为句子断点
- AI-Core SSE端点:全链路追踪实时推送,ethend不再5秒轮询
- 群聊上下文:AI-Core明确被告知消息来自群聊,以实际发送者为主语
Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
|
2026-05-31 11:49:36 +08:00 |
|
AskaEth
|
677385ec17
|
fix: 平台消息身份传递 — AI-Core 收到正确昵称而非永远 fallback 到管理员
- forwardToAICore 新增 nickname 字段,格式 "昵称 (QQ号)" 明确标识发送者
- 解决非管理员用户 @昔涟 时 AI 仍认为是管理员的身份污染问题
- 同时包含:管理员群聊插入抑制、markdown 粗体剥离、SearXNG 容器、ethend 窗口隐藏
Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
|
2026-05-31 10:17:27 +08:00 |
|
AskaEth
|
47dce276a4
|
fix: platform_silent记忆提取 + 群聊上下文整合 + 多QQ实例支持
- platform_silent模式接入Orchestrator记忆提取:被动观察群聊时提取值得记住的信息到对应命名空间
- post_chat后台思考注入平台观察:对话后思考也能看到群聊摘要
- QQ适配器:OneBot v11 self_id动态捕获、CQ图片URL提取、视觉+OCR并行处理
- Router解耦:ConfigName/PlatformName分离,支持多QQ实例独立连接
- 黑白名单功能:后端API + Ethend代理 + UI面板
- \n\n双换行断句:AI回复按双换行分割为多条消息按间隔发送
- @提及修复:bot自感知UID进行@检测
- 群聊上下文共享:channel-based userID避免记忆碎片化
- 消息日志显示处理后内容而非原始SSE数据
- platform-bridge Dockerfile + docker-compose.yml更新
Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
|
2026-05-31 09:37:18 +08:00 |
|
AskaEth
|
71f0a1abdb
|
feat: Go模块路径迁移 + Docker生产部署适配 + ethend Docker兼容
- 所有Go模块路径从 github.com/yourname/cyrene-ai 迁移到 git.yeij.top/AskaEth/Cyrene
- 5个Go Dockerfile添加 GOPROXY=https://goproxy.cn,direct 解决国内构建问题
- ai-core go.mod 添加 pkg/plugins replace 指令
- Caddyfile 简化为 http:// 通配 + handle 保留 /api 前缀
- ethend Dockerfile 适配 (npm install + 仅 COPY package.json)
- ethend 新增 RUNNING_IN_DOCKER 环境变量,健康检查改用Docker服务名
- ethend 数据库状态检查支持Docker hostname (postgres/redis/qdrant/minio)
- process-manager 新增 CONTAINER_SVC_MAP + Docker模式自动检测
- 统一 docker-compose.dev.db.yml 卷名 (pg_data/redis_data/qdrant_data/minio_data)
- docker-compose.yml ethend服务挂载docker.sock + 端口变量化
- 清理 .env 统一后的残留文件与提示信息
Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
Alpha_v0.1.0
|
2026-05-30 13:43:22 +08:00 |
|
AskaEth
|
d164ff1207
|
chore: 移除 docker-compose.yml 过时的 version 字段
Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
|
2026-05-30 10:21:14 +08:00 |
|
AskaEth
|
46441335c0
|
refactor: 统一 .env 配置 — 合并 backend/.env + .docker.env 到根目录
- Go 服务 godotenv.Load("../.env") → godotenv.Load("../../.env")
- ethend.sh/config.js 读取路径改为根目录 .env
- 删除 .docker.env.example 和 backend/.env.example,统一为 .env.example
- Docker compose 默认读取根 .env,无需 --env-file
- 同步更新全部文档
Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
|
2026-05-30 10:12:54 +08:00 |
|
AskaEth
|
43d256e197
|
docs: docker-compose.yml 架构详解 — 分层设计、启动序列、运行时状态
Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
|
2026-05-30 09:56:14 +08:00 |
|
AskaEth
|
a25b8ccd08
|
fix: 移除误提交的临时文件和无关文件
Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
|
2026-05-30 09:32:56 +08:00 |
|
AskaEth
|
365f5ceb2f
|
refactor: DevTools → ethend 重命名 + 加入生产环境
- 目录 devtools/ → ethend/
- CLI 脚本 devtools.sh/.bat → ethend.sh/.bat
- 环境变量 DEVTOOLS_PORT → ETHEND_PORT
- docker-compose.yml 新增 ethend 服务(生产部署)
- 同步更新全部文档、注释和配置文件
Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
|
2026-05-30 09:32:36 +08:00 |
|
AskaEth
|
27187997b3
|
feat: Caddy 监听端口可配置 — CADDY_HTTP_PORT/CADDY_HTTPS_PORT
Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
|
2026-05-30 09:15:11 +08:00 |
|
AskaEth
|
14771556fd
|
feat: Caddyfile 支持环境变量 — DOMAIN/ACME_EMAIL 通过 .docker.env 配置
Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
|
2026-05-30 09:13:04 +08:00 |
|
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 |
|