Skip to content

Releases: chainreactors/cyber-harness

v1.0.0-rc4

v1.0.0-rc4 Pre-release
Pre-release

Choose a tag to compare

@github-actions github-actions released this 19 Sep 16:07
64d49f1

rc4 首先收敛了编译方式和能力组合:Makefileeditions.env 成为构建入口和 edition 规则的事实来源,官方 standard 与 full 发行版均不依赖 libcstx 或 native RE2,并可在启用或关闭 CGO 时编译;运行时则统一为一套显式的 Extension 生命周期和静态 Profile。基于这两个边界,Go 只归档 scanner-native Artifact,Web 通过 CSTX TypeScript/WASM 构建资产关系,不再让后端承担重复的数据模型与处理链路。

New Features

编译链路与发行版简化

standard 与 full 现在共享一条纯 Go 编译链路。full 虽然包含 Web、浏览器和深度扫描能力,但其默认 RE2 后端仍是纯 Go,且两个 edition 都不再链接 Go 侧 libcstx;CGO_ENABLED=0CGO_ENABLED=1 下均可构建和运行。只有显式选择 record edition 时才需要 CGO 和 recorder SDK。

  • aiscan 包含 Agent、核心扫描器、代理、Skills 和 IOA,适合服务器、脚本和无浏览器环境
  • aiscan-full 在 standard 基础上增加 Web、Chromium 复用、Katana 和被动测绘能力
  • standard/full ZIP 不包含录屏 SDK,也不会在启动时加载 native CSTX Extension
  • record SDK 由 chainreactors/native Release 提供,并校验固定版本、SHA-256、manifest 和 ABI header
  • Linux、macOS、Windows 的 amd64/arm64 由同一份 edition 定义和 GoReleaser 配置生成
  • go.mod、AOP 子模块和公开包路径统一从 aiscan 重命名为 cyber

Makefile 是本地构建入口,editions.env 是 build tags 与 CGO 策略的唯一事实来源。CI 直接校验 edition 组合和 CGO 开关;GoReleaser 负责跨平台编译,release workflow 负责打包、UPX、checksum 和产物启动验证。

单一 Extension 与静态 Profile 组合

运行时能力统一由一套 Extension 生命周期和显式 Profile 组合,不再依赖包级 init、全局注册表或多套 runner/workspace 包装。自定义发行版可以从 pkg/base.New 取得最小能力集;希望复用官方产品组合的嵌入方可以直接调用 pkg/aiscan.New

  • Web、PTY、进程、prompt、scanner、IOA client 和 application dispatch 分别声明 capability 与依赖
  • standard、full、record 的可选能力由构建 edition 显式选择,加载顺序和关闭顺序由同一 Extension Set 管理
  • IOA 拆为独立 client/server Extension;Web 通过同源 /ioa/ bridge 保留身份,Agent 使用 --ioa-url 接入
  • process registry 统一拥有命令、PTY、tmux 和后台任务,工具资源从 core 移到其实际所属的 tools 领域
  • 删除旧 root workspace、重复 harness/runner 组合和 product architecture 包装,不保留兼容别名

浏览器端 CSTX 资产链路

Go 服务不再解析 CSTX、生成 SCO 报告 DTO,或维护一套与原始扫描结果重复的数据表。它只负责接收、归档和同步 scanner-native Artifact,并通过 Artifact RPC 交给 Web。cyber-ui 使用 @cyber/cstx 0.5.0 的 TypeScript/WASM ABI,在浏览器中完成 parse、merge、link 和节点规范化。

  • 资产面板直接从归档 Artifact 构建主机、端口、服务、应用、URL 和漏洞关系
  • 支持 Artifact 导入、分页、类型筛选、字段搜索、关系图、详情和导出
  • 扫描完成后,会话时间线显示扫描摘要卡片,并可在刷新或重启后恢复对应资产
  • 删除旧 CSTX 解析结果、SCO 查询服务、报告转发层及相关数据库表
  • 当前 Artifact protobuf/ABI 是唯一事实来源,不再携带 v1/v2/v3 兼容 DTO、sink、pending 或 wire 转发层

保留的 native CSTX Extension 只供 SDK 或自定义组合使用,aiscanaiscan-full 的产品 Profile 都不会加载它。

Web Hub 与可脚本化 CLI

aiscan-full web 提供带认证的内嵌工作台,也可以通过 --no-agent 只作为远程执行 Hub。Web、Agent 和直接 scanner 现在使用同一条 ConnectRPC/AOP/Artifact 数据路径;CLI 的帮助、参数归属和机器可读输出也与实际 edition 能力保持一致。

  • Web 默认监听 127.0.0.1:8080,启动时打印访问地址、access key 和 Agent 接入命令
  • 没有执行节点时,--no-agent Hub 以 FAILED_PRECONDITION 拒绝扫描且不创建虚假记录;排队后离线的任务会明确失败
  • 快速接入命令读取当前 Web space 与短期所需 Agent token,不把 access key 写入 URL、浏览器存储或可缓存响应
  • standard 的命令目录只显示实际可用 scanner,并补充此前遗漏的纯 Go curl
  • scanner 命令后的 -o 归 scanner 自己;全局 AOP JSONL 使用命令前的 -o,例如 aiscan -o events.jsonl gogo ... -o jl
  • gogo -o jlscan --json 只向 stdout 输出严格 JSONL;gogo -j <file> 继续表示历史结果输入
  • curl --write-out 支持 %{http_code}%{url_effective}%{num_redirects} 等常用变量

Improvements

Web 与 Agent 体验

  • 聊天、会话恢复、Agent 状态、PTY、IOA Console、工具目录、配置和 Artifact 详情统一使用当前 Connect/AOP 路径
  • 命令面板和 /help 从客户端命令目录生成;扫描卡片、资产表格、连接提示和错误通知提供中英文文本
  • 320px 宽度下仍保留资产、IOA、Agent、工具、快速连接、设置和退出入口,侧栏与关闭按钮不再和顶栏重叠
  • SPA 路由回退到当前 index.html;入口禁止缓存,指纹化静态资源使用长期缓存
  • goal loop 使用自然语言 pacing;compaction、budget、evaluator、命令结果和失败回合在时间线中只出现一次

流量与进程边界

  • 流量工具统一使用 canonical protobuf traffic.Flow / traffic.Exchange
  • MITM Hub 按实际 operation 订阅流量、限制单体与总体捕获大小,并将响应 body 流式写入有界持久文件
  • Flow 淘汰同步删除归属 body,启动时清理遗留 .part;代理切换、取消和尾随 Artifact 不再依赖时间窗口
  • 纯 Go curl 支持重定向、表单、cookie jar、代理、--resolve、超时、HTTP 版本、trace 和输出文件,并经过统一 egress/HTTP 观察链

Bug Fixes

  • 修复 scan 完成卡片无法可靠关联会话、刷新后丢失,以及 Connect JSON 无法解码未知 Any Extension 的问题
  • 修复无 Agent Hub 静默回退本地扫描、节点离线后任务状态悬空,以及快速连接加入错误 space 的问题
  • 修复 direct scanner 的 -o 被根 CLI 截获、gogo JSONL 混入进度行和 spray banner 的问题
  • 修复本地 --skill <path> 无法按规范化路径选中已加载 Skill 的问题
  • 修复失败回合和命令结果重复显示、/compact 无消息分支不可见、重连后消息 ID 冲突等时间线问题
  • 修复 IOA access key 被错误当作 bearer token、配置探活成功但实际 Agent 无法注册的问题
  • 修复移动端顶栏操作被挤出视口、会话侧栏关闭按钮遮挡和命令弹层 Enter 失效的问题

Breaking Changes

  • 旧 Go SCO/report RPC、SCO 数据库表和 proto/*/sco.proto 已移除;客户端需重新生成 protobuf 并改用 Artifact RPC
  • 自定义发行版不再注册全局 sink、pending 或 wire 适配器;能力应作为 Extension 显式加入 Profile
  • 依赖 pkg/runnerpkg/tuipkg/typespkg/web/api/report、旧 cmd/runner 或旧临时 loot/file-range 编码的嵌入方需要迁移到当前公开入口
  • 普通 aiscan 不包含 Web;执行 web 会返回明确的 capability 缺失。需要 Web 时请下载 aiscan-full
  • 本次 pre-v1 重构不保留 v1/v2/v3 schema 或旧 Go 包路径的兼容层,latest schema 即当前事实来源

Release Matrix

产物 Linux macOS Windows 数量
aiscan amd64、arm64 amd64、arm64 amd64、arm64 6
aiscan-full amd64、arm64 amd64、arm64 amd64、arm64 6
aiscan_checksums.txt - - - 1

发布门禁覆盖 Go 单元测试与竞态测试、架构和依赖检查、go vet、lint、Web 前端构建、Playwright E2E、scanner 功能测试、headless record/replay、Windows CGO/非 CGO 编译、两套 GoReleaser 矩阵,以及 Windows、Linux amd64、Linux arm64 发布包的 checksum 与启动验证。

最终 Release 包含 12 个 ZIP 和 1 个 checksum 文件。发布后重新下载并验证了 Windows amd64 的 aiscanaiscan-full:普通版 CLI、严格 JSONL、curl 重定向变量和真实本地扫描均通过;full 版的 /health、登录认证、HttpOnly 会话、ConnectRPC、快速接入和浏览器存储边界均通过真实浏览器测试。

v1.0.0-rc3

v1.0.0-rc3 Pre-release
Pre-release

Choose a tag to compare

@github-actions github-actions released this 09 Sep 12:24

v1.0.0-rc3 — 流量、curl 和 Web 工作台更新

具体修改

  • 流量模型新增 Exchange,一条 Flow 同时保存 request 和 response;代理层支持按订阅选择 Flow,并把超过内存预算的 response body 写入文件。
  • 修复代理捕获中的 Host 丢失问题;切换代理出口只影响新连接,已有连接继续完成;MITM body 文件在 Flow 删除后回收。
  • curl 工具新增 -x/--proxy-F/--form--data-urlencode、ASCII trace;补充 --http1.0/--http1.1/--http2、HEAD 请求校验、超时返回码 28、TLS/resolve 处理和失败输出保留。
  • 工具结果新增 64 KiB 内联上限;JSONL 文件和每个会话的 SQLite 事件数量有上限;取消任务后迟到的 Artifact 不再写入会话。
  • 失败的 Agent turn 不再自动重复执行;AOP 文本在协议边界统一清洗为合法 UTF-8。
  • Web 资产列表改为分页;聊天时间线和回复完成时间使用新的时间字段;curl、gogo、scan 统一使用 Web 资产摘要。
  • 取消远程扫描通过运行时控制通道立即处理;前台 shell 命令继承调用方工作目录。
  • Agent 重连后,已打开的终端会重新发送 pty.list;Agent 断线向浏览器发送 pty.detached;连接关闭时丢弃排队发送。
  • 更新 cyber-ui 子模块、聊天时间线和 IOA 控制台的协议生成代码,修复前后端版本漂移。

发布产物

  • aiscan:Linux、macOS、Windows 的 amd64/arm64,共 6 个 ZIP。
  • aiscan-full:Linux、macOS 的 amd64/arm64 和 Windows amd64,共 5 个 ZIP。
  • aiscan_checksums.txt 包含 11 个 ZIP 的 SHA-256;runner 仅用于构建验证,不作为 Release 附件。

v1.0.0-rc2

v1.0.0-rc2 Pre-release
Pre-release

Choose a tag to compare

@github-actions github-actions released this 19 Aug 09:10
33213df

v1.0.0-rc2 重点重构了 AIScan 的流量出口:所有工具共用常驻代理 Hub,可动态切换代理和 MITM 捕获状态,并把 HTTP/HTTPS 流量准确关联到具体任务。文件访问、扫描结果和发布流程也补齐了明确的审计与稳定性边界。

New Features

统一 MITM 流量捕获

  • 所有工具流量统一经过常驻 Proxy Hub,HTTP 请求和 HTTPS 解密流量进入同一份捕获记录,不再为单次命令重复启动代理。
  • 捕获默认开启;--mitm=false 或配置 mitm: false 会切换为纯代理路由,不解密、不记录,也不要求工具信任 CA。
  • AOP traffic namespace 可动态切换 capture/relay、修改上游代理、查询状态,并按任务返回 Flow;切换过程无需重启监听器,也不会打断正在执行的命令。
  • 每条连接携带任务调用标识,并发扫描产生的流量可以准确归因,不再依赖容易重叠的时间窗口。

开启捕获后,可直接查看和分析工具产生的流量:

mitm flows --host example.com --last 20
mitm flow <id>
mitm analyze --host example.com

HTTPS 捕获会向 curl、Git、Node.js、Python requests 等常用客户端注入当前 Hub CA。严格校验证书的工具访问裸 IP 时可能因证书没有 IP SAN 而失败,此时应优先使用主机名,或关闭 MITM 仅保留代理路由。

动态代理路由

代理节点、订阅和单命令代理现在共用同一条实时出口链。切换节点后,新连接立即使用新出口,运行中的连接保持不受影响。

proxy auto <subscription-url> --country HK,JP --strategy adaptive
proxy switch 3
proxy socks5://127.0.0.1:1080 gogo -i 10.0.0.1 -p top2

支持 socks5、trojan、vless、anytls、hysteria2、shadowsocks 和 Clash 订阅;proxy currentproxy testproxy clear 可用于检查和恢复出口。

文件访问审计

  • read、write、edit 和远程文件 RPC 会写入任务级文件审计;shell 命令通过工作目录快照记录文件变化,并标记记录来源。
  • 审计不会阻塞任务,发生丢弃时会给出数量。shell 中未修改文件的读取无法由快照推断,因此不会被误报为已审计读取。

Web 快速连接

Web 会自动取得 Agent token,并根据远程执行节点的系统、架构和全球/中国下载源生成安装与连接命令;聊天输入框也会根据当前上下文给出操作入口。

Improvements

远程 Node 连接稳定性

  • 每个 Node 进程携带独立实例标识,并通过存活 deadline 及时发现失效连接。
  • WebSocket 会区分连接失败原因并显示 enrollment 拒绝信息;稳定连接后会重置重连退避。
  • 连接、keep-alive 与 producer 生命周期收敛到 session,减少命令结束或重连时的遗留状态。

扫描结果与运行时边界

  • scanner-native Artifact 在产生处执行体积预算;工具结束或取消后到达的尾随 Artifact 会被丢弃,避免大结果或晚到结果污染后续会话。
  • AOP 工具文本在 UTF-8 边界清洗,截断内容不会产生无效字符。
  • shell 命令默认保持前台执行;设置 wait: N 后,运行超过 N 秒的命令才会转入后台并通过 inbox 返回进度。默认 timeout 为 600 秒,显式设为 0 表示不限时。
  • harness prompt 与 scan skill 分离;Katana 升级到 v1.7.0,并修正 gogo/scan 文档中无效的 top100 / top1000 端口 preset。
  • record 改为显式 opt-in;默认 full 和官方 Release 不再下载或链接 recorder SDK。
  • Go module 可在独立 checkout 中解析,不再依赖相邻仓库的本地目录结构;新增 Agent 架构文档,运行时与协议边界更明确。

CI 与发布

  • CI 执行 go vet、lint 和 integration-tag 编译,并验证冷缓存 protobuf 生成。
  • 修复 headless 初始化竞态和 CDP deadline;Playwright 浏览器安装绕过易挂起的 apt mirror,并增加超时与重试。
  • release build 与发布权限分离;PR 和 master 都使用正式矩阵构建、生成 checksum,并对 Windows 产物执行启动 smoke test。
  • Release notes 会读取本文件中对应版本的章节,并以上一个 prerelease 作为回退日志基线。

Bug Fixes

  • 子进程退出时会排空 PTY 尾部输出,修复 tmux capture-pane -c 偶发返回空结果。
  • inbox 会在所有 producer 结束时正确唤醒;LoopScheduler 统一注册 producer,loop 生命周期绑定 session 而非单次命令 context。
  • 修复 integration 回归中的静态分析错误,以及 cyber-ui 文件访问协议版本未固定导致的生成漂移。

Release Matrix

产物 Linux macOS Windows 数量
aiscan amd64、arm64 amd64、arm64 amd64、arm64 6
aiscan-full amd64、arm64 amd64、arm64 amd64 5
checksums.txt 1

Release 只包含 aiscanaiscan-full 和 checksum。

v0.0.0-nightly.20260818

Pre-release

Choose a tag to compare

@github-actions github-actions released this 18 Aug 16:30
2204864
  • fix: upgrade katana to v1.7.0
  • fix(toolargs): enforce hard artifact data budget
  • fix(toolargs): bound scanner-native artifacts at their sole birth point
  • test(node): websocket 存活测试并入 proto_connection_test
  • fix(node): 尾随 artifact 按"已结算 call"丢弃,并覆盖取消路径
  • fix(node): 工具 terminal 后丢弃流式工具的尾随 artifact
  • fix(runner): sanitize AOP tool text at UTF-8 boundary
  • refactor(agent): separate harness prompt from scan skill
  • refactor(node): derive websocket recovery timings
  • refactor(node): simplify websocket connection lifecycle
  • feat(web): automate agent quick connect
  • feat(web): add contextual chat input guide
  • fix(node): surface enrollment rejection reasons
  • feat(node): advertise runner process instance identity
  • fix(node): classify websocket connection failures
  • fix(node): enforce websocket liveness deadlines
  • fix(node): reset reconnect backoff after stable sessions
  • fix(deps): pin race-free zombie runner
  • test(tmux): isolate offset reads from PTY timing
  • fix(build): strip local release-profile binaries
  • test(web): synchronize terminal reconnect teardown
  • test(arch): follow portable recorder shell contract
  • chore(release): finalize v1 gates and cleanup
  • chore: ignore local agent and browser artifacts
  • fix(web): update cyber-ui record card focus
  • build: align full profile with static re2
  • refactor: clean v1 compatibility and package boundaries
  • fix(ci): unify nightly and release workflows
  • fix(ci): export Windows recorder link environment
  • fix(build): fetch x264 from GitHub mirror
  • fix(ci): fall back to building recorder SDK
  • fix(build): detect Windows MSYS hosts
  • feat(browser): expand reusable headless automation
  • refactor(record): consolidate native SDK tooling
  • ci: validate native RE2 and name Windows artifacts
  • fix(build): restore static native RE2 for full artifacts
  • fix(ci): persist recorder link environment on Windows
  • fix(ci): export Windows recorder SDK paths
  • feat(record): add native desktop capture tool
  • fix(node): clean up panicked operations before reporting
  • fix(runner): make run wait include cleanup
  • fix(protocol): pin canonical loot and file range schemas
  • feat(record): add native media capture transport
  • feat(skills): add ioa finding publishing convention
  • test: stabilize concurrent PTY option isolation
  • refactor: make shell command adapter transparent
  • fix: reclaim exited Windows bridge runtimes
  • refactor: keep command bridge as a PTY adapter
  • feat: add optional shell command bridge
  • feat(config): reuse shared LLM environment
  • feat(scan): emit native artifacts with correlated loot
  • fix embedded IOA and tool panic boundaries

v0.0.0-nightly.20260817

Pre-release

Choose a tag to compare

@github-actions github-actions released this 17 Aug 16:30
2204864
  • fix: upgrade katana to v1.7.0
  • fix(toolargs): enforce hard artifact data budget
  • fix(toolargs): bound scanner-native artifacts at their sole birth point
  • test(node): websocket 存活测试并入 proto_connection_test
  • fix(node): 尾随 artifact 按"已结算 call"丢弃,并覆盖取消路径
  • fix(node): 工具 terminal 后丢弃流式工具的尾随 artifact
  • fix(runner): sanitize AOP tool text at UTF-8 boundary
  • refactor(agent): separate harness prompt from scan skill
  • refactor(node): derive websocket recovery timings
  • refactor(node): simplify websocket connection lifecycle
  • feat(web): automate agent quick connect
  • feat(web): add contextual chat input guide
  • fix(node): surface enrollment rejection reasons
  • feat(node): advertise runner process instance identity
  • fix(node): classify websocket connection failures
  • fix(node): enforce websocket liveness deadlines
  • fix(node): reset reconnect backoff after stable sessions
  • fix(deps): pin race-free zombie runner
  • test(tmux): isolate offset reads from PTY timing
  • fix(build): strip local release-profile binaries
  • test(web): synchronize terminal reconnect teardown
  • test(arch): follow portable recorder shell contract
  • chore(release): finalize v1 gates and cleanup
  • chore: ignore local agent and browser artifacts
  • fix(web): update cyber-ui record card focus
  • build: align full profile with static re2
  • refactor: clean v1 compatibility and package boundaries
  • fix(ci): unify nightly and release workflows
  • fix(ci): export Windows recorder link environment
  • fix(build): fetch x264 from GitHub mirror
  • fix(ci): fall back to building recorder SDK
  • fix(build): detect Windows MSYS hosts
  • feat(browser): expand reusable headless automation
  • refactor(record): consolidate native SDK tooling
  • ci: validate native RE2 and name Windows artifacts
  • fix(build): restore static native RE2 for full artifacts
  • fix(ci): persist recorder link environment on Windows
  • fix(ci): export Windows recorder SDK paths
  • feat(record): add native desktop capture tool
  • fix(node): clean up panicked operations before reporting
  • fix(runner): make run wait include cleanup
  • fix(protocol): pin canonical loot and file range schemas
  • feat(record): add native media capture transport
  • feat(skills): add ioa finding publishing convention
  • test: stabilize concurrent PTY option isolation
  • refactor: make shell command adapter transparent
  • fix: reclaim exited Windows bridge runtimes
  • refactor: keep command bridge as a PTY adapter
  • feat: add optional shell command bridge
  • feat(config): reuse shared LLM environment
  • feat(scan): emit native artifacts with correlated loot
  • fix embedded IOA and tool panic boundaries

v0.0.0-nightly.20260816

Pre-release

Choose a tag to compare

@github-actions github-actions released this 16 Aug 16:25
2204864
  • fix: upgrade katana to v1.7.0
  • fix(toolargs): enforce hard artifact data budget
  • fix(toolargs): bound scanner-native artifacts at their sole birth point
  • test(node): websocket 存活测试并入 proto_connection_test
  • fix(node): 尾随 artifact 按"已结算 call"丢弃,并覆盖取消路径
  • fix(node): 工具 terminal 后丢弃流式工具的尾随 artifact
  • fix(runner): sanitize AOP tool text at UTF-8 boundary
  • refactor(agent): separate harness prompt from scan skill
  • refactor(node): derive websocket recovery timings
  • refactor(node): simplify websocket connection lifecycle
  • feat(web): automate agent quick connect
  • feat(web): add contextual chat input guide
  • fix(node): surface enrollment rejection reasons
  • feat(node): advertise runner process instance identity
  • fix(node): classify websocket connection failures
  • fix(node): enforce websocket liveness deadlines
  • fix(node): reset reconnect backoff after stable sessions
  • fix(deps): pin race-free zombie runner
  • test(tmux): isolate offset reads from PTY timing
  • fix(build): strip local release-profile binaries
  • test(web): synchronize terminal reconnect teardown
  • test(arch): follow portable recorder shell contract
  • chore(release): finalize v1 gates and cleanup
  • chore: ignore local agent and browser artifacts
  • fix(web): update cyber-ui record card focus
  • build: align full profile with static re2
  • refactor: clean v1 compatibility and package boundaries
  • fix(ci): unify nightly and release workflows
  • fix(ci): export Windows recorder link environment
  • fix(build): fetch x264 from GitHub mirror
  • fix(ci): fall back to building recorder SDK
  • fix(build): detect Windows MSYS hosts
  • feat(browser): expand reusable headless automation
  • refactor(record): consolidate native SDK tooling
  • ci: validate native RE2 and name Windows artifacts
  • fix(build): restore static native RE2 for full artifacts
  • fix(ci): persist recorder link environment on Windows
  • fix(ci): export Windows recorder SDK paths
  • feat(record): add native desktop capture tool
  • fix(node): clean up panicked operations before reporting
  • fix(runner): make run wait include cleanup
  • fix(protocol): pin canonical loot and file range schemas
  • feat(record): add native media capture transport
  • feat(skills): add ioa finding publishing convention
  • test: stabilize concurrent PTY option isolation
  • refactor: make shell command adapter transparent
  • fix: reclaim exited Windows bridge runtimes
  • refactor: keep command bridge as a PTY adapter
  • feat: add optional shell command bridge
  • feat(config): reuse shared LLM environment
  • feat(scan): emit native artifacts with correlated loot
  • fix embedded IOA and tool panic boundaries

v0.0.0-nightly.20260815

Pre-release

Choose a tag to compare

@github-actions github-actions released this 15 Aug 16:25
dcc2ab4
  • fix(toolargs): enforce hard artifact data budget
  • fix(toolargs): bound scanner-native artifacts at their sole birth point
  • test(node): websocket 存活测试并入 proto_connection_test
  • fix(node): 尾随 artifact 按"已结算 call"丢弃,并覆盖取消路径
  • fix(node): 工具 terminal 后丢弃流式工具的尾随 artifact
  • fix(runner): sanitize AOP tool text at UTF-8 boundary
  • refactor(agent): separate harness prompt from scan skill
  • refactor(node): derive websocket recovery timings
  • refactor(node): simplify websocket connection lifecycle
  • feat(web): automate agent quick connect
  • feat(web): add contextual chat input guide
  • fix(node): surface enrollment rejection reasons
  • feat(node): advertise runner process instance identity
  • fix(node): classify websocket connection failures
  • fix(node): enforce websocket liveness deadlines
  • fix(node): reset reconnect backoff after stable sessions
  • fix(deps): pin race-free zombie runner
  • test(tmux): isolate offset reads from PTY timing
  • fix(build): strip local release-profile binaries
  • test(web): synchronize terminal reconnect teardown
  • test(arch): follow portable recorder shell contract
  • chore(release): finalize v1 gates and cleanup
  • chore: ignore local agent and browser artifacts
  • fix(web): update cyber-ui record card focus
  • build: align full profile with static re2
  • refactor: clean v1 compatibility and package boundaries
  • fix(ci): unify nightly and release workflows
  • fix(ci): export Windows recorder link environment
  • fix(build): fetch x264 from GitHub mirror
  • fix(ci): fall back to building recorder SDK
  • fix(build): detect Windows MSYS hosts
  • feat(browser): expand reusable headless automation
  • refactor(record): consolidate native SDK tooling
  • ci: validate native RE2 and name Windows artifacts
  • fix(build): restore static native RE2 for full artifacts
  • fix(ci): persist recorder link environment on Windows
  • fix(ci): export Windows recorder SDK paths
  • feat(record): add native desktop capture tool
  • fix(node): clean up panicked operations before reporting
  • fix(runner): make run wait include cleanup
  • fix(protocol): pin canonical loot and file range schemas
  • feat(record): add native media capture transport
  • feat(skills): add ioa finding publishing convention
  • test: stabilize concurrent PTY option isolation
  • refactor: make shell command adapter transparent
  • fix: reclaim exited Windows bridge runtimes
  • refactor: keep command bridge as a PTY adapter
  • feat: add optional shell command bridge
  • feat(config): reuse shared LLM environment
  • feat(scan): emit native artifacts with correlated loot
  • fix embedded IOA and tool panic boundaries

v0.0.0-nightly.20260814

Pre-release

Choose a tag to compare

@github-actions github-actions released this 14 Aug 16:53
dcc2ab4
  • fix(toolargs): enforce hard artifact data budget
  • fix(toolargs): bound scanner-native artifacts at their sole birth point
  • test(node): websocket 存活测试并入 proto_connection_test
  • fix(node): 尾随 artifact 按"已结算 call"丢弃,并覆盖取消路径
  • fix(node): 工具 terminal 后丢弃流式工具的尾随 artifact
  • fix(runner): sanitize AOP tool text at UTF-8 boundary
  • refactor(agent): separate harness prompt from scan skill
  • refactor(node): derive websocket recovery timings
  • refactor(node): simplify websocket connection lifecycle
  • feat(web): automate agent quick connect
  • feat(web): add contextual chat input guide
  • fix(node): surface enrollment rejection reasons
  • feat(node): advertise runner process instance identity
  • fix(node): classify websocket connection failures
  • fix(node): enforce websocket liveness deadlines
  • fix(node): reset reconnect backoff after stable sessions
  • fix(deps): pin race-free zombie runner
  • test(tmux): isolate offset reads from PTY timing
  • fix(build): strip local release-profile binaries
  • test(web): synchronize terminal reconnect teardown
  • test(arch): follow portable recorder shell contract
  • chore(release): finalize v1 gates and cleanup
  • chore: ignore local agent and browser artifacts
  • fix(web): update cyber-ui record card focus
  • build: align full profile with static re2
  • refactor: clean v1 compatibility and package boundaries
  • fix(ci): unify nightly and release workflows
  • fix(ci): export Windows recorder link environment
  • fix(build): fetch x264 from GitHub mirror
  • fix(ci): fall back to building recorder SDK
  • fix(build): detect Windows MSYS hosts
  • feat(browser): expand reusable headless automation
  • refactor(record): consolidate native SDK tooling
  • ci: validate native RE2 and name Windows artifacts
  • fix(build): restore static native RE2 for full artifacts
  • fix(ci): persist recorder link environment on Windows
  • fix(ci): export Windows recorder SDK paths
  • feat(record): add native desktop capture tool
  • fix(node): clean up panicked operations before reporting
  • fix(runner): make run wait include cleanup
  • fix(protocol): pin canonical loot and file range schemas
  • feat(record): add native media capture transport
  • feat(skills): add ioa finding publishing convention
  • test: stabilize concurrent PTY option isolation
  • refactor: make shell command adapter transparent
  • fix: reclaim exited Windows bridge runtimes
  • refactor: keep command bridge as a PTY adapter
  • feat: add optional shell command bridge
  • feat(config): reuse shared LLM environment
  • feat(scan): emit native artifacts with correlated loot
  • fix embedded IOA and tool panic boundaries

v0.0.0-nightly.20260813

Pre-release

Choose a tag to compare

@github-actions github-actions released this 13 Aug 16:55
b2e0c25
  • fix(runner): sanitize AOP tool text at UTF-8 boundary
  • refactor(agent): separate harness prompt from scan skill
  • refactor(node): derive websocket recovery timings
  • refactor(node): simplify websocket connection lifecycle
  • feat(web): automate agent quick connect
  • feat(web): add contextual chat input guide
  • fix(node): surface enrollment rejection reasons
  • feat(node): advertise runner process instance identity
  • fix(node): classify websocket connection failures
  • fix(node): enforce websocket liveness deadlines
  • fix(node): reset reconnect backoff after stable sessions
  • fix(deps): pin race-free zombie runner
  • test(tmux): isolate offset reads from PTY timing
  • fix(build): strip local release-profile binaries
  • test(web): synchronize terminal reconnect teardown
  • test(arch): follow portable recorder shell contract
  • chore(release): finalize v1 gates and cleanup
  • chore: ignore local agent and browser artifacts
  • fix(web): update cyber-ui record card focus
  • build: align full profile with static re2
  • refactor: clean v1 compatibility and package boundaries
  • fix(ci): unify nightly and release workflows
  • fix(ci): export Windows recorder link environment
  • fix(build): fetch x264 from GitHub mirror
  • fix(ci): fall back to building recorder SDK
  • fix(build): detect Windows MSYS hosts
  • feat(browser): expand reusable headless automation
  • refactor(record): consolidate native SDK tooling
  • ci: validate native RE2 and name Windows artifacts
  • fix(build): restore static native RE2 for full artifacts
  • fix(ci): persist recorder link environment on Windows
  • fix(ci): export Windows recorder SDK paths
  • feat(record): add native desktop capture tool
  • fix(node): clean up panicked operations before reporting
  • fix(runner): make run wait include cleanup
  • fix(protocol): pin canonical loot and file range schemas
  • feat(record): add native media capture transport
  • feat(skills): add ioa finding publishing convention
  • test: stabilize concurrent PTY option isolation
  • refactor: make shell command adapter transparent
  • fix: reclaim exited Windows bridge runtimes
  • refactor: keep command bridge as a PTY adapter
  • feat: add optional shell command bridge
  • feat(config): reuse shared LLM environment
  • feat(scan): emit native artifacts with correlated loot
  • fix embedded IOA and tool panic boundaries

v0.0.0-nightly.20260812

Pre-release

Choose a tag to compare

@github-actions github-actions released this 12 Aug 16:58
b2e0c25
  • fix(runner): sanitize AOP tool text at UTF-8 boundary
  • refactor(agent): separate harness prompt from scan skill
  • refactor(node): derive websocket recovery timings
  • refactor(node): simplify websocket connection lifecycle
  • feat(web): automate agent quick connect
  • feat(web): add contextual chat input guide
  • fix(node): surface enrollment rejection reasons
  • feat(node): advertise runner process instance identity
  • fix(node): classify websocket connection failures
  • fix(node): enforce websocket liveness deadlines
  • fix(node): reset reconnect backoff after stable sessions
  • fix(deps): pin race-free zombie runner
  • test(tmux): isolate offset reads from PTY timing
  • fix(build): strip local release-profile binaries
  • test(web): synchronize terminal reconnect teardown
  • test(arch): follow portable recorder shell contract
  • chore(release): finalize v1 gates and cleanup
  • chore: ignore local agent and browser artifacts
  • fix(web): update cyber-ui record card focus
  • build: align full profile with static re2
  • refactor: clean v1 compatibility and package boundaries
  • fix(ci): unify nightly and release workflows
  • fix(ci): export Windows recorder link environment
  • fix(build): fetch x264 from GitHub mirror
  • fix(ci): fall back to building recorder SDK
  • fix(build): detect Windows MSYS hosts
  • feat(browser): expand reusable headless automation
  • refactor(record): consolidate native SDK tooling
  • ci: validate native RE2 and name Windows artifacts
  • fix(build): restore static native RE2 for full artifacts
  • fix(ci): persist recorder link environment on Windows
  • fix(ci): export Windows recorder SDK paths
  • feat(record): add native desktop capture tool
  • fix(node): clean up panicked operations before reporting
  • fix(runner): make run wait include cleanup
  • fix(protocol): pin canonical loot and file range schemas
  • feat(record): add native media capture transport
  • feat(skills): add ioa finding publishing convention
  • test: stabilize concurrent PTY option isolation
  • refactor: make shell command adapter transparent
  • fix: reclaim exited Windows bridge runtimes
  • refactor: keep command bridge as a PTY adapter
  • feat: add optional shell command bridge
  • feat(config): reuse shared LLM environment
  • feat(scan): emit native artifacts with correlated loot
  • fix embedded IOA and tool panic boundaries