Skip to content

chore(memory): bump version to 0.2.8 - #3375

Merged
ikunkun-sys merged 1 commit into
agentic-os-org:mainfrom
ikunkun-sys:release/memory/v0.2.8
Sep 20, 2026
Merged

ikunkun-sys merged 1 commit into
agentic-os-org:mainfrom
ikunkun-sys:release/memory/v0.2.8

Conversation

@ikunkun-sys

Copy link
Copy Markdown
Collaborator

Why

Prepare agent-memory 0.2.8 from the changes merged after the 0.2.7 release commit a443acbd. This release includes writable session fallback, corrected search ranking, and OpenClaw configuration and tool integration fixes. The patch version was explicitly requested; the OpenClaw tool-name incompatibility is prominently documented.

What changed

Synchronize all 11 tracked release surfaces: Cargo manifest/lock, adapter and OpenClaw manifests, npm manifest/lock, MCP descriptor, ANOLISA catalog, RPM changelog, and English/Chinese changelogs. Cargo.toml remains authoritative; the ignored .anolisa/component.toml is regenerated and checked separately. Notes describe the final behavior of #3213, #3231, #3238, #3266, #3296, and #3347; the temporary memory-core takeover was superseded by namespaced tools. This commit changes metadata and release documentation only.

Related issue

no-issue: component release aggregation and synchronized version metadata.

User / Agent impact

  • OpenClaw uses anolisa_memory_search and anolisa_memory_get; update prompts and allowlists, restart the gateway, and start a new conversation. Internal MCP names and stored memories are unchanged.
  • The plugin declares all four tools in the OpenClaw coding profile. Explicit custom and sandbox policies remain operator-owned. Intermediate installers' memory-core disable markers require manual recovery; installation does not silently reselect the operator's memory backend.
  • Unprivileged users gain a writable private session fallback for logs and promotion. Stronger BM25 matches rank first. Session settings are accepted by the plugin schema, UTF-8 IDs fail early when too long, and the unsupported plugin expert profile is rejected with guidance. Reload validation stops the prior client first.

Risk and compatibility

  • Public CLI, API, configuration, or documented behavior changed
  • Privileged or security-sensitive behavior changed
  • Cross-component contract changed
  • Migration or rollback guidance is needed

These boxes describe the released range; this bump adds no runtime changes. Tool-name migration is required despite retaining the requested patch version. Session fallback checks ownership, permissions, and symlink redirection. The catalog and adapter versions are synchronized. No stored-memory format migration is introduced.

Validation

Linux x86_64; rustc 1.98.1, Node.js 24.15.0, npm 11.12.1.

  • cargo fmt --all and cargo fmt --all -- --check
  • cargo check --offline; cargo clippy --workspace --all-targets --locked -- -D warnings
  • cargo test --workspace --locked: 370 passed, 0 failed/ignored
  • cargo doc --workspace --no-deps --locked
  • make build-openclaw-plugin: TypeScript check and bundle passed; npm test: 154 passed
  • make test-openclaw-install: 53 scenarios passed
  • node tests/host-policy-test.mjs /tmp/anolisa-memory-openclaw-2026.9.2/node_modules/openclaw: 12 real-host loader/policy scenarios passed, including coding, custom allow/deny, sandbox restrictions, and namespaced tools
  • cargo build --release --locked; target/release/agent-memory --version: agent-memory 0.2.8
  • make smoke with isolated outer memory/session paths; additional JSON-RPC assertions verified the 0.2.8 handshake, tool listing, write/read/grep/list/observe, and traversal rejection, then reaped the server
  • make dist in an isolated copy produced source/vendor archives; unpacked archives passed cargo check --offline --locked --all-targets from the extracted source directory
  • npm pack --dry-run --json: version and required plugin payload verified
  • make spec; rpmspec -q --qf '%{NAME} %{VERSION}\n' agent-memory.spec: agent-memory 0.2.8
  • python3 scripts/check-component-versions.py; bash tests/test-check-component-versions.sh; bash tests/test-build-all-runtime-deps.sh
  • Release-skill check_release.py passed for the working tree and committed revision against a443acbd, covering all 11 previous release surfaces; generated contract checked as 0.2.8; git diff --check passed

Limits: no full rpmbuild was run. The existing source archive LICENSE is still the literal ../../LICENSE text rather than the license body. rpmspec retains the pre-existing 0.2.1 historical weekday warning. These were not changed by the release bump.

Documentation and rollback

English and Chinese changelogs are paired and the RPM changelog records the same release boundary. Tool migration and legacy marker recovery link to the existing bilingual user guide. To roll back the release metadata, revert this commit; to roll back deployed behavior, reinstall 0.2.7 and restore the prior OpenClaw prompt/tool policy names, then restart the gateway and start a new conversation. Preserve memory data and inspect any legacy memory-core disable marker before changing the selected backend.

Synchronize Cargo, OpenClaw, MCP, RPM, and catalog release metadata.
Keep Cargo.toml authoritative and generate the package contract from its template.

Curate bilingual notes from the changes since 0.2.7, including the OpenClaw
name migration, writable sessions, configuration validation, and search ranking.
Retain the requested patch version while explicitly documenting the tool-name break.
This bump adds no new runtime behavior; validation covers Linux x86_64.

Assisted-by: Codex:0.155.1
Signed-off-by: 爱鲲 <jiawa.syx@alibaba-inc.com>

@kongche-jbw kongche-jbw left a comment

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Review baseline: a35d3d2ecff2...6b4355ba0919
未发现阻塞问题。

Remaining risks:

  • 未复跑完整 RPM 构建;agent-memory 和 anolisa 的 CI 在审查时仍在运行。
  • 0.2.8 含已记录的 OpenClaw 工具名迁移;部署仍需更新提示词/allowlist 并重启。

Verification scope:

  • 审查完整 11 文件 PR diff、全部评论、Review、thread 与触发事件上下文。
  • 版本同步、JSON 解析、Cargo metadata、rustfmt 和 diff check 均通过。

@Forrest-ly

Copy link
Copy Markdown
Collaborator

Code Review(AI · Code Reviewer agent)@ 6b4355b — 结论:COMMENT,不阻塞合并。未发现缺陷,4 条非阻塞建议详见 review。

已独立复核(本地 checkout PR head,非仅读 diff):

  • 11 个发布面版本全部为 0.2.8,且改动文件集与 0.2.7 bump a443acbd 完全一致;全仓 git grep 0\.2\.7 残留仅为根 stack CHANGELOG 的 v1.4 表、其它组件 lockfile 的第三方依赖、以及 0.2.7 历史条目 ⇒ 无漏改/多改。python3 scripts/check-component-versions.py 本地 exit 0。
  • changelog 7 条 bullet 逐条回查已合并代码,表述与实现一致(含 #3213 的 128 字节校验确实落在 config.ts:91 而非仅靠 JSON Schema maxLength)。
  • 中英对称(新增 1 / 变更 2 / 修复 4,PR 编号与顺序一致),相对链接可解析;scripts/docs-lint.sh 与 scripts/docs-link-check.py 本地通过;链接指向的用户指南确实包含新工具名、名称映射表与 memory-core 禁用标记的手动恢复步骤。
  • 范围对账:a443acbd..origin/main -- src/agent-memory = 13 commits / 10 PRs,未入册的 4 个(fix(memory): release memory_get/memory_search from OpenClaw memory-core #3222 除外)均为 CI/构建管线变更,按 user-perceivable 口径排除合理;无未合并或越界内容写入。
  • RPM:Version: @VERSION@ 无需手改;新 %changelog 条目逆序、空行、Sun Sep 20 2026 星期自洽、-1 与 %define anolis_release 1 一致。
  • CI @6b4355b 已全部完成:14 pass / 0 fail,其中 Test agent-memory(ci(memory): run plugin unit tests on PRs #3372 新增插件单测门禁首次跑在 release PR 上)、Test anolisa、Check component versions、Docs Lint 均 success。

@Forrest-ly Forrest-ly left a comment

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Review baseline: 6b4355ba0919e9bc19f24d34c1547851a8096279(单 commit,head 未漂移)
结论: COMMENT — 未发现阻塞问题,4 条非阻塞建议。审查方式:本地 checkout PR head 独立复核,不只看 diff。

一、已复核通过的点

1. 11 个发布面版本一致性
全部为 0.2.8,且改动文件集与上一次 bump a443acbd(0.2.7)逐文件一致,符合既有约定:

  • Cargo.toml:3;Cargo.lock:13 仅 [[package]] name = "agent-memory" 条目变更,无依赖漂移 ⇒ 与「纯元数据 commit」自洽。
  • adapters/agent-memory/manifest.json:3、openclaw/openclaw.plugin.json:4、openclaw/package.json:3、config/mcp-server.json:4。
  • openclaw/package-lock.json:3,9:root .version 与 packages[""].version 都改了,与 Makefile:98 里 sync-versions 的 jq 表达式(.version = $v | (.packages[""] | select(.) | .version) |= $v)一一对应 ⇒ 该 head 上 make sync-versions 为 no-op,不会在构建时 dirty 工作树。
  • src/anolisa/manifests/components/agent-memory/component.toml:3(catalog),.anolisa/component.toml 被 gitignore、由 component.toml.in(version = "@VERSION@")生成,处理方式正确。
  • 全仓 git grep -n "0\.2\.7" 残留仅三类,均为预期:根 CHANGELOG*.md 的 v1.4 stack 组件表(按 specs/documentation-standard.md:226,根 changelog 由 stack release 聚合,不属组件 bump 范围)、其它组件 lockfile 里的第三方依赖(relateurl@0.2.7 等)、agent-memory 自身的 0.2.7 历史 changelog/spec 条目。
  • python3 scripts/check-component-versions.py ⇒ Component version metadata is synchronized.(exit 0)。

2. RPM
agent-memory.spec.in 无需改 Version(Version: @VERSION@,由 Makefile 从 Cargo.toml 注入)。新增 %changelog 条目(spec.in:204-211):逆序紧接在 0.2.7-1 之前、空行分隔与既有条目一致;Sun Sep 20 2026 星期自洽(date -d 2026-09-20 +%A = Sunday);-1 与文件头 %define anolis_release 1 一致;6 条摘要与 a443acbd..main 的实际范围匹配,且把工具改名的迁移要求放在第一位。

3. changelog 内容准确性(逐条回查已合并代码)

  • #3213:「在插件启动时按服务端规则检查 128 字节 UTF-8 上限」表述准确 —— JSON Schema 的 maxLength: 128 只是字符数,真正的字节校验在 openclaw/src/config.ts:91 的 Buffer.byteLength(value, "utf8"),且 resolveSessionId(config.ts:283)对 sessionId 复用同一函数;sessionId/sessionDir 两个 schema key 也确实存在。
  • #3296:对应 let relevance = -bm25_score; 与 SearchHit::score 的「higher is better」注释,并有回归测试 search_ranks_the_stronger_bm25_match_first / search_reports_one_score_convention_on_every_path。
  • #3266:对应 src/session/base.rs 的 $XDG_RUNTIME_DIR → tmp 两级回退,以及 fallback_owner_is_us()、is_planted_symlink()(AT_SYMLINK_NOFOLLOW)等 ownership/permission/symlink 检查 ⇒ 「回退路径会检查所有者、权限及符号链接重定向」无夸大。
  • #3238:openclaw.plugin.json:45-50 的 enum 只剩 basic|advanced(expert 被拒),stopStaleClient() 在 resolveConfig 之前调用 ⇒ 「校验重载前先停旧 client,避免旧进程持有存储锁」准确。
  • #3231:make dist copy list 修复,影响 source/RPM 构建者拿到的产物,放进 Fixed 合理。
  • #3347:contracts.tools 恰为 4 项,且每项在 toolMetadata 下声明 profiles: ["coding"] ⇒ 「声明全部四个插件工具」准确;改名映射见 mcp-client.ts:91(anolisa_memory_search → memory_search),只有 2 个工具改名、memory_observe/memory_get_context 保持原名 ⇒ changelog 只写这两个新名字是准确的;「内部 MCP 名称和已存储记忆保持不变」也与 resolveMcpToolName 的实现一致。

4. 中英对齐与链接可达性
两份 changelog 结构完全对称(新增 1 / 变更 2 / 修复 4,PR 编号与顺序一致,各自指向对应语种文档),语义等价。bash scripts/docs-lint.sh(naming + en/zh tree parity)与 python3 scripts/docs-link-check.py 本地均通过。

更关键的是链接指向的用户指南确实兑现了迁移承诺,不是空头引用:docs/user-guide/{en,zh}/token-saving/agent-memory.md 已包含 4 个新工具名、anolisa_memory_search → memory_search / anolisa_memory_get → mem_read 映射表、.anolisa-memory-anolisa-disabled-memory-core 标记的手动恢复步骤(en:189-199 / zh:179-186),以及排障表中「提示词仍使用旧工具名」一行(en:687 / zh:672)。破坏性变更的迁移指引在 changelog(en/zh) + RPM changelog 首条 + user guide(en/zh) 共四处落地,醒目度足够。

5. 范围对账(是否漏记/多记)
git log --no-merges a443acbd..origin/main -- src/agent-memory = 13 commits,来自 10 个 PR:#3213 #3222 #3231 #3238 #3256 #3266 #3281 #3296 #3347 #3372。changelog 引用了 6 个;未引用的 4 个中,#3281 与 #3372 是 ci(memory)(仅在打包/PR 时跑插件 TS 测试)、#3256 是构建管线(esbuild 前加 tsc),都不改变已发布产物内容,按 user-perceivable 口径排除合理 ⇒ 无越界内容、无把未合并改动写进 release note 的情况。唯一值得补的是 #3222 的编号(见 S1)。

6. CI @6b4355b(现已全部完成)
Test agent-memory、Test anolisa、Check component versions、📚 Docs Lint 全部 completed/success;整体 14 pass / 0 fail。这也是 #3372 新接入的插件单测门禁第一次跑在 release PR 上,已通过,npm 依赖抖动未复现。

7. 改名的仓内影响面
除 src/agent-memory 与 docs/ 之外,全仓唯一的 memory_get / memory_search 引用是 src/benchmark/claweval-runner/src/ce_runner/tool_injector.py:73 的 _DENY_BUILTIN_TOOLS —— 那是 OpenClaw 内置 memory-core 的工具名,正是本次改名要避开的同名冲突(first-wins 注册表会把插件同名工具丢弃)。改名后该 deny 列表不再误伤本插件 ⇒ 仓内无消费者被破坏。

二、非阻塞建议

S1 · 可追溯性(建议本次就改)
src/agent-memory/CHANGELOG.md:19、CHANGELOG_zh.md:19(coding profile 那条)与 agent-memory.spec.in:206:这一条描述的其实是 #3222 + #3347 的合并终态(install/uninstall 不再接管 memory-core、但保留历史禁用标记并给出手动恢复)。#3347 自己的 commit message 也写了 Supplements: b8d93c2f6fad。建议把引用改成 (#3222, #3347),这样 specs/documentation-standard.md:272 要求的「release bump PR 聚合上个版本以来所有 user-perceivable 变更」可以直接对着 git log a443acbd..HEAD 逐 PR 核账,不需要读 commit message 才能对齐。

S2 · 收录口径显式化(可后续做)
现在的口径是隐式的:#3231(make dist)进了 Fixed,理由是「source/RPM 构建者拿到的产物变了」;#3256(bundle 前跑 tsc)没进,理由是「只改构建流程」。两者都属构建侧,判断本身我认同,但建议在发布 checklist / specs/documentation-standard.md 里补一行规则(例如「仅改变构建或 CI 流程、不改变已发布产物内容的变更不入 changelog」),避免每次 bump 重新讨论一遍。

S3 · breaking change 与 patch 版本号(本次不阻塞,建议在根 release 补强)
这是本仓所有组件 changelog 里的第一条 **Breaking change:**。CONTRIBUTING 与 specs 都没有禁止 pre-1.0 组件在 patch 位做不兼容变更,PR body 也明确记录了「patch version was explicitly requested」,且迁移指引已在四处落地 ⇒ 不构成阻塞。建议:下一次根 stack release(不是本 PR)把这次工具改名写进根 CHANGELOG.md 的 ### Compatibility 小节,参照 CHANGELOG.md:48-52 里 Tokenless Protocol v2 的写法 —— 运维查跨组件不兼容变更是看那一节的;同时在 ### Component Versions 表旁的 highlights 里点一句「agent-memory 0.2.8 需迁移提示词 / tool allowlist 并重启 gateway」。

S4 · 适配层版本下限(请 owner 确认,不必在本 PR 改)
adapters/agent-memory/manifest.json:6 仍是 "compatibleVersions": ">=5.0.0",而 0.2.8 的 plugin manifest 首次依赖 toolMetadata.profiles(#3347 引入的新 key)。请适配层 owner 确认 >=5.0.0 仍是支持 toolMetadata 的真实下限;若需要抬高,走单独 PR 更合适,不必塞进这个纯元数据 commit。

关于 #3372 的 4 条 follow-up(setup-node 无 cache、npm install 应为 npm ci、tsx --test 不拦类型错误、失效注释)
均为 CI / 构建质量项,不改变已发布产物,不建议作为本 release 的前置条件;按正常 follow-up PR 落地即可。


本次审查为 AI Code Review(Code Reviewer agent),复核范围:完整 11 文件 diff、a443acbd..main 提交范围对账、changelog 与已合并代码的逐条比对、版本一致性脚本与 docs-lint/link-check 本地复跑、CI 结论。未复跑完整 RPM 构建与 cargo test(本 commit 不含 Rust 代码变更,CI 已覆盖)。

@ikunkun-sys
ikunkun-sys merged commit 7155923 into agentic-os-org:main Sep 20, 2026
29 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

component:anolisa src/anolisa component:memory src/memory scope:documentation ./docs/|./*.md|./NOTICE

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants