Component
ws-ckpt
Bug Description
anolisa install ws-ckpt --backend rpm --package ws-ckpt 返回 INVALID_ARGUMENT: component 'ws-ckpt' is not an ANOLISA RPM component。根因是 ws-ckpt.spec.in 缺少 Provides: anolisa-component(ws-ckpt) 声明,导致 anolisa 组件发现机制(通过 RPM Provides 能力解析)无法识别 ws-ckpt 为合法 ANOLISA 组件。同时 components-v2.toml 镜像返回 404,components.toml (v1) 虽可用但未包含 ws-ckpt 的 package_map 条目,双重 fallback 均失败。
该问题由 AgenticOS Nightly 自动化测试在 2026-08-16 nightly(nightly-20260816-020035,anolisa main ba20d94)如实上报为 TEST_FAILED 后定位。连续 3 天(08-14, 08-15, 08-16)稳定复现。
Steps to Reproduce
# 1. 确认 ws-ckpt RPM 已安装
rpm -q ws-ckpt
# 输出: ws-ckpt-0.4.2-1.alnx4.x86_64
# 2. 检查 RPM Provides 中是否有 anolisa-component(ws-ckpt)
rpm -q --provides ws-ckpt
# 实际输出: ws-ckpt = 0.4.2-1.alnx4, ws-ckpt(x86-64) = 0.4.2-1.alnx4
# 期望输出应包含: anolisa-component(ws-ckpt)
# 3. 尝试通过 anolisa 安装 ws-ckpt
anolisa install ws-ckpt --backend rpm --package ws-ckpt --json
# 实际: {"ok":false,"error":{"code":"INVALID_ARGUMENT","reason":"component 'ws-ckpt' is not an ANOLISA RPM component; ... publish Provides: anolisa-component(ws-ckpt)"}}
# exit code: 2
# 4. 验证 components-v2.toml 镜像状态
curl -sI http://mirrors.cloud.aliyuncs.com/anolisa/generic/anolisa/v1/components-v2.toml
# HTTP/1.1 404 Not Found(无 v2 索引 fallback)
Actual Behavior
$ anolisa install ws-ckpt --backend rpm --package ws-ckpt --json
{
"ok": false,
"schema_version": 1,
"command": "install ws-ckpt",
"error": {
"code": "INVALID_ARGUMENT",
"reason": "component 'ws-ckpt' is not an ANOLISA RPM component; use the ANOLISA component name and configure the repo-side component index or publish Provides: anolisa-component(ws-ckpt)"
}
}
exit code: 2
Expected Behavior
anolisa install ws-ckpt --backend rpm --package ws-ckpt 应成功执行 dnf install,写入 anolisa 状态,anolisa status 应列出 ws-ckpt 为 installed 组件。RPM 的 Provides 字段应包含 anolisa-component(ws-ckpt),使 anolisa 组件发现机制能通过 rpm_components_from_capabilities() (resolution.rs:698-714) 正确解析。
Root Cause
src/ws-ckpt/ws-ckpt.spec.in 缺少 Provides: anolisa-component(ws-ckpt) 声明。
anolisa 组件发现链路(dispatch.rs:1092-1122 → rpm.rs:140-160 → resolution.rs:648-668)在 components-v2.toml 返回 404 时回退到 RPM Provides 查询。rpm_package_provides_component() (resolution.rs:648) 调用 query.what_provides_installed("anolisa-component(ws-ckpt)"),由于 ws-ckpt RPM 不提供此能力,返回空候选集,触发 dispatch.rs:1117 的 INVALID_ARGUMENT 错误。
这是 regression:commit b58c5484 (chore(ckpt): release v0.4.2, 2026-07-23) 更新 spec 时未添加 Provides 声明。其他 7 个组件(agent-memory via fb48fcd, os-skills/tokenless via aa2f3b7, agentsight, copilot-shell, cosh-ng, skillfs)均已修复或原本就有 Provides。
Suggested Fix
--- a/src/ws-ckpt/ws-ckpt.spec.in
+++ b/src/ws-ckpt/ws-ckpt.spec.in
@@ -10,6 +10,7 @@
Summary: AI-oriented workspace snapshot tool based on btrfs
License: Apache-2.0
+Provides: anolisa-component(ws-ckpt)
URL: https://github.com/alibaba/anolisa
PR #2568 (branch fix/ws-ckpt-tokenless-missing-provides) 已包含此修复 + tokenless 同类修复,CI Test ws-ckpt = SUCCESS。
Environment
- ALinux 4 ECS(cn-hongkong)
- anolisa main: ba20d94
- ws-ckpt 0.4.2-1.alnx4
- anolisa CLI 0.3.1
Relevant Log Output
FAILED tests/test_rpm_install_uninstall.py::test_real_install_and_status[ws-ckpt]
AssertionError: install failed: {
"ok": false,
"error": {
"code": "INVALID_ARGUMENT",
"reason": "component 'ws-ckpt' is not an ANOLISA RPM component; ... publish Provides: anolisa-component(ws-ckpt)"
}
}
Additional Context
由 AgenticOS Nightly(nightly-20260816-020035)发现并定位。PR #2568 已包含修复,等待合入。umbrella issue #2575 (5 spec.in files) 已 CLOSED(agent-memory/tokenless/os-skills 已修复合入),ws-ckpt + sec-core 尚待 PR #2568 + #2563 合入。
Component
ws-ckpt
Bug Description
anolisa install ws-ckpt --backend rpm --package ws-ckpt返回INVALID_ARGUMENT: component 'ws-ckpt' is not an ANOLISA RPM component。根因是ws-ckpt.spec.in缺少Provides: anolisa-component(ws-ckpt)声明,导致 anolisa 组件发现机制(通过 RPM Provides 能力解析)无法识别 ws-ckpt 为合法 ANOLISA 组件。同时components-v2.toml镜像返回 404,components.toml(v1) 虽可用但未包含 ws-ckpt 的 package_map 条目,双重 fallback 均失败。该问题由 AgenticOS Nightly 自动化测试在 2026-08-16 nightly(nightly-20260816-020035,anolisa main ba20d94)如实上报为 TEST_FAILED 后定位。连续 3 天(08-14, 08-15, 08-16)稳定复现。
Steps to Reproduce
Actual Behavior
Expected Behavior
anolisa install ws-ckpt --backend rpm --package ws-ckpt应成功执行 dnf install,写入 anolisa 状态,anolisa status应列出 ws-ckpt 为 installed 组件。RPM 的Provides字段应包含anolisa-component(ws-ckpt),使 anolisa 组件发现机制能通过rpm_components_from_capabilities()(resolution.rs:698-714) 正确解析。Root Cause
src/ws-ckpt/ws-ckpt.spec.in缺少Provides: anolisa-component(ws-ckpt)声明。anolisa 组件发现链路(
dispatch.rs:1092-1122→rpm.rs:140-160→resolution.rs:648-668)在components-v2.toml返回 404 时回退到 RPM Provides 查询。rpm_package_provides_component()(resolution.rs:648) 调用query.what_provides_installed("anolisa-component(ws-ckpt)"),由于 ws-ckpt RPM 不提供此能力,返回空候选集,触发dispatch.rs:1117的INVALID_ARGUMENT错误。这是 regression:commit
b58c5484(chore(ckpt): release v0.4.2, 2026-07-23) 更新 spec 时未添加 Provides 声明。其他 7 个组件(agent-memory via fb48fcd, os-skills/tokenless via aa2f3b7, agentsight, copilot-shell, cosh-ng, skillfs)均已修复或原本就有 Provides。Suggested Fix
PR #2568 (branch
fix/ws-ckpt-tokenless-missing-provides) 已包含此修复 + tokenless 同类修复,CI Test ws-ckpt = SUCCESS。Environment
Relevant Log Output
Additional Context
由 AgenticOS Nightly(nightly-20260816-020035)发现并定位。PR #2568 已包含修复,等待合入。umbrella issue #2575 (5 spec.in files) 已 CLOSED(agent-memory/tokenless/os-skills 已修复合入),ws-ckpt + sec-core 尚待 PR #2568 + #2563 合入。