Skip to content

Releases: sharenjun/ARTEX-main

v0.4.2

Choose a tag to compare

@github-actions github-actions released this 13 Oct 12:26

本次修复 P0/P1 中的任务收官、失败恢复、认证覆盖、证据交接和范围同步问题,并完善工具统计及收尾保存。

修复

  • 新目标固定为检查或成果类型;检查目标须保存必要检查。认证检查点保留实际请求、剩余候选、授权预算与身份验证材料,恢复工作继承最新记录并限制重复尝试。
  • 工作退出与检查完成分别保存;有缺口、推断或空证据的材料不能直接证明目标达成。补证或修改范围后,旧证明须重新核对。
  • Worker、Planner 和 Reporter 可在当前任务权限内读取及补充已有发现证据、绑定流量和更新报告;证据修改校验版本并保留历史,界面显示审核状态。
  • 暂停后可一起修改目标、说明、必要检查、约束和资产范围;保留旧契约,停止旧未完成工作,恢复时重新规划。人工恢复重置停滞计数,普通调度不会重置。
  • 目标拆解工具接入统一调用账本,记录角色、任务与执行结果;工具页面增加调用结果统计。
  • 区分模型额度、拒绝、配置、协议和传输错误,确定性错误保留待处理状态;补齐收尾资产保存工具,并延长普通收尾保存窗口至 60 秒。

新增目标的 API 请求须包含 goal_type(inspection 或 outcome);inspection 还须包含非空 required_checks。已有目标保留原记录,缺少类型的旧目标可通过任务范围编辑明确契约。

验证范围

本地回归、专项重复测试、竞态检查及前端构建已通过。完整多资产、多漏洞的任务效果仍需扩大验证;P1-05 的特定模型服务及外部系统联调保留待补验状态,不将跳过或未复现计为通过。

v0.4.1

Choose a tag to compare

@github-actions github-actions released this 12 Oct 12:16

本次重点修复推理历史回放、目标误判与任务收官:保留真实推理块及已执行工具结果,目标达成须有对应证据,终验失败可追踪、可纠错并有界恢复。

修复

  • 识别网关要求回传 content[].thinking 的原始 HTTP 400 措辞,进入有界历史恢复,保留已执行工具结果;强制开启推理等配置错误仍保留原错误。
  • 对目标达成的成功结论增加独立支持性复核;布尔结论与理由不一致、实际成果属于其他目标或复核失败时,不再写入达成状态。两次审核共用原有 60 秒预算。
  • 收官终验核实决定性缺口后立即拒绝完成并保存目标缺口,避免为否定结论遍历全部证明而耗尽预算;成功结论仍须核验全部必要目标与检查。
  • 目标标记达成前独立审核证据,区分实际成果与检查完成;证明边、状态及审核理由在同一事务保存,并重新核对任务、目标、证据版本。
  • 支持纠正错误的目标完成判定,保留原证明及原因;修改目标内容会撤销旧判定。终验返回具体目标证据缺口,任务面板与报告展示恢复信息。
  • 收官申请检查全部目标,避免目标列表显示上限遗漏必要工作;阴性事实不能证明已获取 flag 或已确认漏洞。
  • 任务终验默认预算改为 180 秒、16 轮并支持配置;复核期限与 Worker 排空期限分别展示,保留绝对截止时间和迟到结论保护。
  • 对相同输入的终验失败持久保存类别、计数和恢复动作,瞬时故障最多自动重试两次并退避;重启或 Planner 再申请不会重置限制,人工恢复记录原因。
  • 统一 Anthropic thinking 配置与单次请求覆盖:默认模式保留真实推理历史,显式关闭才过滤,非法模式明确报错。
  • 对推理历史缺失增加原始块恢复、工具关联校验及有界会话恢复;保留旧 transcript 和已完成工具结果,记录恢复边界,支持重启继续。
  • 模型池识别确定性历史和配置错误,避免无效故障转移及健康计数误清零。
  • 保留流式 thinking 的块边界、分片签名、空块和 opaque 内容;NOA 不再改写带签名的推理文字。保存最小模型来源,切换不兼容配置时从记录恢复上下文。
  • 断流不执行未收完的工具调用,并持久保存已执行工具的结果和部分响应,避免续聊遗漏副作用;缺少 message_stop 的响应明确报错。

代码组织

  • 将 server.go、server_mgmt.go 中的 HTTP API、路由、模型装配、提示词模板及 Skill 文件操作按职责拆分,保留同一 server 包和现有接口。
  • 接续拆分时保留 v0.4.0 的后台同步锁与启动恢复、四条同步历史/job 路由、任务收官 DTO/报告和 Windows Skill 路径修正,不改变数据库结构或配置格式。

验证与升级

  • 四批功能修复及补充修复的 GitHub CI 已通过;本地完成构建、静态检查、隔离 PostgreSQL 下 Agent/DB/Server 竞态回归,以及 Norma 推理、会话和 transcript 回归。缺少外部环境的 live 用例不计为通过。
  • 真实 DeepSeek 已验证流式与非流式多轮工具调用、历史冷加载、上下文恢复、成果与阴性检查的区分,以及结构化目标缺口和纠错。历史中记录的缺失 thinking HTTP 400 已用原文回归验证;当前网关的最小请求返回 200,不宣称本轮远端重现了该 400。
  • 升级时保留现有配置和数据;启动会执行幂等数据库迁移,增加目标审核与终验重试信息。不会自动纠正历史任务的达成判定,历史误标需要在目标面板明确执行纠错。
  • 发布包包含静态前端,提供 Linux/macOS amd64、arm64 和 Windows amd64 五个平台包及 SHA256 校验文件。

Full Changelog: v0.4.0...v4.0.1

v0.4.0

Choose a tag to compare

@github-actions github-actions released this 11 Oct 13:08

ARTEX v0.4.0 中文更新说明

ARTEX v0.4.0 重点完善 ScopeSentry 资产同步、任务完成校验与 Worker 收尾,并修复 Windows 证据保存、Python 检测和路径兼容问题。代码优化主要体现在职责拆分、事务一致性、执行准入和终态保护;本次没有性能基准,不宣称吞吐、响应速度或模型成本提升。

版本与范围

  • 发布版本:v0.4.0。
  • 功能基线:v0.3.18,功能核验截至提交 19d9bbc,参见 功能提交比较。
  • 发布文档与 CI 调整前,该范围共修改 87 个文件,新增 7580 行、删除 537 行,包含功能代码、测试和当时的规划、报告及更新日志。这不是最终发布提交的总统计,也不代表性能指标。
  • 此前已部署的功能版本标识为 0.3.18-main-19d9bbc;本轮将这些变更以 0.4.0 正式发布,并补充 GitHub Actions 回归和发布预检。
  • 本文只针对实际发布源码。doc/report.md 中另一工作区的 server.go / server_mgmt.go 全量拆分尚未合入本次版本,不属于 v0.4.0 的发布成果。doc/plan.md 的“待实施”是早期规划记录,当前实现和限制以本文及对应源码为准。

1. ScopeSentry 同步:后台执行、持久化历史与可恢复处理

使用行为变化

场景 v0.3.18 及之前 v0.4.0
判断是否完成 源扫描任务进度与同步结果容易混淆,返回后统一提示完成 明确标注“源任务扫描进度”;ARTEX 同步独立显示同步中、成功、部分成功、失败或已中断
刷新或关闭页面 结果主要保存在当前页面,离开后无法回看 同步历史与逐项明细落 PostgreSQL;后台任务不因页面关闭而取消
大批量资产 每个目标、每种类型最多处理 5000 条 新后台模式逐页处理,可超过 5000 条;旧同步接口保留原上限
页面拉取失败 难以说明哪些数据已取得、哪些尚未完成 保留前面已取得和已提交的数据,给出失败页面与部分完成状态
中断恢复 缺少持久化页面与逐项处理记录 先保存下载页面,再逐条入库;恢复时重放保存页面并跳过已记录项
重复同步 成功写入次数容易被理解为新增资产数量 分别显示源记录处理结果和按资产 ID 去重的独立资产数量
失败反馈 缺字段和部分关联 IP 失败可能静默遗漏 保存跳过、解析失败、入库失败及关联 IP 失败的具体原因

后台同步启动后返回任务编号,页面通过历史记录查看进度。服务端为后台同步设置单进程互斥,同一进程已有后台同步时,新启动或恢复请求返回冲突提示;后台运行期限为 6 小时,并受服务进程生命周期控制。

同步历史与统计口径

历史保存请求范围、数据源引用、源目标及资产标识、开始和结束时间、逐类型状态、逐项结果与原始 JSON。源 MCP 配置或实时资产被删除后,历史请求及观察记录仍可用于追溯;实时对象引用可变为空。

统计分为两层:

  • 源记录统计:拉取、成功写入、新增、更新、未变化、跳过、失败,以及适配器显式派生 IP 的写入与失败次数。成功写入包含新增、更新和未变化,不等于新建资产。
  • 独立资产统计:按本轮涉及的规范资产 ID 去重,区分直接资产与派生资产,并按新增、更新、未变化分类。同一资产被多个源记录触及仍只计一次;本轮分类优先级为新增、更新、未变化。

新增与更新判定比较实际资产内容,忽略 created_at、updated_at、last_seen 等时间字段;集合字段会规范化排序,避免仅因数组顺序变化被计为内容更新。

例如,回归夹具提供了 5001 条指向同一 App 的源记录。恢复处理后,源记录统计为 5001 次成功写入、1 次新增、5000 次未变化,独立资产只有 1 个。这一用例验证分页与计数语义,不是 5001 个独立资产的性能测试。

成功表示本次读取及处理没有发现失败或遗漏提示。存在跳过、失败、截断、详情获取警告或其他未完成范围时,会显示部分成功或失败;正常核实的零资产结果可以成功,不能把零资产直接当作源端故障。

恢复、重试与重新同步的区别

操作 处理范围 适用场景
从保存的页面继续 同一后台同步记录;读取已保存页面,跳过已记录项,再读取后续页面 进程退出、页面处理未完成、后续分页请求失败
仅重试失败和跳过记录 创建新同步记录,处理旧记录中保存的失败或跳过项 JSON 入库等临时问题已解决,需要重试已取得的记录
重新同步所选范围 创建新同步记录,重新从源端读取指定目标和类型 源数据已修正、原始 JSON 未保存,或需要再次核对整个范围

恢复会跳过已经记录为失败或跳过的项;处理这些项应使用专门的重试入口。仅失败项重试使用已保存 JSON,不会自动取得源端后来修正的记录;缺少完整 JSON 时会提示重新同步源范围。

服务启动时将前一进程遗留的 running 同步标为 interrupted,保留已提交记录,由用户选择继续。后台恢复的能力依赖新增页面记录,旧同步接口产生的记录不支持同样的断点恢复。

来源信息与字段映射

同步继续覆盖子域名、服务和 App,并可从子域名记录派生关联 IP;按项目同步时保留创建或复用企业及写入范围的能力。

  • 子域名映射主机名、记录类型、记录值及关联 IP。
  • App 映射名称、类别、描述、ICP 和 Bundle ID。
  • HTTP 服务补充源端 host、statuscode、technologies、faviconmmh3、contentlength 等字段的兼容映射。
  • 非 HTTP 服务校验域名或 IP,并接受合法的整数或字符串端口,范围为 1 至 65535。
  • 服务资产通过 MCP get_asset_detail 读取详情,保留列表原字段,并把源端返回的完整详情另存于原始 JSON;缺少资产 ID 或详情读取失败会明确提示。

原始 JSON 与 Agent 可见的 assets.extra 分开保存,不把整段源文本和内联响应正文直接灌入资产上下文。逐项 JSON 可下载,单条观察记录最多保存 16 MiB;超限时保留结果与来源标识并提示原文未保存。该限制不是整个同步任务或数据库占用的总上限。

数据一致性与兼容边界

页面内容先持久化,再处理其中记录;源资产及其派生资产、来源观察记录和计数在同一事务内提交。子域名关联 IP 写入失败时,该源项及其派生写入回滚,另外保存失败观察,避免留下“源项成功、派生失败却无提示”的状态。记录唯一约束和已处理项检查用于防止同一恢复过程重复计数。

旧 POST /api/sync/scopesentry/sync 保持同步响应方式,并增加历史记录和真实结果反馈。它仍受每目标每类型 5000 条保护上限及 10 分钟请求期限约束;恰好达到上限时会进一步核验是否还有数据,不能仅因数量等于 5000 就宣布截断。大批量处理应使用新后台入口。

新增接口:

方法与路径 用途
POST /api/sync/scopesentry/jobs 启动后台同步或失败项重试
POST /api/sync/scopesentry/history/{id}/resume 恢复可继续的后台记录
GET /api/sync/scopesentry/history 分页查看同步历史
GET /api/sync/scopesentry/history/{id} 分页查看逐项明细;按需读取单项原始 JSON

源端 list: null 通过 count_assets 核实分页终点,无法核实或源端仍有记录时不会伪装成成功空页。App 按任务筛选使用源接口支持的搜索表达式,避免使用其不支持的任务过滤字段。

恢复不等于源端快照同步。 ScopeSentry 使用页码分页,扫描过程中的新增、删除或排序变化仍可能移动尚未读取的记录。已下载页面可以稳定重放,未下载页面没有固定快照保证;建议在源扫描稳定后重新核对范围。源接口没有返回的截图、响应正文文件及其他附件不属于已同步内容。同步历史默认保留,已处理页面会清空冗余临时载荷,但没有新增自动历史保留期限或完整附件镜像能力。

2. 任务完成:先核验剩余工作,再保存收尾结果并终验

修复的具体问题

此前,Planner 证明全部目标为 met 或发出完成信号后,引擎可直接把任务写为 done,随后取消仍在执行的 Worker。对于全面审计,某一路检查的证据可能被当作整体完成,其他必要方向尚未完成便被中止;取消原因 goal_met 也不能证明被停止检查已验证通过。

v0.4.0 将“目标证据达成”“可停止剩余工作”“执行已退出”和“任务最终完成”分开处理。prove_goal 继续保存目标证明,goal_met 改为申请收官;两者都不能绕过服务端完成校验。

新的完成协议

  1. 完整读取剩余工作。 新增 list_remaining_work,按意图 ID 游标分页,返回总数、后续游标、受阻及删除原因。查询涵盖全部非 done 意图,包括 open、running、paused、blocked、exhausted、stopped、deleted,不依赖概览中的最近窗口。
  2. 明确停止依据。 普通收官要求全部目标已达成。每个未完成意图都要提供 remaining_work 处置:只接受 duplicate 或 irrelevant,必须有非空理由;重复检查还须引用有效事实、漏洞或已完成意图。引用范围及类型由数据库校验。出错、受阻或预算耗尽本身不能作为必要检查已完成的依据。
  3. 安装执行准入屏障。 收官尝试落库后,停止普通规划与新意图领取,要求已有 Worker 转入保存结果阶段,避免收尾开始后又启动普通工作。
  4. 等待实际退出。 Worker 仅整理已有输出、保存事实和漏洞、说明未完成项。引擎等待执行与工具回调真正退出,之后才生成稳定快照;收到取消响应或框架终止事件不等于底层回调已结束。
  5. 只读终验。 使用新的终验运行核对原始目标、描述、目标节点、约束、停止理由及已保存证据,必须提交明确的 completion_verdict。终验只有内置只读证据工具与结论工具,不开放 Shell、扩展工具、子 Agent、新探测或图写入。
  6. 比较并提交终态。 提交前重新读取输入并比较摘要,同时检查尝试编号、阶段和任务生命周期。条件仍有效才提交 done;无法充分核验则保留证据、反馈拒绝原因并重新规划。任务到达绝对截止时间时复用该流程,不能确认完成的写为 timeout 并记录未完成范围。

单点或定量目标仍可在证据充分、剩余工作确属重复或无关时收官,不要求所有意图无条件自然结束。全面审计中的必要独立检查应继续完成;服务端能验证声明完整性和引用有效性,停止理由是否语义充分仍需终验模型判断。

收尾限制与超时处理

收尾控制通过执行时白名单生效,允许保存事实、登记漏洞、查看已有证据及必要的本地文件整理;不允许发起 Bash 探测、任意扩展工具调用或新的委派。限制会传递到间接工具调用和子 Agent 路径,工具执行前及前置 Hook 后再次检查。

当前源码设置 Worker 收尾阶段最多 30 秒,任务等待在途执行的宽限期为 90 秒,终验最多 45 秒、8 轮。这些期限不是整个任务必定在固定总时长内完成的承诺:已经准入的调用可能继续执行,忽略取消的回调仍需被等待。

普通收官超过宽限期会强制取消并放弃本次完成判定。取消后仍未实际退出时,任务被隔离并暂停,继续保留执行占用和并发槽位,退出前禁止恢复;不会一边把旧执行视为结束,一边启动新的执行与之重叠。

收尾终止原因新增 settlement_requested。被收官中断的意图不会直接写成 done;最终停止的检查保留原状态、停止理由及未完成说明。已保存结果仍可查询,停止或正常工具返回均不自动等于检查成功。

并发与状态保护

  • 执行准入、意图领取和收官安装共享同步保护,避免新工作跨过收官屏障。
  • 完成尝试保存 attempt_id、阶段、快照和输入摘要;追加目标、证据、约束或范围变化会使旧终验结果失效。摘要覆盖当前任务及直接来源任务的相关图和证据,并非只比较目标数量。
  • 快照与终态提交使用短事务及明确锁顺序,设置锁等待和语句期限;模型和网络调用不在该事务内执行。这里解决一致性,不构成数据库并发性能提升声明。
  • 用户暂停、任务删除和绝对超时与收官协调,迟到的终验不能覆盖已改变的生命周期。终验取消后,先前提交的结论也不再授权完成。
  • 终验拒绝后,新执行使用新的收尾控制器,避免复用已经关闭的控制状态。

页面、报告与恢复

任务列表和详情增加收官阶段提示:“保存收尾结果”“最终复核”,并可查看最近一次尝试编号、原因、终验说明、剩余检查及其停止依据。收官记录作为任务主状态之外的附加信息展示;暂停和已有终态仍有自己的语义。

任务 Markdown 报告追加收官记录和剩余检查,明确停止决定不代表验证通过。Reporter 沿用原有独立报告流程;任务收官不等于所有漏洞报告已生成,报告版本及证据一致性继续由原机制核验。

进程重启会使旧收官决定失效,保留证据并恢复需要重新评估的工作;不会拿上一进程的半成品决定直接提交完成。归档包含收官记录,恢复归档时保留历史快照、推进尝试编号,并使仍在收尾或终验的旧决定失效。没有收官记录的旧归档继续兼容。

3. 代码优化与实际结构调整

本次优化把新增协议按职责组织,减少同步接口、资产映射、数据库事务和任务协调相互混杂。相关 Go 文件仍处于原有包中,不把文件拆分本身描述为运行速度提升。

领域 本次实际代码组织 作用
ScopeSentry 接口 server/sync_scopesentry.go 保留数据源与列表相关逻辑;新增 sync_scopesentry_run.go、jobs.go、pages.go、ingest.go、history.go、retry.go、detail.go,文件名均带 sync_scopesentry_ 前缀 分开请求与结果模型、后台生命周期、分页、校验映射、历史、重试和详情读取
同步数据库 db/sync_history.go、sync_pages.go、sync_asset_changes.go、sync_retry.go 明确页面持久化、资产内容变化判定、来源观察和统计的事务边界
任务协调 server/engine_completion.go 统一普通收官与任务超时的收尾、终验、提交和恢复;替换旧 engine_timeout.go 中的主要超时收尾实现 避免两套完成路径各自落终态、各自处理在途执行
完成输入与协议 agent/completion.go、completion_input.go、remaining_work.go;db/task_completion.go、task_completion_read.go、task_completion_archive.go 分开模型只读终验、输入预算、全量剩余工作查询、数据库提交与归档
执行框架 Norma 的 SettlementController、settlement_control.go 与 tool/execution_guard.go 将“隐藏工具”补为实际执行限制,并等待真实回调退出
前端展示 sync-history.tsx、共享 sync-result.ts、task-completion.tsx 集中历史展示、状态判定和收官说明,减少各页面自行解释状态的差异

终验输入也采用明确预算:完整保留决策所需的目标、约束、剩余工作和引用,仅对辅助证据摘要采样及缩短。初始输入上限为 32 KiB,并按当前上下文窗口进一步收紧;这是字节预算,不是精确 Token 估算。关键输入超预算时直接拒绝发起终验,不通过截掉必要目标或检查来拼出“完成”结论。完整数据库快照和提交摘要不随模型输入采样而缩减。

企业范围上下文补回显式范围及关键词;即使关闭覆盖度指标,Planner 仍能取得任务边界。企业范围用于规划,不能当作已经测试过的覆盖证据。

doc/report.md 另记的“新增 30 文件、将 server.go / server_mgmt.go 全量拆小”不在本次发布范围。本次 server_mgmt.go 的实际变更是技能相对路径规范化,不应与那项未合并重构混为一谈。

4. Windows 兼容与回归稳定性

问题 本次处理 边界
保存证据正文后对目录 Sync() 返回 Access is denied 正文仍做长度、哈希校验及文件刷盘、关闭、重命名;目录同步按平台处理,Unix 保留目录刷盘,Windows 跳过不支持的目录句柄操作 不忽略正文刷盘错误;Windows 目录在突然断电时的持久性仍取决于平台,不能宣称与 Unix 完全一致
python3 / python 路径命中不可执行的系统别名 自动检测除 LookPath 外,再运行最多 3 秒的 Python 探针并核验输出 仍需要实际可用的 Python;仅有商店别名不算解释器已就绪
技能相对路径在 Windows 返回反斜杠 路径清理及合法性校验后,用 filepath.ToSlash 统一接口相对路径 本地文件处理继续使用平台路径语义
子进程未退出便删除其输出文件,清理失败 清理先取消根上下文、等待进程退出信号与输出句柄释放,最多等待 10 秒,再删除会话目录 到期仍被进程持有的文件保留,后续会话垃圾回收可再次处理
测试使用 Unix Shell 命令或固定等待 Windows 用对应 PowerShell 命令;后台任务测试等待真实完成并关闭 Session 这是测试可移植性和清理修正,不表示任意用户脚本自动变为跨平台脚本
LLM 重试测试出现 nil HTTP client panic 用测试服务器的 client 显式初始化重试配置 修复测试夹具,不能描述为真实供应商重试策略新增功能

5. 数据库迁移与兼容

升级沿用启动时幂等 PostgreSQL schema 应用,新增表和字段使用 CREATE TABLE IF NOT EXISTS、ADD COLUMN IF NOT EXISTS 等语句。

表 保存内容
sync_runs 全局同步请求、状态、结果、时间与计数
sync_observations 逐源记录结果、原因、来源标识、原始 JSON 和资产变化
sync_pages 尚待处理的下载页面及页计数、完成和末页标记
sync_asset_changes 单次同步涉及的独立资产、变化分类和直接或派生来源
task_completions 每任务当前或最近收官尝试、阶段、快照、摘要及期限

同步历史属于全局来源记录,不是某个 ARTEX 任务的探索图。删除 MCP 或资产时保留历史,删除同步记录则由外键级联清理其明细、页面及资产变化记录。task_completions 与任务关联,随任务删除清理。

已有系统工具 prove_goal、goal_met 的 schema 会幂等补充缺失的可选 remaining_work 属性。迁移只合并这一属性,不重置用户的描述、默认参数、启用状态及其他自定义配置;已有该属性时保留其定义。Planner 运行时会追加完成协议指引,自定义提示仍应符合新的收官要求。

新同步历史从升级后的运行开始保存,不追溯重建以前仅存在于浏览器的结果。升级也不会自动重跑历史目标或把旧的 done 任务全部重新终验。

6. 验证范围与真实模型验收边界

以下区分功能提交已有验证记录、本轮发布定向回归和外部 CI。文档核验检查了本次发布源码及用例,不把测试存在等同于测试已经执行,也不把模拟模型等同于真实模型验收。

已有功能验证记录

依据功能提交中的 CHANGELOG 验证记录:

范围 记录结果 统计口径与限制
本地 PostgreSQL 主模块回归 731 个顶层测试通过、14 个跳过 server 包在源码固定后单独完整复跑通过;不计子测试重复总数,跳过不计通过
Norma 模块回归 690 个顶层测试通过、8 个跳过 与主模块分别统计,不能同旧版含子测试数量直接比较
真实 ScopeSentry 非空结果及空结果同步通过 验证所接入源实例,不代表所有源版本、数据集和附件都已验证
大批量与故障恢复 5001 条分页失败后恢复、部分页面恢复、仅失败和跳过记录重试通过 大批量用例使用 MCP 夹具;不属于真实大规模源数据性能验收
完成协议 相关完成流程竞态检查通过 覆盖已保存结果、准入屏障、迟到回调和状态改变等协议行为
前端 10 项测试、TypeScript 检查、32 页静态导出通过 不等于所有浏览器交互已人工或端到端验收

历史 doc/report.md 中早期全量失败和另一工作区拆分验证有各自基线,不能用它们替代上述功能验证,也不能把原有跳过项算作通过。真实模型配置、符号链接权限及其他环境条件仍会使部分用例跳过。

本轮发布定向回归

发布准备阶段已确认以下本地定向回归通过:

  • Windows 隔离 PostgreSQL 下的全部 TestEvidence,以及 Python 执行、Python 检测和技能相对路径相关回归。
  • Linux 主模块与 Norma 的收官、同步、收尾及执行保护定向测试,实际启用 -race、-shuffle=on。
  • `TaskComple...
Read more

v0.3.18

Choose a tag to compare

@github-actions github-actions released this 10 Oct 10:20

修复

  • 修正内置 ScopeSentry Skill 的 YAML 元数据头,恢复描述、名称与 MCP 关联的正确读取。
  • 保存 Skill 元数据时使用 YAML 解析与编码,保留多行字段、列表、嵌套元数据及原始指令正文;正确处理包含冒号、井号和换行的内容,拒绝无效格式并保留原文件。
  • 取消 MCP 关联时同时清除旧 mcp 字段,避免旧关联重新生效;未提交的字段继续保留。

发布与验证

  • 新增 Skill 元数据保存、运行时加载、列表回读和内置 ScopeSentry 加载回归;GitHub Actions 执行这些测试及已有 Skill 上传回归,包含竞态检查。
  • 本地 Windows 的新增元数据及上传回归、Linux 的元数据与上传竞态回归、4 项打包契约检查通过。Windows 原有 TestSkillRelPath 断言固定使用 /,与 Windows 返回的路径分隔符不一致;该测试和路径处理逻辑本次未改动。
  • 提供 Linux/macOS 的 amd64、arm64 包、Windows amd64 包、SHA256 校验文件及 Linux 双架构 Docker 镜像。

Full Changelog: v0.3.17...v0.3.18

v0.3.17

Choose a tag to compare

@github-actions github-actions released this 10 Oct 05:58

修复

  • 任务会话显示下一次模型调用的配置来源,任务配置面板说明角色绑定、任务链和全局默认的优先级;提供任务 LLM 录制筛选入口及单条完整 JSON 下载。全局切换不覆盖已有任务或角色配置。
  • 整次 Agent 运行没有可用文本或工具调用时,明确记录空输出错误;保留工具写回之后静默结束的正常行为。
  • Planner 按资产、入口/参数和漏洞机理跟踪独立候选,Worker 逐条登记独立漏洞;区分未测试、受阻和已测试未发现,避免首个高危发现被当作整个系统审计完成。运行时指引也应用于已有自定义提示。
  • 拦截策略加载或审批配置读取失败时保守阻断,完整加载后才发布缓存;每次调用仅记录一个最终允许/阻断审计动作。
  • 工作区文件管理器使用 Go os.Root 约束读写、上传、下载及删除,阻止符号链接和 Windows junction 越界访问。
  • noa 从上下文溢出错误中学习明确的实际窗口并用于当前 Session 后续回合;排除输出预算字段,修复小窗口提示恢复阈值及窗口收紧后的旧抑制状态。

发布与验证

  • Release 自动附上 CHANGELOG 对应版本的中文说明,并保留 GitHub 自动生成的提交与 PR 链接;提供 Linux/macOS 的 amd64、arm64 包、Windows amd64 包及 SHA256 校验文件。
  • 本地 Agent 离线回归、guard/intercept、工作区边界测试、noa/noaadapter 回归、相关 Go vet、前端 TypeScript 检查及生产构建通过;修复 PR #8 与合并后的主分支 GitHub 检查通过。
  • 本地两个依赖 PostgreSQL 的 Agent 审批集成测试未验证,未执行真实外部模型请求。多漏洞指引不保证模型完全不漏报;学习到的窗口只在当前 noa Session 有效。详细测试范围与平台限制见 docs/ARTEX-main修复与验证_2026-10-10.md。

What's Changed

  • 修复 Agent 空输出、拦截策略与文件访问边界,优化上下文恢复 by @sharenjun in #8

Full Changelog: v0.3.16...v0.3.17

v0.3.16

Choose a tag to compare

@github-actions github-actions released this 10 Oct 00:39

What's Changed

  • 新增漏洞归并、自动报告及报告完成核验 (参考Ruoji6) by @sharenjun in #6

New Contributors

Full Changelog: v0.3.15...v0.3.16

v0.3.15

Choose a tag to compare

@github-actions github-actions released this 09 Oct 10:05

What's Changed

New Contributors

Full Changelog: https://github.com/sharenjun/ARTEX-main/commits/v0.3.15