跳到主要内容

RELEASE HISTORY

变更日志

变更日志

本文件记录项目所有值得注意的变更。

格式基于 Keep a Changelog,项目遵循语义化版本

[1.4] - 2026-09-10

组件版本

组件版本
copilot-shell2.8.0
agent-sec-core0.12.0
agentsight0.12.1
tokenless0.8.1
agent-memory0.2.7
os-skills0.6.3
anolisa0.3.11
skillfs0.4.2
ws-ckpt0.4.5
cosh-ng0.24.1

说明: copilot-shell、os-skills、skillfs 与 ws-ckpt 自 v1.3 起未更新;版本表保留这些组件以展示完整组件组合。

重点特性

  • cosh-ng:更新到 v0.24.1,在 Enhanced Assisted Zsh 中将自然语言和路径类输入交给 Agent,同时保留普通 Shell 行为与用户的终端定制,用户无需重建现有配置即可获得更自然的 Zsh 交互(#3004、#3156)
  • agent-sec-core:更新到 v0.12.0,使 legacy cosh 与 cosh-ng 的 Skill 调用一致接受已配置策略校验,并降低误报,用户可在两种 Shell 中获得一致的 Skill 策略执行与更少的错误安全告警(#2871、#2928)
  • agentsight:更新到 v0.12.1,新增无 eBPF 采集、DashScope 原生支持、Kubernetes 打包和更可靠的长期采集,运维人员可在受限环境与生产环境中持续获得准确的可观测数据(#2954、#2976、#3135、#3147)
  • tokenless:更新到 v0.8.1,新增 QwenPaw 支持,以及大型 JSON、构建日志和 CSV/TSV 的可恢复压缩,Agent 可压缩更多类型的上下文并按需精确取回省略内容(#3047、#3052、#3067、#3075、#3089)
  • anolisa:更新到 v0.3.11,新增 QwenPaw Adapter 管理,并可在已配置仓库提供 ktuner 时发现该组件,同时改进安装、恢复和审计行为,管理员可获得更可信的生命周期状态,并可在无需 root 的情况下预览组件索引(#2084、#3075、#3127、#3141、#3142、#3158)
  • agent-memory:更新到 v0.2.7,改进 OpenClaw 安装、语料检索、配置校验和源码构建准备,Agent 可通过更可靠的安装和召回能力共享持久化记忆(#2560、#3149、#3155、#3177、#3187)

组件更新

  • cosh-ng:更新到 v0.24.1,改进提示词路由、终端重绘、历史召回、自定义 Tab 行为、登录 profile PATH 加载、凭据脱敏和 Hook 信任信息,并移除系统 OpenSSL 依赖,用户可保留现有 Shell 配置并稳定使用 Agent 协助,不会丢失命令、输出或敏感历史保护(#2967、#2983、#2996、#2999、#3004、#3030、#3050、#3058、#3156)
  • agent-sec-core:更新到 v0.12.0,在 legacy cosh 与 cosh-ng 中执行相同的 Skill 策略,降低扫描误报,通过 skill-ledgercheck 报告全部完整性结果,并加快容器健康检查,用户可获得一致执行、更清晰的校验结论和更快的就绪检查(#2707、#2871、#2879、#2928)
  • agentsight:更新到 v0.12.1,新增无 eBPF 采集、DashScope 原生与 Kubernetes 部署支持、Agent 资源监控和 cosh-ng 流量采集,并改进归因准确性、工具结果保留、策略同步、Token 计量、流式请求收尾、重复记录抑制、启动恢复和采集自动恢复,运维人员可信任时间线与用量统计,并让监控和防护在长期负载及短暂故障后持续运行(#2916、#2954、#2976、#2979、#3005、#3011、#3016、#3081、#3087、#3135、#3147、#3191)
  • tokenless:更新到 v0.8.1,新增 QwenPaw 集成、大型 JSON 集合、构建日志和 CSV/TSV 输出的可恢复缩减、通过现有 Shell 工具取回省略内容以及 Trace 关联,并修复各支持宿主的安装与兼容问题,Agent 可对更多工具结果减少上下文占用,并在需要时恢复精确原文(#2249、#3009、#3047、#3052、#3067、#3068、#3075、#3085、#3089、#3094)
  • anolisa:更新到 v0.3.11,新增 QwenPaw Adapter 生命周期管理和从已配置仓库发现 ktuner,允许已声明 config 文件修改而不产生错误损坏告警,正确记录 Hook 修改后的文件,避免包冲突后产生虚假 pending 操作,支持无需 root 的组件索引预览,并改进清理、日志、dry-run 和审计指引,管理员可依据更贴近系统实际状态的信息检查和恢复安装(#2084、#2618、#2922、#2926、#2994、#3075、#3118、#3127、#3141、#3142、#3158)
  • agent-memory:更新到 v0.2.7,协商 OpenClaw 安装能力,区分权限与配置故障,返回可读取且窗口范围准确的语料结果,在查找二进制前校验配置,并为源码构建准备 Node.js 与 npm 依赖,Agent 与运维人员可获得更可靠的安装、诊断和记忆召回(#2560、#3149、#3155、#3177、#3187)

兼容性

  • Tokenless Protocol v2tokenless compress 现在仅接受 before_modelpre_toolpost_toolretrieve 生命周期请求;Protocol v1 与 tokenless mcp serve 已移除。应同步升级 Tokenless Core、CLI、SDK 与 Adapter,并显式声明恢复能力,避免协议或检索能力不匹配(#2978、#3068)。
  • Tokenless Rust API:使用 Runtime 生命周期方法替代 TokenlessRuntime::compress。直接调用响应压缩的代码须从已移除的 tokenless-pipeline Crate 和 tokenless_schema::ResponseCompressor 迁移至 Runtime 或 tokenless-compressors API(#2974、#2978)。
  • Tokenless Python 与 AgentScope API:使用类型化的 before_modelpre_toolpost_toolretrieve 生命周期请求,替代已移除的 ModelRequestToolCallToolResultToolResponseCompressor 类型。AgentScope 集成须为自定义工具补充 ToolContract 元数据,并暴露一个静态恢复工具(#2986、#3029)。
  • Tokenless 恢复配置:自定义 retrieve_tool_name 必须符合工具名规则。生命周期 Schema 压缩现在要求具备已授权的静态恢复工具和可用 Stash;缺少任一条件时,Hook 会保留原始 Schema。取回省略内容还要求 CLI 或静态工具可访问,且宿主能够替换当前工具结果,其中 Claude Code 要求 2.1.121 或更新版本。已有 <<tokenless:HASH>> 标记仍可读取(#2978、#2995、#3029、#3052、#3068)。
  • Tokenless Adapter 配置:OpenClaw 现在使用 post_tool_enabled 控制 PostTool 优化;原有的响应、TOON、skip-tool 和 shell-tool 策略设置已移除,不再控制压缩行为。升级时应删除这些废弃设置,并按需配置 post_tool_enabled。DeepSeek Harness 用户也须移除 Adapter 专用阈值和工具列表,改用共享压缩策略。OpenClaw 仍仅支持无损 transcript 更新,不支持同轮替换或检索(#3009、#3036)。
  • Tokenless 统计字段:Dashboard 和集成须使用 content_originapplied_operationsrecoverability 替代 seamcompressor_chain。旧 SQLite 列仍为兼容性保留,但新记录不再写入这些列;升级后继续查询旧字段可能得到空值或错误报表(#2978)。
  • AgentSight 时间戳:内核事件时间戳改为校准至主机墙钟时间,不再基于容器 uptime 计算。若内核事件仍在队列中时 NTP 或管理员跳变主机墙钟,受影响事件的历史墙钟时间将无法重建;已持久化记录不受影响。跨越墙钟调整分析时间线时,应标记每次调整点(#3128)。
  • agent-sec-core Python 依赖:Python 部署和源码构建现在要求 cryptography 50.0.1 或更新版本。自定义安装在升级前应根据导出的 requirements 刷新环境(#3015)。
  • agent-memory 源码构建:从源码构建 OpenClaw Adapter 现在要求 Node.js 20 或更新版本以及 npm。统一用户模式构建会自动准备这些工具;系统模式构建会在预检时报告缺失工具(#3187)。
  • anolisa RPM 预览:在 DNF 4 系统上,RPM 安装的 --dry-run 需要使用 sudo,并可能在检查依赖冲突时刷新仓库元数据。该检查现在会在创建恢复日志前完成(#3158)。
  • anolisa 可编辑 config 与状态格式:允许修改 raw 安装的 type = "config" 文件内容不会改变 update 或 uninstall 语义,因此执行任一操作前都应备份已定制配置。新的 kind = "config" 状态记录无法由旧版 CLI 读取;降级前还应备份状态,并将相关自有文件条目改回 kind = "file",以恢复内容摘要校验(#3142)。

[1.3] - 2026-08-31

组件版本

组件版本
copilot-shell2.8.0
agent-sec-core0.11.1
agentsight0.11.2
tokenless0.7.14
agent-memory0.2.6
os-skills0.6.3
anolisa0.3.8
skillfs0.4.2
ws-ckpt0.4.5
cosh-ng0.22.2

说明: copilot-shell 与 agent-memory 自 v1.1 起未更新;版本表保留这两个组件以展示完整组件组合。

说明: agent-sec-core 采用发布分支流程,main 仍显示 0.11.0;1.3 组件栈的实际发布物取自 sec-core/v0.11.1 tag,下文条目描述的是该 tag 上的行为,而非 main 上的行为。

重点特性

  • cosh-ng:更新到 v0.22.2,新增 Native Shell 集成模式与 Shift+Tab Shell-only 切换,终端输出以卡片前缀区分归属,用户可使用无 Hook 的 Shell,同时一眼看出每行输出来自哪个子系统(#2759、#2832)
  • agent-sec-core:更新到 v0.11.1,用 Rust 重写提示词扫描内核,引入可更新规则包与可选的深度分析后端,同时收窄不可见字符规则,用户获得更快的提示词扫描,合法的 emoji 与多语言提示词不再被误判为严重注入(#2409、#2531、#2699、#2900)
  • agentsight:更新到 v0.11.2,模型流量抓取失效后可自行恢复,并支持识别 Bun 构建的 Claude Code,用户无需重启采集器即可保持连续观测(#2782、#2792)
  • tokenless:更新到 v0.7.14,新增统一的 tokenless compress 入口,stats summary 补齐净节省与 Retrieve 归因,Adapter 最多只发起一次子进程调用,用户可看到估算的净 Token 节省(#2844、#2885)
  • ws-ckpt:更新到 v0.4.5,新增 k8s Sidecar 部署(#2034、#2965)与受保护的 checkpoint 协议(快照按存储身份围栏),用户可在容器化工作区做快照,并在崩溃后校验 checkpoint 状态
  • skillfs:更新到 v0.4.2,新增 Kubernetes Sidecar 部署与可选的双向 HMAC-SHA256 认证保护 control 与 notify socket,非特权工作负载可跨容器 namespace 使用 FUSE Skill View(#2057、#2449)

组件更新

  • cosh-ng:更新到 v0.22.2,新增通过 cosh agent task|doctor|run 暴露的本地 Gateway 控制面、有界的 transcript 内存与 32 MB run_command 输出上限、亚毫秒级交互回显、包管理目录外系统扩展的自动发现,以及 /hooks enable|disable 的层级消歧;修复终端显示与输入路由(已批准命令与斜杠命令执行后终端残留内部标记行、批量粘贴的斜杠输入误路由、含路径的中文提示词、斜杠命令历史召回、中断后终端滞留 raw 模式)、安全与审计缺口(trust 模式下被 Hook 拦截的命令仍被执行、审批批次竞态、Hook 输出畸形时工具调用被静默放行、中断的 precmd 标记退出码被伪造)以及打包问题(RPM 卸载残留悬挂登录 Shell、systemd 255 上 Gateway 启动失败、dnf --dry-run 误报、代码扫描漏检 awk system() 调用),用户获得输出归属可见、内存有界且审批可审计的原生 Shell(#2125、#2400、#2402、#2405、#2529、#2599、#2603、#2605、#2622、#2655、#2667、#2682、#2709、#2843、#2880、#2909、#2914、#2917、#2918、#2938、#2943、#2949、#2955、#2968)
  • agent-sec-core:更新到 v0.11.1,新增 SkillFS HMAC 对端认证、agent-sec-cli capabilities 子命令以及 verifyCHECKED/PASSED/FAILED 显式计数;只读系统 Skill 不再让批量扫描失败,占位的 set-policy/rotate-keys 不再虚报成功,daemon 健康检查不再夸大就绪状态,非回环模型服务地址不再被接受,用户可在跨容器部署中审计 Skill 并信任 CLI 的校验结论(#2356、#2493、#2875、#2876、#2892、#2893、#2906)
  • agentsight:更新到 v0.11.2,新增历史 Agent 活动视图、会话语义搜索、双语 Dashboard、LLM 延迟指标与存储大小上限;修复模型流量抓取失效后无法自行恢复、采集器因内存占用被终止后不自动重启、事件突增时内存不受控,以及中断事件分组计数与总数不一致,用户在长时间运行中获得存储有界、抓取可自愈的可观测能力(#2578、#2612、#2644、#2733、#2792、#2796、#2817、#2925)
  • tokenless:更新到 v0.7.14,新增提供框架中立生命周期的 anolisa-tokenless Python Wheel、AgentScope 与 DeepSeek Harness 集成、Gemini functionDeclarations Schema 压缩以及可配置的数组尾部窗口;修复 Codex 集成重复压缩与小负载 TOON 处理不一致,更多框架上的 Agent 可节省 Token,并通过截断标记内嵌的可执行命令恢复被截断内容(#2433、#2507、#2581、#2627、#2663、#2866、#2869、#2885)
  • anolisa:更新到 v0.3.8,新增 Linux x64/arm64 与 macOS arm64 的已验证预编译 CLI 归档、原生 DSH Adapter 驱动、容器运行时 Telemetry 与基于 schema v2 的目标可用性判定;修复 raw 安装误展开渲染内容中的 ${VAR}--quiet 下 Adapter 输出不干净、--dry-run forget 与 restart 预览失真,以及卸载后 systemd 模板实例仍在运行,用户可按平台安装独立 CLI,并在无副作用的前提下预览操作(#2533、#2580、#2603、#2642、#2752、#2762、#2774、#2883、#2903)
  • os-skills:更新到 v0.6.3,RPM 补充 anolisa-component(os-skills) 声明,仓库侧组件索引不可用时用户仍可执行 anolisa upgrade 升级 OS Skills(#2576)
  • ws-ckpt:更新到 v0.4.5,新增 k8s Sidecar 部署(含中英文指南,#2034、#2965)与受保护的 checkpoint 协议;修复 daemon 内存泄漏最终耗尽内存导致进程被终止(#2554)、并发 IO 下 loop 设备后端 checkpoint 延迟(最多降低至原来的 1/5,#2523)、bootstrap 失败遗留悬空镜像与 loop 设备及启动失败静默退出(#1956)、config --global 写入未被 daemon 实际加载(#2813),以及 loop 设备全部被占用时的间歇性 bootstrap 失败(#2965),用户可在容器中以更低延迟做快照并获得明确的启动诊断
  • skillfs:更新到 v0.4.2,新增 Kubernetes Sidecar 部署、双向 HMAC-SHA256 socket 认证、可选的 Alibaba Cloud Linux 4 Sidecar 镜像,以及启动 reconcile 对晚启动 notify daemon 的有界退避重试;修复 flat normal 模式挂载下分类 Skill 无法被找到,非特权工作负载可使用经认证且在 daemon 重启后自动收敛的 Skill View(#2057、#2449、#2777、#2787、#2790、#2901)

[1.2] - 2026-08-14

组件版本

组件版本
copilot-shell2.8.0
agent-sec-core0.10.1
agentsight0.10.1
tokenless0.7.6
agent-memory0.2.6
os-skills0.6.2
anolisa0.2.19
skillfs0.4.0
ws-ckpt0.4.2
cosh-ng0.16.1

说明: copilot-shell、agent-memory、skillfs 与 ws-ckpt 自 v1.1 起未更新;版本表保留这些组件以展示完整组件组合。

重点特性

  • cosh-ng:更新到 v0.16.1,将一次性 Agent 请求统一到 /agent,并收敛 cosh-core 与 cosh-shell 运行时路径、引入显式协议协商,用户用一个命令即可发起单次 Agent 请求,两条运行时入口行为一致(#2403、#2441)
  • agent-sec-core:更新到 v0.10.1,统一各 Agent 框架的 Hook 策略开关,代码扫描、提示词扫描与可观测性均可独立由环境变量控制,用户无需改动 Hook 脚本即可按部署启用各项防护(#2141、#2199、#2239)
  • agentsight:更新到 v0.10.1,修正回合边界与 cosh 重启后的会话连续性,将暂停事件重新归类为正常结束而非异常中断(#2320),并新增 Codex 轨迹转换与跟随浏览器语言的 Dashboard,用户可获得准确的跨运行时轨迹并以本地语言查看
  • tokenless:更新到 v0.7.6,新增 OpenCode Adapter,并将 Qoder Adapter 迁移到原生插件与 Hook 机制,两种运行时上的 Agent 都能获得命令重写以及就地替换原始工具输出的 Schema/响应压缩
  • anolisa:更新到 v0.2.19,新增 raw 安装的包体系后端映射、更新后的 Adapter 变更提示与 2 GiB 完整性降级判定,管理员可在精简 RPM/DEB 主机上安装,大体积组件不再被误判为损坏(#2018、#2271、#2314)

组件更新

  • cosh-ng:更新到 v0.16.1,新增带跨目标构建校验与可移植 macOS 启动器的 raw 打包接口;修复时钟跳变导致的输入停滞、流式响应解码不严格、敏感文件写入、退出后残留 raw 模式、临时文件路径可预测、斜杠命令只提示首个匹配项与 CJK 折行,用户获得可复现归档,以及能正确折行东亚文本且不残留终端状态的 Shell(#2176、#2209、#2211、#2357、#2361、#2410、#2411、#2446)
  • agent-sec-core:更新到 v0.10.1,新增 OpenClaw 代码扫描拦截模式、更广的提示词扫描入站字段覆盖、只读 Skill 分析、把未打包的 Skill 目录纳入账本检查、加载 Skill 包前先验证清单签名,以及事件查询的会话与运行过滤,用户可拦截风险代码、检查未打包 Skill 并按会话查询安全事件(#2044、#2132、#2185、#2201、#2242、#2277)
  • agentsight:更新到 v0.10.1,新增 Codex 轨迹转换为 ATIF、抓取到的模型流量附带进程归属信息且进程号在观测者命名空间内解析(#2360)与 Dashboard 本地化;修复工具调用结束后回合被提前关闭、暂停事件被误判为异常中断(#2320)、流式响应被截断、QwenCode 轨迹数据不准、cosh 重启后会话丢失,以及 cosh 会话临时文件写入未被映射(#2080),用户可在浏览器语言环境下获得准确的跨运行时轨迹
  • tokenless:更新到 v0.7.6,TOKENLESS_DATA_DIR 支持用户 Home 之外的绝对目录,硬关闭 Tool Ready 调用前检查与阻断;修复 JSON Schema 被重复 Stash、Dry-run 配置被环境变量覆盖与 retrieve 额外添加换行,Agent 一次 Retrieve 即可恢复内容,且不再被错误的就绪判定阻塞(#2380、#2386、#2396、#2399、#2425、#2434、#2487)
  • anolisa:更新到 v0.2.19,新增 anolisa update 后的 Adapter 变更提示、Qoder 原生插件生命周期支持、Codex Hook 信任持久化、OPENCLAW_STATE_DIR 处理与遗留命令的标准 JSON 信封,并将 Telemetry 迁移到 SLS_PROJECT_PREFIX,用户可跨框架管理 Adapter,并以同一方式解析所有 JSON 输出(#2018、#2221、#2260、#2281、#2319、#2337)
  • os-skills:更新到 v0.6.2,新增用于确定性内核诊断、调优与回滚的 ktuner 技能,移除遗留的 OpenClaw 与 Hermes 适配器脚本,并补齐技能账本的认证恢复说明,用户可获得基于规则的调优建议并一键应用与回滚(#1172、#1278、#2185)

[1.1] - 2026-08-08

组件版本

组件版本
copilot-shell2.8.0
agent-sec-core0.9.0
agentsight0.9.1
tokenless0.7.3
agent-memory0.2.6
os-skills0.6.1
anolisa0.2.15
skillfs0.4.0
ws-ckpt0.4.2
cosh-ng0.14.0

说明: os-skills 保持 v0.6.1,本次发布未更新;版本表保留该组件以展示完整组件组合。

重点特性

  • cosh-ng:更新到 v0.14.0,新增可恢复的 Workspace Session、MCP 管理、运行时状态查询和 DashScope Prompt Cache,Agent 可恢复长时间任务、扩展能力并降低重复 Prompt 成本(#1546、#1592、#1778、#1949、#2046)
  • agentsight:更新到 v0.9.1,新增优化与 Trajectory 分析以及 Case Containment、System Audit 和 ActPlane 风险执行,用户可诊断 Agent 质量与成本并调查、遏制风险行为(#1728、#1789、#2051)
  • agent-sec-core:更新到 v0.9.0,将 Prompt、PII、Code 和 Observability Hook 扩展到 Qoder CLI、Qwen Code 和 Codex,用户可在受支持的 Agent Runtime 间应用一致的安全策略(#1473、#1480、#1495、#1501、#1529、#1535)
  • tokenless:更新到 v0.7.3,新增带 MCP 检索的可逆压缩以及 Cosh-NG 响应与命令压缩,Agent 可减少 Model Context 并按需恢复被截断的内容(#1285、#1376、#1669)
  • anolisa:更新到 v0.2.15,新增精确版本 RPM/Raw 安装、文件元数据修复和交互式进度,管理员可选择已发布版本、修复安装漂移并查看操作阶段(#1700、#1740、#1987、#2036)

组件更新

  • copilot-shell:更新到 v2.8.0,新增需用户同意的 /ktuner 命令、导出 COSH_SESSION_ID 并在切换时复用兼容的 cosh-ng 认证,用户可调优主机、关联子进程活动并以更少配置在 Shell 间切换(#1279、#1491、#1951)
  • agent-sec-core:更新到 v0.9.0,新增 Qoder CLI 与 Qwen Code Hook 覆盖、Codex PII 与 Observability Hook、自定义 PII 规则及中文 Prompt Injection 检测,用户在 Prompt、Tool Call、Skill 和 Agent 输出上获得更广泛的保护(#1473、#1495、#1501、#1522、#1554)
  • agentsight:更新到 v0.9.1,新增 ATIF v1.7 Trajectory 分析、准确性/性能/成本 Workspace、Case Containment、System Audit 和风险 Dashboard,用户可追踪多 Agent 行为并处理优化或安全发现(#1728、#1789、#1828、#2051)
  • tokenless:更新到 v0.7.3,新增基于 Stash 的可逆压缩、MCP 检索服务器、Cosh-NG 压缩和 macOS/Qwencode Adapter 支持,Agent 可在更多 Runtime 中节省 Token 而不永久丢失压缩内容(#1285、#1376、#1669、#1894、#1964)
  • agent-memory:更新到 v0.2.6,新增同步索引以及聚焦 Query 和 OR 排序 Recall Fallback,Agent 可从冗长或包含较多停用词的 Prompt 中检索刚捕获的记忆(#1520、#1574、#2047)
  • anolisa:更新到 v0.2.15,新增精确版本 RPM/Raw 安装、Telemetry 控制、macOS arm64 npm 交付、文件元数据修复和分阶段进度,用户可跨 Linux 与 macOS 选择已发布版本、控制上报并修复 Linux 安装漂移(#1619、#1700、#1740、#1962、#1987、#2036)
  • skillfs:更新到 v0.4.0,新增 Hermes 嵌套 Skill 兼容、可配置读取时转换、认证的 Live Source 解析和强化的权限边界,Agent 可使用适配后的 Skill View,同时 Source Mutation 仍受安全控制(#1146、#1484、#1517)
  • ws-ckpt:更新到 v0.4.2,新增 Telemetry Gate 和孤立 Pre-init Backup 自动恢复,用户可在初始化中断后恢复 Workspace 而不受陈旧备份状态影响(#1509、#1601)
  • cosh-ng:更新到 v0.14.0,新增 Session 恢复、MCP Tool、Slash Command 状态查询和 Prompt Cache 可观测,Agent 可恢复复杂任务、扩展能力并诊断 Cache 节省效果(#1530、#1546、#1592、#1778、#1949、#2046、#2075)

[1.0] - 2026-07-06

组件版本

组件版本
copilot-shell2.6.1
agent-sec-core0.7.0
agentsight0.7.1
tokenless0.6.1
agent-memory0.2.1
os-skills0.6.1
anolisa0.1.20
skillfs0.3.2
ws-ckpt0.4.1
cosh-ng0.11.0

重点特性

  • anolisa:更新到 v0.1.20,交付统一 CLI 网关提供组件全生命周期管理与适配器编排,用户可通过一条命令安装/更新/诊断所有组件
  • cosh-ng:更新到 v0.11.0,完成 Core/Shell 分离与 AI 增强终端,Agent 可跨发行版确定性执行结构化系统操作
  • agent-memory:更新到 v0.2.1,新增用户数据主权与 4 类记忆分类,用户可查询/遗忘/控制自动捕获的记忆
  • tokenless:更新到 v0.6.1,新增压缩开关与 A/B 对比及 QwenCode 适配器,用户可量化各策略的 Token 节省效果而不影响任务执行

新增组件

  • anolisa:首次发布 v0.1.16,构建统一 CLI 网关管理组件安装/更新/卸载(RPM + Raw 双后端),用户可通过 anolisa install --all 一键部署全部组件
  • cosh-ng:首次发布 v0.11.0,实现确定性 Agent-OS 接口(5 crate workspace),Agent 可通过稳定 API 跨发行版执行结构化系统操作
  • skillfs:首次发布 v0.3.2,构建 FUSE 虚拟文件系统实现基于视图的 SKILL.md 暴露,Agent 可从挂载目录发现并加载技能

组件更新

  • agent-memory:更新到 v0.2.1,新增主权工具集(about/forget/consent)、AMA 导入导出、4 类分类和抗 SIGKILL 增量聚合,用户可自主控制记忆留存并跨 Agent 迁移
  • tokenless:更新到 v0.6.1,新增压缩开关(dry-run + 按模式统计)、SLS JSONL 遥测默认开启和 QwenCode 适配器,开发者可 A/B 测试压缩策略并在 SLS 大盘监控 Token 节省
  • agentsight:更新到 v0.7.1,新增 Token 节省可视化(策略饼图 + 行级 diff)、安全大盘和容器/K8s 全面支持,用户可直观评估各优化策略的节省贡献
  • copilot-shell:更新到 v2.6.1,新增 /model 多 Provider 切换对话框和 SLS 会话遥测(32 字段 JSONL),用户可自由切换 LLM Provider 而不丢失配置
  • agent-sec-core:更新到 v0.7.0,新增 Skill Ledger 完整性链(GPG 签名工作流)和 Prompt Scanner,用户可审计 Skill 安全状态并在危险操作前收到确认提示
  • os-skills:更新到 v0.6.1,新增 ANOLISA Guide 知识库 skill(13 份官方文档)和 OpenClaw 安装预检引导,Agent 可在回答中引用准确的产品文档
  • ws-ckpt:更新到 v0.4.1,新增自动清理调度和 TOML 配置热重载,用户可设置保留策略并即时生效无需重启 daemon

变更

  • 文档治理规范通过 specs/documentation-standard.md 建立
  • 双语命名约定统一为 _zh.md(从遗留 _CN.md 迁移)

[0.6] - 2026-06-12

组件版本

组件版本
copilot-shell2.4.1
agent-sec-core0.5.0
agentsight0.5.0
tokenless0.4.1
agent-memory0.1.0
os-skills0.5.0
cosh-ng0.1.0 (MVP)

重点特性

  • agent-memory:首次发布 v0.1.0,交付沙箱化文件系统 MCP 记忆服务器,Agent 可跨会话持久化存储并通过 BM25 检索上下文
  • tokenless:更新到 v0.4.1,新增 Hermes Agent 插件和 Tool Ready 4 阶段预检,Agent 工具执行前自动验证环境就绪避免无效重试
  • agentsight:更新到 v0.5.0,新增 Skill 维度 Token 指标和 Hermes 支持,用户可精确定位哪些 Skill 消耗最多 Token

新增组件

  • agent-memory:首次发布 v0.1.0,构建 19 工具 MCP 服务器(命名空间隔离 + BM25 后台索引),Agent 可在沙箱化文件系统中读写/检索持久记忆
  • cosh-ng:首次发布(MVP),完成确定性 OS 操作的生产可用功能,Agent 可获得格式可预测的结构化命令输出

组件更新

  • tokenless:更新到 v0.4.1,新增 Hermes adapter runner 和 Tool Ready 机制(4 阶段环境预检集成为 cosh extension),Agent 工具调用前自动校验环境减少因环境故障浪费的 Token
  • agentsight:更新到 v0.5.0,新增 Skill 维度 Token/调用指标和 Hermes matcher(含 SSL 支持),用户可在 Dashboard 中按 Skill 查看 Token 消耗明细
  • agent-sec-core:更新到 v0.5.0,新增 PIIChecker(输出 PII 检测 + 脱敏引擎)和 Skill Scanner(文本/代码扫描 + 生命周期触发),Agent 输出中的敏感信息被自动拦截
  • copilot-shell:更新到 v2.4.1,新增跨 Session 自动记忆提取和 hook reason UI 可见性,用户可看到安全 hook 拦截操作的具体原因

[0.5] - 2026-05-28

组件版本

组件版本
copilot-shell2.4.0
agent-sec-core0.4.0
agentsight0.4.0
tokenless0.4.0
os-skills0.4.0

重点特性

  • tokenless:更新到 v0.4.0,新增 Hermes 插件和 Tool Ready 环境机制,Agent 工具执行前依赖缺失被提前拦截避免 Token 浪费
  • agent-sec-core:更新到 v0.4.0,交付 PIIChecker 和 Skill Scanner 首版,Agent 输出被扫描防止敏感信息泄露

组件更新

  • tokenless:更新到 v0.4.0,开发 Hermes Agent 插件(Tool Ready 4 阶段环境预检 + History 压缩),Agent 运行时依赖在执行前被自动校验
  • agent-sec-core:更新到 v0.4.0,新增 PIIChecker 输出 PII 检测和 Skill Scanner 基线能力,用户免受 Agent 无意泄露敏感数据的风险
  • agentsight:更新到 v0.4.0,新增 Skill 维度指标展示,用户可按 Skill 查看 Token 消耗分组
  • os-skills:更新到 v0.4.0,纳入 Nightly 自动化测试覆盖,Skill 质量持续验证

[0.4] - 2026-05-13

组件版本

组件版本
copilot-shell2.3.0
agent-sec-core0.4.1
agentsight0.4.0
tokenless0.3.0
os-skills0.3.0
ws-ckpt0.2.0

重点特性

  • agent-sec-core:更新到 v0.4.1,建立 Skill 安全全生命周期管理(含 Prompt Scanner ask 策略),用户在 Agent 执行危险指令前收到确认提示
  • tokenless:更新到 v0.3.0,搭建 4 套 Benchmark 对比基线,开发者可量化评估不同 Skill/OS 环境的 Token 消耗差异
  • ws-ckpt:更新到 v0.2.0,扩展快照管理命令集,用户可按数量或时间维度自动清理历史快照

组件更新

  • agent-sec-core:更新到 v0.4.1,集成 Prompt Scanner 至 cosh hook 和 OpenClaw 插件(ask 策略),用户在危险操作前获得交互式确认
  • tokenless:更新到 v0.3.0,构建批量并发 Benchmark 平台并生成对比报告,开发者可一键跑分横向对比 Token 节省效果
  • agentsight:更新到 v0.4.0,优化常驻进程内存占用,2C2G 小规格实例可稳定运行可观测服务
  • copilot-shell:更新到 v2.3.0,适配 SWEBench 评测框架,开发者可通过 cosh 执行代码修复任务并验证通过率
  • ws-ckpt:更新到 v0.2.0,丰富快照增删查能力,用户可按策略自动保留最近 N 份快照

[0.3] - 2026-04-30

组件版本

组件版本
copilot-shell2.2.1
agent-sec-core0.3.0
agentsight0.3.1
tokenless0.2.0
os-skills0.3.0
ws-ckpt0.1.0

重点特性

  • tokenless:更新到 v0.2.0,交付命令重写和 TOON 上下文压缩,CLI 输出 Token 消耗降低 60–90%
  • agentsight:更新到 v0.3.1,新增 Token 节省 Dashboard 和 Agent 异常诊断,用户可可视化节省趋势并检测 Agent 中断
  • agent-sec-core:更新到 v0.3.0,新增 Skill Ledger 完整性追踪和 Prompt Scanner,每个 Skill 的签名链可端到端审计

新增组件

  • ws-ckpt:首次发布 v0.1.0,构建基于 btrfs 的工作区快照守护进程,Agent 可毫秒级创建检查点并即时回滚文件系统状态

组件更新

  • tokenless:更新到 v0.2.0,新增通过 RTK 的命令重写和 TOON 上下文压缩,Agent CLI 交互 Token 消耗减少 60–90%
  • agentsight:更新到 v0.3.1,新增 Token 节省 Dashboard(Session/时间段统计)和 Agent 中断检测(drain 机制),用户可监控节省趋势并在 Agent 故障时收到告警
  • agent-sec-core:更新到 v0.3.0,新增 Skill Ledger 全生命周期(check/certify/bypass/status/audit)和 Prompt Scanner 越狱检测,用户可追踪并强制执行 Skill 完整性策略
  • copilot-shell:更新到 v2.2.1,新增 Extension 架构(command extension + system Hook + 即时激活)、Skill 市场对接和会话导出(Markdown/HTML/JSON),用户可通过插件扩展 cosh 能力并导出对话历史
  • os-skills:更新到 v0.3.0,新增 Skill 市场上架和实用技能(xlsx/pdf-reader/image-gen/humanizer),用户可从市场发现并安装技能

[0.2] - 2026-04-15

组件版本

组件版本
copilot-shell2.0.4
agent-sec-core0.2.0
agentsight0.2.2
os-skills0.2.2
tokenless0.1.0

组件更新

  • agentsight:更新到 v0.2.2,新增 Token 消耗可观测(精确 Tokenizer 计量),用户可实时查看每条消息的 Token 明细
  • copilot-shell:更新到 v2.0.4,新增独立鉴权(STS/ECS RAM Role)和 Skill 市场浏览,用户无需 AK/SK 即可认证并发现可用技能
  • os-skills:更新到 v0.2.2,新增 SysAdmin 技能(Linux IO/网络/负载诊断),Agent 可独立诊断常见 OS 性能问题
  • tokenless:首次发布 v0.1.0,构建 Skills 级 Benchmark 测试用例,开发者可跨 Skill 量化对比 Token 消耗

[0.1] - 2026-03-30

组件版本

组件版本
copilot-shell2.0.1
agent-sec-core0.1
agentsight0.1
os-skills0.1

新增组件

  • copilot-shell:首次发布 v2.0.1,构建 AI 驱动终端助手(Tab 补全、/bash 模式、sudo、Hook 安全),用户开机即获得 AI 原生 CLI 交互体验
  • agent-sec-core:首次发布 v0.1,交付 Skill 签名校验、安全沙箱和系统加固,Agent 操作在受控最小权限环境中运行
  • agentsight:首次发布 v0.1,构建基于 eBPF 的零侵入可观测探针,用户无需修改 Agent 代码即可监控 LLM API 调用和 Token 消耗
  • os-skills:首次发布 v0.1,整理系统管理、SysOM 运维、DevOps 和云技能库,Agent 可自主执行常见 OS 操作

安全

  • Skill 全链路安全加密与数字签名
  • 硬件级安全沙箱风险隔离
  • Skill 调用身份认证与完整性校验

各组件详细变更日志请参阅:

用户入口

Token 节省

运行时

Agent 可观测

Agent 安全

Changelog

2.8.0

  • Added COSH_SESSION_ID export for subprocess and MCP correlation. (#1491)
  • Fixed hook process tree termination on timeout and cancellation. (#1585)
  • Updated docs to centralize user guides and add docs lint CI. (#1586)
  • Fixed cosh-switch to reuse compatible cosh-ng authentication. (#1951)

2.7.0

  • Added /ktuner command with consent-gated, opt-in first-run check and trusted-path resolver. (#1279)
  • Added loading indicator when selecting an auth provider. (#1389)
  • Added COSH_SESSION_ID export for agentsight per-run correlation. (#1383)
  • Fixed security intents to map to hook commands. (#1438)
  • Fixed cosh-switch post-switch guidance for clarity. (#1424)
  • Fixed shell mode to add actionable error guidance for exit code 127. (#1319)
  • Updated docs to rename __CN.md to __zh.md, fix cross-refs, and add missing READMEs. (#1335)

2.6.1

  • Added npm packaging support for CLI and cosh. (#1307)
  • Added multi-hook toggles support. (#1206)
  • Fixed tips banner to stay visible after initial login. (#1308)
  • Fixed Ctrl+O to prioritize error details over compact mode. (#1202)
  • Fixed system-profile BINDIR to follow PREFIX. (#1193)
  • Fixed AfterModel hook non-blocking notifications not surfacing. (#1182)
  • Updated component docs to migrate into user-guide and developer-guide. (#1295)
  • Added copilot-shell zh/en user and developer docs. (#1236)
  • Fixed CONTRIBUTING.md file mode from symlink to regular file. (65601f06)

2.6.0

  • Added multi-hook enable and disable support to /hooks. (#1200)
  • Added cosh-ng compatibility with cosh-switch. (#1169)
  • Added instance_id to SysOM API request params. (#1160)
  • Added anolisa component contract. (#1128)
  • Added SLS JSONL session telemetry with expanded metrics. (#1057)
  • Added authenticated models display in /model dialog. (#1030)
  • Added kitty csi-u keys support with sequence timeout management. (#552)
  • Added large paste placeholder and fixed placeholder id reset on esc cancel. (#312)
  • Fixed SLS log write to skip when file does not exist or is not writable. (#1101)
  • Fixed useless sandbox guard and failure handler hooks by removing them. (#979)
  • Fixed missing keyboard shortcut hints in footer status bar. (#921)
  • Fixed response language and model identity rules. (#920)
  • Fixed sub-model refusal detection and byteLength display. (#895)
  • Fixed webfetch sub-model output validation to avoid silent refusals. (#895)
  • Fixed thinking output to be distinguished from user input with prefix and color. (#894)
  • Fixed custom model configuration to be preserved. (#887)
  • Fixed partial message finalization on API error. (#801)
  • Fixed API error reporting in all output formats, not only text. (#801)
  • Improved escape key handling by unifying it in appcontainer. (#437)

2.5.0

  • Fixed missing esc hint in tool confirmation footer status bar (#732)
  • Fixed invisible cursor in provider/auth config inputs (#683)

2.4.1

  • Fixed HookSystemMessage rendering as info and resolved Content/Thought duplication (#636)
  • Fixed prompt ids to remain monotonic after shell remount (#628)

2.4.0

  • Added DashScope Token Plan provider entry to the OpenAI-compatible auth dialog. (#598)
  • Added UserPromptSubmit and PostToolUse hook reason surfacing in the UI. (#545)
  • Added run_id field to HookInput for per-run event correlation. (#482)
  • Fixed UserPromptSubmit hook decision merging to enforce safety priority over allow. (#597)
  • Fixed missing tool_use_id in PreToolUse hook input. (#559)
  • Fixed memory hooks lock takeover with atomic rename and async IO. (#550)
  • Fixed auto-memory workspace cleanup wiping user-added directories. (#548)
  • Fixed auto-memory session hook missing read_file events due to wrong arg key. (#547)
  • Fixed run_id ordering by setting it before UserPromptSubmit hook fires. (#537)
  • Fixed UserPromptSubmit hook firing on tool-result and Stop continuations. (#534)
  • Updated installer to support multiple install profiles. (#541)

2.3.0

  • BREAKING Removed qwen-oauth authentication support. (#455)
  • Added auto memory background extraction system. (#465)
  • Added full shell command display in hook-ask and exec confirm dialogs. (#452)
  • Added esc key to cancel running slash commands. (#290)
  • Fixed JavaScript heap out of memory during long sessions. (#462)
  • Fixed missing allow decision reason in UI when systemMessage is absent. (#435)
  • Improved test coverage with standalone tests for ExecCommandPreview. (#460)
  • Updated hook docs to clarify difference between systemMessage and reason. (#436)

2.2.1

  • Fixed initial chat being blocked during skill/subagent first-load discovery. (#418)
  • Fixed missing tool_use_id in PostToolUse hook event payload. (#414)
  • Fixed missing skill_context in PreToolUse hook input for resolved skill path. (#409)
  • Fixed missing auto-completion for /statusline subcommands. (#408)
  • Fixed unavailable agents appearing in the key sharing prompt. (#394)
  • Fixed bash option not being restored after canceling from the provider screen. (#393)
  • Fixed hook systemMessages to be concatenated with a [name] prefix for clarity. (#387)

2.2.0

  • Added ask decision support for UserPromptSubmit hook. (#328)
  • Added new command for Clawhub CLI. (#313)
  • Added interactive Skills TUI Panel with enable/disable support. (#311)
  • Added variable substitution and display control for extension TOML commands. (#291)
  • Added immediate hook activation on extension install/uninstall. (#283)
  • Added ask decision support for PreToolUse hooks. (#276)
  • Added configurable status bar. (#251)
  • Added /export command for session history. (#245)
  • Fixed API key validation to skip non-Dashscope providers. (#337)
  • Fixed PreToolUse ask dialog by unifying it to info type with diff preview. (#345)
  • Fixed memory leak in memory management. (#309)
  • Fixed extension lifecycle reliability. (#298)
  • Fixed hook registry sync on extension enable/disable. (#298)
  • Fixed interface crash caused by leftBottomContent of Box nested in Text in Footer. (#293)
  • Fixed /hooks install command by removing it and adding default help. (#287)
  • Fixed extension examples installation and package configuration. (#271)

2.1.0

  • Added startup bash entry and simplified manual auth dialog. (#217)
  • Added async fzf-based tab completion optimization. (#214)
  • Fixed OpenAI API key and model validation via /models endpoint on auth. (#243)
  • Fixed API key retention when navigating to apiKey field in auth dialog. (#241)
  • Fixed node-pty native binary bundling for both linux architectures. (#232)
  • Fixed stream redaction by replacing integer offset with committed text reference. (#210)
  • Fixed missing fields in hook system. (#188)

2.0.4

  • Added STS authentication support via ECS RAM role. (#161)
  • Added BeforeModel, AfterModel, and BeforeToolSelection hooks. (#154)
  • Added sandbox usage summary on session exit. (#137)
  • Added Tab-completion for ! shell mode. (#131)
  • Fixed config-dir source unification and prevented ~/.copilot creation on startup. (#171)
  • Fixed /bug command crash in headless environment. (#175)
  • Fixed undefined metrics.sandbox in StatsDisplay. (#171)
  • Supplement /hooks install step to post-installation guide. (#142)
  • Supplement hooks documentation (index, reference, writing-hooks). (#142)

2.0.3

  • Migrated config directory from ~/.copilot to ~/.copilot-shell. (#78)
  • Added API key detection from configured agents with user approval on bootstrap. (#127)
  • Added support for configuring multiple custom model providers. (task#80737766)
  • Added global API endpoint support for Dashscope. (#133)
  • Added custom skill paths support via settings.json. (#128)
  • Added support for loading skills from extension directories with cosh-extension.json compatibility. (#54)
  • Added /bug command for submitting bug reports. (#122)
  • Added sandbox-guard install command with bypass approval flow. (#125)
  • Added secret redaction for model output and tool results. (#100)
  • Added extensible feature tip banner for first-launch guidance. (#113)
  • Added built-in /dir cd command for in-session directory navigation. (#19)
  • Added session renaming command. (task#80737766)
  • Added nvm-aware Node.js detection in cosh wrapper script. (#72)
  • Added system-level install via Makefile with FHS-compliant directory layout. (#72)
  • Fixed 24-item limit on @ file completion menu. (#92)
  • Fixed TUI flicker on Qwen OAuth page in limited-height terminals. (#76)
  • Fixed left-arrow key not wrapping from line start to previous line end. (#53)
  • Fixed irrelevant info display in /model command. (#85)
  • Fixed credentials encryption support in settings.json. (#90)
  • Fixed test failure when running as root user. (#29)
  • Fixed pre-commit hook working directory for lint-staged. (#90)
  • Configured Husky hooks and documented pre-commit setup. (#65)

2.0.1

  • Renamed OpenAI authentication label to "BaiLian (OpenAI Compatible)" for clarity.
  • Fixed login shell stdin drain to prevent unwanted input echo.
  • Removed ripgrep unavailable warning message.

2.0.0

  • Synced upstream qwen-code to v0.9.0 and rebranded to Copilot Shell.
  • Bumped version directly to 2.0.0 (skipping 1.x, which was used by a previous OS Copilot release).
  • Integrated Skill-OS online remote skill discovery with priority-based fallback (Project > User > Extension > Remote).
  • Added /skills remote and /skills cache clear commands for remote skill management.
  • Added /bash interactive shell mode
  • Added -c argument support for inline bash commands.
  • Added PTY mode for sudo command support.
  • Added hooks system with PreToolUse event for intercepting tool calls before execution.
  • Added new model provider named Aliyun
  • Added nested startup detection warning banner.
  • Added system-wide skill path (/usr/share) support.
  • Removed original Gemini sandbox.
  • Fixed skill frontmatter parsing for YAML special characters (|, &, >).
  • Fixed login escaped character echo issue in ECS workbench.
  • Fixed Linux headless environment browser open failure when auth with Qwen OAuth.
  • Fixed Qwen OAuth authentication, replay, and UI rendering issues.
  • Fixed exception handling when adding workspace directories.
  • Fixed user query start with unix path being misidentified as command.
  • Fixed API key display explicitly.
  • Fixed Chinese i18n for /resume command.
  • Improved ? hint visibility — hidden while user is typing.
  • Miscellaneous UI, branding, CI, and build improvements.

变更日志

本文件记录 ANOLISA 的所有重要变更。

格式基于 Keep a Changelog, 版本号遵循 语义化版本

[未发布]

[0.3.16] - 2026-09-23

新增

  • 为运行 macOS 11 或更高版本的 Intel Mac 新增 CLI 预构建压缩包和 @anolisa/cli-darwin-x64 npm 包。官网安装脚本仍仅支持 ARM Mac, Intel Mac 安装入口将单独开放 (#3448)。

变更

  • 组件目录将 Intel macOS 识别为 cosh-ng 的受支持目标, 使 ANOLISA 能够在兼容版本可用时解析对应发布包 (#3448)。

[0.3.15] - 2026-09-22

修复

  • RPM 安装的适配器现在可以校验并使用分散在已声明子包中的文件,包括适配器文件和共享 skills。缺失的软件包或无法校验的文件仍会阻止启用,避免接受未经验证的输入 (#3417)。
  • RPM 事务和升级预检错误现在会对原生包管理器诊断中的仓库凭据、路径和查询参数进行脱敏, 包括含空白字符的已配置 URL。保留 HTTP(S) 源站信息用于排查问题 (#3431)。

[0.3.14] - 2026-09-20

新增

  • 通过 anolisa adapter enable tokenless opencodeanolisa adapter status tokenlessanolisa adapter disable tokenless opencode 管理 OpenCode 本地插件。可接管指向同一插件的已有链接,保留冲突的用户文件, 并支持重试中断的操作;通过 OPENCODE_CONFIG_DIR 支持自定义配置目录。 启用或禁用后需重启 OpenCode,运行时加载状态仍报告为 unknown (#3346)。
  • anolisa bug --component cosh-ng 现在会导出本地诊断包,并在 Markdown 和 --json 报告中附加健康检查结果与采集摘要。可通过 COSH_SHELL_BIN 覆盖已安装的二进制路径。采集失败时提供原因和手动重试命令; --dry-run 跳过采集,诊断包不会自动上传 (#3317)。

修复

  • anolisa bug --component <name> 现在可在用户模式下找到可见的系统级安装, 并从该安装所属作用域读取近期日志。跨作用域日志无法读取时会给出警告, 不再中断报告生成 (#3317)。

[0.3.13] - 2026-09-20

变更

  • RPM 安装、更新、卸载和依赖预检现在支持 Yum 3 与 DNF 4。 ANOLISA 优先使用 yum,仅在其不存在时使用 dnf;指定版本仍按精确版本处理, 遇到版本锁等系统限制时会报错,不再静默选择其他版本 (#3318)。
  • RPM 候选软件包查询现在直接读取并校验配置仓库的元数据,无需 dnf repoquery。 仓库访问遵循 /etc/yum.conf 中的代理和私有 CA 配置,该文件不存在时使用 /etc/dnf/dnf.conf。未配置 RPM 仓库时,本地软件包查询和 Raw 安装也可正常执行; 已配置仓库的错误仍会报告 (#3318#3353)。
  • Raw 安装发现组件没有适用于当前操作系统与架构的可安装产物时,现在会明确显示 请求的平台并列出已发布的其他平台,--json 错误也包含这些信息, 便于区分平台缺失与组件名称不存在 (#3326)。

修复

  • 运行依赖检查、自动安装依赖和 anolisa doctor 现在统一通过 IDID_LIKE 识别 RPM 和 Debian 衍生发行版。无法识别软件包体系时,会提供手动安装指引, 不再根据 PATH 选择无关的软件包管理器 (#3318)。
  • 云元数据收集遇到单个字段返回 HTTP 错误或空响应时,现在会继续读取其他字段, 保留遥测快照中仍可获取的实例信息。连接或传输失败时,仍会停止向不可达端点 发起后续查询 (#3308)。

[0.3.12] - 2026-09-16

变更

  • 以 root 身份运行 anolisa upgrade --dry-run 时,现在会通过系统依赖求解器 检查合并后的新增 RPM 安装集合,冲突会显示为错误。非 root 用户仍可预览, 但会明确提示尚未检查安装冲突;使用 sudo 重试并保留原有 --target 选项 即可执行检查 (#3294)。
  • 内置 ws-ckpt 适配器元数据现在要求 OpenClaw >=2026.2.13, 阻止在配置写入可能持久化展开后的环境变量值及运行时默认值的旧版宿主上启用适配器 (#3239)。

修复

  • anolisa adapter enable <component> openclaw 现在会在安装后显式激活插件, 恢复被上次卸载保留为禁用状态的插件。激活操作独立探测 capability 授权支持, --dry-run 也会显示激活命令 (#3223)。
  • Sandbox 安装和卸载现在以 DNF 退出状态判断成功与否,即使输出包含 “already installed” 或 “No match” 等文本也不会掩盖失败; 安装失败后不再继续后续配置阶段或记录成功 (#3226)。
  • RPM 软件包及文件归属查询现在区分明确缺失与数据库、命令执行失败, 避免错误地报告“未安装” (#3230)。
  • Raw 组件服务管理现在会报告 systemctl is-active 查询失败, 不再将其视为 unit 缺失;合法的 inactive、failed 等服务状态仍受支持 (#3240)。
  • RPM 查询失败,或系统软件包、语言运行时探测遇到权限、执行及信号终止错误时, 运行依赖检查现在会阻止自动安装依赖。anolisa doctor 会保留诊断信息, 引导检查探测失败,而不是建议安装被误判为缺失的依赖 (#3280#3285)。
  • Debian 运行依赖检查现在区分可用、缺失、安装未完成及查询失败状态。 安装未完成时需先手动恢复软件包状态,才能继续自动安装依赖;doctor 会引导检查 软件包状态。Multi-Arch 查询默认选择本机架构,除非依赖明确指定其他架构 (#3292)。

[0.3.11] - 2026-09-09

新增

  • 在两版组件目录中注册 ktuner,配置的仓库提供该软件包时,可在 Linux x86_64 上发现并通过 RPM 安装 (#2084)。

变更

  • 执行 anolisa adapter enable <component> openclaw 时,若宿主声明支持 --accept-capabilities,现在会接受插件声明的能力。 绕过不安全安装检查仍需要单独明确授权 (#3126)。
  • statusdoctor 现在允许修改 Raw 安装的 type = "config" 文件内容, 包括从目录展开的文件,同时继续检查文件存在性、类型、路径安全、权限及 capabilities。旧状态会在已安装清单能够明确判定时恢复配置文件类型。 更新和卸载行为保持不变,执行这些操作前应备份编辑过的配置。 旧版 CLI 无法读取新的 kind = "config" 状态:降级前应备份状态, 将这些受管文件条目改为 kind = "file",恢复内容摘要检查 (#3142)。

修复

  • OpenClaw 卸载报告没有受跟踪的软件包时,若 plugins list --json 确认插件已不存在且诊断正常,适配器清理现在可以完成; 无法确认时保留清理归属记录,供后续重试 (#3118)。
  • 系统缓存不可写时,组件索引读取现在改用临时私有缓存, 使普通用户能够解析组件并进行预览,同时保留索引校验。 使用 DNF 4 的 RPM 安装预检仍需要 root 权限 (#3127)。
  • 全新 Raw 安装现在会在 post_installpost_enable hook 执行后 记录文件摘要,避免将 hook 写入的内容误报为损坏,并继续检测不可变文件的后续修改。 修复和更新仍恢复软件包内容,不会重新执行安装 hook (#3141)。
  • RPM 安装现在会在创建恢复日志前检查 DNF 冲突,覆盖 --dry-run 及合并的 install --all 事务,避免依赖求解被拒绝后留下虚假的待恢复操作。 使用 DNF 4 时,RPM --dry-run 需要加 sudo,检查可能刷新仓库元数据 (#3158)。
  • anolisa list 现在与安装使用相同的权威 RPM 软件包映射, 避免历史别名或过期的 provider 声明导致错误地显示组件已安装 (#3158)。
  • 对于仅留下恢复日志的待处理操作,anolisa forget 现在会引导执行 anolisa repair <component>,而不是报告没有可遗忘的记录,并保留恢复证据 (#3158)。

[0.3.10] - 2026-09-06

新增

  • 现在可通过 anolisa adapter 发现、启用、查看和禁用 QwenPaw 插件适配器。 安装包含 QwenPaw 适配器包的 Tokenless 后,可使用 anolisa adapter enable tokenless qwenpaw 启用。安装和移除均调用 QwenPaw CLI,并校验操作后的插件文件;移除失败时保留插件目录和操作凭据以便重试, 清理时使用启用时记录的工作目录 (#3075)。

修复

  • anolisa logs --limit N 现在按追加顺序选取最近 N 条匹配记录,并在结果中 将较早的记录排在前面,不再返回最早的匹配记录。因此,默认 50 条的限制在日志 增长后仍会显示近期活动;扫描已有日志时也不再阻塞新记录的追加 (#2618)。

[0.3.9] - 2026-09-02

新增

  • 已应用和失败的 anolisa update self 操作现会连同版本与应用模式上下文写入 中央操作日志。管理员可通过 anolisa logs 审计这些操作;生成的 bug report 仅包含失败记录,并会从已处理的更新 URL 中移除 credential;preview 与已是 最新版本的 no-op 仍不会写入日志 (#2994)。

变更

  • 新提供的 Raw repository 配置不再声明未使用的 cache_ttl_secsoffline_fallback setting。包含任一字段的现有配置仍保持兼容;Raw resolution 会继续获取当前 distribution index,并在 index 不可用时失败 (#3002)。

修复

  • 全局与命令级 sandbox uninstall dry-run 现都会显示计划中的 package 变更而不 实际应用;system mode 的 Telemetry mutation preview 会在权限检查或产生副作用 前返回 (#2922#2926)。
  • 没有 preview 实现的命令现会在 dispatch 前拒绝全局 --dry-run。Sandbox remove、kernel install 和 security install 会以 INVALID_ARGUMENT 拒绝两种 dry-run 写法,并确认没有执行任何操作,不再进入 mutation、权限检查或 not-implemented 路径 (#2952#2957#2961)。
  • 独立安装器现会检测 PATH 是否仍将 anolisa 解析到另一份安装,报告新旧路径 与版本,并提供可直接执行的 PATH 修复命令或对应的 npm/Homebrew 卸载命令, 不再输出无条件的成功提示 (#2944)。

[0.3.8] - 2026-08-26

新增

  • 带 tag 的 ANOLISA Release 现会提供经过验证的 Linux x64、Linux arm64 和 macOS arm64 CLI 预编译归档。用户可直接从 GitHub Release 下载各受支持 target 的独立 binary 归档 (#2883)。

修复

  • Raw 安装现会在渲染 file content 时保留供 shell 与 systemd 消费的 ${VAR} reference,同时继续展开嵌套的 ANOLISA layout placeholder,并拒绝 destination path 中的 environment reference。anolisa install cosh-ng --backend raw 现可安装 gateway service template,不再将其由 EnvironmentFile= 提供的 workspace reference 误判为 unknown placeholder (#2903)。

[0.3.7] - 2026-08-25

变更

  • 源码构建与 RPM 构建现要求 Rust 1.93,rustup toolchain 固定为 1.93.1, Cargo dependency resolution 同时受声明的 MSRV 约束。构建者可使用 Alibaba Cloud Linux 4 打包的最新 compiler,且 Cargo 不会选择超出受支持 compiler 的 dependency;更早的 Rust toolchain 需要升级 (#2810)。

修复

  • anolisa --dry-run restart <component> 现会列出将要重启的 unit,但不会调用 systemctl daemon-reloadsystemctl restart。System mode 预览会读取已记录 状态而不获取 exclusive install lock,因此不再要求对 state root 拥有写权限 (#2774)。

[0.3.6] - 2026-08-22

修复

  • anolisa --quiet adapter scananolisa --quiet adapter status 现会 抑制所有非错误的人类可读输出,包括空状态提示与结果表格;--json 仍会输出 标准响应封装。Agent 可依赖 quiet 模式的 adapter 检查不产生人类可读输出 (#2752)。
  • anolisa --dry-run forget <component> 现会与真实执行一样,以 INVALID_ARGUMENT、退出码 2 和 adapter disable 指引,拒绝仍有已启用 adapter 的 component。预览不再误报无法执行的 forget 会成功,同时仍会忽略 无关 component 的 adapter receipt (#2762)。

[0.3.5] - 2026-08-20

修复

  • 卸载声明 bare systemd service template 的组件时,ANOLISA 现会通过 name@*.service 停止所有已加载实例,再禁用声明的 name@.service template。 基于 template 的 service 不会在 anolisa uninstall 后继续运行;单个实例停止 失败仍会以 warning 呈现,而不会阻止后续清理 (#2603)。

[0.3.4] - 2026-08-19

变更

  • 面向组件的命令现将 repository component index 作为 local state 中不存在的 名称的唯一身份权威。已安装和 recovery identity 在离线时仍可使用;不支持的 名称返回 INVALID_ARGUMENT,index 不可用返回 EXECUTION_FAILED,而 NOT_INSTALLED 现可明确表示受支持的组件尚未安装。--repo override 同时决定 整个 invocation 的 identity 与 package selection,因此 site-local package mapping 和 RPM Provides metadata 不再能创建 index 未识别的组件名称 (#2637)。

修复

  • 本地 Raw repository index 缺失时,错误信息现会指出 active repository 来自 具体的 repo.toml path 还是一次性的 --repo override,并提供对应的 recovery guidance。用户无需再猜测缺失 repository 由哪个配置来源指定 (#2650)。

[0.3.3] - 2026-08-18

新增

  • Telemetry instance snapshot 现会将检测到的 Docker、Podman、containerd、 Kubernetes cgroup 或 LXC runtime 写入 instance.container,bare-metal host 则省略该字段。这为下游 deployment statistics 与 troubleshooting 提供 container-aware signal,同时不会采集 container 或 pod identity (#2642)。

变更

  • anolisa status <component> 现会依据 component index 验证新 target、解析 package alias,并为不支持的名称提示 anolisa list,同时将 telemetry service target 引导至 anolisa telemetry status。Repository metadata 不可用时,仍可 检查已精确记录的 installed identity (#2626)。

修复

  • Raw adapter bundle 安装现会保留 archive 中每个 file 的 mode,并记录 effective mode 供 integrity check 使用。Framework hook 与 script 不再统一按 data file 安装,可继续保留 executable bit (#2619)。

[0.3.2] - 2026-08-17

新增

  • ANOLISA 现为 plugin bundle 提供原生 DSH adapter driver。 anolisa adapter enable <component> dsh --profile <name> 支持重复指定 profile、验证 bundle identity、将 profile 变更委托给 DSH,并记录 enable 时的 DSH home,使 status、disable 和 re-enable 在 DSH_HOME 或 working directory 变化后仍针对相同 profile。降级到更早的 ANOLISA release 前需先 disable DSH adapter (#2580)。
  • anolisa logs --level <LEVEL> 现为已有 --severity option 的可见别名, 使用相同的 validation 和 filtering behavior,同时 severity 仍为 canonical JSON field (#2558)。

变更

  • anolisa listanolisa install --all 现依据 schema v2 components-v2.toml 中精确的 OS 与 architecture target 判断 component availability。JSON output 以 targetstarget_available 取代 platformsplatform_available;repository publisher 必须在保持 v1 index 不变的同时部署 v2 index (#2533)。

修复

  • anolisa --dry-run install 现优先读取 resolved Raw artifact 旁的 meta.toml,仅在该 sibling file 不存在时回退到 version-level metadata。 Preview 现会验证所选 target 的 contract,并拒绝损坏的已发布 metadata, 不再掩盖错误,同时仍不会下载 artifact (#2551)。
  • System-helper status 现会在 systemctl 无法启动时报告 unknown,仅在 unit 的实际状态为 failed 时报告 failed (#2604)。

[0.3.1] - 2026-08-13

修复

  • Adapter discovery 现会忽略未声明的共享 resource directory,除非 contract、 receipt 或内置 framework driver 将其识别为实际 adapter。Tokenless common hook 等共享 asset 不再于 adapter scan 和 status output 中显示为不支持的 framework (#2502)。

[0.3.0] - 2026-08-12

修复

  • Adapter enable、status 和 update 现基于 ANOLISA-owned Raw file 或 native package metadata 派生 adapter revision,不再对整个 resource tree 计算 hash。 Runtime cache 与其他 unowned file 不再造成错误 drift,也不会被复制到 framework; 已变化的 package-owned input 会在 framework mutation 前阻止 enable,metadata 不可用时则报告为 unknown 状态 (#2419)。
  • Re-enable adapter 现仅删除旧 receipt 记录的 stale materialized file,保留 runtime-created file,通过 --dry-run 预览 cleanup,并在 directory-to-file replacement 会丢弃 runtime data 时保留旧 receipt (#2438)。

[0.2.20] - 2026-08-11

变更

  • anolisa list 现显示检测到的 host platform,并在 human-readable output 中以 component availability 取代 backend 和 ownership column。不支持当前 host 的 component 仍会显示其支持的 platform,且不提供 install action;JSON 新增 platformsplatform_available,同时保留 backend 与 ownership metadata (#2367)。

修复

  • npm 安装现由 @anolisa/cli 独占公开的 anolisa executable。在 npm 10 下, 本地安装可稳定创建 node_modules/.bin/anolisa,不再因 platform package 参与 链接而丢失该 command (#2345)。

[0.2.19] - 2026-08-10

修复

  • 在 Raw 安装准备系统依赖时,现会将 resolver 提供的 rpmdeb package-family hint 直接映射到相应的 package manager backend。在缺少可选 which command 的最小化受支持主机上,不再仅因此报告不支持 package base, 同时保持对 distro-specific hint 的兼容 (#2314)。
  • anolisa --json osbase sandbox listanolisa --json register status 现使用标准 success envelope,包含 okschema_versioncommand metadata,并将业务字段嵌套在 data 下。脚本现可 与其他 JSON surface 一致地解析这些 legacy command (#2319)。
  • OpenClaw adapter 现以 OpenClaw 兼容的 whitespace、tilde 和 absolute-path 处理方式遵循 OPENCLAW_STATE_DIR,使 plugin、skill、receipt、status 和 disable 操作都使用配置的 state。Re-enable 会安全迁移 legacy fallback 下记录的 resource,在 cleanup 需重试时保留旧 receipt,并在 --dry-run 中预览迁移。若旧 receipt 使用的 OPENCLAW_HOME 当前已不在 environment 中,迁移或 cleanup 前需 临时恢复该变量 (#2337)。

[0.2.18] - 2026-08-06

变更

  • Telemetry 上传现将 SLS_PROJECT_PREFIX 视为 SLS project prefix,并附加 检测到的 region,例如 anolisa-cn-hangzhou。设置旧 SLS_PROJECT 的部署 必须迁移至 SLS_PROJECT_PREFIX,以便将数据上传到相应 region 的 project (#2260)。

修复

  • Raw 安装现仅将选中的 archive payload 通过私有、disk-backed staging 流式 处理,不再将解压后的内容保留在内存中。大型 package 可以使用有界的 payload 内存完成安装,同时保留 atomic placement、rollback、cleanup 和 digest verification (#2250)。
  • anolisa statusanolisa doctor 现会 hash 最大 2 GiB 的 ANOLISA-owned file,并将更大的 file 视为未检查和 degraded,而不是 failed。包含大型 artifact 的完整组件不再显示为损坏或触发多余的 repair,同时在必须完成 verification 的 recovery 场景中仍会 fail closed (#2271)。
  • Enable 声明了 hook 的 Codex adapter 时,现会发现已安装 plugin 的 hook identity,并以 atomic 方式持久化其 trusted hash,使 non-interactive codex exec session 可以运行这些 hook。缺失 hook 或被覆盖的 trust setting 会以可操作的诊断信息中止 enable (#2281)。

[0.2.17] - 2026-08-05

新增

  • Raw 安装现可在放置声明的文本文件前渲染其中的 {bindir}{datadir} 等 layout placeholder,使共享的软件包模板遵循所选安装 scope 与 prefix。 完整性检查和 repair 使用渲染后的字节 (#2222)。

变更

  • Raw repository 解析现会在已发布时优先使用第二代 index,并强制检查各组件的 CLI 最低版本。不兼容的条目会给出 anolisa update self 提示并失败,而不会 静默安装较旧或格式错误的结果,同时保持对第一代 repository 的兼容 (#2222)。
  • RPM-backed adapter 的 scan、status 和 enable 操作现使用声明的软件包自有 resource root;root 缺失或无效时会明确报告,而不会回退到过期的 raw 文件。 目标位于外部 RPM root 的 Codex adapter 会记录 trust anchor;降级到 0.2.16 前需先 disable 这些 adapter (#2222)。

修复

  • Qoder native plugin bundle 现使用 Qoder 自身的 plugin lifecycle,不再按 legacy hook bundle 复制或改写。User scope 和 project scope 中已有的同 ID plugin 会受到保护;无法确认的安装或移除会保留可重试的 receipt,而不会认领或 删除用户状态 (#2221)。

[0.2.16] - 2026-08-03

新增

  • 成功执行的 anolisa update <component>anolisa update all 现会报告 resource bundle 已变化的 adapter,并给出准确的 anolisa adapter enable ...anolisa adapter status ... 后续命令。JSON 响应通过稳定的 adapter_actions 数组提供同样的信息 (#2018)。

修复

  • 在同时缺少 RPM 工具和 RPM database 的 Debian 系发行版上,system scope raw 安装不再因 rpm not found on PATH 而失败。如果已有 RPM database, 或安装期间新出现 RPM database,仍会在任何文件变更前停止 raw 安装 (#2061)。

[0.2.15] - 2026-07-30

新增

  • 交互式 anolisa installanolisa install --allanolisa uninstall 现会在耗时的规划与执行阶段显示分阶段进度。支持 ANSI 的终端会动态显示当前阶段, 能力受限的交互式终端则输出静态阶段提示 (#2036)。

变更

  • 面向用户的失败信息现采用常规的 error:hint: 标签,不再显示机器错误码; --json 仍保留结构化错误码,退出状态保持不变。
  • 更新通知现会为建议运行的 sudo anolisa upgradeanolisa update --check 命令加上引号,使命令边界更加清晰。

[0.2.14] - 2026-07-29

修复

  • anolisa statusanolisa doctor 现可检测 raw 托管文件的 Unix mode 与 Linux file capability 漂移(包括由旧版本记录的安装),并建议运行 anolisa repair 进行恢复。
  • anolisa repair 现会在仅文件元数据漂移时重新部署 raw 托管组件,恢复声明的 mode 和已确认的 capability。更新失败后的回滚仅恢复操作前已确认生效的 capability,避免授予原安装中未成功应用的可选 capability (#1987)。

[0.2.13] - 2026-07-28

新增

  • @anolisa/cli npm 软件包现支持 macOS arm64,并在安装时选择匹配的原生二进制。
  • Tokenless adapter 现支持 Qwencode,同时保持 Cosh extension 与共享 hook 资源相互独立。

修复

  • raw 安装现拒绝 provision 被另一个 pending RPM 安装占用的系统软件包,并引导用户运行 anolisa repair,避免组件相互占用或在后续移除对方的依赖。
  • cosh-ng RPM 安装现保留 cosh-ng 组件身份。以 cosh 保存且可明确识别的旧记录和 recovery journal 会被修复,使 lifecycle 命令操作正确的组件。
  • raw 更新和修复失败后的回滚现会恢复文件权限和 capability,确保恢复的二进制仍可执行。
  • 启用 Tokenless Qoder adapter 时,现会解析缓存 plugin 中的共享 hook 路径,避免匹配的 tool call 因 hook 命令路径错误而失败。

[0.2.12] - 2026-07-27

变更

  • 对已安装组件执行操作的命令在目标缺失时现报告 NOT_INSTALLED,不再报告 INVALID_ARGUMENT,调用方无需解析错误消息即可区分“没有可操作的目标”和“调用方式错误”。 该错误码仅表示状态缺失,不表示组件名称是否有效;影响 uninstallupdaterepairforgetrestartadapter,退出码仍为 2 (#1915)。

修复

  • adapter 状态检查现忽略空的或不完整的过期源目录,并将缺失 bundle 报告为 degraded; raw 卸载会清理空目录,避免遮蔽其他安装 scope (#1850)。
  • raw 安装 dry-run 现会在执行前校验组件冲突,使预览结果与实际安装保持一致。仓库缺少 轻量 sidecar 元数据时会提示已跳过冲突校验 (#1898)。

[0.2.11] - 2026-07-24

新增

  • raw anolisa install --version 现可安装指定的已发布组件版本。
  • raw anolisa install --version 输出现显示请求版本、解析版本、制品地址和来源。

变更

  • 请求的 raw 版本不可用时,anolisa install --version 现列出已发布版本。

修复

  • 请求的 raw 版本不可用时,anolisa install --version 不再安装其他版本。
  • 包含大量文件的 raw 组件卸载速度更快,写入量显著降低。
  • 操作恢复数据缺失或损坏时,恢复流程现会保留已安装状态。

[0.2.10] - 2026-07-23

新增

  • anolisa telemetry 现可启用或停用数据收集。
  • anolisa telemetry 现可关联或取消具名上报。
  • anolisa telemetry status 现以文本或 JSON 显示收集和具名上报状态。
  • adapter 启用和停用命令现显示组件提供的后续提示。
  • adapter JSON 输出现包含结构化组件提示。
  • anolisa install --version JSON 输出现包含请求版本、解析版本、来源及精确 RPM。

变更

  • 全新 ANOLISA RPM 安装现默认启用匿名遥测。
  • RPM 安装输出现说明如何停用遥测。
  • 已启用的遥测现会在支持的主机重启后自动恢复。
  • anolisa register 现提示该命令已弃用。
  • anolisa register 现无需确认即可启用遥测。
  • anolisa register status 现引导使用 anolisa telemetry status
  • anolisa unregister 现停用遥测并保留本地日志。
  • anolisa install --version 现精确选择与请求版本匹配且兼容本机的 RPM。
  • anolisa install --dry-run --version 现验证可用性并显示解析后的 RPM 详情。
  • adapter dry-run 现预览组件提示且不更改主机。
  • adapter quiet 输出现隐藏组件提示。

修复

  • anolisa register 现避免旧遥测配置重复上传。
  • anolisa unregister 不再让旧遥测配置继续上报。
  • anolisa install --version 在请求版本不可用或不兼容本机时不再更改主机。
  • anolisa install --version 安装到其他 RPM 版本时不再记录成功。
  • anolisa repair 现拒绝已装版本偏离原请求的中断 RPM 安装。
  • anolisa repair 现报告中断 RPM 安装的架构无法验证。
  • anolisa adapter disable 现可在组件文件不可用时显示已保存提示。
  • adapter 提示不再能向可读输出注入终端格式。

[0.2.9] - 2026-07-22

新增

  • anolisa update all 现更新全部已跟踪的 raw 与 RPM 组件,不更新 CLI。
  • anolisa repair 现可按记录版本恢复损坏的 raw 安装。
  • anolisa repair 现支持无 root 权限修复 user scope 安装。
  • anolisa repair 现可恢复中断的安装、更新、采纳、卸载和批量操作。
  • anolisa repair 现可重装缺失的托管 RPM 软件包。
  • anolisa status 现将不明旧记录标为需处理,并给出按 scope 修复或遗忘的指引。
  • anolisa statusanolisa doctor 现按安装时保存的组件清单执行健康检查。
  • user mode 的 adapter 命令现可作用于可见的 system 安装。
  • anolisa repair 现可根据已安装软件包或完好文件恢复不明旧记录。
  • anolisa forget 现可仅删除不明旧记录,不改动已安装内容。

变更

  • anolisa install 遇到未托管的 system RPM 时现会拒绝,并提示使用 anolisa adopt
  • 已跟踪组件再次执行 anolisa install 时现直接成功,不再重复安装。
  • anolisa adopt 现允许更新既有 RPM,卸载软件包仍需显式授权。
  • 已采纳软件包再次执行 anolisa adopt 时现直接成功。
  • 仅观察的 RPM 组件现须先执行 anolisa adopt 才能更新。
  • anolisa install --all 现用一次软件包事务安装全部新 RPM。
  • anolisa upgrade 现用一次软件包事务完成全部 RPM 更新。
  • anolisa upgrade 现用一次软件包事务安装全部计划内 RPM。
  • anolisa listanolisa status 现分别显示同名组件的 user 和 system 记录。
  • anolisa list 现将记录标为 owned、managed、adopted 或 observed。
  • anolisa --install-mode user install 现可在 system 安装旁创建独立 user 安装。
  • 生命周期修改现严格限制在所选 scope,软件包别名也不例外。
  • 首次修改旧状态时现自动升级格式,并保留 installed.toml.v4.bak
  • 遇到新版状态格式时现会报错,不再显示为空状态。
  • install-anolisa.sh 现由 CLI 获取分发索引,以使用镜像最新数据。
  • install-anolisa.sh 现仅部署 OS-base 清单,组件清单改为按需获取。
  • install-anolisa.sh --strict 现仅校验二进制和清单包。
  • ANOLISA_INDEX_URLANOLISA_INDEX_SHA256 现不再影响安装脚本。
  • 安装、采纳、更新、修复和卸载的 JSON 输出现包含明确执行计划。
  • raw 与 RPM 组件的卸载 JSON 现统一格式,并包含删除方式和计划。
  • anolisa uninstall --dry-run 遇到缺失组件时现会报错,不再返回空成功计划。
  • 组件存在待恢复操作时,anolisa forgetanolisa restart 现会停止。
  • anolisa doctor 现会报告没有活动组件记录的未完成操作。

修复

  • RPM 托管组件不再因 raw 安装健康检查被 statusdoctor 误报失败。
  • RPM 组件更新现会先刷新已保存组件清单,再报告成功。
  • RPM 清单刷新未完成时,anolisa logs --severity warn 现可检索该操作。
  • RPM 更新中断后现保持可修复,不再以过期设置显示成功。
  • anolisa doctor 遇到损坏或不明确的恢复数据时不再建议生命周期命令。
  • 多个组件共用状态目录时,anolisa doctor 不再重复报告恢复问题。
  • anolisa doctor --help 现明确说明 --fix 尚不可用。
  • 批量 RPM 操作失败后,已变更软件包现会保留可修复状态。
  • 组件别名不再将生命周期修改导向其他 scope 的安装。
  • 跨 scope 健康检查现使用正确的 user 服务管理器。
  • 批量 RPM 操作失败后,未受影响组件现会单独重试。

[0.2.8] - 2026-07-21

新增

  • anolisa adapter enable 现支持以 --allow-unsafe-plugin-install 显式授权 OpenClaw 不安全插件安装。
  • OpenClaw 适配器设置现可限定适用的 OpenClaw 版本。

变更

  • anolisa adapter enable 现会在执行任何更改前检查 OpenClaw 兼容性。
  • anolisa adapter enable 现会确认 OpenClaw 插件已加载后再报告成功。
  • OpenClaw 阻止不安全插件时,ANOLISA 现会显示检查结果。
  • OpenClaw 支持显式授权时,安全错误现会提示授权重试。

修复

  • OpenClaw 设置更新失败后,现可保留受影响设置供重试。
  • 重新启用 OpenClaw 适配器时,不再丢失此前已应用的设置记录。
  • anolisa adapter disable 现会提示更新结果不确定且可能残留的 OpenClaw 设置。

[0.2.7] - 2026-07-18

新增

  • anolisa adapter 现可通过 qwen CLI 管理 Qwen Code 0.17 及更高版本的扩展。

变更

  • anolisa upgradeanolisa repair 现会在人类可读和 JSON 输出中说明组件清单同步。

修复

  • anolisa upgrade 现会在 RPM 软件包升级后刷新组件清单。
  • anolisa upgrade 现可同步版本号未变的 RPM 组件清单变更。
  • anolisa repair 现会从已安装的 RPM 刷新过期组件清单。
  • 组件清单刷新失败时,现会保持 RPM 组件可修复并报告受影响组件。

[0.2.6] - 2026-07-16

修复

  • anolisa status 不再误报正常 RPM 组件失败。

[0.2.5] - 2026-07-14

新增

  • anolisa repair 现可恢复软件包安装后中断的首次 RPM 安装。
  • anolisa update --check 现会报告已保存状态需要同步的 RPM 组件。

变更

  • 安装、接管和升级命令现会先要求修复中断的 RPM 安装。

修复

  • 并发 RPM 安装现会安全失败,不再覆盖其他操作的组件状态。
  • 重装缺失的 ANOLISA 托管 RPM 时,现会保留组件设置和历史记录。
  • anolisa uninstall --dry-run --json 现包含 dry_run: true,且未安装组件不再显示删除阶段。
  • anolisa upgrade 现会在升级后刷新已保存的 RPM 版本和软件包信息。
  • anolisa upgrade 现可同步缺少软件包信息的旧版 RPM 记录。

[0.2.4] - 2026-07-13

新增

  • 交互终端中,anolisa update --check 现会在检查更新时显示进度。
  • 交互终端中,anolisa upgrade 现会在规划和执行升级时显示进度。

修复

  • Raw 组件安装和更新现可在同时存在二进制发布包时选中可安装归档包。

[0.2.3] - 2026-07-12

变更

  • 软件包安装和卸载进度现输出至标准错误,避免干扰重定向结果。

修复

  • 下游管道提前关闭标准输出时,ANOLISA 命令现可正常退出。
  • 标准输出写入失败时,ANOLISA 命令现会报错而非静默成功。

[0.2.2] - 2026-07-09

新增

  • anolisa update --check 现可只读报告 RPM 升级机会。
  • anolisa update --check --motd 现可输出简短登录升级提示。
  • anolisa upgrade 现可应用 RPM 工具链升级。
  • anolisa upgrade 现可安装目标配置缺失默认组件。
  • anolisa adapter scan 现将缺失来源的启用记录标为 orphaned。
  • anolisa adapter status 现将缺失适配器来源报告为降级。

变更

  • anolisa list 现显示可见用户和系统记录的 scope。
  • anolisa status 现显示 scope、可变性、遮蔽和状态路径。
  • anolisa doctor 现在用户模式诊断可读系统组件。
  • anolisa doctor 现为只读系统记录建议系统模式命令。
  • anolisa update --check 未指定 --target 时使用最新目标配置。
  • anolisa update --check --motd 现提示用 sudo anolisa upgrade

修复

  • anolisa uninstallforgetupdate 现拒绝只读系统目标。
  • anolisa upgrade 现将未解析默认组件报告为检查错误。
  • anolisa upgrade 刷新 RPM 详情失败时现会提示。

[0.2.1] - 2026-07-08

新增

  • anolisa adapter enable 现支持 cosh、Codex、Claude Code 的 Tokenless 适配器。
  • anolisa adapter enable 现支持 Qoder Tokenless 适配器。

变更

  • Claude Code 适配器现使用组件专属 marketplace。
  • anolisa adapter enable 现先拒绝无效适配器类型。

修复

  • Codex 适配器现可使用已打包数据目录资源。
  • Qoder 启用遇到损坏 settings.json 时不再覆盖。
  • Qoder 禁用现只移除 ANOLISA 添加的 hook。
  • Qoder 适配器现优先使用稳定版 qodercli。

[0.2.0] - 2026-07-07

新增

  • Raw 组件现可声明 conflicts 阻止不兼容安装。

修复

  • anolisa install 现会在变更主机前拒绝 Raw 组件冲突。
  • anolisa install --dry-run 现报告 Raw 组件冲突,不再显示无效计划。

[0.1.20] - 2026-07-03

新增

  • ANOLISA 现可通过 @anolisa/cli 发布 Linux x64 和 arm64 二进制。
  • repo.toml 现启用 npm 后端用于组件分发。

变更

  • anolisa list 现显示本地状态、归属和下一步操作。
  • anolisa list --json 现包含 RPM 包名、版本、架构和来源。

修复

  • RPM 安装和更新现可继续使用系统软件源解析依赖。
  • Adapter 命令现区分缺失清单和无效清单。

[0.1.19] - 2026-07-02

修复

  • anolisa adapter disable --dry-run 现只预览清理。
  • 只读命令保存 repo.toml 失败时仍可使用已下载配置。
  • 组件命令现可一致接受软件包别名。
  • 模糊软件包别名不再误选已安装组件。
  • 未知组件名不再先查询软件包。

[0.1.18] - 2026-07-01

新增

  • anolisa install 系统模式现自动安装缺失系统包。
  • anolisa install --dry-run 现标出依赖处理方式。
  • anolisa install 现显示自动安装的系统包。
  • anolisa status --verbose 现显示组件自动安装包。

变更

  • 需要仓库的命令现首次使用会下载 repo.toml
  • 仓库配置 dry-run 现只校验不写入。
  • RPM 安装和更新现只使用 repo.toml 源。
  • 用户模式 raw 安装现先提示缺失依赖。
  • raw 安装失败现提示已保留的自动安装包。
  • anolisa update self 不再预先获取仓库配置。

修复

  • anolisa list --installed 现包含已收编 RPM。
  • anolisa list 现显示 adopted、failed、disabled 状态。
  • Adapter 命令现优先使用契约所在数据目录资源。
  • 缺少 [backends.rpm] 时 RPM 安装不再调用 dnf
  • RPM 更新缺少 [backends.rpm] 时不再使用主机源。

[0.1.17] - 2026-06-30

新增

  • 仓库 components.toml 现可声明组件与包名映射。
  • anolisa list --installed 现过滤已安装组件。

变更

  • anolisa listinstall --all 现读取 components.toml
  • anolisa list 现显示 NAME、SUMMARY、BACKENDS、STATUS。
  • anolisa list --enabled 现作为隐藏别名保留。
  • ANOLISA_CATALOG_URL 不再控制列表来源。
  • installstatusadoptrepair 现解析 RPM 包别名。
  • anolisa status 现提示用 sudo anolisa adopt 收编 RPM。

修复

  • status <RPM 包> 现显示规范组件行。
  • repair <RPM 包> 现刷新规范组件行。
  • 非 root osbase 变更命令现可进入系统 helper。
  • root 用户模式现会在写入前被拒绝。
  • 缺少 sudo 的系统模式写入现提前失败。
  • 旧符号链接安装不再误报完整性失败。
  • status 现报告符号链接目标不匹配。

[0.1.16] - 2026-06-29

新增

  • anolisa osbase sandbox install runc 现安装 runc、containerd、Docker 和客户端。
  • anolisa osbase sandbox install 现启用场景声明的服务。
  • anolisa osbase sandbox install 现执行场景安装校验。
  • anolisa osbase sandbox install 现记录沙箱安装状态。
  • anolisa osbase sandbox install 现提示可选场景包。
  • rundfirecrackergvisor 场景现声明安装校验。
  • anolisa adapter enable 现支持 adapter_type = "skill_bundle"
  • RPM 包现安装默认 /etc/anolisa/repo.toml
  • ANOLISA 遥测现为 .jsonl 运维日志配置轮转。

变更

  • anolisa osbase sandbox install --dry-run 现显示五个安装阶段。
  • anolisa osbase sandbox install runc 现要求 Linux 4.18 及以上。
  • anolisa osbase sandbox install 校验失败现作为警告报告。
  • repo.toml 默认 RPM 源现指向 agentic-os 路径。
  • anolisa update self --json 现包含 RPM 包和版本信息。
  • anolisa adapter status 现不要求技能包注册插件。
  • anolisa adapter enable 现拒绝带配置的技能包。

修复

  • RPM 相关命令现默认用组件名作为包名。
  • anolisa update self 现通过 dnf 更新 RPM 安装。
  • 非 root 沙箱安装现显示完整阶段结果。
  • ilogtail 安装脚本需 bash 时现能正常运行。
  • anolisa adapter disable 清理技能包时不再报插件卸载错误。

[0.1.15] - 2026-06-25

新增

  • anolisa doctor 现输出组件健康、依赖和修复建议。
  • raw 组件现可声明运行依赖供安装和更新检查。
  • anolisa install --dry-run 现预览 raw 组件依赖状态。

变更

  • anolisa installupdate <component> 缺依赖时先停止。
  • anolisa restart <component> 现重启 RPM 组件服务。
  • anolisa restart <component> 遇到 RPM 模板服务时给出指引。

修复

  • anolisa adapter enable 现按包内元数据展开 {datadir}
  • anolisa uninstallforget 后 adapter 不再见旧元数据。

[0.1.14] - 2026-06-24

新增

  • raw 组件现可用 {unitdir} 放置系统单元。
  • raw 组件现可用 {userunitdir} 放置用户单元。
  • 用户模式 anolisa install 现会激活用户服务。

变更

  • 用户模式 anolisa install 现将 %u 展开为当前用户。
  • 系统模式 anolisa install 现保留 %u 用户模板。
  • anolisa uninstall 删除单元文件后现会重载 systemd。
  • anolisa restart <component> 现会重启用户服务。

修复

  • anolisa install 现无需手动重载即可启动新单元。
  • anolisa uninstall 现会停用用户模式安装的服务。
  • anolisa adapter enable 现从包目录查找 {datadir} 技能。

[0.1.13] - 2026-06-23

新增

  • anolisa adapter enable 现支持 Hermes 插件。
  • anolisa adapter enable 现安装声明的 OpenClaw 技能。
  • anolisa adapter enable 现写入声明的 OpenClaw 配置。
  • anolisa install 现启动 raw 组件声明的服务。
  • anolisa install 现设置 raw 组件声明的文件能力。
  • anolisa install 现执行 raw 组件声明的钩子。
  • anolisa update <component> 现重启 raw 组件声明的服务。
  • anolisa update <component> 现重设 raw 组件声明的文件能力。
  • anolisa uninstall 现执行 raw 组件卸载钩子。
  • anolisa uninstall 现停用已停止的声明服务。

变更

  • anolisa adapter scan 现按声明位置查找资源。
  • anolisa adapter enable 现读取包内适配器资源。
  • anolisa install --dry-run 现预览 raw 文件能力。
  • anolisa register status 现显示最新注册记录。
  • 取消 anolisa registerunregister 不再报错。

修复

  • anolisa adapter status 现能识别换行的 OpenClaw 表格。
  • anolisa adapter status 检查 Hermes 时忽略内置插件。
  • anolisa adapter 现能找到 RPM 组件附带的元数据。
  • anolisa register status 现显示 sysom 控制台注册。

[0.1.12] - 2026-06-22

新增

  • anolisa update <component> 可更新 raw 组件。
  • anolisa osbase sandbox list 可显示 sandbox.toml 场景。
  • anolisa osbase sandbox uninstall <scenario> 可移除场景软件包。
  • anolisa system setup 可为非 root osbase 命令安装助手服务。
  • anolisa system status 可显示助手健康状态。
  • anolisa system teardown 可移除助手服务和沙箱配置。
  • anolisa env --json 现包含发行版身份字段。

变更

  • anolisa osbase sandbox install <scenario> 现按 sandbox.toml 安装场景。
  • 未指定 --install-mode 时,root 用 system,普通用户用 user
  • anolisa update <component> --dry-run 现显示 raw 候选版本。

修复

  • yum 后端名现会作为 rpm 处理。
  • --package 安装的 raw 组件更新时复用包名。
  • anolisa update <component> 不再允许 raw 降级。
  • anolisa update <component> 无法比较版本时不再替换文件。

[0.1.11] - 2026-06-18

新增

  • anolisa adopt <component> 可接管预装 RPM。
  • anolisa repair <component> 可刷新漂移的 RPM 状态。
  • anolisa forget <component> 可停止跟踪组件。

变更

  • anolisa status <component> 现报告 RPM 状态漂移。
  • anolisa uninstall 默认保留观察到的系统 RPM。
  • anolisa install 接管 RPM 时保留适配器资源。

[0.1.10] - 2026-06-17

新增

  • anolisa install --backend rpm 可通过 dnf 安装缺失 RPM 组件。
  • anolisa install 可接管匹配的预装系统 RPM。
  • anolisa update <component> 可通过 dnf 更新 RPM 组件。
  • anolisa status 现显示 RPM 组件的软件包来源。
  • anolisa status <component> 现显示匹配的未跟踪系统 RPM。

变更

  • anolisa update runtime <component> 改为 anolisa update <component>
  • repo.toml 现使用 [backends.rpm] 替代 [backends.yum]
  • anolisa install --all 现在批量摘要列出接管的 RPM。

修复

  • anolisa install --all 现在普通输出显示各组件失败原因。
  • anolisa install 在缺少 rpmdnf 时提示 --backend raw
  • anolisa install 不再覆盖先完成的 raw 安装。

[0.1.9] - 2026-06-16

新增

  • anolisa install --all 可安装目录中的所有可用组件。
  • anolisa install --all --fail-fast 可在首个失败组件后停止。
  • anolisa install --all --json 现返回按组件汇总的批量结果。
  • anolisa status 现显示已安装组件的适配器摘要。

变更

  • installed.toml 现区分 ANOLISA 管理包和只观察的系统 RPM。

[0.1.8] - 2026-06-15

新增

  • anolisa adapter enable 现可将已安装适配器注册到 OpenClaw。
  • anolisa adapter disable 现可移除 OpenClaw 适配器注册。
  • anolisa adapter status 现可报告 OpenClaw 适配器健康状态。
  • anolisa adapter scan 现可显示已安装适配器资源。

变更

  • anolisa install 现会放置后续启用所需的适配器资源。
  • anolisa uninstall 现会阻止移除仍有启用适配器的组件。

[0.1.7] - 2026-06-13

变更

  • 用户态库路径调整为 ~/.local/lib/anolisa;其余目录继续遵循 XDG_* 环境变量覆盖。

修复

  • anolisa install 不再要求本地已有组件目录条目即可从远程仓库下载安装。
  • anolisa install --dry-run 无需下载完整安装包即可预览文件和服务列表。

[0.1.6] - 2026-06-12

新增

  • anolisa osbase sandbox install gvisor 支持 standalone、containerd 和 substrate 三种部署形态。(#851)
  • anolisa list 可从 repo.toml 配置自动发现组件目录。(#854)

变更

  • 废弃旧版"能力"模型,统一为组件生命周期;旧状态在下次写入时自动迁移。(#876)

修复

  • anolisa list --enabled 现在正确显示已安装组件,而非空列表。(#872)
  • anolisa list 在已配置 repo.toml 时不再要求额外的本地目录文件。(#854)

[0.1.5] - 2026-06-11

新增

  • anolisa list 从远程或本地组件目录读取并返回结构化 JSON。(#850)
  • anolisa install <组件> 从远程仓库下载、校验并安装组件。(#852)
  • anolisa uninstall 支持新组件模型,同时保留旧版回退。(#852)

变更

  • 简化 CLI 帮助输出,围绕 listinstalluninstallstatusdoctorlogsrestartupdate 重新分组。(#850)

修复

  • 未配置组件目录时,anolisa list 返回空列表并提示配置方法。(#850)
  • 安装中途失败时自动回滚已写入的文件。(#852)

[0.1.4] - 2026-06-10

新增

  • anolisa adapter scan 探测已安装的 Agent 框架集成。(#808)
  • anolisa adapter install 下载校验后的安装包并注册到目标框架。
  • anolisa adapter remove 安全移除 ANOLISA 管理的文件,支持预览和 dry-run。
  • anolisa adapter install tokenless openclaw 通过 OpenClaw CLI 注册 tokenless 适配器。
  • anolisa enable 从远程仓库获取组件元数据,离线时降级到本地缓存。
  • anolisa status 输出中新增组件健康检查结果。

变更

  • 订阅管理命令提升为顶层 anolisa register / unregister

修复

  • adapter 安装或移除失败时自动回滚或保留状态以便重试。

[0.1.3] - 2026-06-09

新增

  • anolisa --help 按类别分组展示命令(日常操作 vs. 管理命令)。
  • list 命令在帮助中展示 ls 别名。
  • anolisa update self 成功后输出 changelog 链接。

变更

  • 修正包 license 元数据为 Apache-2.0。

[0.1.2] - 2026-06-08

新增

  • anolisa bug 生成本地诊断报告,包含环境信息和近期错误日志。
  • anolisa self update 作为 anolisa update self 的别名。

修复

  • 恢复 bug report issue 模板。

[0.1.1] - 2026-06-07

新增

  • anolisa osbase sandbox install 一键部署沙箱环境(支持 firecracker 和 e2b 后端)。
  • anolisa register / unregister 管理数据上传授权,支持 30 天延后。
  • anolisa enable 可配置日志上传(ilogtail),自动探测地域。
  • anolisa update self 下载并应用 CLI 更新,含完整性校验和失败回滚。
  • 真实的 dnf/apt 包管理器后端,替换占位实现。
  • anolisa 工作区 GitHub Actions CI。

修复

  • 安装脚本改用 bash 参数展开替代 sed,提升可移植性。

[0.1.0] - 2026-06-04

ANOLISA CLI 首个 alpha 版本。

新增

  • CLI 命令:envliststatuslogsenabledisableuninstallrestartupdateinfodoctor
  • 环境探测:OS、架构、内核、发行版、容器运行时、用户身份(探测失败时优雅降级)。
  • 组件生命周期引擎:先预览再执行,含完整性校验和操作日志。
  • 配置驱动的上线门控,新能力无需改代码即可发布。
  • 声明式 TOML 组件清单,支持多架构。
  • install-anolisa.sh 安装器:三种模式(本地、checkout、URL),支持校验和 --dry-run
  • agent-observability 和 token-optimization 端到端冒烟测试。

已交付能力

能力状态
agent-observabilityenable 完整链路(dry-run + 真实执行)
其余 9 个仅清单;enable 返回 NOT_IMPLEMENTED

已知限制

  • 真实执行路径仅限 Linux(darwin 宿主只能 --dry-run)。
  • 尚无签名校验和 rpm/deb 后端。
  • update 命令返回 NOT_IMPLEMENTED。

更新日志

本项目的所有重要变更都会记录在此文件中。

本文档格式基于 Keep a Changelog, 项目遵循语义化版本

[0.2.8] - 2026-09-20

新增

  • agent-memory:配置的会话目录不可用时,回退到当前用户独享的运行时目录或临时目录,非特权安装无需创建 root 所有的目录即可使用会话日志和 mem_promote;回退路径会检查所有者、权限及符号链接重定向(#3266)

变更

  • agent-memory不兼容变更: OpenClaw 工具更名为 anolisa_memory_searchanolisa_memory_get,Agent 可以同时访问 ANOLISA 记忆和 OpenClaw 自带记忆工具,避免名称冲突;升级时需更新提示词及工具 allowlist、重启 gateway 并开启新会话。内部 MCP 名称和已存储记忆保持不变(#3347)
  • agent-memory:在 OpenClaw 的 coding profile 中声明全部四个插件工具,Agent 在该 profile 下无需禁用 memory-core 即可访问插件工具;自定义策略仍需显式添加工具条目,中间版本安装器留下的禁用标记需按用户指南手动恢复(#3347)

修复

  • agent-memory:在 OpenClaw 插件 schema 中接纳 sessionIdsessionDir,并在插件启动时按服务端规则检查标识符的 128 字节 UTF-8 上限,用户可在子进程重启后复用会话临时文件,并在无效标识符改变命名空间之前看到配置错误(#3213)
  • agent-memory:让更强的 BM25 匹配排在前面,并统一关键词分数越高越相关的约定,搜索、混合检索和自动召回会优先返回最相关的匹配记忆(#3296)
  • agent-memory:拒绝 OpenClaw 插件不支持的 expert profile,提示改用 basicadvanced,并在验证重载配置之前停止旧客户端,用户可获得明确的配置错误,避免旧记忆进程继续持有存储锁(#3238)
  • agent-memory:补齐 make dist 源码归档所需文件,源码包和 RPM 构建可获得编译及安装所需的示例目标、配置和适配器资源(#3231)

[0.2.7] - 2026-09-09

修复

  • agent-memory:根据宿主帮助信息选择 OpenClaw 安装参数并默认授予插件声明的能力,用户可在要求授权的宿主上安装,也可通过 AGENT_MEMORY_ACCEPT_CAPABILITIES=0 拒绝授权;不再传递已弃用且无效的 unsafe-install 参数,并区分授权拒绝与安装目录不可写的问题(#3149)
  • agent-memory:将 corpus 命中标记为 agent-memory 并提供适用于 memory_get corpus=all 的读取路径,Agent 可读取与 OpenClaw 工作区记忆路径重叠的存储记忆,并在分段读取时获得准确的 fromLine / lineCount(#3177)
  • agent-memory:在查找二进制前校验插件配置,即使尚未安装 agent-memory,用户也能看到无效 userId / sessionId 的具体错误(#3155)
  • agent-memory:声明 RPM 组件标识,ANOLISA 可将已安装的软件包识别为 agent-memory 组件(#2560)
  • agent-memory:在统一构建流程中声明 Node.js >= 20 和 npm 为源码构建依赖,用户模式自动准备构建 OpenClaw 适配器所需的工具,系统模式则在构建前提示缺失工具(#3187)

[0.2.6] - 2026-07-30

修复

  • agent-memory:更新到 v0.2.6,在短 token 的 LIKE 严格匹配无结果时改用 OR 匹配,并优先保留匹配更多关键词的结果,Agent 可从包含停用词的 prompt 中召回相关记忆而不再得到空结果(#2040)

[0.2.5] - 2026-07-27

修复

  • agent-memory:更新到 v0.2.5,从较长的英文和 CJK prompt 中生成聚焦的召回查询并合并结果,Agent 可从冗长 prompt 中召回相关记忆且不会静默遗漏主题(#1574)

0.2.4

  • fix(memory):修复 observe 后自动召回返回空结果的问题——memory_observe 后同步重建索引,使 before_prompt_build hook 能找到新内容(#1520)
  • fix(memory):install.sh 为 hook 设置 allowConversationAccess(#1521)

0.2.3

  • fix(memory):在 trigger 匹配和 hash 计算前,将 OpenClaw content block 数组 [{type:"text", text:"..."}] 规范化为字符串,避免自动捕获因内容被转换成 "[object Object]" 而失效
  • fix(memory):增加 BM25 OR fallback——当隐式 AND FTS5 查询返回 0 行且存在多个 token 时,使用 '\"token1\" OR \"token2\" OR ...' 重试,使部分匹配也能返回,而非静默失败
  • fix(memory):将 format!("{:.120}", query) 替换为 format!("bm25:len={}", query.len()),清理 audit_log,避免用户查询内容泄漏到日志路径

0.2.2

  • 修复 memory_observe hint 清理,使 YAML 转义的 hint 能通过不解析 YAML escape 的手写 frontmatter reader 往返读取:用 sanitize_hint() 替换 yaml_escape_hint(),仅将换行符和 ASCII 控制字符替换为空格;增加 8 个单元测试和一个真实 parser 往返测试,覆盖含反斜杠的 Windows 路径
  • MemoryConfig 增加 max_hint_bytes(默认 512)和 MEMORY_MAX_HINT_BYTES 环境变量覆盖;将 &MemoryConfig 贯穿 memory_observeMemoryService facade 和 MCP server
  • 修复 make install INSTALL_PROFILE=user PREFIX=$HOME/.localinstall-adapter-resources 阶段因 Permission denied 失败的问题:遵循 INSTALL_PROFILE 并从 $(PREFIX) 推导 DATADIR/SHARE_DIR,使所有可写路径均服从 profile(system 模式不变);与 tokenless/ws-ckpt 安装约定保持一致
  • 增加 safe_fs 安全边界单元测试(path escape、symlink traversal、sandbox root violation),并修复 cargo fmt --all --check 暴露的格式和 import order 问题

0.2.1

  • 修复配置 embedding provider 时 vector/hybrid search panic 和索引为空的问题:index worker 在没有 tokio Handle 的 std::thread 上运行,导致无法生成 embedding,而 memory_search mode=vector|hybrid 从 worker thread 调用 Handle::block_on;现在 spawn 时捕获 runtime handle 并传入 worker,search path 使用 block_in_place
  • 修复 memory_get_context.git 内部文件(如 .git/logs/HEAD)泄漏到 Agent context 的问题:通过 safe_fs 中共享的 is_under_git predicate 扩展 reserved-path filter,覆盖 .git/
  • 修复 full_scan(启动和 inotify overflow 恢复)只构建 BM25 index 而不生成 dense embedding,导致既有文件在修改前对 vector search 不可见的问题;新增 paths_without_vec 查询和 backfill pass,并将 embedding 逻辑集中到与 flush 共用的 embed_sync helper
  • 修复 memory_search 对短 CJK query term(少于 3 个字符,如“花名”/“小云”)返回 0 条结果的问题:trigram tokenizer 不会为少于 3 个字符的 term 生成 token,因此此类查询改用 body LIKE '%term%' substring scan,同时保留 recall、agent-scope filtering 以及 cold/superseded exclusion
  • 根据第一次真实 response 确定 embedding dimensions,不再硬编码 1536(DashScope text-embedding-v3 为 1024):维度存储在以估算值初始化的 AtomicUsize 中,并在首次 embed 时覆盖
  • 通过 .anolisa/component.toml 增加 anolisa-cli adapter contract,使 CLI adapter manager 能通过 [[adapters]] TOML schema 发现 OpenClaw plugin bundle

0.2.0

  • 增加 prompt injection 安全模块(looksLikePromptInjection + escapeMemoryForPrompt),Rust core 和 TS adapter 保持一致
  • 为安全模块增加 secret detection 和 PII redaction
  • 增加 auto-recall before_prompt_build hook,每轮注入相关 memory
  • 增加带 trigger filtering、SHA256 dedup 和 injection rejection 的 auto-capture agent_end hook
  • 通过可插拔 EmbeddingProvider 增加 dense-vector semantic search(OpenAI /v1/embeddings、Ollama /api/embed
  • 增加 files_vec table(schema v2),与 FTS5 BM25 一起存储 per-file dense embedding
  • 增加通过 reciprocal rank fusion(RRF,k=60)融合 BM25 和 vector score 的 hybrid search
  • memory_search 增加 mode 参数(bm25/vector/hybrid),并支持 graceful fallback 到 BM25
  • 通过 [memory].agent_scope(shared/isolated/filter,schema v5)增加 per-agent memory isolation
  • 增加带 consent.toml preference 的 memory sovereignty tool(memory_about/forget/auto_created/consent)
  • memory_observe 增加 4 类封闭 memory classification(user/feedback/project/reference)
  • 增加 mem_exportmem_import,用于跨 Agent memory migration(AMA archive format)
  • 增加用于 memory overview 和 source tracking 的 memory_summary tool
  • 增加 memory_session_context tool
  • 增加 memory_sessionsmemory_timeline session history query tool
  • 增加 MEMORY.md index file 和 mem_index_refresh tool
  • 增加 user profile synthesis(Dreaming V3 mem_dream
  • 增加 memory consolidation:shutdown 时从 session audit log 自动提取 L1 atomic fact
  • 从连贯的 tool-call chain 中增加 episodic memory extraction
  • 增加 cross-session task persistence 和 incremental consolidation
  • 增加 consolidation quality filter(mutual exclusion、non-derivable、date normalization)
  • 为 BM25/vector/hybrid score 增加 time-decay ranking(exp(-λ×age_days))
  • 使用 mem_compact tool 对长期从未访问的文件进行 cold archival
  • 写入新 fact 前通过 BM25 similarity 增加 conflict detection
  • 增加 category subdirectory(facts/<category>/)以及 memory_search category filter
  • 增加 token tracking(AuditEntry 中的 tokens 字段)
  • 增加手动触发 consolidation 的 mem_consolidate tool
  • memory_search corpus=all 增加 corpus supplement registration
  • 增加 EmbeddingConfig(None/OpenAI/Ollama),支持 TOML parsing 和 env override
  • memory_search signature 增加可选的 modecategory 参数
  • memory_search query 限制为 1024 个字符,防止 FTS5 resource exhaustion
  • 将 embedding error response body 截断到 200 个字符,防止 API key 泄漏
  • ConsolidatedFact 中区分 CJK 与 ASCII token estimation
  • 在 mutex 下持有 FactWriter JSONL file handle,防止 line interleaving
  • 通过 canonicalize + starts_with traversal guard,从 db path 推导 BM25Store mount root
  • 根据 entry timestamp 而非 chain length 计算 Episode duration
  • session_id 传播到提取的 episodic fact
  • consolidate() 返回 fact count,供 mem_consolidate reporting 使用
  • 修复 search response 中的 effectiveMode,使其反映实际使用的 mode
  • 修复 embedding API empty-response handling,返回维度正确的 zero vector

0.1.0

  • 引入面向 AI Agent 的 filesystem memory MCP server(仅 Linux),通过 stdio JSON-RPC 2.0 提供三个 tier 的 21 个 tool(Tier A file op、Tier B BM25 search、Tier C governance)
  • ~/.anolisa/memory/<ns>/ 下增加 per-namespace mount,并支持可选的 user namespace + private tmpfs isolation(auto/userland/userns strategy)
  • 对每次 Tier A file open 使用 openat2(RESOLVE_BENEATH | RESOLVE_NO_SYMLINKS) 强制执行 path sandbox
  • 增加带 transactional upsert、schema migration、trigram CJK tokenizer 和 inotify-driven debounced flush 的 SQLite FTS5 BM25 background index
  • 增加可选的 git versioning,auto-commit 在 per-handle mutex 下串行执行
  • 增加 tar.gz snapshot,使用严格的 id whitelist、restore 时的 atomic rename swap,以及 .anolisa/trash/ 下的 rollback entry
  • 增加可选的 cgroup v2 memory.max self-limit,在 tokio runtime 启动前应用
  • 增加 JSONL audit log(O_NOFOLLOW | O_CLOEXECMutex<File>),并支持可选的 systemd-journald fan-out
  • tools/listtools/call 强制执行 profile gating(basic/advanced/expert),config struct 使用 deny_unknown_fields
  • /run/anolisa/sessions/<sid>/ 下增加 per-session scratch 和 log(0700),并附带 tmpfiles.d snippet
  • 增加经过加固的 systemd user template anolisa-memory@.serviceProtectKernelTunables/Modules/LogsSystemCallFilterMemoryDenyWriteExecuteRestrictNamespacesRestrictAddressFamilies=AF_UNIX
  • 增加使用 offline vendor tarball 和单个 statically-linked binary(bundled SQLite + vendored libgit2)的 RPM packaging
  • 增加 OpenClaw plugin memory-anolisa,支持 install/detect/uninstall lifecycle,并提供 4 个通过 stdio child 路由到 MCP server 的 memory contract tool
  • 增加从 Cargo.toml 到 manifest/package/openclaw/mcp JSON 和 bundle 的 single-source version sync
  • 增加 mcp-harness example,以及覆盖 12 个 integration suite 的 140 个 automated test

Changelog

0.13.0

V2 Policy & Daemon Runtime

  • Added V2 daemon Policy, Scope, and Binding CRUD APIs with root-only authorization. (#3062)
  • Added V2 CLI commands for Policy, Scope, and Binding management through the daemon. (#3097)
  • Added AgentSight policy adapters, client integration, and binding reconciliation. (#3103)
  • Added bounded concurrent reconciliation workers so one binding failure cannot block the daemon. (#3194)

V2 Security Operations

  • Added the V2 daemon-backed Bash and Python regex Code Scanner with compatible structured results. (#3203)
  • Added the V2 capabilities command with V1-compatible environment capability reporting. (#3243)
  • Added V1-shaped JSONL and SQLite persistence for accepted V2 code-scan events. (#3246)
  • Added shared scan lifecycle recording and allowlisted telemetry sinks for V2 security operations. (#3300)

Skill Ledger Runtime

  • Skipped unmanaged read-only raw user Skills during default batch initialization and scanning. (#3183)
  • Unified Skill Ledger CLI and configuration inputs around supported names, initialization, and policies. (#3253)

Build & Packaging

  • Delivered the V2 daemon as a hardened systemd system service. (#3217)

Skills

  • Added the bundled pii-checker Skill for PII and credential scans with optional redaction. (#3241)

Testing & CI

  • Added installed V2 RPM end-to-end coverage for CLI, daemon, plugins, and service contracts. (#3162)

Documentation

  • Added AARM registry and OWASP Agentic Top 10 security-control mappings. (#3227)

Maintenance

  • Flattened the V2 crate layout and updated internal references. (#3319)

0.12.0

cosh & Cosh-NG Hook Integration

  • Normalized legacy cosh and Cosh-NG Skill invocation payloads in the cosh Skill Ledger hook so Cosh-NG invocations follow the configured policy instead of bypassing the check. (#2871)

Skill Ledger Runtime

  • Tightened six Skill scanner detector patterns to remove deterministic false positives and bumped the static scanner identifier to cisco-static-only-0.1.1. (#2928)
  • Completed the skill-ledger and check help output with all eight integrity statuses and their production conditions. (#2707)

Daemon Runtime

  • Added a POSIX shell daemon.health probe that avoids Python cold start for container health checks. (#2879)

Rust v2 Framework

  • Added the v2 foundation and policy type crates as the base for the Rust security core migration. (#3007)
  • Added the v2 daemon service framework with UDS server, request dispatch, and shutdown handling. (#3040)
  • Added the v2 PAP service with Policy, Scope, and Binding CRUD over a repository abstraction. (#3027)

Build & Packaging

  • Raised the cryptography runtime floor to 50.0.1 and refreshed the lock and exported requirements. (#3015)

Documentation

  • Added design docs for the current daemon protocols and the v2 framework requirements. (#2881)

0.11.1

Prompt Scanner

  • Restricted the invisible-character injection rule so emoji ZWJ sequences, Persian ZWNJ, and leading BOM no longer score as critical injections. (#2900)
  • Refused non-loopback model service base URLs derived from the environment in both the Rust and Python model service paths. (#2893)
  • Reported daemon.health prompt_scan state as untracked instead of unconditionally ready now that scanning runs in-process. (#2892)
  • Dropped the dead prompt model preload environment flag and the obsolete scan-prompt protocol document. (#2886)

Skill Ledger Runtime

  • Skipped host-backed read-only system Skills in batch scan --all and default init instead of failing them. (#2906)
  • Rejected the placeholder set-policy and rotate-keys commands so they no longer report false success. (#2876)

Asset Verification

  • Reported explicit CHECKED / PASSED / FAILED counters and a distinct zero-candidate outcome for agent-sec-cli verify. (#2875)

Security Events & CLI

  • Enforced owner-only permissions on files created by the CLI. (#2873)

Documentation

  • Documented the five hidden agent-sec-cli integration commands and their contract caveats. (#2887)
  • Documented the rule-only L1 detection boundary and how to read pass together with degraded fields. (#2895)

0.11.0

Prompt Scanner

  • Rewrote prompt scanner core in Rust for native performance. (#2409)
  • Added ATR (Agent Threat Rules) rule packs and reduced compile time. (#2531)
  • Added Warden-Gen L2 backend option for prompt scanning. (#2699)
  • Routed Rust native extension logs to Python logging framework. (#2640)
  • Corrected warmup documentation to describe model availability checks and silenced per-invocation scan mode logging in the Codex, cosh, and Qwen Code prompt scanner hooks. (#2745)

Hermes Hook Integration

  • Dropped Hermes synthetic warning injection; PII and Skill Ledger policies now use native observe/block boundaries. (#2712)

PII Checker

  • Refined PII detection to reduce JWT and Email false positives and aligned user notices across all host adapters. (#2443)

Skill Ledger Runtime

  • Added SkillFS HMAC peer authentication for cross-container Skill Ledger deployments. (#2493)

Security Events & CLI

  • Added agent-sec-cli capabilities subcommand for environment-based hook configuration inspection. (#2356)
  • Set observability hook timeout to 10s and CLI default timeout to 5s. (#2346)
  • Added security observability skill for structured event and session report queries. (#2245)

Documentation

  • Corrected and restructured user docs to align with 0.10.x shipped behavior. (#2456)

0.10.1

OpenClaw & cosh Hook Integrations

  • Piped prompt text through stdin instead of command-line arguments in the OpenClaw and cosh prompt scanner hooks. (#2445)

Security Events & CLI

  • Validated events query parameters in the CLI and the daemon security query handlers. (#2451)

0.10.0

Agent Hook Policy Controls

  • Added code scanner enable flags for agent hooks. (#2001)
  • Unified hook policy controls across agent integrations. (#2141)
  • Added an observability hook environment toggle. (#2199)
  • Restored scanner mode environment variable names. (#2212)
  • Aligned code scanner hook flags across supported agent integrations. (#2229)
  • Added environment-based prompt scanner gating. (#2239)

OpenClaw Hook Integration

  • Added block mode support for the OpenClaw code scanner hook. (#2242)

Prompt Scanner

  • Widened prompt scan inbound text field coverage. (#2277)

Skill Ledger Runtime

  • Added read-only skill analysis. (#2044)
  • Included raw skill directories in skill ledger checks. (#2201)
  • Authenticated manifests before loading skill package contents. (#2185)

Security Events & CLI

  • Added session and run filters to agent-sec-cli events queries. (#2132)

Raw Packaging

  • Added component-owned raw package build targets and archive validation. (#2133)
  • Updated raw hooks to use the bundled Python launcher. (#2255)

0.9.0

Qoder CLI & Qwen Code Hook Capability Expansion

  • Added Qwen plugin and observability hooks. (#1473)
  • Added Qoder CLI hook framework support. (#1480)
  • Added Qoder prompt injection scanner hook integration. (#1529)
  • Added Qwen prompt scanner hook integration. (#1538)
  • Added code scanner hook integration for Qoder CLI and Qwen Code. (#1535)
  • Added Qoder CLI Skill PreToolUse skill ledger checks for user and project skills. (#1552)
  • Added Qwen PII hooks. (#1559)
  • Added Qwen skill ledger hook integration. (#1561)
  • Added Qoder CLI observability hook integration. (#1580)
  • Unified Qwen Code hook trace context handling. (#1738)

Codex & OpenClaw Hook Integrations

  • Added observability capability in the Codex plugin. (#1495)
  • Added Codex PreToolUse PII checker hook integration. (#1501)
  • Showed OpenClaw policy hints in hook responses. (#1525)

Scanner & Policy Engine

  • Skipped prompt model downloads when the model cache already exists. (#1467)
  • Added custom PII regex rules. (#1522)
  • Satisfied L1-L3 telemetry requirements. (#1527)
  • Added Chinese prompt-injection and jailbreak rules covering instruction override, authority escalation, encoding evasion, and role-play framing. (#1554)
  • Unified model resources into handles to make prompt scanning resource lifecycle more consistent. (#1553)
  • Made prompt scan mode configurable through environment variables. (#1620)
  • Hardened audit, PII, and notify hook behavior. (#1649)

Skill Ledger Runtime

  • Isolated the skill ledger worker for more reliable hook execution. (#1492)
  • Resolved canonical skill roots for skill ledger checks. (#1558)
  • Exposed skill ledger verdicts to hook callers. (#1577)

Build & Packaging

  • Moved prompt-scan benchmarks to a standalone repository to keep the CLI package lean. (#1557)
  • Rejected stale CLI wheels during packaging and runtime validation. (#1651)
  • Replaced and restarted the daemon service when upgrading RPM packages. (#1681)

Testing & CI

  • Fixed OpenClaw E2E test dependencies by excluding ML packages. (#1631)
  • Fixed skill-ledger E2E test execution on macOS. (#1643)

Documentation

  • Centralized user guides and added documentation lint CI. (#1586)

0.8.0

Build & Packaging

  • Installed the Codex plugin during source builds so source deployments include the same Codex integration as packaged installs. (#1302)
  • Updated source build scripts for the sec-core install flow. (#1348)
  • Fixed system-mode source builds by placing uv-managed Python under the shared sec-core library directory and adding a system install smoke check. (#1400)

Code Scanner

  • Added sensitive file path rules for common agent credentials to block API key exposure. (#1401)

OpenClaw Plugin

  • Hardened OpenClaw deploy compatibility handling and covered deployment edge cases with unit tests. (#1358)
  • Added an OpenClaw plugin cross-version E2E matrix that validates packaged plugin loading, Gateway flows, policy behavior, and observability across supported OpenClaw hosts. (#1372)

Documentation

  • Added bilingual agent-sec-core user guide documentation and documentation maintenance rules. (#1311)
  • Documented OpenClaw plugin deployment, compatibility, and upgrade guidance. (#1370)

0.7.1

Prompt Scanner

  • Degraded scan-prompt to fast mode when model unready; rewrote DENY to WARN and enriched degraded reason with diagnostics. (#1258)

Skill Ledger

  • Clarified skill ledger fallback warnings and sanitized finding summaries. (#1240)
  • Tamed ledger reconcile noise and typed live-root skip errors. (#1232)

Security Observability

  • Added observability mapping for new pii_scan at before_tool_call & after_tool_call. (#1229)

0.7.0

Codex Plugin — Full security integration for OpenAI Codex

  • Added codex-plugin with code scanning, prompt scanning, skill ledger, and PII checking hooks. (#1074)
  • Supported packaging codex-plugin into RPM. (#1138)
  • Fixed codex-plugin paths in Makefile and CI for correct RPM install verification. (#1165)

Code Scanner

  • Added code-scanner LLM mode for AI-assisted security analysis. (#1108)
  • Added code-scanner static rules for expanded coverage. (#1033)

Prompt Scanner

  • Added L4 multi-turn intent detection with ollama model service. (#1060)
  • Routed prompt scan to daemon and added prompt model preload for reduced latency. (#786)
  • Controlled prompt scan call to use daemon by env variable. (#933)

Skill Ledger — Activation daemon and policy engine

  • Added Skill Ledger activation daemon for background integrity monitoring. (#857)
  • Added runtime activation resolver for skill trust decisions. (#826)
  • Added skill ledger activation policy for configurable enforcement. (#944)
  • Updated skill ledger activation and event contracts. (#983)
  • Updated Skill Ledger hook defaults and reconcile notify behavior. (#1086)
  • Aligned skill ledger hooks across all agent platforms. (#1135)
  • Resolved Skill Ledger FUSE and unmanaged roots handling. (#1141)
  • Fail-open unsupported Hermes skill ledger scenarios. (#1155)

Daemon & Telemetry

  • Added daemon service with systemd integration and RPM build support. (#1090)
  • Exposed SQL query endpoint at daemon for observability queries. (#1042)
  • Enhanced daemon logging including requests and jobs. (#871)
  • Added telemetry schema definition and SLS JSONL writer. (#977, #1008)
  • Passed agent_name to telemetry data for multi-agent identification. (#1032)
  • Added logging system for structured agent-sec-cli output. (#651)
  • Added security daemon socket fallback under /run/user/<uid> for user-scoped deployments. (#1129)

PII Scanner

  • Extended PII scanning coverage with additional pattern detectors. (#925)

Security Observability

  • Added session report command for post-session security summaries. (#703)

Sandbox

  • Converged sandbox trigger rules for consistent enforcement. (#979)

Adapter & Build

  • Added ANOLISA CLI component.toml for adapter manifest integration. (#1067)
  • Added systemd-rpm-macros as RPM build dependency. (#1156)

0.6.0

Self-Protection — Tamper-resistance for agent-sec-core itself

  • Added self-protect code-scan rules that block disabling/uninstalling agent-sec plugins on OpenClaw and Hermes. (#692)
  • Optimized self-protect rules in code-scan to eliminate false positives on prefix-matched plugin names and cover Hermes uninstall/rm patterns. (#710)

Prompt Scanner

  • Unified prompt-scan warning format across cosh-extension, hermes-plugin, and openclaw-plugin with structured fields (threat type, risk level, interception stage, model confidence). (#709)

Agent-Sec-CLI

  • Added daemon process for agent-sec-cli to amortize startup latency across hook invocations. (#677)

Adapter & Manifest

  • Added standalone ANOLISA adapter entry anolisa-for-openclaw to package sec-core OpenClaw adapter scripts and drive install/detect/uninstall via the adapter manifest. (#549)
  • Added Hermes adapter runner: refactored the OpenClaw entry into a target-agnostic anolisa-adapter-runner and added anolisa-for-hermes wrapper, with per-agent adapter directory layout under sec-core. (#617)
  • Centralized sec-core adapter manifest parsing across adapter scripts and moved the manifest under the cli package. (#617)

OpenClaw Integration

  • Normalized OpenClaw state directory handling: use OPENCLAW_STATE_DIR for adapter filesystem state, unset OPENCLAW_HOME when invoking the OpenClaw CLI, and aligned plugin install/list/uninstall handling. (#641)

0.5.0

PII Scanner — Personal information leak detection

  • Added PIIChecker scan CLI with text/file input, regex/validator-based detection, redaction, and security middleware integration. (#525)
  • Added PIIChecker hooks for cosh and OpenClaw with stdin-based input passing. (#539)
  • Added Hermes PII checker hook. (#556)
  • Fixed scan-pii module mode detection via subprocess. (#540)

Security Observability — Agent run metrics & posture insights

  • Added security observability schema, metrics definition, and CLI with jsonl writer for agent runs. (#488)
  • Added openclaw plugin for security observability. (#515)
  • Added cosh hook for security observability. (#528)
  • Persisted observability records to sqldb with CLI review command. (#544)
  • Added observability plugin for hermes. (#553)
  • Correlated security events with observability events and supported batch query. (#578)
  • Respected trace-id filter in count queries. (#595)

Hermes Plugin — AI Agent integration framework

  • Added hermes-plugin framework with abstract hook class and code scan capability. (#536)
  • Added Hermes prompt-scan capability. (#579)
  • Added Hermes PII checker hook. (#556)
  • Added Hermes skill ledger hook. (#565)
  • Added observability plugin for hermes. (#553)
  • Supported correlation context in hermes agent plugin. (#590)
  • Added hermes plugin install for rpmbuild and build from scratch. (#577)
  • Stabilized Hermes skill-ledger warning delivery for non-pass skill checks. (#600)

Correlation & Tracing Context

  • Unified caller tracing context across CLI, OpenClaw, and cosh with --trace-context JSON and SQLite schema v2. (#569)
  • Supported correlation context in hermes agent plugin. (#590)
  • Correlated security events with observability events. (#578)

Skill Ledger

  • Integrated code-scanner with skill-ledger for unified security assessment. (#505)
  • Updated skill ledger security interactions. (#529)
  • Made openclaw skill ledger approval configurable. (#575)
  • Added Hermes skill ledger hook. (#565)
  • Refined skill ledger scan workflow and aligned documentation. (#529)
  • Included skill-ledger e2e in install flows. (#573)
  • Fixed skill-ledger hook scope limitation. (#497)
  • Fixed managed skill dirs for discovery. (#510)
  • Expanded home paths for skill-ledger. (#596)
  • Hardened skill ledger recovery and key UX. (#575)

Code Scanner

  • Added code-scan requireApproval config for openclaw. (#560)
  • Added OpenClaw enableBlock hook policies. (#586)

Security Middleware & Event System

  • Fixed TOCTOU race condition at sqldb read path. (#546)
  • Made SQLAlchemy lazy import for non-DB subcommands. (#581)
  • Lowered frequency for SQL maintenance operations. (#546)

Prompt Scanner

  • Added Hermes prompt-scan capability via hermes plugin. (#579)
  • Fixed warmup detection from error-string matching to file-based check. (#500)
  • Fixed prompt text passing via stdin instead of argv. (#579)

Toolchain & CI

  • Added build-all support with local space install for sec-core. (#527)
  • Added hermes plugin install for rpmbuild and from-scratch build. (#577)
  • Included skill-ledger e2e in install flows. (#573)
  • Added adapter manifest for capability discovery. (#577)

0.4.0

Prompt Scanner

  • Prompt scanner hook now asks user on missing model instead of fail-open. (#463)
  • Added prompt injection detection benchmark dataset and evaluation toolkit. (#464)

Security Middleware & Event System

  • Refactored security_events SQLite storage to SQLAlchemy ORM with multi-table extensibility and typed repositories. (#459)

Skill Ledger

  • Fixed sign-skill auto-register config (exact awk match) and parse openclaw stdout unconditionally. (#445)
  • Unified XDG paths under agent-sec/skill-ledger vendor namespace. (#445)
  • Unified single-skill verify into structured result for consistent output. (#445)
  • Converted integration tests from subprocess to Typer CliRunner. (#445)

OpenClaw Integration

  • Registered plugin at openclaw gateway explicitly to support Gateway startup planning. (#446)

Refactoring

  • Removed deprecated agent-sec-core skill directory; aligned README and spec with agent-sec-cli workflow. (#454)

Toolchain & CI

  • Added coverage report for sec-core CI. (#431)
  • Enabled rpmbuild and e2e test CI for main branch. (#432)

0.3.0

Prompt Scanner — Multi-layer prompt injection & jailbreak detection

  • Added prompt injection/jailbreak detection scanner architecture with L1 rule engine (YAML-based) and L2 ML classifier (Prompt Guard 2). (#253)
  • Integrated prompt scanner into cosh hook and openclaw plugin with security middleware lifecycle. (#261, #294)
  • Added list-scanners command, improved CLI help, and made --scanner-version optional. (#284)
  • Added prompt scan summary and backend tests. (#294)
  • Added prompt-scanner skill definition. (#256)
  • Added model warmup, audit logging, and comprehensive documentation. (#253)
  • Stabilized batch scanning and verdict logic with thread-safe model loading. (#253)
  • Unified prompt scanner response to use "ask" instead of "block". (#341)
  • Added prompt-scanner e2e test suite and Makefile target. (#352)

Code Scanner — Static code security analysis

  • Added code scanner component with rule-based detection for obfuscation, permission abuse, and more. (#234)
  • Integrated code scanner into cosh hook (with ask decision support) and openclaw plugin adapter. (#234)
  • Added code scanner CLI entry, error codes, and unit tests. (#234)
  • Fixed code scan bugs and added e2e test. (#342)

Skill Ledger — Skill integrity tracking and signing

  • Added skill-ledger CLI with middleware integration for skill integrity verification. (#252)
  • Added skill-ledger skill definition. (#266)
  • Added skill-ledger cosh hook for PreToolUse and openclaw-plugin capability. (#292, #281)
  • Improved skill-ledger CLI and cleaned up imports. (#284)
  • Restructured skill-ledger config defaults and documentation. (#296)
  • Aligned skill-ledger tool name and added path validation. (#317)
  • Reworked skill-ledger status, output, and check signing. (#335)
  • Skill-ledger hook hardening, e2e suite, and posture integration. (#339)
  • Known limitation: skill directory resolution assumes dir name matches SKILL.md name field; see #381.

Security Middleware & Event System

  • Added security middleware framework with unified CLI entry point and metrics integration. (#121, #220)
  • Added sqldb writer & reader with query command at CLI interface for security event persistence. (#254)
  • Fixed cross-process event loss in SecurityEventWriter. (#226)
  • Applied corruption whitelist to stop false-positive DB rebuilds. (#338)
  • Added e2e test and fixed bugs revealed during testing. (#330)

Linux Sandbox

  • Added sandbox guard and failure handler hooks. (#362)

OpenClaw Integration

  • Added hook plugin for openclaw with integrated security scanning capabilities. (#242)
  • Added jq requires for openclaw hook package. (#370)

Cosh Extension Integration

  • Integrated with new cosh extension API and added builtin commands. (#302)

Performance

  • Lazy-load ML dependencies to speed up non-ML subcommands. (#318)

Toolchain & CI

  • Migrated Python toolchain to uv package manager and pinned Python 3.11.6. (#227)
  • Added sec-core RPM build CI and adapted nightly build pipeline. (#295)
  • Initialized code format check CI with python-code-pretty. (#229)
  • Added e2e test in RPM build CI. (#369)

Bug Fixes

  • Preserved seharden wrapper defaults. (#236)
  • Removed dynamic import at middleware router. (#277)
  • Improved missing loongshield guidance. (#289)
  • Fixed build errors. (#288)
  • Removed openclaw hook examples and fixed documentation. (#282)

0.2.0

  • Added Hardened skill signing pipeline and added .skill-meta layout. (#129)
  • Added Cargo.lock to version control. (#149)
  • Added make install-sandbox target. (#68)
  • Fixed bubblewrap version compatibility for --argv0 option. (#112)
  • Changed Refactor SKILL.md to executable protocol and align sub-skills. (#130)

更新日志

未发布

修复

  • agentsight-enforcer 升级后可自行恢复:旧版本遗留的 enforcement 布局无法被新二进制复用时,现在会自动检测并替换,文件删除防护与 enforcement 健康检查不再需要人工清理旧布局才能恢复。(#3445)

0.13.0

新功能

  • 新增 GET /api/preferencesGET /api/preferences/export,从近期会话中识别用户的工作习惯(语言偏好、先出方案再动手、要求补测试、纠正模式、常用工具倾向),并通过 /api/preferences/turns 返回本次分析所依据的用户输入。分析在请求时实时计算,Linux 读取 genai_events,其他平台读取已采集的轨迹,因此不产生需要迁移或会过期的派生数据。
  • 新增 GET /api/trajectories/steps,按派生类别(user_inputsystemagent_messagethinkingtool_calltool_result)检索 ATIF 步骤,并随每个命中返回其上下文步骤。类别是多标签的:同一个 agent 步骤可能同时包含消息、推理、工具调用与观测结果。
  • 新增可复用轨迹标注体系:为轨迹打上可复用分诊标签、支持人工裁定标签、新增复用标签评审页,并将搜索限定为提供已标注的轨迹历史。
  • 为 5.10/6.6 内核的 file-delete-guard 新增 inode guard,含域隔离、违规事件与启动清理。

修复

  • macOS trace 路径初始化日志,使轨迹采集失败能够暴露而非被静默丢弃。
  • 新增 token-plan provider 预设。
  • 修复 enforcer ringbuf 消费者在 mmap 推进后的 fd 失效问题。
  • traces 列表中移除 trace_id 别名。(#3261)
  • 主日志器遵循 RUST_LOG 正则。(#3186)
  • 命名空间 PID 解析为宿主 PID,并做 init-ns 自检。(#3041)
  • 先创建 conversation_id 列再建其索引。(#3378)

0.12.1

破坏性变更

  • 内核事件时间戳对齐:BPF 单调时钟改与实时时钟校准,不再基于容器启动时长。当时处于排队中的事件其历史墙钟时间无法重建;已持久化的记录不受影响。

新功能

  • 支持采集 cosh-ng 的 rustls 明文,并按名称挂载 cosh 明文探针。(#3191)

修复

  • token 总量统计不再重复计入缓存 token。(#3081)
  • 静态 SSL 特征扫描改为流式处理。(#3087)
  • SSL uprobe 重挂载 TTL 缩短至 30 秒。
  • 拼接被分片的 HTTP 响应。
  • 收到 SSE 结束标记时完结 h2 流,并正确统计通过请求头而非消息体开关声明的流式调用。(#3147)
  • 合并长时间空闲后恢复的调用所产生的重复记录。
  • 启动时数据库清理遇锁重试,并识别启动恢复中的结构化 oom-kill 信息。(#3135)
  • 识别带 --max-old-space-size V8 参数启动的 OpenClaw 网关。
  • 补充 agentsight-enforcer 日志。

0.12.0

新功能

  • 新增 --no-ebpf 仅轨迹采集模式,支持 eBPF 不可用的环境。
  • 支持 DashScope/Bailian 原生协议。(#2954)
  • 新增 Kubernetes DaemonSet 打包。(#2976)
  • 监控 Agent 资源使用情况。(#3005)
  • 因果归因基于确定性、可复核的证据进行判断。(#3011)
  • 新增仅依赖 LSM 的 Agent 文件删除防护 profile,并上报其能力。(#2979)
  • 新增 vendored ABI guard、一键审计防护和 Dashboard 联动。(#2775)

修复

  • 数据库清理跳过 VACUUM,避免触发 cgroup OOM。(#2916)
  • 合并跨事件的 Anthropic SSE Token 用量。(#2920)
  • 数据目录位于 overlay 存储时输出告警。(#2977)
  • 通过可配置 procfs 根目录解析 PID。
  • 按 session 统计 conversation 数量。(#3014)
  • 为因果归因保留 tool 结果。
  • 同步 ActPlane policy delta,并防止 enforcement fail-open。(#2979, #3016)
  • 拒绝超长 enforcement 文件路径,避免静默截断。
  • 从 systemd cgroup driver 布局提取容器 ID。(#2997)
  • 识别现代 OOM-kill dmesg 格式。(#3001)
  • 在初始化 BPF cap_task 状态前解析 PID namespace。(#3022)
  • 将 Dockerfile RPM 包选择固定为 TARGETARCH。(#3025)

文档

  • 补充 --no-ebpf trace 模式文档。

0.11.2

新功能

  • 展示 Agent 历史活动记录。(#2817)

修复

  • SSL uprobe 被内核静默注销后按 TTL 自动重挂载,抓包可自愈,无需重启。(#2792)
  • agentsight 被 OOM 杀死后自动重启。(#2925)
  • 探针事件通道按字节数限制容量,避免事件洪峰时内存激增。(#2925)
  • CLI 与 dashboard 与文档对齐,并去除指南侧边栏重复项。(#2899)
  • 数据库超限时按行比例裁剪。(#2872)
  • 中断事件数据库裁剪至容量上限。(#2823)
  • 保持 binding 接口状态一致。(#2794)

文档

  • AgentSight 用户指南扩展为任务导向页面。(#2825)

0.11.1

修复

  • 中断事件按 session/conversation 拆分时保留无 session 的记录,保证分组计数与总数一致。(#2796)
  • 新增 Bun SSL_do_handshake prologue 模式,支持捕获 Claude Code(Bun 构建,>= 2.1.113)的 LLM 流量。(#2782)

0.11.0

变更

  • 为 RPM 打包发布提升版本号,相对 0.10.3 无功能变更。

0.10.3

新功能

  • 会话列表新增语义搜索。(#2733)
  • 新增 DeepSeek Harness 的 dsh 插件。
  • Agent 发现按类型分组。
  • agent-health 新增 filtered_count。
  • 新增 /api/docs 路由清单。
  • Agent 健康卡片展示 LLM latency 指标。(#2586)

修复

  • 移除 savings 上硬编码的负号。(#2754)
  • 将 analyzer 调用归类为 internal。(#2755)
  • savings 比率以分数形式返回。(#2732)
  • 循环检测中匹配 tool 参数。(#2719)
  • 探测伴随组件以提供 dashboard 能力。(#2696)
  • graceful reap 仅作用于 worker agent。
  • dashboard 中将 no_port gateway 计为健康。(#2694)
  • 全新安装时打印 deadloop 提示。
  • SIGHUP 时重新加载配置。
  • 审计事件补齐 provider 与 session_id。
  • 将 decompress fallback 降级为 debug 日志。
  • Agent 发现中排除 sftp-server。
  • 修正 copilot cmdline 规则拼写错误。

0.10.2

新功能

  • 对 sqlite 存储实施大小上限。(#2644)
  • Dashboard UI 支持中英双语。(#2612)
  • 新增 raw 打包,用于不可变发布产物。(#2550)
  • 新增 LLM latency 指标 API。(#2578)

修复

  • latency agent 匹配不区分大小写。(#2590)
  • 处理 latency 指标 CI 后续问题。(#2583)

0.10.1

新功能

  • 初始化 dashboard i18n,按浏览器首选语言匹配。
  • 在 agent 发现规则中新增 agentscope 框架。
  • 精简组件接入文档并澄清服务启动方式。

修复

  • 将 pause_turn 视为正常 SSE 结束。(#2320)
  • 在 SSE continuation delta 之间保持 tool_call 名称。
  • 在 observer namespace 中报告 pid。(#2360)
  • 校验 enforcer RPM payload、保留 RPM staging 目标,并抑制重复的 enforcer 错误。
  • 将 extractor 错误包装为 JSON envelope,并按变体分类 store 错误。(#2417, #2418)
  • 去重 unavailable 状态并优化 dashboard metadata 同步。

0.10.0

新功能

  • 新增 case containment 生命周期,包含策略交接、无空窗替换、专用 API 与 Dashboard 视图。
  • 新增 system audit 协议、事件存储、Dashboard,并将 audit service 提取为独立 crate。
  • 新增 ActPlane 风险执法,包含 enforcer 服务、硬化文件控制、安全生命周期与风险执法 Dashboard。
  • 将 Codex rollout JSONL 转换为 ATIF,并覆盖 Codex routing 与 tool calls 测试。
  • 在 raw HTTPS 事件上报告 process metadata,并在通用 envelope 中携带。

修复

  • tool-call stop 时保持 turn 打开,并将 user_message_count 加入 turn.id bucket key。
  • 流式解码分片 zstd SSE 响应。
  • 提升 QwenCode trace 数据准确性,并在 agentsight config 中新增 QwenCode allow rules。
  • cosh 重启后保持 session。
  • 映射 cosh session 临时文件写入。(#2080)

0.9.1

新功能

  • 重做 optimization Dashboard 视图,新增基于 detour 的成本浪费分析。
  • 将 agent health 与 interruptions 移至专用 Dashboard 页面。

修复

  • 为 OpenAI(prompt_tokens_details.cached_tokens)和 DashScope(顶层 cached_tokens)响应提取 cache token,并从 cosh-ng adapter prompt 模板提取真实 user query。
  • 捕获通过绝对路径或 node wrapper 启动的 Claude Code。
  • 正常退出时跳过 agent_crash 检测,并在 agent 退出时 flush 延迟的 GenAI 事件。
  • 对非 LLM 路径跳过消息解析。
  • 加密 optimization config API key。
  • 展示已知 agent 规则。

CI

  • 将 eBPF 构建固定到 clang 15,并使用专用 runner pool。

0.9.0

新功能

  • 新增 optimization 分析工作区、API、持久化分析历史,以及 accuracy/performance/cost 审查 Dashboard 页面。
  • 新增 Qoder 轨迹采集、ATIF v1.7 导出、批量分析工具,以及带拓扑视图的 subagent 轨迹导航。
  • 新增 CoshNG 命令行发现规则,并通过命令行上下文归一化 LLM 事件归属。
  • 新增六种中断类型,以及对不可解析 LLM HTTPS 流量的回退捕获。

修复

  • 修复 Anthropic SSE 解析、system prompt 注入与 cache token 核算。
  • 修复 ATIF 批量输出以使用共享 ATIF v1.7 schema,并移除过期 v1.6 路径。
  • 修复 optimization 与轨迹采集的边界情况,包括过期 conversation anchor 和 syscall tracepoint probe attach。
  • 修复 Dashboard 空状态、错误提示措辞、auth loopback 处理与 session 导航行为。
  • 将 raw HTTPS FFI 输出改为 opt-in,并对 OpenAI 和 Anthropic 流跳过重复 SSE 消息解析。

变更

  • 将 optimization 维度分析归组到 per-target run root 下,并将并行 LLM 调用表示为 ATIF subagent 轨迹。
  • 精简并门控默认 SLS 输出,除非显式启用否则不上传 trace 内容。

0.8.1

修复

  • lock().unwrap() 替换为 poison-safe unwrap_or_else 以恢复 mutex。
  • 将 SSL 库归属从 aws-lc/BoringSSL 更正为 OpenSSL 3.x。
  • 将 Claude 进程名加入 BoringSSL 分类。
  • schema 迁移时保留用户配置而非覆盖。
  • 不再自动覆盖无效 JSON 配置;在 ns pid helper 中记录进程 pid 而非线程 tid。
  • 将高频事件日志从 debug 降为 trace 以减少噪声。

测试

  • 扩展 handlers、interruption store 和 token store 的单元测试。
  • 为 mutex unwrap_or_else 变更新增 poison-recovery 测试。

0.8.0

新功能

  • 新增基于 Dashboard token 的认证,auth 配置仅限文件。
  • Dashboard 中新增 LAN/公网 IP 地址展示与中文输出。
  • Dashboard 新增 ECS 安全组指南与 metadata 集成。
  • 新增 conversation grader API 与 Dashboard 控制。
  • 新增 COSH_SESSION_ID 导出,用于 per-run session 关联。
  • 通过 schema_version 自动升级过期配置。

修复

  • 修复 Codex SSL 捕获与 SSE token 提取。
  • 修复误报中断信号。
  • 持久化 idle 流与 tool 结果以避免快照丢失。
  • 显式检测 SSE 流错误。
  • /health/metrics 和 server auth 限制为 localhost/仅文件配置。
  • 从默认构建依赖中移除 hf-hub git fork。
  • 修复 IMDSv2 token 获取、probe deadline 和 ECS metadata 去重。
  • 修复 RPM 构建以将 agentsight.json 复制到 source tarball。
  • 处理 clippy single_match、嵌套 if-let 和架构边界问题。

测试

  • 新增 Dashboard mock HTTP 和单元测试以满足覆盖率门控。
  • 新增 build_outputpublic_address 测试。
  • 将 probe 测试标记为 #[ignore] 以适配 CI ECS runner。

0.7.1

修复

  • 改进严重级别标签与 agent 侧边栏 UX。
  • 在 summary 命令中展示所有 verdict。
  • 同步 component.toml 版本与 package 版本。

0.7.0

新功能

  • 新增 Codex CLI 适配,采用三级 SSL probe attach(符号表 → 字节模式 → offset 表)与跨 chunk SSE 续接 buffer。
  • 新增安全可观测性 Dashboard 与 server proxy,用于 agent 威胁可见性。
  • 新增内存优化,包含有界事件 buffer、feature flag(features.*)和可配置运行时限制(runtime_limits.*)。
  • AgentsightLLMData 中新增 container_id,用于容器级归属。
  • 从进程环境变量和请求 metadata 派生 session_id,而非消息内容。
  • 在 GenAI 语义事件中新增 call_kind 分类(chat / completion / embedding / tool_use)。
  • agentsight audit CLI 新增 --exclude 过滤以降噪,并在 audit 输出中展示非流式 LLM 调用。
  • 新增统一 agentsight summary 命令用于一次性状态概览。
  • 增强 token 节省页面,包含基线对比、策略分解、行级 diff 高亮与优化建议。
  • 通过 SLS Logtail exporter 上传 skill metrics。
  • 改进 agent health UX:角色徽章(P1/P2)、TTL 清理、进程族分组与 Session ID 帮助提示。
  • 从 health API 过滤客户端进程以减少 Dashboard 噪声。
  • 新增 anolisa component contract 用于 RPM 生命周期集成。

修复

  • 修复 kernel 5.15 上 sslsniff BPF verifier 拒绝,并新增 BPF 加载测试。
  • 修复 traced_processes BPF map 泄漏导致的长时间运行后 uprobe attach 失败。
  • 在 detach 时将 inode 保留在 traced_files 中以防止重复 uprobe Link
  • 解码压缩(zstd/brotli)SSE 流,使 Claude Code 等 agent 被完整捕获。
  • 加固压缩 SSE 解码以处理部分 chunk 边界。
  • 从非流式和 HTTP/2 响应中提取 token 用量。
  • 修复 udpdns 和 tcpsniff probe 中的 namespace PID 使用。
  • 在容器化环境中为 uprobe attach 剥离 /proc/{pid}/root 前缀。
  • 实现分级 SSL 和 tcpsniff ring buffer 预留以减少事件丢失。
  • 在 filewrite/udpdns BPF probe 中先 clamp 再 mask;将 stdout payload 上限设为 MAX-1
  • 将 cgroup 门控改为 OR 语义,并新增 trace_cgroup FFI 接口。
  • 收紧 SSE 截断检测,并为延迟 GenAI 调用写入 pending 行。
  • 在 SLS exporter 模式选择中尊重动态 sysom 路径;用 logtail_path 过滤器替换已移除的 sysom_logtail_path
  • 在启动时校验 ring buffer size 为 2 的幂。
  • 将 feature flag 和运行时限制接入实际运行时代码路径。

重构

  • genai/builder.rs 拆分为 4 个聚焦模块,genai.rs 拆分为 5 个子模块。
  • 将共享 BPF map 打包进 SharedMaps 以减少重复。
  • 提取后台线程模块并支持 stop-signal。
  • if-let / ? 模式替换剩余 unwrap() 调用。

CI 与质量

  • 新增 fmt、clippy、单元测试覆盖率和架构边界检查 CI 门控。
  • 新增 clippy.toml + cargo-deny 用于 lint 和供应链审计。
  • 新增架构边界检查脚本(check-arch-boundary.py)。
  • 为 FFI、unified orchestrator 和 storage 模块新增 scoped AGENTS.md。
  • 定义 Footprint Ladder 用于代码表面增长控制。
  • 新增 agentsight-code-reviewpr-body develop-skills。

0.6.1

  • 在 trace 模式中新增实时 agent_crash 检测。
  • 新增 OOM 崩溃检测。
  • 新增 cgroup 级事件过滤,兼容 v1/v2。
  • 通过 per-user home 扫描支持 QwenCode skill 发现。
  • 通过动态路径支持 SLS Logtail 激活可逆。
  • 支持通过 token-collector 开关将 ilogtail SLS_LOG_PATH 桥接到 config。
  • 默认 traceEnabled 设为 false,以默认从 SLS 中丢弃对话内容。
  • traceEnabled=false 时从 SLS 上传中丢弃 gen_ai.system_instructions
  • 将 session_id 和 conversation_id 的派生从 message 内容改为 response_id。
  • 修复 CJK deadloop 检测、kill() 错误检查和 SIGKILL 升级。
  • 通过 VACUUM 优化修复 SQLite 读写竞争。
  • 修复 rpm-build.sh agentsight 构建失败。
  • 修复重复 new+start 时的 allow log path 重新初始化。

0.6.0

  • 新增失控 agent 进程的 deadloop 检测与自动 kill 机制。
  • 新增 retry storm 检测和 /metrics 中断计数器。
  • 新增 BPF 层 HTTP 协议过滤和针对未知 IP/port 目标的通配捕获(*)。
  • 新增敏感消息字段的客户端混合加密。
  • 新增 traceEnabled 配置开关,由 SLS 上传层强制执行。
  • 新增通过 DNS 解析到 tcpsniff BPF map 的 HTTP domain 规则。
  • 新增默认 DashScope HTTPS 规则和 anolisa_release 模块。
  • 新增 tcp_targetsinput_delta 配置的 FFI 接口。
  • 为 kernel 6.0+ 的 UDP DNS probe 新增 CO-RE 兼容性。
  • 通过 config 热加载支持运行时 SLS logtail 路径。
  • 扩展中断类型并新增 logtail 导出。
  • 将 config 重构为 https/http 规则。
  • 重构按 tool_use_id 查询 stats.db 并统一 savings 展示。
  • 重构从 agentsight.json 加载加密公钥。
  • 修复 HPACK Huffman header 解码。
  • 修复 BoringSSL probe attach、FFI 事件投递和 chunked-body panic。
  • 修复在 event-stream 响应中保留初始 SSE chunk。
  • 修复 c_char / BPF comm 可移植性(i8 vs u8)。
  • 移除死代码和已废弃 API。

0.5.0

  • 新增 Claude Code 支持,包含 BoringSSL 的 SSL probe attach、Anthropic SSE thinking/tool_use 内容块,以及基于 message.id 的 session 关联。
  • 新增 tcpsniff probe 用于明文 HTTP 流量捕获,支持可配置 IP/port 过滤(默认禁用,tcp_targets 为空)。
  • 新增基于 User-Agent 的 agent 检测,带 comm 回退以简化 agent 匹配。
  • 新增 UDP DNS probe 用于 agent 发现(替代 TLS SNI probe),QNAME 解析移至用户态。
  • 新增 TLS SNI probe 模块,并将发现重构为 config 驱动规则。
  • 新增用于已建立 LLM API 连接的连接扫描器。
  • AgentsightLLMData FFI 结构中新增 tools 字段,作为原始 JSON 透传。
  • 在 BPF traced 进程过滤和事件发射中新增容器 PID namespace 支持。
  • 新增 agent 匹配规则,并将 BPF ring buffer 降至 32MB。
  • 在 SLS 日志中新增 uid 字段,使用 OnceLock 缓存和启动校验。
  • 支持基于 profile 的安装。
  • 修复 LLM data 中 duration_ns 计算。
  • 修复进程退出时 SSL probe 的过期 inode 清理。
  • 通过移除 udpdns.bpf.c 中的嵌套 #pragma unroll 和在旧内核上 mask payload_len,修复 BPF verifier -E2BIG 问题。
  • 修复 Hermes agent 架构的 skill 提取。
  • 修复 OpenClaw matcher 中 Node.js process.title 变更处理。

0.4.0

  • 新增分片 SSL write 的 HTTP/1.1 请求 body 重组。
  • 新增基于 cosh 文件系统的 skill metrics 分析。
  • 新增 GenAI 事件的 SLS 上传和 Logtail 文件 exporter。
  • 新增 hermes agent matcher 用于 LLM 进程发现。
  • 在 SSL sniffer 中检测 uv Python 静态 OpenSSL。
  • 移除基于 AK/SK 的 SLS 直接上传,保留 Logtail 文件导出。

0.3.1

  • 修复简化 agent_crash 检测和修复多进程去重。(#411)
  • 修复 audit CLI db 路径使用 SqliteConfig。(#399)
  • 修复在 agent health UI 隐藏 Cosh 并移除 keepalive 支持。(#401)
  • 修复 AGENTS.md 中的 API endpoint 表。(#397)

0.3.0

  • 新增中断检测系统,带 drain 机制和 Dashboard 集成。(#315)
  • 新增 token 节省页面和 API endpoint 用于优化可视化。(#310)
  • 新增复合 token 节省和请求计数追踪。(#320)
  • 新增带 cbindgen 头文件生成的 C FFI API。(#306)
  • 新增 filewatch 和 filewrite eBPF probe 用于文件访问监控。(#308, #309)
  • 支持 cosh 的 SysOM AK/SK GenAI 捕获。(#305)
  • 使用 LLM API response_id 作为 trace_id 并新增 conversation_id 字段。(#304)
  • 从 agent 自身 session 通过 ResponseSessionMapper 解析 session_id。(#303)
  • 修复 interruption CLI 并对齐 conversation_id 命名。(#318)
  • 修复通过支持 snake_case response_id 的 cosh session_id 识别。(#307)
  • 修复 token savings 复合中的错误 tool call id。(#316, #317)
  • 修复标准化 call_id,新增 tool_call_ids 列。(#319)
  • 修复 genai builder 和 storage 中的 session_id 和 response_id 映射。(#321)
  • 修复对话列表中的 token savings 展示。(#322)
  • 修复按 pid 缓存 agent name 用于死进程解析。(#358)
  • 修复移除自定义 db 路径并使用默认路径。(#359)
  • 支持 CI 中 nightly docker 镜像构建。(#302)

0.2.2

  • 支持以 AgentSight 服务启动 backend-server 用于 Dashboard。
  • 修复 Dashboard 前端针对多种 display-size 的动态宽度。

0.2.1

  • 为 agent 发现向 CoshMatcher 新增 /usr/lib/copilot-shell 路径。(#190)
  • genai_events.db 新增 200MB 大小限制以防止无限增长。(#211)
  • 移除返回错误数据的 /api/stats endpoint。(#197)
  • 从 HttpRecord 提取 audit 并过滤非 LLM 调用。(#196)
  • 在 token 查询中使用 --compare flag 时始终展示对比数据。(#194)
  • 修复 README 文档中错误的 discover 命令。(#191)
  • 移除 breakdown 命令并保留 token 消耗注释。(#193)
  • 在 systemd service 文件中用 MemoryMax 替换已废弃的 MemoryLimit。(#181)

0.2.0

  • AgentSight Dashboard Web UI,带实时监控界面。(#74)
  • Agent health 监控,带离线告警和卡死进程 Dashboard 重启。(#158)
  • 从 Dashboard 一键导航到 ATIF trace 分析页面。(#116)
  • /metrics endpoint,暴露标准 Prometheus 格式数据。(#134)
  • 支持 HTTP 2.0 协议。(#147)
  • 支持构建 RPM 包。(#166)

变更日志

本文件记录 ANOLISA Blaze 的所有重要变更。

格式基于 Keep a Changelog, 版本号遵循 语义化版本

[未发布]

[0.3.0] - 2026-07-22

新增

  • 通用 StorageProvider trait,支持可插拔存储后端架构。
  • FileStorageProvider:默认文件存储后端,适用于开发和标准部署。
  • [storage] 配置段:providerpool_sizepreforkflush_interval 字段,均有向后兼容的默认值。
  • GET /v1/health 现返回 storage_pool 状态(ready/capacity/pending)。
  • BackendSpawner trait 扩展 restorepauseresumecreate_snapshot 方法(默认返回不支持,为后续快照工作流预留接口)。

[0.2.1] - 2026-07-21

变更

  • 品牌重塑:组件从 Anvil 更名为 Blaze。二进制:blazed,配置路径:/etc/anolisa/blaze/,状态目录:/var/lib/blaze/
  • Firecracker vCPU 配置现已校验上限(1–32)。

新增

  • 组件已注册到项目清单(根 README、AGENTS.md、PR 模板)。
  • VM 资源配置回退链已在 README 中说明。

[0.2.0] - 2026-06-30

新增

  • FirecrackerSpawner:支持 Firecracker microVM 后端,daemon 启动时自动探测并选择最强隔离。
  • TCP 远程 API:可配置 [listen].http_addr 开启 TCP 监听(端口 14159),供平台远程调用。
  • 优先级后端选择:build_spawner() 按 firecracker → linux-sandbox → mock 优先级自动选型。
  • Storage section:[storage].images_dir 统一管理 vmlinux/rootfs 查找路径。
  • 打包骨架:dist/anvil.service(systemd unit)+ anvil.spec(RPM)+ tmpfiles-anvil.conf
  • [backends] 配置段,直接映射后端二进制路径。

[0.1.3] - 2026-06-24

变更

  • sandbox 进程现在运行在完整 namespace 隔离中(PID、网络、文件系统)。

[0.1.2] - 2026-06-22

新增

  • daemon 现在管理 sandbox 进程生命周期:创建时自动启动,销毁时自动终止。
  • backend 二进制不可用时优雅降级(便于开发环境使用)。

[0.1.1] - 2026-06-20

新增

  • Policy 校验在 sandbox 启动前拒绝不安全的配置。
  • osbase sandbox uninstall 安全协调(防止移除正在使用的 backend)。

[0.1.0] - 2026-06-18

ANOLISA Anvil 首个骨架版本。

新增

  • 通过 HTTP API 创建、列出、查看、checkpoint(仅状态转换)、reset、销毁 sandbox。
  • 策略驱动的 backend 选型:指定 workload class 即可自动匹配合适的 sandbox 类型。
  • Warm pool:预创建 sandbox 随时分配,可配置 min/target/max 容量。
  • 模板共享:多个 sandbox 共用一份 base 内存镜像,降低单实例内存开销。
  • Prometheus metrics 端点,供监控系统采集。

更新日志

本文件记录 cosh-ng 项目的所有 notable changes。

格式基于 Keep a Changelog,并遵循 Semantic Versioning

[未发布]

[0.26.0] — 2026-09-23

新增

  • Enhanced Bash 宿主启动的登录会话在 Bash 4+ 上具备真实 login 身份:shopt -q login_shell 返回 yes、$0-bash,并读取 /etc/profile~/.bash_profile,与原生 bash -l 登录一致;设置 shell.login_identity = false 可回退旧行为,Bash 3.2 或能力探测失败时也会自动回退 (#3358)
  • cosh-ng 现可在 Intel Mac 上安装:raw 后端新增 macOS x86_64 预编译产物(最低支持 macOS 11.0),公开安装脚本可识别 Intel Mac,不再直接报错或回退到 ARM 包 (#3448, #3449)
  • cosh-cli checkpoint recover 现在支持在原始工作区路径已不存在的情况下恢复被中断的初始化,恢复提示通过 meta.warning 返回 (#3356)

变更

  • 诊断日志默认级别由 warn 调整为 info~/.copilot-shell/logs/cosh-{shell,core}.log.<date> 默认记录 shell/core 启动、core 派生与错误收敛点等此前仅在界面中可见的事件;显式设置的 COSH_LOGRUST_LOG[logging] level 依然优先生效,debug: true 会把有效级别提升到 debug (#3331)

修复

  • 修复 auto 模式下经 rtk 包装的只读命令(如 find /tmp -name '*x*' 2>/dev/null 被包装为 env TOKENLESS_* /usr/bin/rtk …)被误判为需要审批的问题:判定时剥离包装层、执行时仍使用包装形式以保留 RTK 输出压缩,行为出现偏差时回到审批卡片 (#3436)
  • 修复在空工作区创建 checkpoint = on 任务并对接旧版 daemon 时失败却没有任何说明的问题:现在会说明未生成快照的原因,并给出升级 ws-ckpt、添加文件后重新提交或改用 checkpoint = off 的明确指引 (#3437)
  • 修复切换任务快照成功后新启动的 Core 与 Codex 任务仍使用旧工作区视图、需要重启 Gateway 的问题:现在刷新后的工作区立即生效,刷新失败时新启动按 fail-closed 拒绝执行 (#3438)

[0.25.0] — 2026-09-20

新增

  • 托管任务(Managed Tasks)现已贯通端到端流程:通过引导式 /task 表单提交持久化的 Core 或 Codex 任务、选择 checkpoint 策略、断线重连后查看进度,并经由 Gateway 受控的恢复流程安全地预览、对比与切换任务自有快照 (#2911)
  • /agent 内新增 slash 命令发现:在 Composer 中输入 / 可按前缀过滤候选命令、上下浏览并 Tab 补全,提交的命令经由既有处理器执行并保留确认卡片 (#3224)
  • Provider 首次配置现已自动化:根据模板类型与已有配置推导出无冲突的默认名称;ECS RAM Role 凭据通过有界、可取消的探测自动检测并提交,无需人工确认 (#3298)
  • 仅将 stderr 抑制到 /dev/null 的只读命令(如 find /tmp -name '*x*' 2>/dev/null)在 auto 模式下不再需要审批 (#3208)

变更

  • 已声明的 [[hooks.PreToolUse]] 配置 Hook 现在默认生效,不再需要设置 hooks.enabled;显式禁用的 Hook 会给出警告并在扩展注册前移除;Hook 空输出仍默认阻断工具调用 (#3330)
  • Enhanced 会话默认不再在提示符上方打印所有权状态行(/),保持 shell 原生提示符外观;如需恢复可设置 shell.status_symbols = trueCOSH_SHELL_STATUS_SYMBOLS=1。开启后符号单独占一行发布,窄终端编辑不再丢失 CJK 字符或光标错位 (#3345, #3254)

修复

  • 修复指向 /proc、/dev、/sys 的字面路径穿越拼写(如 /../proc/version)可绕过 readonly 安全检查的问题:路径先做词法归一化再匹配拦截清单,合法路径不受影响 (#2708)
  • 修复带引号的 /dev/null 重定向目标(如 2>"/dev/null")被误分类为文件写入、导致审批卡片理由显示错误的问题:现在按空重定向分类,与无引号形式行为一致 (#2710)
  • SysOM 端点解析现在优先选择可达的 VPC 内代理,无公网出口的 ECS 实例因此可以访问 SysOM;通过 COSH_SYSOM_ENDPOINTsysom_endpoint 配置的显式覆盖保留系统代理 (#3188)
  • 修复名称中仅包含 HOOK: 子串的中风险工具请求被误分类为 Hook 请求的问题:审批卡片现在提供标准操作而非 Hook 操作集 (#3248)
  • 修复 token-plan 网关在模型查询路由返回 HTTP 400 时,有效凭据无法通过 /auth 保存的问题;仅提供模型列表的 provider 仍按原路径拒绝无法验证的凭据 (#3276)
  • 修复 zh-CN /help 面板两处文案:Registry 分组标题已汉化,/agent 摘要措辞更正;en-US 输出不变 (#3363)
  • 修复 RPM 安装/擦除脚本对 /etc/shells 的管理不安全问题:cosh-ngcopilot-shell 互换(yum swap)时不再丢失替代方仍需要的登录 shell 注册行;更新改为原子操作并保留文件元数据;安装期失败不再静默 (#3367)

[0.24.1] — 2026-09-09

修复

  • 修复 TLS 库切换后 agentsight 通过字节码匹配采集 LLM token 在 Rust 编译器升级后静默失效的问题:cosh-core 现导出命名探针符号,agentsight 按符号名挂载,编译器升级不再导致采集中断 (#3156)

[0.24.0] — 2026-09-08

新增

  • 在 Enhanced Assisted Zsh 会话中,含斜杠、空格前缀以及汉字开头的路径提示现在会路由到 Agent,而不再漏给 Zsh 行编辑器;普通 shell 输入在路由判定完成后会原样返回 Zsh (#3004)
  • Tab 键会在处理后续输入之前交还给 Zsh 行编辑器,自定义 Tab 组件因此可以正常工作;保留的输入会自动重放而无需再按一次键,用户的 trap、按键绑定、历史记录与提示符状态都得到保留 (#3004)
  • 默认 Bash Cosh 会话现在会加载登录配置新增的 PATH 目录,因此通过登录配置安装的命令在新终端中即可使用;设置 COSH_SHELL_BOOTSTRAP_PATH=0 可关闭此启动检查 (#3050)

修复

  • 修复使用花括号形式的 shell 参数替换(如 ${parameter#pattern})拼接 Cookie 头时可能绕过敏感信息拦截的问题:这类内容不会写入原生 shell 历史;遇到嵌套语法歧义时,整条命令都会脱敏 (#3004)
  • 修复名称中带斜杠的 Zsh 函数或别名被误判为不存在的文件路径、因而被路由给 Agent 的问题:这类命令现在仍由 shell 原生执行 (#3058)

[0.23.0] — 2026-09-02

新增

  • /hooks 面板现在逐条列出每个 Shell Hook 的 ID、来源与信任状态,与 Agent Hook 的展示方式保持一致 (#2999)

变更

  • cosh-ng 不再依赖系统 OpenSSL 运行时:HTTPS 改用纯 Rust TLS 栈并继续信任宿主机系统证书库,Linux 安装不再需要 openssl-libs / openssl1.1 系统包,macOS 源码构建也不再要求 OpenSSL 头文件 (#3030)

修复

  • 秘密脱敏现在按词边界识别:sk-hynixnpm_package_version 等普通文本在本地证据中保持可见,而紧邻 CJK 文本的短凭据以及结构化的 Cookie/Bearer/JWT 形态,无论经由哪种 shell 或入口路径产生,都会被一致地排除出原生历史并在日志中脱敏 (#2996)

[0.22.3] — 2026-08-31

修复

  • 修复损坏或未闭合的终端控制序列导致后续输出无法显示、命令边界识别中断的问题:超出上限的片段会被丢弃,解析会在下一个有效标记处自动恢复 (#2967)
  • 修复预编译 cosh-ng 包在 Ubuntu 24.04 等较新发行版上安装失败的问题:预编译产物改为内置 OpenSSL,不再依赖这些系统已不再提供的 OpenSSL 1.1 运行时库 (#2982)
  • 因隐私保护而未写入 Bash 历史的自然语言提示词,现在召回并重新提交时原样保留输入内容,不会被误交给 shell 执行,也不会在召回过程中丢失;换行的提示行不再在下一个提示符处留下残留内容 (#2983)
  • 修复成功命令之后紧接着输入未知命令时丢失失败洞察的问题:命令未找到事件现在会正确关联到当前输入,诊断信息照常展示 (#2983)
  • 修复提示符重绘后辅助标记重复或缺失的问题:代理交互、取消操作或终端宽度变化引起的重绘,每个提示符行现在都恰好保留一个辅助标记 (#2983)

[0.22.2] — 2026-08-28

修复

  • 经审批并交接给原生 shell 执行的 Bash 工具命令,现在在终端中显示审批通过的命令本身,而不再显示内部包装行,在 Bash 4.4 的逐段重绘终端上同样如此;命令执行、审批、历史与退出状态保持不变 (#2949)
  • 直接输入、上箭头召回或在窄终端上输入的 slash 命令,现在重新在结果面板前恰好显示一次;内部哨兵行依然不会出现在终端输出、历史与日志中,敏感的 slash 输入也不再被展开进 Bash xtrace 输出 (#2955)
  • 包含文件路径、被路由给 Agent 的自然语言提示词会以请求通知的形式保持可见,即使模型的第一个响应事件是工具调用,原始请求也不会从屏幕上消失;敏感输入将作为整字段脱敏 (#2953)
  • 外部中断信号发送给 shell 进程时,父终端不再停留在 raw 模式:终端设置会被恢复,调用方仍能观察到原有的信号退出状态 (#2968)

[0.22.1] — 2026-08-28

修复

  • 原生 Bash 中执行精确 slash 命令后,终端不再显示内部的 builtin true __cosh_slash_guard__ 哨兵行,开启 set -v 详细回显时同样如此;slash 路由、命令执行与历史召回行为保持不变 (#2943)
  • 与运行中命令同批粘贴或管道输入的内容不再被误路由:此类批次中的 slash 样式行逐字节送达 shell,不再被拦截为 slash 命令,脚本化流水线保持正常 (#2938)
  • 目录名包含控制字符时,命令追踪与工作目录上报依然正常,不再丢失 shell 事件 (#2938)
  • 携带提示词参数的 headless 单次运行在审批请求无人应答时不再挂起数小时:请求 30 秒后超时,进程以明确的超时错误与非零退出码退出 (#2941)

[0.22.0] — 2026-08-27

新功能

  • Enhanced Assisted 模式不再依赖全局 Bash DEBUG trap 和强制追踪选项;用户自定义 trap、shell 选项与 prompt hook 得以保留,slash 命令交接保持正常交互式 shell 语义 (#2832)
  • 自动发现包管理根目录之外(如 /usr/local/share/anolisa/extensions)安装的系统扩展,raw 安装的 sec-core 与 tokenless 扩展无需单独启用即可加载;存在冲突的重复系统安装保持禁用,除非已持久化明确的来源选择 (#2909)

修复

  • 开启 xtrace 时,cosh 内部 hook 活动不再出现在追踪输出中,动态标记、工作目录与环境数据不会外泄;用户命令与用户自定义 hook 的追踪输出保持不变 (#2914)
  • 修复含斜杠的汉字提示词(如 打开./missing/SKILL.md)被当作 shell 路径执行而失败的问题,恢复 AI 路由;Agent 现在收到提示时刻的正确工作目录,cd 之后同样准确 (#2918)
  • 交互 shell 中输入的 slash 命令现在会写入 Bash 历史,上箭头可正确召回最近输入的 slash 命令,而非更早的命令 (#2917)

[0.21.1] — 2026-08-26

修复

  • 修复 /skills list/hooks/extensions 等 registry 类 slash 命令在尚未运行任何 Agent 回合、且进程工作目录与 shell 当前目录不一致(如启动后执行 cd 或守护进程式启动)时无法发现项目级资源的问题 (#2686)
  • 修复输出量巨大的 shell 命令耗尽内存的问题:输出上限为 32 MB,超限命令会被自动终止,Agent 收到截断提示与开头输出而非裸错误;hook 输出超限时相关命令保持拦截(安全侧处理),hook 的决策不会被静默忽略 (#2880)
  • 修复 systemd 255 主机上 Gateway 任务无法启动的问题:打包服务的一项安全加固设置与该 systemd 版本不兼容,导致服务在启动阶段即失败;工作区隔离保持不变——任务文件仍限制在工作区内、主机文件保持只读、守护状态仍为服务私有 (#2843)

[0.21.0] — 2026-08-25

新功能

  • 新增 Native shell 集成模式(shell.integration = "native")实现无 Hook 启动,以及可通过 Shift+Tab 切换的 Enhanced Shell-only 模式;Enhanced Assisted 仍为默认,并通过提示符前缀显示输入归属。同时,slash 命令、工具调用、权限请求和系统通知现在使用不同的 /*!· 卡片前缀,输出归属一目了然 (#2759)

[0.20.0] — 2026-08-24

新功能

  • 在未安装 anolisa 统一上报器时,cosh-ng 可直接向 SLS 上报匿名运行遥测,不收集用户输入、代码或对话内容;可通过创建 ~/.copilot-shell/telemetry_disabled(单用户)或 /etc/anolisa/.telemetry_disabled(全系统)随时关闭遥测 (#2715)
  • 将本地 Gateway 任务 profile 绑定到封闭的 task-only-v1 manifest,使 Core/Gateway 版本不匹配在任务输入或副作用产生前即被拒绝 (#2728)

修复

  • 修复 /usr/bin/cosh raw <adapter> 因透明分类器将 raw 子命令误交给 bash 而以 exit 127 退出的问题,恢复 TUI 启动 (#2743)
  • 修复含简单参数引用(如 $HOME)的汉字引导自然语言提示被漏过 NL 拦截落入 shell 的问题,同时保持可执行 shell 结构原生不被拦截 (#2746)
  • 修复 bash 4.2.x 上首条命令后 DEBUG trap 永久丢失导致命令审计标记停止输出的问题 (#2757)

[0.19.0] — 2026-08-21

新功能

  • 新增本地 gateway 控制平面,支持持久化 Task 调度、运行时租约与崩溃恢复,可通过 cosh agent task ... 命令使用 (#2603)
  • 新增直接 ACP 入口命令 cosh agent doctorcosh agent run,可在交互式 Shell 之外验证并驱动本地安装的 ACP adapter;权限流程为 once-only,仅在本地控制终端提示,并将脱敏证据记录到私有本地状态目录 (#2603)

修复

  • awk 程序中 system() 调用前存在空格或行续符时也能被正确检测 (#2655)
  • 缺失的 precmd 状态标记现在映射为 -1,不再伪造为退出码 0,保证中断或伪造标记下的账本完整性 (#2709)

[0.18.0] — 2026-08-20

新功能

  • 长时间交互式会话的 transcript 内存工作窗口现在有界,终端输出仍会完整写入会话 spool 文件,从而抑制内存无限增长 (#2682)
  • 支持需要任务增强的 MCP 长程工具调用,任务失败或超时时返回可操作的错误信息 (#2645)

变更

  • BREAKING/usr/bin/cosh 现在将非 TUI 调用直接透传给配置的 shell;在交互式终端外执行 cosh --versioncosh --helpcosh <脚本> 时行为与 shell 一致,不再进入 cosh TUI (#2625)

修复

  • 在 cosh-core 驱动的 trust 审批模式下,被 hook 拦截的 shell 命令不再通过 staging grace 窗口实际执行 (#2125)
  • 外部组件已预先记录初始审批请求时,cosh-shell 现在能正确记录对应的审批决议 (#2402)
  • 同一批次中某个请求被拒绝后,审批被 hook 重写的 shell 命令不再报错 "could not route this approval" (#2667)
  • 当待处理的 turn extension 被新活动取代时,审计日志现在会补录对应的取消决议,避免留下未配对的请求条目 (#2695)

[0.17.2] — 2026-08-19

修复

  • run_command 输出上限设为 32 MB,防止 dd if=/dev/zeroyes 等失控命令导致进程被 OOM 杀死;超出上限时杀死进程组并返回 OutputTooLarge 错误,而非无限增长 (#2405)
  • 使 RPM %post 的 /etc/shells 注册幂等(先规范化并探测再追加),并新增 %preun 脚本:当用户仍以 /usr/bin/cosh 为登录 shell 时擦除操作失败关闭,防止 rpm -e cosh-ng 后遗留悬空 shell (#2599)

[0.17.1] — 2026-08-18

修复

  • 通过事件驱动改造 raw relay 与 SIGINT 路径,将交互回显延迟从 p50 20 毫秒降至亚毫秒级,并消除长时间会话的高频空闲 CPU 轮询 (#2622)
  • 在 best-effort 审计存储写入失败时,仍保持已允许命令正常执行 (#2631)
  • 允许已审批流水线中的单引号参数包含换行,例如多行 jq 或 awk 脚本 (#2638)

[0.17.0] — 2026-08-17

新功能

  • 当 hook id 同时存在于 shell 层与 agent 层时,/hooks enable|disable <id> 弹出交互式消歧面板,可选择切换 Shell hook、Agent hook 或两者 (#2400)

变更

  • 空闲轮询时跳过冗余的历史事件处理,长时间运行的交互会话不再在空闲时重复执行与历史事件规模相当的工作 (#2546)

修复

  • 修复 hook 输出显式 "decision": null 被当作透传的问题:现视为无效 hook 输出并默认拦截对应工具调用;若 hook 配置 fail_open = true 则放行但记录 hook_failure 通知;输出 {} 仍为合法透传 (#2529)
  • 修复 dnf 系统上 cosh pkg install/remove --dry-run 将可安装/可移除软件包的成功模拟误报为后端错误的问题 (#2605)

[0.16.1] — 2026-08-14

修复

  • 优化 CJK(中日韩)文本换行,充分利用终端行宽并保持标点与相邻文字相连 (#2446)
  • 在保存 /auth 认证配置前先验证凭据、端点和模型,失败时保持认证面板打开并定位到问题字段 (#2458)
  • 允许扩展 hook 在成功但无输出时通过,避免空输出被错误拒绝 (#2506)

[0.16.0] — 2026-08-13

新功能

  • 新增 raw packaging 接口,支持确定性归档构建、跨平台二进制验证和可移植 macOS launcher (#2411)

变更

  • 收敛 cosh-core 与 cosh-shell 运行时路径,统一 Claude 和 Qwen provider driver,新增显式 shell/core protocol v1 协商与旧版回退 (#2403)
  • 移除已废弃的 /draft 斜杠命令别名,统一使用 /agent (#2441)

修复

  • 使用单调时钟计算 input-wait 超时,避免时钟偏移导致卡顿 (#2176)
  • 修复 panel-family hint card 渲染问题 (#2196)
  • 按 SSE 规范解码事件,对格式错误的输入立即报错 (#2209)
  • 在 core 中约束并保护敏感文件写入 (#2211, #2378)
  • 在 core 和 shell 中透传原始 prompt 文本,不做归一化 (#2256)
  • 修复 Enter 键触发 review marker 的问题 (#2274)
  • 收窄交互式取消检测范围,并在关联拦截后配对 ledger 完成 (#2352, #2353)
  • drop 时向 stdout 发送 raw-mode 禁用指令,防止终端状态泄漏 (#2357)
  • 加固 core 和 shell 中的 hooks (#2359)
  • 避免使用可预测的临时文件路径 (#2361)
  • 在行截断分支中强制字节上限 (#2370)
  • 列出所有斜杠提示匹配项,而非仅返回首个 (#2410)
  • 将缺失的失败退出码映射为 -1 哨兵值,保证错误报告一致性 (#2412)
  • 在 core 中暴露 runtime context,确保状态访问一致 (#2428)

[0.15.0] — 2026-08-09

修复

  • 恢复 shell 中 inline hint 之后的提示光标 (#2172)
  • 支持 ID_LIKE 回退用于 OS 发行版检测 (#2200)
  • /help 输出中列出 hook 命令 (#2208)
  • 跳过服务生命周期操作的审计日志 (#2213)
  • 支持 core 中的 macOS 特定文件读取 (#2220)
  • 序列化 handoff 状态以防止竞态条件 (#2226)
  • 归一化 apt search glob 模式 (#2227)
  • 在 core 中恢复 compaction 后的上下文预算 (#2244)
  • 在 shell 中去重 hook 通知 (#2259)

[0.14.0] — 2026-08-04

新功能

  • /status/about/stats 斜杠命令用于运行时自省 (#1778)
  • /mcp 斜杠命令用于 MCP server 管理 (#1949)
  • /session list --all 枚举跨 workspace 的会话 (#2139)
  • DashScope prompt cache 支持,降低 token 成本 (#2046)
  • cached_tokens 可观测性,用于缓存命中诊断 (#2075)
  • OpenAI provider 中按模型动态设置 max_tokens (#2165)
  • 在 MCP client 初始化时声明 roots 能力 (#2007)
  • core 中的 hook 工具和环境支持 (#1894)
  • 在 core 和 shell 中呈现工具参数状态并限制重试次数 (#1925)
  • shell 中自动执行完全只读的复合命令 (#1959)
  • 在 core 和 shell 中扩展有上限的回合运行 (#2035)
  • 改进 core 和 shell 的认证菜单 (#2062)
  • 在 shell 中限制 agent handoff 的输入等待 (#2168)

变更

  • shell 中终端无关的多行 prompt 输入 (#1947)

修复

  • Shell handoff 和 hooks:保留 LLM 输入、丢弃过期 handoff 文本、在 provider 会话内恢复 handoff 回退、脱敏 handoff 证据、通过一次性 claim token 关闭秘密脱敏的 handoff、收敛 Han NL 输入归属、将敏感 NL 路由到 agent、并为 send-to-shell 运行 project hooks (#1955, #2010, #2055, #2074, #2130, #2137, #2151, #2154)
  • 审批生命周期:通过 lifecycle ledger 和兜底超时保证终态、重置 auth 输入、在 trust 模式下呈现 sandbox-bypass 审批、并拒绝零空闲超时 (#1934, #1939, #1968, #2116)
  • 认证流程:ESC 时回退 /auth、在 /help 中列出 /auth、并在无认证启动时提示 /auth (#1891, #1906, #2166)
  • 斜杠命令和 prompt 输入:防止拦截时斜杠回显重复、Up 键召回斜杠命令、拦截含斜杠的 NL prompt、支持 NL prompt 中的软换行、保持 card submit 的 type-ahead、归一化 CSI-u 退格、并按路由键 ghost 归属 (#1868, #1899, #1911, #1922, #1942, #1993, #2167)
  • Shell 渲染:阻止 extdebug 泄漏到 prompt hooks、高亮代码块语法、用用户语言回复、精简技能列表、并禁用隐式分页 (#1849, #1904, #1910, #1921, #1998)
  • 命令风险和安全:评估所有复合命令段的风险、门控不可恢复的系统控制命令、并分类解释器风险 (#1905, #2081, #2119)
  • 文件 IO 加固:拒绝占位写入、使文件写入原子化、限制并约束读取工具、在 drop-write 前恢复阻塞、并将 fd-dup 重定向视为非写入 (#1918, #2069, #2120, #2121, #2124, #2127)
  • Shell 恢复和漂移:防止恢复风暴并使用 zsh preexec $3 处理漂移 (#2072, #2073)
  • 审计日志:展示 hook 上下文 (#2082)
  • Core 运行时:保留工具参数、对齐 compaction、展示真实 session prompt、emit 错误时 fail closed、并使截断 UTF-8 安全 (#1844, #1847, #2003, #2005, #2118)
  • 类型、wire 和打包:修复 wire 错误、移除跨 workspace dev-dep、对齐 RPM 身份、对齐 bundle 健康检查、并在 skill tool 中添加 base-dir 提示 (#1514, #1933, #1937, #1984, #2140)

[0.13.0] — 2026-07-26

新功能

  • 通过 /session/resume--resume 启动选项实现交互式会话恢复 (#1546, #1592)
  • 带 schema 版本控制和旧会话迁移的 workspace 级会话持久化 (#1546, #1592)
  • MCP 工具支持,用于扩展 agent 能力 (#1530)
  • 上下文相关的 shell insight 交互 (#1537)
  • 跨 core 和 shell 层的秘密脱敏 (#1555)
  • 通过 cosh doctor 导出诊断 bundle (#1576, #1597)
  • core 和 shell 中的扩展平台 (#1583)
  • 个性化 prompt 推荐 (#1606)
  • 会话压缩以管理持久化增长 (#1668)
  • PostToolUse 响应替换和 hook 适配 (#1669)
  • 启动建议门控 (#1671)
  • 跨 core 和 shell 的审计日志 (#1679)
  • 通过斜杠命令改进和 SysOM /auth 快捷方式改善会话体验 (#1726, #1813)
  • 将未解析的自然语言输入路由到 Agent (#1742)
  • ESC 取消活跃的 agent 运行 (#1761)
  • 回合级批量审批同意 (#1825)

变更

  • 回退持久化的凭据加密 (#1748)
  • 对齐任务 scope 文档 (#1445)
  • 稳定 core 和 shell 测试门控 (#1699)
  • 加速 raw CLI 测试和 fake stream 节奏 (#1797)
  • 将 cosh-shell 测试基线跟踪至 2469 (#1827)

修复

  • 会话命令解析、信号退出、斜杠参数处理和 prompt ghost ESC (#1632, #1634, #1636, #1663, #1724, #1843)
  • Agent 提问交互、建议控制、推荐 scope 和 tab 重绘 (#1725, #1741, #1749, #1758, #1821)
  • 审批 card 布局、阻塞标题对齐和空回车处理 (#1786, #1788, #1838)
  • 认证和信任加固:验证 provider、加固认证、保留 trust 块、加密凭据并扩展路径 (#1627, #1673, #1701, #1722, #1777, #1784, #1791, #1809, #1816, #1841)
  • 审计日志修复:kill 树、拆分复合命令、脱敏秘密、scope claim 并保留导出路径 (#1611, #1613, #1635, #1765, #1772, #1840, #1842)
  • Core 运行时稳定性:JSONL 验证、工具选择错误、流式状态、ai-like 表、修订时钟、free-text 清除、布局门控和 SysOM 终结符 (#1599, #1661, #1689, #1730, #1731, #1799, #1800, #1803, #1839)
  • 平台和 CLI 正确性:遵循 dry-run、处理跳过的 checkpoint、允许搜索模式、修复 package dry-run/搜索结果、遵循 cargo config、同步 Bash HISTFILE、验证 workspace 路径、将 --help 路由到 stdout、添加 skill 参数检查、对脱敏写入发出警告、跳过 DEBUG trap、恢复 utility 工具、阻止 BASHOPTS extdebug 泄漏、处理 null 重定向、保持 provider handoff 存活、更新 DashScope URL、raw action relay 看门狗、恢复启动健康行、隐藏 receipt audit ref 并更新测试基线 (#1426, #1440, #1633, #1637, #1642, #1646, #1672, #1675, #1676, #1710, #1719, #1733, #1783, #1787, #1790, #1795, #1808, #1812, #1818, #1820, #1845)

[0.12.0] — 2026-07-12

新功能

  • 将认证归属移入 cosh-core,采用隔离的配置层 (f028ad90)

变更

  • 在统一运行时模块下整合日志 (db86b3dd)
  • 将组件文档迁移到 user-guide/developer-guide 并添加 cosh-ng 文档 (317d3f26, adf63ac2)
  • *_CN.md 文档重命名为 *_zh.md 并修复交叉引用 (82f8dab4)

修复

  • 在 platform 和 cli 中遵循 svc dry-run (4c593050)
  • 保留手动 aliyun 回退和旧版 STS 认证 (924dd76b, ee1dd179)
  • 保护 auth provider 编辑;优先 aliyun 认证选项 (f0c97efa, 904655fb)
  • 限制 host 执行的 shell 预览 (a6da7301)
  • 路由非交互式 cosh launcher 调用;支持 raw 命令透传 (ecb56739, 1490eb3c)
  • 绑定启动 prompt 和 agent 请求上下文 (14d6336f, 25d9d28f)
  • 在 shell 中拥有 prompt 边界 (#1310)
  • 避免循环检测中的 UTF-8 分割 (ef7f5147)
  • 移除 provider 可见的 skill 提示;引导诊断 skill 使用 (a6024873, 7f695178)
  • 丢弃冗余的 format 借用;满足 clippy 诊断 (5e14a686, 063217f1)
  • 稳定 CI、raw-cli、PTY 和服务测试 (d573796d, 3563a5ab, 0fb34ea6, fc28da5f, ad138d45, 65421d25, 5b17b892, 3e43ba6e, 707bc3c0)

[0.11.0] — 2026-06-28

新功能

  • 阿里云认证 provider,支持 ECS 自动检测、STS 凭据和二维码流程
  • SysOM 阿里云 provider,使用 ACS3 签名进行 LLM API 访问
  • 每回合 SLS JSONL 日志用于可观测性
  • SysOM 请求来源标识头
  • 跨所有 crate 的结构化 tracing 日志系统
  • PostToolUseFailure hook 事件上的 sandbox bypass 审批流程
  • 启动健康扫描用于环境诊断
  • 扩展/hook/skill 启用/禁用命令(/extensions/hooks/skills
  • 统一组件状态管理模块
  • 专用 HOOK 审批面板,简化 UI
  • UserPromptSubmit hook,带 Ask 审批强制
  • cosh-core 中的 shell evidence 读取准入控制
  • cosh-shell 中的工具活动渲染
  • 启动横幅中的 cosh-switch 提示,用于在 cosh-ng 和 copilot-shell 之间切换

变更

  • BREAKING:CLI 二进制从 cosh 重命名为 cosh-cli;移除 dispatch_core
  • RPM spec:安装 cosh-cli 二进制、/usr/bin/cosh launcher、cosh-switch 脚本、Conflicts: copilot-shell
  • 用结构化 tracing 宏替换 eprintln
  • 用 fold_decision 统一 hook 决策聚合
  • 将 workspace 仓库 URL 更新为 github.com/alibaba/anolisa

修复

  • 认证 ECS 流程和阶段转换时的面板重叠
  • 认证二维码渲染不含 ANSI 转义码
  • 认证成功后使用 SysomProvider 处理 aliyun
  • 对齐 hook 输入字段和 AfterModel/wrap_tool_response 与 copilot-shell 协议
  • tool_result 去重守卫和可见性
  • 在 shell handoff 前恢复 prompt
  • 抑制重复的 evidence 读取
  • 减少失败命令自动分析噪声
  • Skill 存在性检查和加固审批匹配
  • 解决 cosh-core 和 cosh-shell 中的 clippy 警告

[0.10.0] — 2026-06-23

新功能

  • Shell evidence 协议,用于捕获和重放命令执行上下文
  • cosh-core 中的 shell evidence 控制工具,用于 evidence 生命周期管理
  • 与 copilot-shell 对齐的 hook 协议,实现零变更扩展支持
  • 通过通知协议传播每 hook 决策
  • cosh-shell 中按 hook 决策着色渲染 hook 警告

变更

  • 跨 cosh-shell 模块共享 agent 错误显示文本

测试

  • 覆盖 shell evidence raw CLI 流程

[0.9.0] — 2026-06-22

新功能

  • Hook 通知集成到审批面板,带 ⚠ 警告显示
  • Hook ask 决策即使在 Trust/Auto 模式下也强制用户审批
  • 扩展 hook 系统,带 tool_use_id 关联和新事件类型
  • 用于 /extensions /skills /hooks 斜杠命令的注册表协议

修复

  • 在 /help 输出中显示 Registry 组

变更

  • 移除无用的 skill 管理代码

[0.8.0] — 2026-06-18

变更

  • cosh-tui crate 和二进制重命名为 cosh-core,覆盖整个 workspace
  • 更新 adapter 系统:CoshTuiAdapterCoshCoreAdapterAdapterKind::CoshTuiCoshCore
  • 更新环境变量 COSH_TUI_PATHCOSH_CORE_PATH
  • 更新 RPM spec、文档和所有测试 fixture

修复

  • 在流式 card 中中和 agent 状态文本
  • 对齐 cosh-shell 中的流式 card 宽度

[0.7.0] — 2026-06-17

新功能

  • 扩展发现和加载模块,支持 cosh-extension.json manifest
  • 扩展 hooks 集成到启动生命周期
  • Skill 模块,支持多级加载(内置、用户、项目)和热重载
  • SkillManager 集成到工具注册表和启动流程
  • 可用技能注入系统 prompt 供 LLM 发现

修复

  • expand_env_vars 在环境变量未定义时的无限循环
  • 对不支持的扩展 hook 事件(PostToolUseFailureBeforeModelAfterModel)发出警告而非静默丢弃
  • 对齐扩展 hooks 格式与 copilot-shell 的嵌套组结构
  • 从 skill tool schema 中移除未使用的 args 参数,避免误导 LLM
  • 在 cosh-shell 中展示 question free text 答案
  • 加固前台 shell handoff
  • 共享 copilot shell 配置路径并保留旧版配置回退

变更

  • 归一化 cosh-shell 配置键
  • 标准化 cosh-shell 代码和测试组织
  • 将用户状态移至 copilot shell scope 下

[0.6.0] — 2026-06-16

新功能

  • cosh-tui 中的 P0 hook 系统,含 5 个生命周期事件(on_session_starton_turn_starton_turn_endon_tool_callon_session_end
  • cosh-shell 中的 shell 审批分类和 hook 来源跟踪
  • 将当前 cosh shell 迁移到 monorepo workspace

修复

  • 解决 cosh-shell 中的审批 review 发现
  • 加固 shell evidence 连续性以防止上下文丢失
  • 在 cosh-tui 中归一化工具调用流式协议
  • 修复 cosh-shell 中子命令的透传

[0.5.0] — 2026-06-16

新功能

  • CoshTuiAdapter 持久进程模式(spawn 一次,跨 agent 运行复用,死亡时自动重启)
  • ask_user 通过控制协议往返(agent 可以提问内联问题路由到 TUI)

变更

  • 将 cosh-tui main 拆分为 cli/headless/interactive 模块
  • 将二进制从 cosh-tui-core 重命名回 cosh-tui

[0.4.1] — 2026-06-15

新功能

  • settings.json → config.toml 自动迁移,含 AES-256-GCM 加密 API key 解密
  • JSONL 协议和工具审批集成测试

修复

  • 在 PROMPT_COMMAND 前置 precmd 以捕获真实退出码(Alibaba Cloud Linux /etc/bashrc 问题)

[0.4.0] — 2026-06-15

新功能

  • JSONL wire 协议(InputMessage / OutputMessage),用于 cosh-shell ↔ cosh-tui 通信
  • Provider 抽象,支持 OpenAI 兼容流式(DashScope、OpenAI、DeepSeek、Generic profiles)
  • 工具执行框架,含 7 个内置工具(shell、read_file、write_file、edit、grep、todo、skill)和审批控制
  • 上下文窗口管理、消息截断、循环检测、对话压缩
  • 生命周期 hooks 框架
  • CoshCore agent 循环引擎
  • 基于 TOML 的多 provider 配置,支持环境变量展开

变更

  • BREAKING:二进制接口从 ratatui 交互式 TUI 改为 JSONL stdin/stdout 后端
  • BREAKING:配置格式从 settings.json 改为 config.toml
  • 用单文件 JSON 持久化重写 session store

移除

  • 旧版基于 ratatui 的 TUI 代码(app、commands、llm、logger、theme、tools、ui 模块)

[0.3.0] — 2026-06-15

新功能

  • cosh-shell crate — 基于 PTY 的 AI 增强 shell host,含 OSC marker 协议
  • Claude、Qwen、Fake AI adapter,支持流式
  • 内联渲染引擎(审批、提问、推荐、活动面板)
  • 带审批模式的治理层
  • 通过信号处理器(SIGTERM/SIGHUP/SIGHUP/SIGQUIT)和 panic hook 实现终端恢复
  • 退出码分类,含 8 个类别(Smart/Auto/Manual 分析模式)
  • 工具显示引擎,按工具类型解析和 ANSI 颜色分类
  • Hook 引擎,含内置 hooks(FailedCommandHook、TestFailureHook)和 skill 路由
  • 从 ~/.config/cosh/hooks/ 加载外部 hook,支持子进程执行
  • 原生 shell 兼容性(rcfile 加载、PS1、history、login shell 检测)
  • 上下文窗口,带滑动窗口(最大命令数、最大年龄、token 预算)
  • Prompt 意图优化(do → Bash 工具、know → 散文)
  • 自然语言拦截,带视觉反馈
  • InputClassifier 保守模式用于原生模式
  • 分析节流(30s 冷却,最多 3 次连续)
  • 咨询 card 渲染,带键盘捕获
  • 用于工具审批往返的控制协议
  • 启动横幅,带渐变 ASCII art logo
  • /mode/hooks 斜杠命令
  • 架构文档

修复

  • 原生模式中 powerlevel10k 双行 prompt 的输入渲染
  • 原生模式中通过 buffered-then-judge 策略的斜杠/NL 拦截
  • command_not_found 的 zsh preexec 拦截
  • CJK 输入和退格的 CandidateRedraw 行清除
  • 原生模式中抑制 cosh-osc$ prompt 泄漏
  • bash 工具执行器中的工具显示标签匹配
  • buffer 提取中的宽字符占位单元格处理

变更

  • 统一 workspace 版本(0.3.0)适用于所有 crate(cosh-types、cosh-platform、cosh-cli、cosh-shell、cosh-tui)

[0.2.0] — 2026-05-16

加固 + 审计子系统发布。Workspace 版本与发布配置和 lockfile 提交一起升级到 0.2.0

新功能

  • audit 子系统,含 PEP/PDP/log 分离:cosh audit check / cosh audit log 用于命令安全门控和每会话检索。
  • Workspace 发布配置opt-level = 3lto = truestrip = truecodegen-units = 1),提交 Cargo.lock,workspace 级依赖锁定,以及原生 CA 证书支持。
  • 命令超时、输入验证和 panic 安全的 JSON 输出,覆盖 cosh-clicosh-platform,使 panic 仍在 stderr 发出 CoshResponse 信封而非空退出。
  • forbid(unsafe_code) 作用于 cosh-cli / cosh-platform,以及 svc list --state 过滤验证使用 allow-list。
  • pkg search 交叉引用安装状态,使结果显示哪些匹配已安装。
  • ResponseMeta.warning 字段用于非致命警告;audit 响应通过此字段显式标记为 stub。
  • cosh-tui 中的 LLM 工具面扩展:pkg / svc / checkpoint 包装工具,以及 svc enable / svc disable --dry-run
  • cosh-tui 中 LLM 和外部命令工具的超时 + 指数退避重试;60s shell 工具超时。

变更

  • TUI /help 与完整命令集对齐;标题栏版本和 markdown 前缀剥离修正。
  • 跨 workspace 解决 clippy 警告;移除 dead-code allow;测试代码与生产 lint 级别对齐。
  • 消除构建警告并改进 cosh-tui / cosh-platform 的版本检测。

修复

  • Shell 安全检查标记化,关闭 tab/换行/重定向/链绕过;对原始命令字符串的子串匹配替换为空白字符(含 \t/\n/\r)标记化和元字符拒绝(; | & > < $ ` ( ) { })— is_safe_command in crates/cosh-tui/src/tools/shell.rs
  • 即使在 Yolo 审批模式下也禁止工具调用。
  • cosh-cli 包装工具输出有界,防止嘈杂子命令撑爆 LLM 上下文窗口。
  • 通过进程级计数器合成 tool-call ID 以保证跨 agentic loop 唯一。
  • settings.json 和 session 文件以 0600 权限原子写入。
  • 对 agentic loop、history、config 和 tool messages 强制运行时边界;scrollback 有界且截断 UTF-8 安全。
  • TUI 中安装 panic hook;panic 后恢复 history 导航。
  • ws-ckpt IPC 响应大小限制为 64 MiB。
  • 通过 LoadState=not-found 检测不存在的 systemd 服务,而非错误归类为 "inactive"。

安全

  • Audit-stub recoverable / hint 语义通过标准 CoshError 信封清晰呈现给 agent。
  • 凭据文件的原子重命名 + 0600 权限。

[0.1.0] — 2026-05-10

将 workspace 从 agos-core 重命名为 cosh-ng 并添加交互式 TUI crate 后的初始公开形态发布。

新功能

  • 4-crate workspacecosh-typescosh-platformcosh-clicosh-tui,严格依赖方向 cosh-cli / cosh-tuicosh-platformcosh-types
  • cosh CLI 二进制,双模式分发:cosh(无参数)exec 进入 cosh-tuicosh <subsystem> <action> 返回结构化 JSON。
  • 跨发行版 pkg 子系统install / remove / search / list,基于 Distro::detect() 读取 /etc/os-releasednf / apt-getapt-cache 用于 search)/ zypper 之间路由。
  • svc 子系统,基于 systemctlstatus / start / stop / restart / enable / disable / list,含运行时间和 list 中正确的列映射。
  • checkpoint 子系统,通过 Unix-socket IPC 与 ws-ckpt daemon 通信;bincode wire 格式带 4 字节 LE 长度前缀和显式协议版本控制 + 错误处理。命令:init / create / list / restore / recover / delete / diff / cleanup / status
  • cosh-tui 基于 ratatui + crossterm 的交互式 TUI:斜杠命令系统含自动补全、会话管理、主题、自定义边框集、echo-on-submit。
  • Agentic loop 含 cosh-cli 包装工具,在 cosh-tui 中将 pkg / svc / checkpoint 工具带到 LLM(初始发布为 cosh-tui v0.4.0)。
  • LLM 聊天集成,含配置驱动的 provider 和 UI 呈现。
  • 统一 settings.json V2 配置,整合先前分散的配置文件。
  • AES-256-GCM 解密,用于加密凭据。
  • macOS 检测 + Homebrew 后端,在 cosh-platform 中,含单元测试。
  • 统一 JSON 信封 CoshResponse<T>,含 ok / data / error / meta,分类的 CoshError 携带 recoverablehint 用于 agent 重试决策。
  • pkgcheckpoint CLI 命令的集成测试

变更

  • Workspace 从 agos-core(含 agos-types / agos-platform / agos-cli)重命名为 cosh-ng(含 cosh-* crate);agos-cliagos-platform 在同一 commit 中移除。
  • cosh-tui checkpoint 工具适配新 daemon 协议。

修复

  • cosh-cli stdout 验证为 JSON 后再转发给 LLM,防止格式错误字节导致解析器混乱。

[pre-0.1.0] — 2026-05-03 → 2026-05-08

重命名前 agos-core 基础。

新功能

  • 初始 2-crate workspace agos-types + agos-platform
  • agos-cli 跨发行版 CLI 原型,含 pkgsvccheckpointaudit 命令形态。
  • MVP v2 CLI Gateway 架构文档和双语(英文/中文)使用指南。

Changelog

All notable changes to ktuner are documented in this file.

The format is based on Keep a Changelog, and this project adheres to Semantic Versioning.

[Unreleased]

Added

  • Initial kernel-tuning engine: check/tune/fix/why/rollback commands evaluate 207 rules and output structured JSON tuning recommendations.

更新日志

本文档记录 OS Skills 的所有重要变更。

格式基于 Keep a Changelog, 项目遵循 Semantic Versioning

[未发布]

[0.6.3] - 2026-08-21

修复

  • RPM 现在提供 anolisa-component(os-skills),当仓库侧组件索引不可用时, anolisa upgrade 可通过 RPM metadata 为已有 OS Skills 组件解析软件包 (#2576)。

[0.6.2] - 2026-08-07

  • 新增 ktuner Skill,支持确定性的内核诊断、调优和回滚。(#1278)
  • 从源码和 RPM 安装内容中移除旧版 OpenClaw 与 Hermes adapter 脚本。(#1172)
  • 更新 anolisa-guide,补充带认证的 Skill Ledger 恢复与篡改检测说明。(#2185)

[0.6.1] - 2026-07-03

  • 重写 sysom-diagnosis Skill,并移除旧版 CLI。(#1241)
  • 修复 install-openclaw Skill 对 OpenClaw gateway 写入范围的验证。(#1205)

[0.6.0] - 2026-06-29

  • 新增 anolisa 组件契约,包括 component.toml、Makefile 和 RPM spec。(#1159)
  • install-openclaw Skill 新增 OpenClaw bootstrap 指引。(#1051)
  • 在启动 gateway 前为 install-openclaw Skill 新增模型 endpoint 预检。(#1031)
  • anolisa-guide Skill 新增静态知识库更新脚本。(#1010)
  • 新增 anolisa-guide Skill。(#849)
  • 修复 uv 和 qwenpaw 安装过程中的阿里云镜像 fallback。(#968)
  • install-claude-code Skill 的 DashScope proxy URL 更新为新的 Anthropic endpoint。(#858)
  • 在 OS Skills 中将 copaw 重命名为 qwenpaw。(#968)

[0.5.0] - 2026-06-11

  • 新增 anolisa-register Skill。(#829)

[0.4.0] - 2026-06-08

  • 新增 Agent 安装 Skill 自动安装 Tokenless plugin 的能力。(#731)
  • 新增 OpenClaw 依赖项预检。(#719)
  • 改进 OpenClaw 非交互式配置流程。(#687)
  • 新增 Hermes adapter runner。(#617)
  • 新增独立的 ANOLISA adapter 入口。(#549)
  • 修复 OpenClaw state dir 路径规范化。(#641)
  • 改进 Makefile 安装路径与组件契约。(#541)

[0.3.0] - 2026-04-26

  • 新增 hermes-agent-install Skill。(#353)
  • 新增 clawhub-skill-mng Skill,支持 npm 安装和 YAML 描述匹配。(#315)
  • 修复 AgentSight 自定义数据库路径问题,改用默认路径。(#366)
  • 修复 AgentSight Token 节省量查询支持。(#355)
  • 修复 AgentSight 中断 CLI,并统一使用 conversation_id 命名。(#334)

[0.2.2] - 2026-04-15

  • 支持通过 agentsight Skill 启用 AgentSight dashboard。(#222)

[0.2.1] - 2026-04-14

  • 使用 MiniMax 开源实现升级 xlsx Skill。(#218)
  • 将 Skill 描述中的“适用于 alinux4”更新为“适用于 RPM-based Linux”。(#182)

[0.2] - 2026-04-12

  • 新增 humanizerimage-genpdf-readerxlsx Skill。(#178)
  • 新增 cosh-guide Skill。(#23)
  • sysom-diagnosis Skill 新增网络、I/O 和系统负载诊断能力。(#163)

更新日志

本文档记录 SkillFS 的所有重要变更。

格式基于 Keep a Changelog, 项目遵循 Semantic Versioning

[未发布]

[0.5.0] - 2026-09-20

新增

  • skillfs mount --config mount.toml 现在可按顺序将多个 Skill 来源合并到同一挂载。 同名 Skill 整个目录以靠前的来源为准;多来源挂载为只读,修改配置或新增、删除 Skill 后需重新挂载 (#3200)。
  • 新增可选的 Kubernetes 部署方案,将只读技能包复制到私有可写来源,再由 Ledger 扫描和激活。新增的 --read-only 选项禁止通过 Agent 可见的挂载写入; 缺少有效激活状态的 Skill 保持隐藏 (#3182)。

变更

  • Debian 和 Alibaba Cloud Linux 4 Sidecar 镜像现在会检查实际 FUSE 读取, 连续失败后尝试重新挂载,并限制重试次数。恢复后,工作负载需要重新打开失败的句柄 (#2701)。
  • 以只读方式打开的转换后 SKILL.md 现在会保留打开时的内容,来源修改后, 新打开的句柄可读到更新。容量受限的缓存可在属性查询和多次打开之间复用转换结果。 这类句柄另有独立的挂载级额度;新句柄若会超出 64 MiB 或 1,024 个句柄的上限, 打开操作会返回 ENOMEM,关闭已有的这类句柄可释放额度 (#3202)。

[0.4.2] - 2026-08-27

新增

  • 新增可选的 Alibaba Cloud Linux 4 Sidecar 镜像,为现有 Debian 镜像提供可复现的 替代方案,并通过中英文文档说明两个镜像版本的构建和运行方式 (#2777#2787)。

修复

  • 启动 reconcile 现在会通过有界退避重试 notify daemon endpoint 的临时故障, 当 daemon 延迟启动或重启时,隐藏 Skill 可自动恢复到正确状态 (#2790)。
  • Flat normal-mode mount 现在会通过已记录的物理目录解析 categorized Skill, write、truncate、rename 和同步操作不再因 ENOENT 失败 (#2901)。

[0.4.1] - 2026-08-21

新增

  • 新增 Kubernetes Sidecar 部署方式,由特权 SkillFS 容器向非特权工作负载提供 FUSE view,工作负载也可读取 skill-discover 提供的路径 (#2057)。
  • 新增可选的双向 HMAC-SHA256 认证,通过 --trusted-peer-key-file--notify-auth-key-file 保护跨容器 namespace 的 control socket 与 notify socket,同时保持既有宿主机认证方式不变 (#2449)。

变更

  • Kubernetes 参考部署现在会在一次 FUSE read 失败后将 Pod 标记为 NotReady, 在连续两次 liveness 失败后仅重启 SkillFS Sidecar,使工作负载无需重启即可恢复 (#2705)。

修复

  • Hermes 嵌套 Skill 现在可通过 control socket 使用 category/skill 这类 layout-relative 标识更新 activation 状态 (#2407)。
  • Activation metadata 权限、in-place backing alias 和 control listener 启动过程 现在会 fail closed,避免暴露 metadata、接受不安全 source 或遗留不可用 endpoint (#2407)。
  • 随包分发的 skillfs-mount Skill 现在使用实际存在的分析脚本名称,并准确说明 managed mount 与可写 source 行为 (#1798)。

[0.4.0] - 2026-07-24

新增

  • 可配置的 read-time transform 现在默认保持 directive compilation 启用, 并新增可选 OS adapter,内置 Ubuntu/Alinux 规则且支持外部 catalog 覆盖 (#1484)。
  • 新增 authenticated live-source resolver 和 notify v2 protocol,使 Skill Ledger 可获得规范的 flat 或 Hermes Skill identity、event kind 和 changed path, 同时不暴露 backing-root 细节 (#1517)。

变更

  • Agent 可见访问检查现在遵循 activated snapshot 权限,live-source 权限继续控制写入 (#1517)。

修复

  • SLS telemetry writer 现在会动态遵循 /etc/anolisa/.telemetry_disabled, 且无法检查该 gate 时会 fail closed (#1584)。
  • Hermes symlink boundary、resolver path、socket ownership 和 peer authentication 现在会在 discovery、read 和 mutation 过程中 fail closed (#1517)。
  • Control socket 前置条件诊断现在会统一显示公开参数名 --control-socket (#1739)。

[0.3.4] - 2026-07-16

修复

  • CLI output pipe 提前关闭并触发 panic unwind 时,SLS ops logging 现在仍会准确保留 一条 command record。

[0.3.3] - 2026-07-10

新增

  • 新增 Hermes workspace layout 兼容能力。SkillFS 现在可以识别 Hermes hub marker、 保留 management path,并同时暴露嵌套的 category/skill/SKILL.md Skill 与顶层 Skill。
  • Hermes 嵌套 Skill 现在支持 activation state、installer lifecycle write、 notification、audit attribution、fallback snapshot 和 hidden visibility。

修复

  • skillfs validate --json 现在会在 warning 和 error 中包含 source path, 便于自动化流程定位无效 Skill。
  • FUSE teardown 现在会限制 unmount 失败后的 cleanup,避免泄漏的测试 mount 影响后续 session。

[0.3.2] - 2026-07-03

修复

  • CLI SLS ops logging 现在会记录 SkillFS mount 和 runtime operation。
  • Runtime metric 现在会向 SLS consumer 发送实时 delta。

[0.3.1] - 2026-07-03

新增

  • Managed mount supervision 现在可以恢复 stale FUSE mount,并限制重复启动时的 recovery retry。

变更

  • 中英文 README 现在包含 managed mount、in-place operation、security boundary 和 troubleshooting 指南。

修复

  • Installer 完成后,post-publish grace read 会从 source path 读取 fallback Skill file。
  • skillfs validate 现在会在 status summary 中报告 parse failure。
  • In-place authoring 现在支持新 Skill 和 pending-install ownership change。
  • Managed stop 和 runtime-dir 处理现在可避免 stale ownership 与无限 recovery retry。
  • PrivateTmp 下 daemon-facing backing root 会在 mount 启动前被拒绝。
  • FUSE smoke cleanup 现在能更可靠地处理残留 mount 和临时 path。

[0.3.0] - 2026-06-26

新增

  • 新增 agent Skill directory 的 runtime security integration。SkillFS 现在可从 .skill-meta/activation.jsonuser.agent_sec.skill_ledger.activation xattr 读取 activation decision,并将每个 Skill 显示为 current、hidden 或可信 fallback snapshot。
  • 新增面向外部 security daemon 的 file-change notification。通过 --activation-mode file--notify-socket--activation-events-log--activation-reload-mode poll,SkillFS 可报告 Skill mutation、重新加载 activation decision,并让已打开的 file handle 保持指向原 target。
  • 新增用于写入 activation 的 trusted control socket。通过 SO_PEERCRED、 executable identity 和 start-time check 验证的 daemon,可通过受限 request API 更新 activation JSON 或 activation xattr,无需通过 agent-visible mount path 写入 .skill-meta
  • 新增对常见 Skill 安装流程的 installer compatibility。Staging directory、 direct write、quiet-timeout completion 和 post-publish grace window 允许 installer 完成 Skill 写入后,再由 SkillFS 请求 security provider 扫描并激活。
  • 新增面向 security daemon 的 in-place mount 支持。Ledger backing root 会以 private bind 方式挂载并在启动时校验,使 scanner 读取真实 source tree, 不经过 agent-facing FUSE view。
  • Skill 的 canonical identity 现在基于 directory basename。Frontmatter name: 继续作为 display metadata,不再改变 SkillFS store key 或 daemon-facing Skill ID。

变更

  • .skill-meta/** 对普通 agent 隐藏,只能通过 trusted metadata path 或 control socket 访问。
  • Skill mutation notify 现在使用普通 filesystem event kind,包括 createwriterenameunlinkrmdir 和 truncate event,不再使用单独的 install-complete protocol event。
  • POSIX passthrough 扩展了 symlink、hardlink、FIFO、path-length fallback、 open-after-unlink、xattr 和 inode consistency 行为。

修复

  • 结合 notify-triggered reload、polling 和 activation watcher convergence, 避免 stale activation view。
  • 通过 start-time 与 file-identity validation 加固 trusted-writer 和 trusted-peer check,防止 process reuse 与 executable replacement。
  • 修复 hidden Skill、fallback snapshot、staging path 和 backing-root propagation 周边的 installer 与 daemon visibility 问题。

[0.2.0] - 2026-05-09

新增

  • 新增 Skill directory 上 writecreatemkdirrenameunlinkrmdirsetattr(size) operation 的 FUSE write passthrough。
  • 新增 background sync worker,在写入后重新解析 SKILL.md,并将 entry upsertSharedSkillStore
  • 新建 Skill directory 现在会立即可见。mkdir 会先插入 ParseStatus::Degraded placeholder,写入 SKILL.md 后由 sync worker 替换为真实 entry。
  • 新增通过 /proc/self/fd/{n} 访问底层 source 的 in-place mount mode, 避免 over-mount self-loop。
  • 新增 integration suite crates/skillfs-fuse/tests/write_guard_tests.rs, 覆盖 normal 与 in-place write path。

变更

  • Directory name 现在是权威 store key。rename 后,stale frontmatter name: 不会再恢复旧 key。
  • 读取 SKILL.md 时仍返回 compiled result,raw file 只用于 write 和 parse。
  • Architecture doc 重构到 docs/specs/skillfs-spec.mddocs/specs/core-spec.mddocs/specs/fuse-spec.md

移除

  • 移除 skillfs-core 中 workspace 相关 code path 和未使用的 workspace config support(commit 6d604c7)。
  • 移除旧的临时 test script,仅保留 scripts/build.shscripts/test.sh

修复

  • CLI tracing timestamp 现在使用本地 timezone,不再使用 UTC。

[0.1.2] - 2026-04-29

新增

  • 新增 read-only mount write protection,mknodsymlinklink 和 write callback 都会返回 EROFS

修复

  • Parser summary 截断现在遵循 multi-byte character boundary。

[0.1.1] - 2026-04-29

新增

  • 新增 docs/skills/ 下的 skillfs-mount agent Skill,帮助用户设置、挂载和 卸载 SkillFS instance。

[0.1.0] - 2026-04-25

新增

  • 首次发布 SkillFS workspace。
  • skillfs-core 提供 SKILL.md parser、带 flat 与 categorized directory layout 的 in-memory SkillStoreskillfs-views.toml configuration、条件式 compiler::compile 和 environment probing。Parser status 包括 OkDegradedError
  • skillfs-fuse 提供 read-only FUSE filesystem,在 /skills 暴露配置的 default view、始终可用的 virtual skill-discover,并在读取时编译 SKILL.md。 Skill directory 中的其他 file 会透传到 physical source。
  • skillfs CLI 提供 mountclassifyvalidatelist subcommand。

更新日志

Tokenless 的所有重要变更都会记录在此文件中。

从 0.7.2 版本开始,发布记录遵循 Keep a Changelog 格式。

[未发布]

[0.8.4] - 2026-09-22

新增

  • 在 npm 安装之外新增独立安装脚本及 install-tokenless OS Skill 入口。安装脚本在开始安装前选择 npm 或仅限 Linux 的源码构建,记录安装路径归属以供卸载,并在替换失败时恢复原有安装。源码构建仅安装 CLI;npm 还提供 RTK 和适配器(#2322)。

变更

  • npm 安装现在要求 Node.js 16.7 或更新版本,并保留属于其他安装的共享适配器资源。用户可通过 ANOLISA_TOKENLESS_FORCE_ADAPTERS=1 显式替换;否则安装程序会报告包内适配器的位置(#2322)。
  • 独立卸载仅移除安装记录中仍归本次安装所有的资源,除非指定 --purge,否则保留运行数据;无法确认框架注册已移除时保留适配器资源。Codex 插件显示为 not installed 时视为已成功移除,使重复卸载可以正常完成(#2322#3412)。

修复

  • HTML 提取现在将页面 </html> 结束标签后的命令输出(如构建日志和 HTTP 状态码)保留在渲染后的页面之后,避免内容丢失。模仿页面边界标记的文本会被转义,并继续支持恢复原文(#3386)。
  • HTML 提取不再将包含大量自闭合 SVG 元素的浅层页面误判为嵌套过深。深度限制现在依据解析后的页面结构,异常标记和宽表格也不会再触发可能拖慢工具结果返回的重复扫描(#3396)。

[0.8.3] - 2026-09-20

新增

  • Git diff 上下文裁剪可在保留全部变更行和文件元数据的同时缩减周边上下文,并支持恢复收到的原始内容。通过 TOKENLESS_DIFF_COMPRESSION_ENABLED=1 或 SDK diff_compression_enabled=True 启用;默认关闭,要求宿主支持文本替换和原文恢复(#3299)。
  • 命令或 API 返回的完整 HTML 页面可渲染为 Markdown,提供原文恢复及被移除页面元素的计数。通过 TOKENLESS_HTML_EXTRACTION_ENABLED=1 或 SDK html_extraction_enabled=True 启用;默认关闭,要求宿主支持文本替换和原文恢复,文件读取保持原样,包括通过 Shell 文件读取命令输出的 HTML(#3306)。

变更

  • npm 安装在 Claude CLI 可用时自动启用 Claude Code 适配器,注册未完成时给出重试指引(#2193)。
  • QwenPaw 安装在交付插件包前检查对应 SDK wheel,确认资源缺失时报告版本和 URL。离线或镜像环境可通过 ANOLISA_SKIP_WHEEL_PREFLIGHT=1 跳过探测(#3289)。

修复

  • Claude Code 检测在有界等待窗口内退避重试已部署插件,减少宿主注册表尚未更新时误报“未安装”的情况(#3272)。
  • Raw 包现在声明并包含 OpenCode 适配器和适配器清单,使 ANOLISA 能发现并管理随包提供的插件。启用或禁用后需重启 OpenCode(#3324#3346)。

[0.8.2] - 2026-09-15

新增

  • 支持的搜索结果列表(包括不带上下文行的 Claude Code 原生 Grep 结果)现在会共享连续重复的文件路径,同时保留每条已接收的匹配、行号和行尾。这项无损优化默认开启,要求宿主支持文本替换;可通过 TOKENLESS_SEARCH_PATH_SHARING_ENABLED=0 或 SDK search_path_sharing_enabled=False 关闭(#3173)。

变更

  • 内置 RTK 升级至 0.49.0,采用保守的管道改写规则,并保持 sudo 命令不变。直接使用 rtk grep 时,须改用 --max-len--max 设置 RTK 显示限制:-l-m 现在保留原生 grep 含义,文件类型过滤改用 rtk rg -t#3273)。
  • 支持的 RTK 过滤器现在会通过 rtk recall HASH 提示恢复已保留的失败或截断输出。恢复存储以宿主 OS 用户为范围,受容量和过期限制;共用该用户的会话可以访问同一存储。RTK recall 与 Tokenless Stash 检索仍相互独立(#3273)。

修复

  • Cosh-NG 和 copilot-shell 在 Protocol v2 下现在能正确归因 JSON 编码的 shell 结果中的失败,保留原始失败输出,并将错误详情送交诊断(#2238)。
  • 内置 RTK 保留 pytest 启动和回退诊断,即使关闭恢复存储也不会丢失这些信息,并在 stderr 旁保留未发现测试的摘要(#3273)。

[0.8.1] - 2026-09-09

新增

  • CSV/TSV 工具输出现在可以通过精简引号和行结束符保留全部单元格;具备恢复能力时,较大的表格可以保留首尾行、诊断行及代表性采样。缩减视图会标明省略情况,并提供逐字节恢复原文的入口;完整枚举或计算必须使用原始表格。文件读取和缺少文本替换能力的宿主保持原样 (#3089)。
  • SLS 记录现在可以从 TOKENLESS_TRACEPARENTTRACEPARENT 携带 tokenless.trace_idtokenless.span_id,让可观测后端将 Token 节省关联到宿主 trace。上下文必须由启动 Tokenless 的宿主或适配器注入;没有有效值时记录保持未关联状态,本地 stats.db 数据不变 (#3094)。

修复

  • Claude Code 检测现在会在首次成功查询注册表却未列出已准备好的插件时进行短暂重试,避免刚安装后误报“未安装” (#3085)。
  • Hermes 现在会跳过 API 或调用签名与适配器不兼容的可信共享 hook 模块,继续寻找兼容候选;全部失败时会列出拒绝原因,避免旧安装或缓存模块破坏生命周期 hook (#2249)。
  • OpenClaw 安装现在会在宿主支持相应选项时接受声明的能力,并且仅在宿主声明 unsafe-install 标志仍有效时传入该标志。将其标记为 no-op 的宿主不会收到绕过标志,安装被拒绝时会提示检查 security.installPolicy (#3126, #3152)。

[0.8.0] - 2026-09-06

新增

  • 大型 JSON 记录数组现在可以按 32 条记录的基础预算保留代表性记录、错误、异常结构和数值离群点,并通过 Stash 恢复完整集合。若紧凑 JSON 或 TOON 候选可节省至少 15%,则优先采用,避免进一步缩减记录 (#3047)。
  • 现在可以压缩识别出的 Cargo、pytest、npm/Jest、Go、Make/C 和通用构建/测试日志,省略重复的常规进度,同时保留诊断、摘要、阶段信息和堆栈。支持的构建/测试命令会保留原生日志供此路径压缩,具备恢复能力时可取回省略的区间 (#3067)。
  • Cosh-NG、Claude Code、Qoder CLI、OpenCode、Hermes 和 DeepSeek Harness 现在可以通过已有 Shell 工具恢复省略内容。成功执行的独立 tokenless retrieve HASH 命令结果不会再次压缩;恢复要求 CLI 可用,且宿主能够替换当前工具结果,其中 Claude Code 要求 2.1.121 或更新版本 (#3052)。
  • 新增 QwenPaw 插件,在进程内提供 Schema 压缩、RTK 命令改写、响应/TOON 压缩和静态 tokenless_retrieve 工具。安装时选择匹配版本的 SDK Wheel,支持的内置工具表之外的工具保持原样 (#3075)。

变更

  • 不兼容变更: tokenless compress 现在仅接受 Protocol v2 的 before_modelpre_toolpost_toolretrieve 请求,移除 Protocol v1 和 tokenless mcp serve。Core、适配器和自定义调用方必须同步升级,并提供必需的显式恢复能力声明 (#2978, #3068)。
  • 不兼容变更: Rust 调用方现在使用 Runtime 生命周期方法替代 TokenlessRuntime::compress。直接调用响应压缩的代码需要从已移除的 tokenless-pipeline Crate 和 tokenless_schema::ResponseCompressor 迁移至 Runtime 或 tokenless-compressors API (#2974, #2978)。
  • 不兼容变更: Python SDK 现在通过类型化生命周期请求调用 before_modelpre_toolpost_toolretrieve,移除旧的 ModelRequestToolCallToolResultToolResponseCompressor API。AgentScope 集成要求为自定义工具提供 ToolContract 元数据,并暴露一个静态恢复工具 (#2986, #3029)。
  • 恢复提示现在直接给出可用的 Shell 命令或配置的静态工具名,并使用裸 Hash,便于 Agent 选择正确的恢复动作。历史 <<tokenless:HASH>> 标记仍可读取;自定义 retrieve_tool_name 必须符合工具名规则 (#3068)。
  • 生命周期 Schema 压缩现在要求提供授权静态恢复工具,并具备可用的 Stash。缺少该能力的 Common BeforeModel Hook 会保留原始 Schema (#2978, #2995, #3029)。
  • 生命周期压缩现在保留声明为文件内容的结果,以及已经由 RTK 优化的结果。Common Hook 会传递每次调用的优化状态,缺少稳定工具调用 ID 时保持命令参数不变 (#2974, #2978, #2995)。
  • 不兼容变更: OpenClaw 现在使用 post_tool_enabled 控制 PostTool 优化,移除原有的响应、TOON、跳过工具和 Shell 工具策略配置。DeepSeek Harness 也改用共享压缩策略,替代适配器专用阈值和工具列表。OpenClaw 仍仅支持持久化记录的无损更新,不支持当前轮结果替换或恢复 (#3009, #3036)。
  • Hermes 现在将 PreTool 改写和 PostTool 结果处理交给 Core,使用共享响应与 TOON 策略替代适配器本地决策;旧版 Hermes 仍保留阻止原命令并建议改写命令的兼容方式 (#3018)。
  • 压缩统计现在通过 content_originapplied_operationsrecoverability 替代 seamcompressor_chain;授权恢复事件也会记录 Agent、Session 和工具调用归属 (#2978)。

修复

  • OpenClaw 现在读取插件自身配置,即使全局配置存在冲突值,显式启用和禁用设置也能生效 (#3009)。
  • npm 包现在将共享 Hook 分发脚本作为可执行普通文件打包,避免 npm pack 忽略源码符号链接后,已安装插件无法调用 Tokenless (#3068)。

[0.7.14] - 2026-08-26

新增

  • 协议 v1 的 tokenless compress 命令与 TokenlessRuntime::compress 现在为 Schema、Response 和 TOON 压缩提供统一入口,使 Adapter 最多调用一次子进程、只执行一次最终大小判定,并且只记录胜出的操作(#2844)。
  • tokenless stats summary 现在会从活跃汇总中排除 Dry-run Row 并报告排除数量,同时新增总节省、Retrieve Token、净节省、Retrieve 命中/未命中/错误计数和不可恢复截断归因;JSON 输出使用 Schema 版本 1.1,Python TokenlessStats API 也开放相同的类型化字段(#2885)。

变更

  • 截断 Marker 现在包含可直接运行的 tokenless retrieve 命令,通过 CLI、MCP 和内嵌 Runtime 执行的 Retrieve 都会计入归因,并且 MCP Retrieve 与 CLI 一样接受大写 Hash(#2885)。

修复

  • Codex 集成不再在 Tool 使用后追加第二份压缩副本;它会保留环境诊断与 RTK 源头压缩能力,同时避免增加 Model 可见 Prompt(#2866)。
  • tokenless compress-toon 与 Runtime/Python SDK 现在会一致地保持少于 500 字符的有效 Payload 不变,同时可用 --min-toon-chars 0 强制编码;格式错误的 JSON 仍会失败,CLI 输出也会精确保留输入末尾换行符的原有形式(#2869)。

[0.7.13] - 2026-08-25

新增

  • Rust 调用方现在可以使用 tokenless-protocoltokenless-pipeline Crate,获得带版本的压缩 Request/Response、受限成本的内容探测、Registry 路由、分阶段执行和 fail-open 仲裁能力(#2783#2788#2799)。

变更

  • CLI compress-response 命令、TokenlessRuntime::compress_response 与 Python Binding 现在通过共享 Pipeline 处理 Record 结构的 JSON;标量 JSON 根节点会保持原样透传,超时或被拒绝的候选结果会返回原始内容并回滚其 Stash 写入(#2816)。
  • Runtime 与 Python 的 disposition 值现在使用协议定义的 snake_case 形式(如 dry_runno_savings),并可能返回 passthroughtimeouterror;当未发生截断时,纯清理节省现在无需 Stash 也可在 require_reversible 下生效(#2816)。

[0.7.12] - 2026-08-22

变更

  • Response 压缩现在会在保留数组头部后继续保留可配置的尾部窗口(默认 8 项,可通过 --array-tail-preserve 和 Runtime API 控制),使最终状态与错误细节继续内联,而 Stash 只存储被省略的中间段(#2433)。
  • BeforeModel Payload 格式错误或未携带工具声明时,Schema Hook 现在会每个 Session 警告一次,使 Hook 被跳过与正常执行但未产生节省可以区分;显式空工具数组仍会静默透传(#2606)。
  • L2 Benchmark 的 JSON、Markdown 与 Semantic Gate Finding 现在会列出保真失败时缺失的 Ground Truth 项,不再只报告计数(#2433)。

修复

  • tokenless stats enablestats disable 现在只基于磁盘配置持久化 Stats 开关,因此临时的压缩与 SLS 环境变量覆盖不会被写入 config.json#2592)。
  • 当任一 Session 没有记录时,tokenless stats summary --compare 现在会失败,并且 --limit 0 会被拒绝,避免拼写错误或空样本显示为成功的 0% 对比(#2674)。
  • Schema 压缩现在支持包含顶层 tools 数组的完整请求对象,在保留非 Function 工具与数组外字段的同时压缩 Function Calling 条目(#2758)。
  • 无 Stash 的数组截断 Marker 现在可以完整通过 TOON 往返,极大的尾部保留值也会保留完整数组而不再溢出(#2433)。

[0.7.11] - 2026-08-20

修复

  • tokenless compress-toon 现在用与 stats summary 以及 Python/SDK 路径相同的 CJK 感知字符估算器计算 TOON 节省,因此 dry-run 的 stderr 预测计数与记录的 before_tokens/after_tokens 一致。JSON 解析、超限输入和 TOON 编码失败仍以退出码 2 结束(#2681)。

[0.7.10] - 2026-08-19

新增

  • Gemini 原生 functionDeclarations 工具 Schema 现在可在 copilot-shell 等 BeforeModel 集成中压缩,包括使用 parametersJsonSchema 的声明,同时保留无关的 Gemini Tool 字段(#2663)。
  • anolisa-tokenless Python SDK 现在通过 TokenlessStats 开放类型化的只读 Status、Summary、List、Show、Diff 和 Comparison 查询,复用同一个 Runtime 数据目录,并且只在显式 Show 和 Diff 调用中返回已存储的 Tool 内容(#2666)。

变更

  • Raw、RPM、npm 和源码安装不再构建或提供未使用的独立 toon 可执行文件;TOON 编码仍可通过 tokenless compress-toontokenless decompress-toon 使用,升级时只清理 Tokenless 所属的旧版残留文件(#2657)。

修复

  • AgentScope 集成 Wheel 现在声明 tqdm 依赖,因此使用受支持 AgentScope 1.x 范围的全新安装在搭配 OpenAI 3.3.0 及更高版本时可以直接导入,无需手动补装依赖(#2665)。

[0.7.9] - 2026-08-18

新增

  • anolisa-tokenless Python Wheel 现在开放框架无关的 before_modelbefore_tool_callafter_tool_callretrieve 生命周期,内置 RTK,并提供原生 Schema 与 Response 压缩、TOON、受 Marker 授权的 Retrieve 和逐调用归属(#2627)。

变更

  • AgentScope 1.0.11 至 1.x 以及 AgentScope 2.0.x 集成现在挂载相同的完整 SDK 契约,在已有 Response 压缩与 Retrieve 支持上增加 Schema 压缩、命令改写、TOON、环境错误提示和逐调用归属(#2627)。

修复

  • Cosh-NG Extension 的 RTK 重写 Hook 现在直接匹配小写 shell 工具名,因此无需依赖宿主侧工具名别名也能重写 Shell 命令(#2611)。

[0.7.8] - 2026-08-18

变更

  • 当载荷少于 500 字符时跳过 TOON 编码;低于该阈值时 token 节省几乎为零,而每次事件的编码开销保持不变(#2613)。

修复

  • npm 平台包(@anolisa/tokenless-*)不再声明 tokenless/rtk/toon bin 入口。与根包的同名冲突会导致 npm 在安装时删除所有冲突的 .bin 链接,使安装后没有可用的 tokenless 可执行文件(#2613)。

[0.7.7] - 2026-08-17

新增

  • 现在可从源码构建 anolisa-tokenless ABI3 Wheel,为 CPython 3.11+ 提供有状态的进程内 JSON Response 压缩和基于 Marker 的 Stash Retrieve,且无需启动 CLI 子进程(#2501)。
  • AgentScope 1.0.11 至 1.x 以及 AgentScope 2.0.x 应用现在可以安装独立的同版本集成 Wheel,压缩成功的最终 Tool Response,并且只允许 Retrieve 当前 Agent 可见 Marker 对应的内容(#2507#2528#2553)。
  • DeepSeek Harness Profile 现在可以启用随包提供的原生 Plugin,在保持环境错误归因与 fail-open 行为的同时,压缩成功的单 Block JSON Tool Result(#2581)。

变更

  • Claude Code Adapter 探测现在会重试首次运行时暂时性的二进制文件与 Plugin Registry 初始化失败,减少预置完成后立即出现的错误未就绪结果(#2519)。
  • Tokenless RPM 现在提供虚拟能力 anolisa-component(tokenless),使 ANOLISA 在仓库组件索引不可用时仍可解析该 Package(#2576)。

修复

  • Cosh-NG Extension 执行现在会把硬关闭的 Tool Ready Hook 所返回的空结果视为成功 no-op,而不再 fail closed(#2506)。
  • 无节省的 Response 压缩现在只删除已丢弃候选结果所创建的 Stash Row,既避免孤立数据,也不会删除被其他进程刷新过的条目(#2480)。

0.7.6 - 2026-08-13

变更

  • TOKENLESS_DATA_DIR 现在接受真实用户 home 之外的绝对非根目录;显式目录无效时会停用 SQLite 状态,不再静默回退到 home(#2434)。
  • 所有 Adapter 的 Tool Ready 调用前检查、修复和阻断现已硬关闭,避免错误的就绪结果阻止有效工作;工具执行后的失败归因和其他 Tokenless 功能保持启用(#2487)。

修复

  • 直接 JSON Schema 的 Description 现在只会 Stash 一次,因此一次 Retrieve 即可返回不含嵌套 Marker 的原始内容(#2399)。
  • 通过环境变量设置 Stats 与 SLS 开关时,config.json 中的 Dry-run 压缩配置现在仍会生效(#2380)。
  • tokenless retrieve 现在会逐字节写出已存储的 Payload,不再追加换行符(#2396)。
  • Stash Retrieve 现在会跳过格式错误的 Marker 以查找后续有效 Key,并在对抗性输入下保持线性扫描(#2386)。
  • RPM 安装现在包含 Codex Adapter 安装脚本所需的共享生命周期 Helper(#2425)。

0.7.5 - 2026-08-10

新增

  • OpenCode 用户现在可以通过无冲突的本地 Plugin 启用 Tokenless,并复用现有的就绪检查、命令重写、Schema 压缩和响应压缩 Hook(1233cfcf)。

变更

  • Qoder Adapter 现在使用原生 Plugin 和 Hook 约定,在保持 fail-open 行为的同时原位替换压缩后的 Tool Output(13817938)。

修复

  • 重写后的 Shell 命令现在使用解析出的 rtk 绝对路径,因此在 PATH 受限的 Agent 环境中仍可正常执行(ae83f7d3)。
  • Qoder 和 OpenClaw Hook 现在会跨命令重写与 Proxy 边界保留 Agent、Session 和 Tool 归因信息(#21582f330656)。
  • Adapter 安装现在可识别旧版 /usr/local 布局、推荐使用 RPM 升级模式,并在升级时删除过期的已打包用户手册文件(f7ce3878ec25d516917f151e)。

0.7.4 - 2026-07-31

新增

  • Tokenless 现在可通过 npm 安装到 Linux 和 macOS x64/arm64,并包含 tokenlessrtktoon 二进制文件以及 Framework Adapter(#1929)。
  • tokenless stats diff 现在可通过文本或 JSON 报告以及有界 Unified Diff,说明 Record、Session 和 Tool Use 的预计节省量(#1991)。
  • TOKENLESS_DATA_DIR 现在可为统计数据库和可逆压缩数据库设置一个可信目录,同时保留各数据库的独立覆盖项(#2038)。

修复

  • Qwencode Adapter 现在声明其提供的 compress-toon Capability,使 Adapter 发现结果与其压缩行为保持一致(#1945)。
  • Hermes 副本安装现在可从可信的系统、XDG 和用户数据路径解析共享 Hook 资源,并在找不到安全候选路径时提供可操作的诊断信息(#2058)。

0.7.3 - 2026-07-28

新增

  • ANOLISA 现在可在 macOS 上安装 Tokenless,并将 Qwencode 作为独立 Adapter 启用(#1964)。

变更

  • Adapter Hook 现在可在用户、/usr/local、RPM 和旧版安装布局中发现 tokenlessrtktoon#1957)。
  • Hook Launcher 现在优先使用当前安装中的资源,避免多个 Tokenless 安装共存时混用不同版本(#1964)。

修复

  • Tool Schema 压缩现在读取 Cosh 和 Cosh-NG 的规范请求字段,因此 Schema 会被压缩,而不再静默原样通过(#1894)。
  • 存在 Hook 环境变量时,Cosh-NG 压缩统计现在归因到 cosh-ng#1894)。
  • Qoder Plugin 安装现在展开缓存的 Hook 路径,避免无效的 /rewrite_hook.py 命令阻塞 Tool Call;用户手册也包含受影响升级的恢复步骤(#1924)。
  • ANOLISA Package 现在包含 Tokenless Adapter 所需的共享 Hook 资源(#1964)。

0.7.2 - 2026-07-27

新增

  • Tokenless 现在通过替换原有 Model 可见内容来压缩 Cosh-NG Tool Response(#1669)。
  • Tokenless 现在可重写受支持的 Cosh-NG Shell 命令,以生成更紧凑的输出(#1669)。

变更

  • Shell 环境检查现在只报告当前命令引用的推荐工具(#1598)。
  • tokenless env-check --fix 现在只安装必需依赖,不会修改可选推荐项(#1598)。
  • 自动依赖修复现在会针对认证、网络或权限问题快速失败并提供可操作信息,而不再提示输入 sudo(#1598)。
  • Cosh-NG 压缩统计现在记录在 cosh-ng Agent 下(#1669)。
  • Cosh-NG 压缩现在从 Model Context 中排除仅供显示的内容(#1669)。
  • 无法检测版本的 Cosh-NG 运行现在会保持原始 Tool Response 不变(#1669)。
  • 压缩结果不够小时,Tokenless 现在会保持 Tool Result 不变(#1674)。
  • Tokenless 用户手册现在位于 ANOLISA 中央指南中,而不再随 RPM Package 提供(#1586)。

修复

  • Claude Code 2.1.121 及更高版本现在会用压缩结果替换原始 Tool Result,避免 Context 重复(#1674#1686)。
  • 较旧或无法检测版本的 Claude Code 现在会原样传递 Tool Result,不再复制压缩后的 Context(#1674#1686)。
  • Claude Code 替换现在会保留内置 Tool Result 格式,包括空字段(#1674#1686)。
  • ANOLISA 现在可以正确识别已打包的 Tokenless 版本(#1587)。

0.7.1

  • 修复 RPM Tarball,使其排除生成的 .anolisa/component.toml,确保 rpmbuild 始终从权威 .toml.in Template 重新生成 Adapter Contract;此前签入的过期副本会缺少 claude-code、codex 和 cosh Adapter 声明(关闭 #1470)
  • 同步 Adapter Contract:在 component.toml.in 中声明所有已交付 Driver(qoder、claude-code、codex、cosh、qwencode),并增加 CI 检查 check-component-contract 以保持同步
  • 将测试覆盖率从 75% 提高到 90%:为四个 Crate 增加约 170 个单元测试,覆盖压缩边界情况、Stash 往返、Schema Migration、SLS Writer 和 CLI Dispatch
  • 强化测试隔离:使用 RAII TempDbGuard / EnvGuard 替换不安全的环境变量修改,避免测试接触真实的 ~/.tokenless 状态;在 Makefile 中强制使用 --test-threads=1(Rust 2024 的 set_var 是 unsafe)

0.7.0

  • 增加 MCP tokenless_retrieve stdio Server(tokenless mcp serve),使连接 MCP 的 Agent 可按需恢复截断 Payload;这是 tokenless retrieve CLI 的 MCP 对应实现,补齐与 Headroom CCR headroom_retrieve 的 Stash MCP 差距
  • 完成其余有损路径的可逆压缩(Stash / CCR)覆盖:ResponseCompressor 字符串截断、ResponseCompressor 深度截断和 SchemaCompressor 描述截断现在都由 Stash 支持并使用 <<tokenless:KEY>> Marker;写入 Stash 前进行容量检查以避免孤立条目,共享的 stash_suffix() Helper 保持 Marker 预算一致
  • compress-schema 增加 --no-stash / --stash-db Flag(与 compress-response 一致);Dry Run(compression_on=false)会跳过 Stash,确保没有可检索条目时 Marker 不会进入 LLM
  • SqliteStore 增加惰性 TTL 清理:在 Retrieve 查询前物理删除过期行,避免 Stash DB 无限增长
  • 增加实际节省率展示:StatsSummary::actual_savings_percent(session_total_tokens)format_summary() / format_summary_json() 接受可选的 Session 总量,并输出“Overall Savings vs Total Consumption”区段及新的 JSON 字段(session_total_tokensactual_savings_tokensactual_savings_percent);未提供时保持向后兼容
  • 为压缩统计增加 Stash 写入与大小计数器(扩展 record_compression_stats);Retrieve 端的命中/未命中统计延后到出现明确使用场景时实现
  • 增加 Qoder Framework Driver(qodercli 安装、settings.json Merge/Prune、AdapterOps::read_file、Symlink-safe 原子 write_file);仅允许 Qoder 使用 adapter_type=plugin;对伪造 Receipt fail closed,并要求所有受管 Hook 存在
  • 将测试覆盖率从 59% 提高到 75%:四个 Crate 新增 100 多个单元测试和 18 个 CLI 集成测试;测试代码通过 include!() 移至 src/tests/,使代码结构更清晰
  • 增加可逆压缩用户手册(docs/stash-reversible-compression.md)并更新 README:为 tokenless-ccr 增加架构树条目,增加说明 Hash/Marker 输入和 --no-stash / --stash-db 的 Retrieve 小节,并按场景映射重写“适用场景与预期效果”章节
  • 将 Tokenless 文档从 *_CN.md 重命名为 *_zh.md,增加双向双语链接,并创建 README.mdREADME_zh.md
  • 处理 Adapter Review 发现:信任 Codex Symlink Target 的已打包数据目录 Root;按组件限定 Claude Code Marketplace 并 fail closed;启用前拒绝 Framework/Adapter Type 不匹配
  • 消除 rustc 1.94 stable 在现有测试中发现的 Clippy Warning(tokenless-cli 中的 field_reassign_with_default,tokenless-stats 中的 bool_assert_comparisondefault_constructed_unit_structs

0.6.1

  • 将 tool_categories.json 打包进 dist,用于 npm 安装
  • 使用 node: Prefix,并在 OpenClaw Plugin 中移除 Shell Subprocess

0.6.0

  • 在 JSON 输出中增加绝对保存值和 Schema Version
  • 在 OpenClaw Plugin 中使用 import.meta.dirname 替代 __dirname
  • 为 Qwen Code Extension 增加 Qwencode Adapter
  • 修复 RTK pytest 的“No tests collected”回归
  • 为 Codex Script 中的 hook_utils Import 增加可信 FHS Fallback Path
  • 增加带配置开关的 SLS JSONL 数据收集
  • 增加 Tokenless RPM Component Contract(发布元数据)
  • 增加带 Dry-run 比较模式的压缩开关(TOKENLESS_COMPRESSION_ENABLEDstats summary --compare
  • 默认启用 SLS 记录并补充使用文档
  • 对齐压缩模式的 Serde/DB 形式并去重配置加载
  • 扩展 RPM Component Contract(bundle.entry + hermes)
  • 将 SLS Writer 改为仅追加,并在日志文件不存在时跳过
  • Qwencode Hook 优先使用 tool_call_id,而不是内部 tool_use_id
  • 将 Vendored RTK 升级至 v0.43.0;针对重构后的 Runner 重做 pytest stderr 输出 Patch;删除 grep-fallback-fix(上游已修复根因)和 preflight-skip-python(上游已撤销)
  • 将 Makefile 和 Spec 中的 toon-format 同步到 0.5.0(此前仍为 0.4.6)

0.5.1

  • stats summary 增加 --json 输出
  • 实现统一 Tool 分类和三层压缩策略
  • 增加 RTK grep Fallback Pattern 修复 Patch
  • 增加 RTK pytest Error Report Patch

0.5.0

  • 增加 Hermes Adapter Runner
  • 移除 TOON Wrapper Prefix 并精简诊断 Tag
  • 在各 Adapter 中统一 RTK Rewrite Exit Code 3 的处理
  • 保护 env-fix 和 Hook 中的 Shell 变量插值
  • 增加 Subprocess Return Code 检查,并提取共享 Hook Utility
  • 保护 resolveBinaryPath 并改进 Binary Cache 失效逻辑
  • 在测试中使用 mktemp 和安全的 Home 展开
  • 限制 SchemaCompressor 递归深度,防止 Stack Overflow
  • 传播 env-fix Subprocess Failure,不再只返回 stdout
  • 基于 getpwuid_r 进行 Home 查询,并对候选 Binary 执行 Trust Check
  • 使用 UID Trust Check 强化 env-fix 安装路径,并将 stderr 转存到日志
  • Stats Recorder 从 Poisoned Mutex 恢复,不再直接失败
  • 增加输入大小限制并校验 DB Path
  • 在 Response Compressor 中预留 Truncation Marker 长度
  • 将 OpenClaw Plugin Name 重命名为 Tokenless,ID 重命名为 tokenless
  • 增加 Qoder CLI Adapter
  • 支持对 Array Input 执行 compress-schema
  • 压缩被跳过时发出警告
  • 增加 Stats Command Syntax
  • 增加 Claude Code Adapter Plugin
  • TTY stdin 输入时返回错误,不再挂起
  • 增加 Codex Adapter Plugin
  • 修复压缩 Pipeline 的输出膨胀、截断和 Hook Timeout
  • 强化 env-fix、版本提取、文件信任、Schema 和权限
  • 处理 Review 发现:Trailing Newline、chmod Guard、Rate-limited Log 和 Comment
  • 使 skip-tools 条目可进行环境归因
  • 增加 selective-claw Context Engine Plugin
  • 处理 selective-claw Plugin Review 发现
  • 从 selective-claw 中移除无效的 2 依赖
  • 恢复 compress_response_hook.py 中的缩进
  • 强化 Hook Exit Code 处理和 Trust Model 一致性
  • 只对真正异常的 RTK Exit Code 发出警告
  • 去重 rewrite_hook,并从 hook_utils 导入

0.4.1

  • 修复 env_check.rs 中 version_ge 的三段版本截断问题(比较所有分段)
  • 增加 Qoder、Claude Code、Codex Adapter Plugin 和文档
  • 将 manifest.json 与 Template 同步,以包含全部六个 Agent
  • 更新 README 和用户手册,记录新的 Agent Integration
  • pycache 加入根 .gitignore
  • 更新 response-compression.md,记录全部 Agent Integration Path
  • 从 Cargo.toml 派生 Makefile 版本,并修复 Spec Changelog 的星期
  • 将 Adapter 版本号统一为 0.4.0
  • 从 Cargo.toml 派生 Adapter Plugin 版本,不再硬编码

0.4.0

  • 修复 Stats、命名、SQL、路径和权限中的 5 个 Bug
  • 对齐 FHS 路径、重构 Adapter 目录并移除 install.sh
  • 处理 Schema、env-check、Hook 和 Plugin 中的 Code Review 发现
  • 增加 Hermes Agent Plugin
  • 强化安全性并修复关键算法正确性
  • 修复行为正确性和逻辑问题
  • 去重、删除 Dead Code 并进行表面清理
  • 支持 Staged Install
  • 支持 Debian/Ubuntu FHS 路径并强化 Binary Resolution
  • 将 OpenClaw Plugin 构建到 dist/index.js

0.3.2

  • 使用 libc::getuid() Syscall 替换可伪造的 Home Directory UID 推导,保证 Trust Chain 完整性
  • 使用进程内 toon_format::encode_default() Library Call 替换 Subprocess toon -e 调用
  • 使用 crates.io Dependency 和内联 toon-format Source 替换 RTK/TOON Git Submodule
  • justfile 的 setup-rtk Recipe 在 RTK Stats Patch 失败时 Hard Fail
  • 统一 compress-toon、compress-schema 和 compress-response 的 Error Exit Code(均为 2)
  • 从 Makefile 的 toon 安装中移除 2>/dev/null || true(Binary 缺失时 Hard Fail)
  • 删除已具有 #[from] 的 thiserror Variant 上多余的 #[source] Attribute
  • 将 Python Hook 的 FHS Path Constant 去重到共享 hook_utils Module
  • 将 libc 加入 Workspace Dependency,用于 UID Syscall
  • 在 spec.in 中增加 rust >= 1.89 的详细注释,说明 CI Pin 的原因

0.3.0

  • 增加与 Cosh Extension 集成的 Tool-ready 四阶段环境预检查
  • 无 Token 节省时跳过压缩和统计
  • 通过 .rewrite-context 文件向 RTK Stats 传递 Caller Context
  • 从 install.sh 中移除多余的 Cosh Extension 安装/卸载
  • 按 Cosh 开发指南将 Cosh Hook 转换为 Extension 格式
  • 跳过零压缩和统计记录
  • 在 OpenClaw Plugin 中使用 isExecutable() 和解析后的路径
  • 为 RPM 安装的 Plugin 解析 RTK/TOON Binary Path
  • 修正 RPM 安装路径,使其符合 install.sh 预期
  • 在 TOON Encoding 中保留 Tool Result Message 结构
  • 将安装路径与 FHS 对齐
  • 使用 Hook Payload 中真实的 tool_use_id 自动记录 Stats
  • 重构 RPM 目录并移除自动 Plugin/Hook 安装

0.2.0

  • 增加基于真实数据自动记录的压缩统计
  • 增加 TOON Context 压缩支持
  • 对 Skill 和内容检索 Tool 跳过压缩

0.1.0

  • 将 Tokenless 引入 ANOLISA(#199)

更新日志

0.5.0

Added

  • 统一 workspace 路径身份,init 时拒绝冲突的别名注册
  • init/unregister 被中断的 workspace 在 daemon 重启后自动恢复
  • 新增 cosh-ng 受管任务使用的 guarded rollback V2 协议与 evidence wire variants,cosh-ng 需要 ws-ckpt daemon 0.5.0 及以上

Changed

  • OpenClaw 工具白名单改由 OpenClaw config CLI 管理,要求 OpenClaw 2026.2.13 及以上 (#3221)
  • /etc/ws-ckpt/config.toml 以 RPM %config(noreplace) 打包:升级保留管理员修改、新默认值落为 .rpmnew;卸载时修改过的配置保留为 .rpmsave,重装后需手动恢复 (#3070)

Fixed

  • 修复空 workspace 不生成快照的问题
  • 修复 workspace 目录被外部替换后操作仍静默成功的问题,现在快速失败并提示 recover (#3059)
  • 修复 recover --all 部分失败时仍返回成功的问题 (#3069)
  • 修复 recover 失败时 rpm -e 连带清掉最后一份快照的问题 (#3069)
  • 修复磁盘空间紧张时 checkpoint 失败的问题,自动回收已删除子卷 (#3053)
  • 修复并发 init 同一 workspace 的竞态问题
  • 修复 raw 安装布局下的 adapter 发现问题
  • 修复 OpenClaw 插件安装时未校验 CLI 能力支持的问题 (#3116)

0.4.5

Added

  • 新增中英双语的 sidecar 部署指南 (#2965)

Fixed

  • 修复所有 loop 设备被占用时的间歇性 bootstrap 失败 (#2965)
  • sidecar preStop 的 loop 清理改为仅处理 ws-ckpt 自身的设备 (#2965)

0.4.4

Added

  • 新增受保护的 checkpoint 协议,快照创建按存储身份围栏,崩溃后状态仍可校验

Fixed

  • 修复回滚被中断后重启丢失状态,无法判定的候选文件予以保留而非删除
  • 修复 config --global 校验 daemon 是否实际加载所写配置 (#2813)
  • 修复 sidecar 部署指南遗漏全局配置所需的 /etc/ws-ckpt 共享卷 (#2813)
  • 修复错误提示覆盖容器化部署与 daemon 挂载命名空间场景 (#2807, #2814)

0.4.3

Added

  • 新增 k8s sidecar 容器化部署支持 (#2034)

Fixed

  • 修复 daemon 在持续 checkpoint 负载下内存无限增长,最终导致 OOM (#2554)
  • 修复 loop device 后端在并发 IO 下 checkpoint 延迟,至多降低至原来的 1/5 (#2523)
  • 修复 bootstrap 失败后遗留孤儿镜像和 loop device,并在启动失败时输出明确的错误信息而非静默退出 (#1956)
  • 修复 workspace 路径已被挂载时 init 返回 EBUSY 无提示,改为拒绝并给出清晰的错误信息 (#1798)
  • 补充 RPM 组件身份声明,使 anolisa-cli 可自动发现 ws-ckpt 适配器 (#2568)

0.4.2

Added

  • 新增 ops 日志写入的遥测门控 (#1509)

Fixed

  • 修复中断 init 后遗留的 .pre-init-bak 自动恢复 (#1601)

0.4.1

Added

  • 新增 rollback 后跳过自动 checkpoint (#1263)

Fixed

  • 修复 config 更新后的工作区同步 (#1263)
  • 修复 crontab 条目中 ws-ckpt 的绝对路径处理 (#1263)
  • 变更 rollback -n 偏移量,直接传递 numAncestors (#1263)

0.4.0

Changed

  • 不兼容 checkpoint -i/--id 参数更名为 -s/--snapshot 作为主参数;-i 保留为隐藏别名,未来版本可能移除 (#1064)

Added

  • 新增插件安装/卸载子命令 (#1005)
  • 新增 component.toml 用于 anolisa-cli 适配器发现 (#1005)
  • 新增 rollback 预览功能,支持 --preview 参数 (#1103)
  • 新增每次 CLI 操作后的耗时显示 (#1075)
  • 新增省略 --snapshot 时自动生成快照 ID (#1064)
  • 新增 SLS 运维日志输出用于仪表盘指标 (#1059)
  • 新增 diff 的可选 -t 参数,用于将快照与当前工作区对比 (#848)
  • 新增按祖先数量 rollback 和快照 DAG 追踪 (#877)
  • 新增基于 cron 的定时 checkpoint 快照 (#819)

Fixed

  • 修复 --snapshot/-s 作为主参数的处理及插件参数对齐 (#1103, #1064)
  • 修复 SKILL.md 与实际 CLI/插件实现的同步 (#847)
  • 修复 init 和 recover 对被替换的 workspace 符号链接的防护 (#860)
  • 修复 init rsync 去除 --copy-unsafe-links (#873)

0.3.3

Added

  • 新增每工作区策略覆盖,支持 hermes/openclaw 插件 (#721)
  • 新增 /proc cwd 占用者检测,用于 init 和 rollback (#684)
  • 新增 Hermes 适配器运行脚本 (#617)

Fixed

  • 修复 rollback 中的写锁竞争和 cwd 检测死锁 (#721, #684)
  • 修复非 UTF-8 路径和路径穿越快照 ID 的输入验证 (#695, #678)
  • 修复 seccomp 架构选择、工作区注册并发和 RPM 打包问题 (#695, #684)

0.3.2

  • 修复 openclaw 卸载时未从配置中移除工具白名单
  • 修复父路径拒绝规则作为工作区级别规则应用于 skill 和 openclaw 插件

0.3.1

  • 修复插件工作区配置注册和自动加载
  • 拒绝将 hermes cwd 本身或其父路径作为工作区路径
  • 修复插件工具优先使用显式 workspace 参数而非配置
  • 修复 skill 删除需要 --force 参数
  • 修复 daemon 工作区路径验证和 fswatch 文件描述符泄漏
  • 移除未使用的 btrfs_ops.rs 模块

0.3.0

  • 新增 openclaw 插件脚手架
  • 新增 hermes 插件脚手架
  • 将 ws-ckpt skill 改为 agent 无关,在调用时提示输入工作区
  • 遵循 make install 契约用于 build-all 集成
  • 修复 list 和 diff 子命令的缺陷
  • 将 daemon 改为有状态

0.2.0

  • 新增 auto_cleanup 功能及开关
  • 统一通过 TOML 文件修改配置
  • 新增全局 CLI 警告:当任意工作区快照数 >1000 或文件系统使用率 >90%
  • 修复后端检测和 daemon 状态恢复逻辑
  • 修复 daemon 重启后镜像大小配置不生效
  • 移除过时的 fs_warn_threshold_percent 参数
  • 修复 config.toml 作为示例文件分发

0.1.0

  • 带 Unix Socket IPC 和 Bincode 二进制协议的 Daemon
  • init / checkpoint / rollback / delete / list / diff / cleanup / status / config 命令
  • 后台调度器:自动清理、健康检查、孤立恢复
  • 多后端:btrfs-base / btrfs-loop / overlayfs 自动检测
  • TOML 配置持久化及运行时热重载
  • systemd 服务及 Alinux 4 RPM 打包