# 更新日志 本项目的重要变更记录在此文件中,格式参考 [Keep a Changelog](https://keepachangelog.com/zh-CN/1.1.0/)。 ## [Unreleased] ## [0.3.3] - 2026-08-23 ### Worker #### 新增的功能 - 运行中的 Worker 支持单项暂停、恢复和取消;暂停保留意图、事实与漏洞,取消会在执行退出后事务性清理当前意图及其直接产物。 - 增加 `paused` 意图状态、执行栅栏和具名终止原因,防止暂停、取消或任务删除后出现迟到黑板写入。 - 增加可选任务并发上限;新建、恢复、漏洞深入和队列补位统一通过持久化 FIFO 准入路径。 #### 修改的功能 - Worker 单次运行墙钟默认时长由 600 秒调整为 1200 秒;超时任务复活后在下一次真实执行时重新计时。 - Worker、Planner 和主 Agent 的真实执行状态统一驱动任务状态徽标,修复 Worker 运行时仍显示“空闲”的问题。 - Worker 会话保留单项控制和当前会话 Token 汇总,模型名称移动到当前会话标题右侧展示。 #### 删除的功能 - 删除 Worker 多选、全选及批量暂停/继续界面,同时移除 Worker 批量控制 API 和 Mock 契约。 - 删除 Worker 列表行中的 Token 徽标与 Tooltip,底层完整 Token 账本和任务聚合接口继续保留。 ### LLM #### 新增的功能 - 任务支持有序 LLM 配置链;明确识别供应商额度不足时自动切换下一配置,并持久化当前配置、耗尽状态和错误摘要。 - 运行中和暂停任务支持编辑完整配置链、调整顺序和手动切换当前配置,从下一次 LLM 调用生效。 - 自动切换、手动切换和全链耗尽写入结构化系统活动,并通过任务活动流弹出可去重提醒。 - 增加任务角色模型解析接口,统一解析 Main Agent、Planner 和 Worker 下一次调用使用的配置与模型。 #### 修改的功能 - 目标拆解、Planner、Worker 和主 Agent 共享任务级 LLM runtime(解析优先级见下)。 - 故障转移只响应明确的额度、余额或账单错误;普通限流、鉴权、网络、服务端和上下文错误不会错误切换。 - LLM 配置页改为配置卡片列表和右侧抽屉编辑,保留任务级配置链,不引入 Pool 轮询、优先级和熔断界面。 - 配置链耗尽信息支持窄屏换行;当前模型由会话列表图标改为当前会话标题旁的文字标签和完整 Tooltip。 - 任务内各角色解析 LLM 的顺序调整为「Agent 绑定 → 任务配置链 → 全局」:显式绑定模型的角色始终跑在该模型上,未绑定角色才落到任务链,任务链为空时再落到全局。 - 出站代理留空即直连,不再回退 `HTTP_PROXY`/`HTTPS_PROXY` 环境变量(显式 `ARTEX_LLM_PROXY` 不受影响);代理输入支持带账号密码的 `socks5://user:pass@host:port`。 #### 修复的问题 - 提交前(尚未产出任何输出)的瞬时流式失败在同一 provider 上安全退避重试,显著减少「只跑了一两个工具就中断、无总结、终态 `model_error`」的情况;额度耗尽、上下文过长和 4xx 确定性错误不重试,仍分别交由故障转移与压缩恢复处理。 #### 删除的功能 - 删除会话列表中的 LLM 图标式标识,避免与 Worker 状态图标混淆。 ### UI #### 新增的功能 - 增加全局任务模板 CRUD 和右侧管理抽屉;新建任务可加载预设描述与目标,也可将当前内容另存为模板。 - 新建任务支持关联多个来源任务和多个企业资产范围;企业范围通过单个多行文本框自动识别域名、URL、IP、CIDR、ICP 和企业关键词。 - 发现页按任务分组并提供组内独立分页,支持为漏洞填写描述并创建高优先级深入意图。 - 对话支持重命名、置顶、取消置顶和删除;任务列表支持当前页批量暂停与继续。 - 流量详情和工具执行详情改为右侧抽屉;HTTP 报文补齐 `Host` 并高亮请求行、状态码、Header、JSON 和标记语言正文。 - 任务列表操作列新增「详情」与「暂停/继续」按钮;会话发送键位可在系统设置中配置(`Enter` / `Cmd+Enter` 等),Web 搜索区新增代理输入框。 - 会话标题右侧徽标改为显示 LLM 配置名称,模型 ID 移至 hover Tooltip;任务可设置可选名称,任务列表新增名称列与搜索(空则回退到描述)。 #### 修改的功能 - 任务标题改为可聚焦详情链接;任务资产、企业资产、发现任务组和组内漏洞使用服务端真实分页、稳定排序与精确总数。 - 新增企业改用右侧抽屉,范围录入统一为多行文本并提供实时识别、校验和类型预览。 - 主 Agent 输入框支持自动增长、`Enter` 发送、`Shift+Enter` 换行,并避免中文输入法组合态误发送。 - Agent 预览、任务报告和相关详情统一使用共享 Markdown 渲染;删除确认、长错误和移动端抽屉宽度统一修复。 - 任务模板选择框以模板名称显示和搜索、以模板 ID 提交;恢复系统原始字体尺寸,应用版本统一显示为 `0.3.3`。 - 任务总计和当前会话 Token 只高亮输入、缓存读取和输出数值;发送按钮使用更简洁的上箭头图标。 - 任务总览的测试范围显示企业名称而非 ID。 #### 修复的问题 - 含点号的普通文本不再被误判为 ICP 备案号。 - 修复变量目录中与全局运行时变量(如 `{{.Now}}`)撞名,导致 Agent 编辑器变量列表渲染出重复 key 的问题。 #### 删除的功能 - 删除任务卡片独立“进入”按钮,统一点击任务标题进入详情。 - 删除仪表盘“新建任务”按钮、新增企业的 Logo URL 输入项,以及发现页顶部和任务分组中的漏洞数量 Badge。 - 撤销全局字体增大 10% 的样式,并删除会话列表中的 Worker 选择框、模型图标和行级 Token 统计。 ### Agent #### 新增的功能 - 新任务可直接关联多个已有任务,实时只读继承直接来源任务的目标、事实、漏洞、已完成意图、资产范围和黑板上下文。 - 黑板读取工具支持按需查询来源任务节点、事实、漏洞和执行轨迹;继承节点带来源标记且所有写工具拒绝修改。 - 企业范围工具支持域名、URL、IP、CIDR、ICP 和企业关键词;关键词仅作为 Agent 范围提示,不参与资产自动归属。 - 漏洞深入操作会在原任务创建带资产锚点和 `derived_from` 边的高优先级人工 Worker 意图。 - 总览新增「目标管理」卡片,支持人工查看、新增、修改和删除目标;新增或修改会通知 Planner 并复活任务,删除硬删目标节点(级联删边与锚点)但不复活。 - 主 Agent 默认获得 `steer_work` 工具,可对运行中的 Worker 实时注入纠偏指令而不打断、不丢失进展(仍校验意图归属本任务)。 #### 修改的功能 - 来源任务意图不进入新任务 frontier,新任务继续使用独立 exploration、执行队列、工作目录和对话历史。 - 删除运行中的意图不再销毁数据:改为停到 `stopped`、要求填写删除原因、把原因作为事实挂到该意图并写入 payload,规划者按 `cancelled` 触发感知(保留意图内容与原因)。 - 主 Agent 对话改为服务端活动流驱动,发送失败可恢复输入;打开会话时自动贴底并在详情懒加载后保持最后回复可见。 - 任务暂停会终止当前 Main Agent、Planner 和 Worker 调用,但不阻止暂停期间用户主动发起新的主 Agent 编排会话。 - 取消、关闭和流式中断统一保留真实终止原因、已生成内容、运行轮数、耗时、Token 与未返回工具调用。 #### 删除的功能 - 删除主 Agent 客户端乐观消息回显,避免暂停、失败或并发活动下出现重复消息和跨会话串流。 ### 约束 #### 新增的功能 - 目标拆解阶段先抽取操作约束(allow/deny)再拆目标,主 Agent 运行时可补充;约束按最高优先级注入 Planner 与 Worker 系统提示,去偏后多样性与拓面探索显式服从约束。 - 总览新增「约束管理」卡片与增删改接口;约束注入范围可按 Planner / Worker 分别开关(默认都开,每轮读取、即时生效)。新表 `task_constraints` 使用 `CREATE TABLE IF NOT EXISTS`,旧库自动补建。 ### 拦截 #### 新增的功能 - 命令拦截在正则/字符串规则之外新增模型兜底审批:一条规则都未命中时由模型做 `ALLOW`/`ASK`/`DENY` 语义判定,失败回退动作与审批超时动作可配置;拦截页拆分「拦截规则 / 模型配置」两个 Tab,模型判定结果标注 `[模型]` 前缀与理由。 #### 修复的问题 - 加固裁判输出解析,避免正确的 `DENY` 判定被误当作放行。 ### 流量 #### 修改的功能 - 流量录制改为整条 exchange 落 SQLite(大正文溢出到按 hash 去重的 blob 桶),文本正文建 trigram 全文索引,支持任意子串与中文搜索;删除退化为单条 SQL 事务,从数小时降到毫秒级且期间不再停摆录制。新增大 body 流式下载与 `traffic_search` 全文参数;旧文件树数据免迁移,仍可读、可搜、可删。 ### 任务与资产 #### 新增的功能 - 创建任务新增「资产覆盖度功能」开关(默认开):关闭后不计算与展示覆盖度、态势图只显示资产、不自动累积 `task_scope`,相关工具从 Planner / 主 Agent 剔除;企业关联不受此开关影响。 - `insert_assets` 每条资产新增 `related` 标记(默认 `true`):仅在开启覆盖度时生效,`false` 只入共享资产库、不计入本任务覆盖度(如顺带发现的旁站或无关资产)。 ### 构建 - `build.sh --release` 支持一次构建 Linux amd64/arm64、macOS amd64/arm64 和 Windows amd64,并生成带 `skills/`、配置示例和 README 的 zip 发布包。 - 使用 Go linker 去除调试信息并生成 zip 发布包;UPX 改为显式可选,避免其自解压 ELF 在部分 Linux 环境启动时发生段错误。 - Release Workflow 对 Linux amd64 二进制执行启动冒烟测试,并随发布包提供 `SHA256SUMS`。 ### 贡献者 - [@neouks](https://github.com/neouks) ## [0.3.2] - 2026-08-20 ### Added - 新建任务支持关联多个已有任务,实时、只读继承直接来源任务的事实、漏洞、已完成意图、资产范围和黑板上下文;新任务仍使用独立的执行队列、工作目录和会话历史。 - 任务支持有序 LLM 配置链。明确识别到供应商额度不足时自动切换到下一配置,并持久化当前配置、耗尽状态和结构化审计活动。 - 运行中和暂停任务支持编辑 LLM 配置链、调整顺序及手动切换当前配置;自动切换、手动切换和全链耗尽会在任务详情页提示。 - 运行中的 Worker 支持暂停、恢复和取消。暂停保留黑板数据,取消会在 Worker 停止写入后事务性清理该意图及其直接产出的事实、漏洞和执行记录。 - 删除任务可选择同时清理关联资产、流量、漏洞和任务落地文件,并增加删除屏障、并发保护和可审计的删除统计。 - 增加可选的任务并发上限;达到上限的新任务按 FIFO 排队,并在运行槽位释放后自动启动。 - 增加任务资产分页、公司资产分页、任务分类统计及分页意图 Mock 契约。 - 增加 `build.sh` 单二进制构建脚本,支持静态前端导出、资源嵌入、跨平台目标和构建版本注入。 ### Changed - 任务级显式 LLM 配置链与现有全局 LLM Pool 并存;显式链继续采用严格的额度故障转移语义,无显式链时沿用 Agent 绑定和全局配置规则。 - 主 Agent 输入框支持自动增长的多行输入,`Enter` 发送、`Shift+Enter` 换行,并避免中文输入法组合态误发送。 - Planner、Worker 和主 Agent 共享任务级 LLM runtime;任务链使用候选模型中最小上下文窗口作为安全压缩阈值。 - 任务详情页按真实 LLM 调用状态展示运行、空闲和暂停状态;来源任务的事实、漏洞、意图、资产引用和图谱节点统一标记来源并保持只读。 - Agent 预览、任务报告和相关详情视图统一使用共享 Markdown 渲染组件。 - LLM 模型配置采用卡片和抽屉交互,模型列表在抽屉内支持独立滚动。 - 任务暂停不再拦截主 Agent 对话:主 Agent 编排会话独立于任务暂停,暂停中仍可继续发送新消息(暂停只终止当前进行中的那一轮)。 - Worker 单次 run 的墙钟默认时长由 600 秒调整为 1200 秒。 ### Fixed - 移除主 Agent 控制台的乐观回显,改为纯服务端数据渲染,修复暂停或发送失败等场景下消息错乱、串入其他会话内容的问题。 - 打开主 Agent 会话默认滚动到底并完整显示最后一条回复:最后一条回复的完整内容懒加载展开后自动贴底,不再被顶出屏幕。 - 修复暂停任务后主 Agent 会话仍继续运行,以及编排 Agent 暂停任务时未同步停止主 Agent 的问题。 - 修复任务完成、Planner、Worker 或主 Agent 实际运行时,任务状态徽标与操作按钮状态不同步的问题。 - 修复 Worker 取消、任务删除和并发写入之间可能产生迟到黑板写入或残留文件的问题。 - 修复 Markdown 预览失效、删除确认长文本溢出、移动端宽度和部分任务详情按钮未对齐的问题。 - 为所有 Agent 取消路径增加具名终止原因,活动详情可显示取消方、终态、运行轮数、耗时、Token 使用量和未返回的工具调用。 - 修复后端关闭时父 context 可能抢先覆盖具名 `shutdown` 原因的竞态,以及中文活动摘要按字节截断导致乱码的问题。 - 修复带部分流式输出的取消事件丢失真实终止原因的问题,同时保留取消前已生成的内容。 ### 贡献者 - [@Autumn-27](https://github.com/Autumn-27) - [@neouks](https://github.com/neouks) [Unreleased]: https://github.com/Autumn-27/ARTEX/compare/v0.3.3...HEAD [0.3.3]: https://github.com/Autumn-27/ARTEX/compare/v0.3.2...v0.3.3 [0.3.2]: https://github.com/Autumn-27/ARTEX/compare/v0.3.1...v0.3.2