递归火山软件开发平台

 找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
热搜: 火山 源码 类库
查看: 838|回复: 8
打印 上一主题 下一主题

[AI开发] ai智能体养虾驯马神器

[复制链接]

7

主题

138

帖子

1821

积分

金牌会员

Rank: 9Rank: 9Rank: 9

积分
1821
跳转到指定楼层
楼主
发表于 2026-7-1 17:09:20 | 只看该作者 |只看大图 回帖奖励 |倒序浏览 |阅读模式
本帖最后由 dazhi52668 于 2026-7-1 17:15 编辑

耗时30天,我基于开源项目 HermesAgent,使用国产编程语言“火山语言”开发了一套跨平台 Go 服务端,并打造了对中文用户友好的前端 AI 智能体。
gitee开源项目地址 https://gitee.com/ym668/VoldpAiAgent
GITHUB开源项目地址 https://GITHUB.com/jcdz-bot/VoldpAiAgent
『来自123云盘用户的分享』
https://1815868431.share.123pan.cn/123pan/2JmLVv-JMlF





qq交流群1061906333

6a44d9b097b07. (0 Bytes, 下载次数: 0)

6a44d9b097b07.

6a44d9a793843. (0 Bytes, 下载次数: 0)

6a44d9a793843.

6a44d99601ac8. (0 Bytes, 下载次数: 0)

6a44d99601ac8.

6a44d97f498f4. (0 Bytes, 下载次数: 0)

6a44d97f498f4.

6a44daa614a4a.png (258.24 KB, 下载次数: 76)

6a44daa614a4a.png

6a44da53eba14.png (176.03 KB, 下载次数: 76)

6a44da53eba14.png
回复

使用道具 举报

43

主题

292

帖子

2671

积分

金牌会员

Rank: 9Rank: 9Rank: 9

积分
2671
沙发
发表于 2026-7-1 20:10:45 | 只看该作者
看着就比较高级,作者难不成还是女生吗
回复

使用道具 举报

7

主题

129

帖子

1185

积分

金牌会员

Rank: 9Rank: 9Rank: 9

积分
1185
板凳
发表于 2026-7-1 22:52:54 | 只看该作者
lihai
回复

使用道具 举报

7

主题

138

帖子

1821

积分

金牌会员

Rank: 9Rank: 9Rank: 9

积分
1821
地板
 楼主| 发表于 2026-7-4 17:54:16 | 只看该作者
20260703更新Ver1.0.2:

修复

### 修复 1:/api/models 响应补充 extra_models 字段(高优先级)
文件 : 工具.wsv:1372-1377 和 工具.wsv:1427

- 在 groupEntry 结构体中新增 ExtraModels []modelEntry 字段(JSON 标签 extra_models )
- 创建 group 时初始化为 []modelEntry{} ,确保 JSON 输出 [] 而非 null
- 让前端 commands.js:190 和 ui.js:1537 读取 group.extra_models 时得到稳定空数组,响应结构更规范
### 修复 2:/api/session/archive 默认值改为返回 400 错误(中优先级)
文件 : 路由.wsv:466-480

- 删除"未传 archived 字段时默认设为 true "的静默归档逻辑
- 改为返回 400 {"error":"archived field is required"} ,要求调用方显式传值
- 前端 sessions.js:2918,3263,3367 三处调用都显式传 archived 字段,不受影响
### 修复 3:POST /api/session/yolo 响应字段统一(低优先级)
文件 : 路由.wsv:1058

- 在 POST 响应中追加 enabled 字段,与 GET 响应( 路由.wsv:560 )保持一致
- 响应现在为 {ok, yolo_enabled, enabled} 三字段统一格式

### 修复 4:工作区刷新后滚条位置变动的问题。

### 修复 5:切换 profile/workspace 时保存 composer 草稿

### 修复 6:Loopback 目标被系统代理劫持

### 修复 7:Anthropic 标题生成认证头错误

### 修复 8:eventCount 作用域修复

### 修复 9:scheduled task 超时配置 + 调度器启动行为

### 修复 10:流被 cancel/error 中断时,运行中的工具卡( done:false )通过 clearLiveToolCards() 直接从 DOM 删除,然后从服务端拉取的 session 重建。如果服务端没保存被中断的 tool_use(主路径 LLM 流式阶段取消),工具卡直接消失,用户没有"已中断"的视觉反馈。i18n 中已定义 tool_preview_interrupted ("已中断"/"Interrupted")文案但全代码库无引用——是死代码。

### 修复 11:污染链路、快照 activeSid=A → await uploadPendingFiles() (让出事件循环)

### 修复 12:修复 /api/dashboard/status 的硬编码问题

### 修复 13:一些9B的大模型 在处理中文和英文混合的路径时,会被强制添加空格,导致目录读取失败的问题

### 修复 14:编译android平台时打包错了文件的问题,现已测试新编译结果,并且,在开发文档里补充了启动方法

### 修复 15:#940 CSS resize 过渡 — style.css 拖拽时禁用过渡动画

### 修复 16:#909 /model 命令 — commands.js 无参数时打开模型下拉

### 修复 17:/clear 命令同步后端 — commands.js 改为 async 调用 /api/session/clear

### 修复 18:#951 metadata-only updated_at — 工具.wsv pin/archive/项目/个性操作不再刷新 updated_at

### 修复 19:会话时间格式统一 — sessions.js 改为 MM-DD HH:mm 格式

### 修复 20:#844 provider 自动激活 — panels.js 添加 provider 后自动激活

### 修复 21:#953/#896 proxy_mode 配置 — 网关聊天.wsv 新增 proxy_mode 配置(direct/system),所有 HTTP client 使用 Rg_XinJianLoopbackKeHu

### 修复 22:#905 Anthropic thinking 字段 — 网关聊天.wsv reasoning_effort 透传为 thinking 字段

### 修复 23:#910 YOLO deny list — 网关聊天.wsv YOLO 模式保留 delete_file 高危工具审批

### 修复 24:#926 Skill command 保留到 transcript — commands.js /use 移除 noEcho:true

### 修复 25:untitled session 清理 — sessions.js loadSession / newSession 切换时静默清理空 untitled 会话

### 修复 26:会话点击"停止生成"按钮不会立即生效的问题

### 修复 27:agent模式图标在前端UI中不显示的问题

新增

### 新增 1:MCP server name Unicode 支持

### 新增 2:/api/sessions 缓存 + 手动刷新按钮

### 新增 3:工作区搜索文件功能

### 新增 4:工作区文件列表右键菜单"属性"选项

### 新增 5:对list_directory工具的沙箱防逃逸逻辑验证

### 新增 6:勾选"浏览器通知"后,需要"审批"时也会推送通知

### 新增 7:file 工具 delete 操作方法

### 新增 8:adb工具类,用于优化Android平台的自动化操作等功能

### 新增 9:内置"原始人"技能,可帮助用户节省token,默认关闭状态,需要用时自行开启。
回复

使用道具 举报

7

主题

138

帖子

1821

积分

金牌会员

Rank: 9Rank: 9Rank: 9

积分
1821
5#
 楼主| 发表于 2026-7-4 18:54:37 | 只看该作者
20260704更新Ver1.0.3:

本次更新亮点:

本次更新的一大重大亮点是让32K上下文窗口的qwen3.5-9B模型可以正真干活,解决了因模型设置的上下文太小LLM上下文超出报错的问题。

修复

### 修复 1:在累加 input_tokens 时同步更新 last_prompt_tokens = n (本次请求的实际 prompt tokens)。
### 修复 2:如果 last_prompt_tokens (LLM API 报告的实际值)高于估算值,使用实际值替代。
### 修复 3:移除 if m.Role == "tool" { continue } —— 现在计入 tool 消息的工具调用结果
### 修复 4:Token 估算包含工具定义 : Rg_GongJuDingYiTokens 全局缓存 + Rg_GuSuanGongJuDingYiToken 函数
### 修复 5:run_journal 监听集合包含 title_status ,但后端全程只发送 title ( 网关聊天.wsv:1138 )。该监听器仅用于记录游标,多挂一个无用监听无副作用。
### 修复 6:移除 CSRF 豁免列表中 GET 端点的冗余项

新增

### 新增 1:新增 m.ToolCalls 估算 —— 计入 assistant 的工具调用定义(函数名+参数 JSON)
### 新增 2:Prune 机制( Rg_QingLiGongJuShuChu )
### 新增 3:Rg_QingLiGongJuShuChu 函数,不调用 LLM,直接清理旧工具输出
### 新增 4:溢出恢复机制( Rg_ShiFouShangXiaWenYiChu )
### 新增 5:事件溯源 :记录状态变更事件,支持从事件重放重建状态
### 新增 6:schema 演进可追踪、可回滚、跨版本升级安全
### 新增 7:启动程序时读取本地保存的用户端口和监听配置,无需用户重新设置
回复

使用道具 举报

7

主题

138

帖子

1821

积分

金牌会员

Rank: 9Rank: 9Rank: 9

积分
1821
6#
 楼主| 发表于 2026-7-5 14:37:40 | 只看该作者
20260705更新Ver1.0.4:

修复
### 修复 1:更新 last_prompt_tokens 为 Prune 后的估算值 ( newEstimated ):既不会因 0 导致下次压缩检测失效,也不会因保留原值导致误触发压缩

### 修复 2:发送 metering SSE 事件 通知前端更新上下文显示,前端通过 messages.js:3681-3690 的 metering 监听器实时更新 last_prompt_tokens 显示

### 修复 3:会话数据库.wsv:141-152 allowedFields 白名单不含 compression_count → 不写入文件

### 修复 4:会话操作.wsv:360-379 文件→数据库同步不读取 compression_count

### 修复 5:会话操作.wsv:373 - session.CompressionCount = int(Rg_QuZhengShu64(...)) 添加 int() 转换(字段是 int,函数返回 int64)

### 修复 6:- Prune 重置 last_prompt_tokens=0 → 改用 newEstimated 并发送 metering SSE 事件

### 修复 7:- compression_count 文件同步缺失 → 添加白名单、读取、Create、Updates 全链路处理

### 修复 8:- newCompCount 计算导致压缩次数倒退 → 取 max(s.CompressionCount, lastUsage.compression_count)+1

### 修复 9:- 压缩后重置 last_prompt_tokens=0 → 改用 postEstimated(压缩后估算值)

### 修复 10:- /api/session 端点历史遗留数据修正 → 三处返回路径添加修正逻辑(compression_count 和 last_usage.last_prompt_tokens)

### 修复 11:messages.js - 删除强制 d.usage.last_prompt_tokens=0 的核心 bug

### 修复 12:ui.js - _mergeUsageForCtxIndicator 中 0 视为无效值

### 修复 13:sessions.js + boot.js - last_prompt_tokens 改用 _pickPositive (0 视为无效)

### 修复 14:当前记忆系统只在 新建会话时 触发( 工具.wsv:5497 go Rg_ZiDongBaoCunHuiHuaJiYi(prevSID) ),需要前端传递 prev_session_id 。压缩时不会触发记忆保存,导致压缩后旧消息被"遗忘",重要信息丢失。

### 修复 15:修正 compression_count 不一致 :如果 session.compression_count=0 但 last_usage.compression_count>0 ,用 last_usage 的值修正 result,并同步更新数据库(一次性修复历史遗留)

### 修复 16:三处修正逻辑都改为用类型断言 result["last_usage"].(map[string]interface{})

### 修复 17:后端日志通过 fmt.Fprintf(os.Stderr, ...) 输出到 stderr,但 /api/logs 接口读取的是 ~/.hermes/logs/{file}.log 文件。 ~/.hermes/logs/ 目录不存在,所以日志页面显示空内容。

### 修复 18:对 compression_count ,把 0 也视为无效值,用 S.session.compression_count 补充。

### 修复 19:两处响应均包装在 publicKey 字段内,符合 WebAuthn API 标准

### 修复 20:工具.wsv:11811 删除失败状态码由 200 改为 500,前端 catch 块会显示错误

### 修复 21:工具.wsv:15413 创建成功状态码由 201 改为 200,与其他 MCP 端点一致

新增
### 新增 1: Rg_JiYiXieRuSuo sync.Mutex 互斥锁,在 Rg_ZiDongBaoCunHuiHuaJiYi 写入 MEMORY.md 时加锁:

### 新增 2:双重记忆机制:
1、会话边界保存 ( Rg_ZiDongBaoCunHuiHuaJiYi ):新建会话时提交上一会话的记忆;
2、压缩时保存 ( Rg_BaoCunYaSuoJiYi ):单次会话内被压缩掉的旧消息记忆

### 新增 3:添加终端提示,因误按快捷键,导致终端暂停的恢复方法

### 新增 4:自动判断是本地部署的大模型还是调用的云端供应商API,根据判断结果优化聊天对话和编码

### 新增 5:Rg_QuHuiHuaGongZuoShuLuJing 查询 worktree_path

### 新增 6:工具.wsv:3108 新增 删除文件递归 火山方法

### 新增 7:工具.wsv:3072 新增 Rg_ShanChuWenJianDiGui(filePath, recursive) 函数
回复

使用道具 举报

7

主题

138

帖子

1821

积分

金牌会员

Rank: 9Rank: 9Rank: 9

积分
1821
7#
 楼主| 发表于 2026-7-5 14:46:07 | 只看该作者
20260705更新Ver1.0.4:

修复
### 修复 1:更新 last_prompt_tokens 为 Prune 后的估算值 ( newEstimated ):既不会因 0 导致下次压缩检测失效,也不会因保留原值导致误触发压缩

### 修复 2:发送 metering SSE 事件 通知前端更新上下文显示,前端通过 messages.js:3681-3690 的 metering 监听器实时更新 last_prompt_tokens 显示

### 修复 3:会话数据库.wsv:141-152 allowedFields 白名单不含 compression_count → 不写入文件

### 修复 4:会话操作.wsv:360-379 文件→数据库同步不读取 compression_count

### 修复 5:会话操作.wsv:373 - session.CompressionCount = int(Rg_QuZhengShu64(...)) 添加 int() 转换(字段是 int,函数返回 int64)

### 修复 6:- Prune 重置 last_prompt_tokens=0 → 改用 newEstimated 并发送 metering SSE 事件

### 修复 7:- compression_count 文件同步缺失 → 添加白名单、读取、Create、Updates 全链路处理

### 修复 8:- newCompCount 计算导致压缩次数倒退 → 取 max(s.CompressionCount, lastUsage.compression_count)+1

### 修复 9:- 压缩后重置 last_prompt_tokens=0 → 改用 postEstimated(压缩后估算值)

### 修复 10:- /api/session 端点历史遗留数据修正 → 三处返回路径添加修正逻辑(compression_count 和 last_usage.last_prompt_tokens)

### 修复 11:messages.js - 删除强制 d.usage.last_prompt_tokens=0 的核心 bug

### 修复 12:ui.js - _mergeUsageForCtxIndicator 中 0 视为无效值

### 修复 13:sessions.js + boot.js - last_prompt_tokens 改用 _pickPositive (0 视为无效)

### 修复 14:当前记忆系统只在 新建会话时 触发( 工具.wsv:5497 go Rg_ZiDongBaoCunHuiHuaJiYi(prevSID) ),需要前端传递 prev_session_id 。压缩时不会触发记忆保存,导致压缩后旧消息被"遗忘",重要信息丢失。

### 修复 15:修正 compression_count 不一致 :如果 session.compression_count=0 但 last_usage.compression_count>0 ,用 last_usage 的值修正 result,并同步更新数据库(一次性修复历史遗留)

### 修复 16:三处修正逻辑都改为用类型断言 result["last_usage"].(map[string]interface{})

### 修复 17:后端日志通过 fmt.Fprintf(os.Stderr, ...) 输出到 stderr,但 /api/logs 接口读取的是 ~/.hermes/logs/{file}.log 文件。 ~/.hermes/logs/ 目录不存在,所以日志页面显示空内容。

### 修复 18:对 compression_count ,把 0 也视为无效值,用 S.session.compression_count 补充。

### 修复 19:两处响应均包装在 publicKey 字段内,符合 WebAuthn API 标准

### 修复 20:工具.wsv:11811 删除失败状态码由 200 改为 500,前端 catch 块会显示错误

### 修复 21:工具.wsv:15413 创建成功状态码由 201 改为 200,与其他 MCP 端点一致

新增
### 新增 1: Rg_JiYiXieRuSuo sync.Mutex 互斥锁,在 Rg_ZiDongBaoCunHuiHuaJiYi 写入 MEMORY.md 时加锁:

### 新增 2:双重记忆机制:
1、会话边界保存 ( Rg_ZiDongBaoCunHuiHuaJiYi ):新建会话时提交上一会话的记忆;
2、压缩时保存 ( Rg_BaoCunYaSuoJiYi ):单次会话内被压缩掉的旧消息记忆

### 新增 3:添加终端提示,因误按快捷键,导致终端暂停的恢复方法

### 新增 4:自动判断是本地部署的大模型还是调用的云端供应商API,根据判断结果优化聊天对话和编码

### 新增 5:Rg_QuHuiHuaGongZuoShuLuJing 查询 worktree_path

### 新增 6:工具.wsv:3108 新增 删除文件递归 火山方法

### 新增 7:工具.wsv:3072 新增 Rg_ShanChuWenJianDiGui(filePath, recursive) 函数
回复

使用道具 举报

7

主题

138

帖子

1821

积分

金牌会员

Rank: 9Rank: 9Rank: 9

积分
1821
8#
 楼主| 发表于 2026-7-7 23:46:24 | 只看该作者
20260707更新Ver1.2.0:

修复
### 修复 1:移除 messages.js 中 3 处 console.log (write_file-code-block、tool-event、tool-progress)

### 修复 2:quickKanbanCardAction 传入 {openDetail: false} ,点击卡片上的"完成/归档"快捷按钮后只切换状态,不再自动弹出详情面板。

### 修复 3:main.wsv — 启动自动调度器- 在 Rg_QiDongPingTaiShiPeiQi 中 Rg_InitCronDB() 之后添加 Rg_QiDongKanBanZiDongDiaoDu()

### 修复 4:工具.wsv — 自动调度器(之前已写入)- Rg_QiDongKanBanZiDongDiaoDu :goroutine 定时器

### 修复 5:工具.wsv — 调度器间隔检查- ready 任务若 loop_interval > 0 且 started_at > 0 (已执行过),未到间隔则跳过

### 修复 6:loop_count=0 且 loop_interval=0 时退化为单次执行,避免 tight loop

### 修复 7:工具.wsv — skills 字段生效- worker 将 task.Skills 加入 prompt,提示 AI 优先使用指定技能

### 修复 8:在 panels.js 添加了 _kanbanPopulateSkillsDatalist() 函数,并在创建/编辑任务模态框打开时调用它( 行2665 和 行2725 )。

### 修复 9:- 队列请求真正执行时才分配新的 gen ( 行3760 )这样手动刷新的响应不会被后续的入队请求干扰。

### 修复 10:sessions.js:5219-5221 — 团队标签过滤改为 if(s.session_source!=='team') continue; ,移除了复杂的 session_id 匹配逻辑

### 修复 11:panels.js:1803-1813 — 根据 loop_count 动态显示按钮文字.

### 修复 12:工具.wsv - Rg_ZhongJianApiXiaoXi 增加 force bool 参数并透传

### 修复 13:改进 ghost recovery worker 进程死亡 → 立即重置为 ready (不再等 3600 秒超时)

### 修复 14:改进 ghost recovery worker worker 进程存活 + 超时 → 刷新 started_at 跳过回收(已有修复)

### 修复 15:修复调度器跳过 ghost recovery 的 bug

### 修复 16:达并发上限时用 dryRun=true 防止派发但仍然执行 ghost recovery

### 修复 17:多个 VoldpAiAgent 进程 :主进程没有单实例保护,多次启动会产生多个进程争夺同一前端资源。现已添加跨平台单实例锁。

### 修复 18:更新 Rg_YamlConfigPath 指向新 Profile 的 config.yaml

### 修复 19:调用 Rg_ZhongXinJiaZaiYaml() 重新加载 YAML 配置

### 修复 20:/personality 命令和 Profile 详情页的人格设置可能冲突 —— /personality 只更新会话的 personality 字段,不更新 Profile 的 config.yaml,导致两者不一致。

### 修复 21:使用 /personality <name> 切换人格时,同步更新当前 Profile 的 default_personality ,行事风格保持不变

### 修复 22:跨平台兼容:优先使用 Notification API(Windows/Linux/macOS/Android),回退 window.confirm() (iOS 旧版)


新增
### 新增 1:TEAM_FILTER = '__team__' sentinel( 行2684 )_isTeamSession(id) 判断会话是否属于团队成员

### 新增 2:saving_memory 事件监听器(复用 setCompressionUi 机制,传入 kind:'memory' )

### 新增 3:memory_saved 事件监听器(清除状态)- 两个事件注册到 runJournal 事件名数组

### 新增 4:_autoCompressionPreviewText 函数新增 kind==='memory' 分支,显示记忆保存专属文案

### 新增 5:为全部13种语言新增 saving_memory_message 和 memory_saved_message 文案

### 新增 6:工具.wsv 新增全局标志位 Rg_JiYiBaoCunZhong (int32)和3个辅Zhu函数

### 新增 7:Rg_TiQuJiYiDuanLuo ( 工具.wsv:12676 ):解析 MEMORY.md,将其拆分为「用户手动编辑内容」+「自动生成的记忆段落列表」。自动段落以 ## Session Memory 或 ## Compression Memory 开头,用正则分割。

### 新增 8:Rg_JiYiQuChongZhengHe ( 工具.wsv:12718 ):调用 LLM 对比新记忆与现有自动段落,返回需要移除的段落索引(>70% 语义相似度)。返回 JSON 格式 {"remove_indices": [0,1,...]} ,失败时返回 nil 降级为只追加。

### 新增 9:工具.wsv:8257-8263 为手动压缩 Rg_ZhiXingYaSuo 添加了异步记忆保存调用,与自动压缩 Rg_ZiDongYaSuoHuiHua 保持一致。现在两种压缩方式都会触发记忆保存和去重。

### 新增 10:Per-client 隔离 per-session 实现不同的聊天会话间用不同 Profile

### 新增 11:新增 config.yaml 编辑器 :Profile 详情页可直接查看和编辑 config.yaml

### 新增 12:工作区菜单 可选智能体人格和行事风格 ,与之自定义的配置文件
回复

使用道具 举报

7

主题

138

帖子

1821

积分

金牌会员

Rank: 9Rank: 9Rank: 9

积分
1821
9#
 楼主| 发表于 2026-7-13 01:45:55 | 只看该作者
20260712更新Ver1.3.3:

修复
### 修复 1:_apiUrl 函数路径处理不一致 — messages.js、login.js、bind.html 三处 _apiUrl 函数定义中路径处理方式不统一,部分保留前导斜杠导致子路径挂载(如 /hermes/)下 API 请求解析到错误路径。已统一去除前导斜杠,与 api() 函数的路径处理逻辑保持一致。login.js 和 bind.html 使用 ES5 兼容语法(var、charAt)确保跨平台兼容性。

### 修复 2:api() 函数 headers 合并覆盖默认值 — workspace.js 中 api() 函数使用 {headers:{'Content-Type':'application/json'},...fetchOpts} 展开方式,调用方传入的 headers 会整体覆盖默认 headers,导致 Content-Type 丢失。已改用 new Headers() API 合并调用方传入的头与默认 Content-Type,确保默认头不被覆盖。同时添加 FormData 保护,避免对 FormData 请求设置 Content-Type 破坏浏览器自动生成的 boundary。

### 修复 3:GET 请求不应设置 Content-Type — api() 函数对所有请求(包括 GET/HEAD)都设置 Content-Type: application/json 头,导致不必要的 CORS 预检请求。已改为仅对 POST/PUT/PATCH 等有请求体的方法补全 Content-Type,GET/HEAD 不设置。

### 修复 4:t/s 计算包含 API 等待时间 — 流式回复指示器中的 t/s(tokens/秒)使用"总 tokens ÷ 总耗时"计算,总耗时从用户发送消息时开始计时,包含了 API 等待时间(数秒到数十秒),导致 t/s 远低于实际生成速度。已改为优先使用后端 metering 事件返回的真实 tps,其次使用"tokens ÷ 生成时间"(从首个 token 到达开始计时),排除 API 等待时间。

### 修复 5:t/s 显示为小数 — 流式指示器中的 t/s 显示为小数(如 83.8 t/s),不够简洁。已改为 Math.round() 四舍五入为整数(如 84 t/s)。

### 修复 6:智能体澄清弹窗输入框不支持换行 — 澄清卡(clarify card)的输入框使用 <input type="text">,不支持多行输入。已改为 <textarea>,支持 Shift+Enter 换行、Enter 发送,输入法 composing 状态下不误触发发送。可拖拽调整高度(resize:vertical,最大 200px)。

### 修复 7:离开聊天区时代码编辑器不自动关闭 — 切换聊天会话时代码编辑器会自动关闭,但点击导航按钮(设置、任务、技能、记忆等)切换到其他面板时代码编辑器仍然悬浮显示。已添加三层防护:switchPanel 中切换到非聊天面板时关闭代码编辑器、switchPluginPage 中关闭代码编辑器、showCodeEditorPanel 中非聊天面板时拒绝打开(防止 SSE 流式事件重新打开)。

新增
### 新增 1:工作区文件列表显示修改时间 — 文件树中每个文件和文件夹在文件大小后显示修改时间,格式类似于 Windows 资源管理器(今年的文件显示"月/日 时:分",往年文件显示"年/月/日")。后端 /api/list 已返回 mod_time 字段,前端新增格式化显示逻辑。

### 新增 2:代码编辑器显示行号 — 代码编辑器面板左侧添加行号侧边栏,与代码行对齐。支持查看模式(pre 滚动同步)和编辑模式(textarea 输入实时更新行号、滚动同步)。流式写入代码时自动更新行号。移动端适配更小字号和宽度。
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|Archiver|手机版|小黑屋|递归火山软件开发平台 ( 鄂ICP备18029190号 )

GMT+8, 2026-7-27 19:12 , Processed in 0.196071 second(s), 21 queries .

Powered by Discuz! X3.4

© 2001-2017 Comsenz Inc.

快速回复 返回顶部 返回列表