合并受阻
当前仓库存在以下 保护分支 :
| Protected Branch | Version | Release |
|---|---|---|
| master | 1.2.2 | 4 |
| openEuler-26.09-DevStation | 1.2.2 | 3 |
评论 /sync <branch1> <branch2> ... 可将当前 PR 修改同步到其它分支(创建同步 PR):
a) 如果当前 PR 是 Open 状态,同步操作将延迟到 PR 被合并时执行
b) 如果当前 PR 已经 Merged,将立即执行同步操作
注意:
- /sync 命令可以指定同步到多个分支,仅最后一个 /sync 命令生效
- 如果创建的同步 PR 不正确,可通过向同步 PR 的源分支提交轻量级 PR 完善,或使用 /close 命令关闭


Welcome To openEuler Community
Hey @ConneRa1 , thanks for your contribution to the community.
Bot Usage Manual
I'm the Bot here serving you. You can find the instructions on how to interact with me at Here . That means you can comment below every pull request or issue to trigger Bot Commands. You can self-configure the PR merge rules for this repository. For more details, please refer to Here.
Contact Guide
If you have any questions, please contact the SIG: sig-DevStation ,
and any of the maintainers: @dingjiahuichina, @duan_pengjie, @lipingEmmaSiguyi, @randy1568, @superninesun ,
and any of the committers: @duan_pengjie, @ftboy, @hongyu-shi, @randy1568, @zhouweitong3, @zxstty .


门禁正在运行, 您可以通过以下链接查看实时门禁检查结果.
若您对门禁结果含义不清晰或者遇到问题不知如何解决,可参考门禁指导手册
门禁入口及编码规范检查: multiarch/src-openeuler/trigger/witty-service/25


| Check Name | Build Result | 详情 | Build Details | |
|---|---|---|---|---|
| check_consistency | ✅SUCCESS | #1 | ||
| check_binary_file | ✅SUCCESS | |||
| check_spec_file | ✅SUCCESS | |||
| check_repo_in_maintain | ✅SUCCESS | |||
| check_lfsconfig | ☑EXCLUDE | |||
| check_package_yaml_file | ✅SUCCESS | |||


x86_64架构构建及构建后检查:multiarch/src-openeuler/x86-64/witty-service/25


aarch64架构构建及构建后检查:multiarch/src-openeuler/aarch64/witty-service/24


/sync openEuler-26.09-DevStation


| Check Name | Build Result | 详情 | Build Details | |
|---|---|---|---|---|
| check_binary_file | ✅SUCCESS | #25 | ||
| check_lfsconfig | ☑EXCLUDE | |||
| check_package_yaml_file | ✅SUCCESS | |||
| check_repo_in_maintain | ✅SUCCESS | |||
| check_consistency | ✅SUCCESS | |||
| check_spec_file | ✅SUCCESS | |||
| x86_64 | check_build | ✅SUCCESS | #25 | |
| check_install | ✅SUCCESS | |||
| check_license | ✅SUCCESS | |||
| aarch64 | check_build | ✅SUCCESS | #24 | |
| check_install | ✅SUCCESS | |||
| check_license | ✅SUCCESS | |||


如下为接口变更检查结果,目标分支为master,请PR提交者check差异信息
| Arch Name | Check Items | Rpm Name | Check Result | Build Details |
|---|---|---|---|---|
| compare_package(x86_64) | add_rpms | ✅SUCCESS | #25 | |
| delete_rpms | ✅SUCCESS | |||
| rpm_cmd | ✅SUCCESS | |||
| rpm_header | ✅SUCCESS | |||
| rpm_provides | ✅SUCCESS | |||
| rpm_requires | ✅SUCCESS | |||
| rpm_service | ✅SUCCESS | |||
| rpm_symbol | ✅SUCCESS | |||
| compare_package(aarch64) | add_rpms | ✅SUCCESS | #24 | |
| delete_rpms | ✅SUCCESS | |||
| rpm_cmd | ✅SUCCESS | |||
| rpm_header | ✅SUCCESS | |||
| rpm_provides | ✅SUCCESS | |||
| rpm_requires | ✅SUCCESS | |||
| rpm_service | ✅SUCCESS | |||
| rpm_symbol | ✅SUCCESS |


如下为接口变更检查结果,目标分支为master,请PR提交者check差异信息
| Arch Name | Check Items | Rpm Name | Check Result | Build Details |
|---|---|---|---|---|
| compare_package(aarch64) | add_rpms | ✅SUCCESS | #1 | |
| delete_rpms | ✅SUCCESS | |||
| rpm_cmd | ✅SUCCESS | |||
| rpm_header | ✅SUCCESS | |||
| rpm_provides | ✅SUCCESS | |||
| rpm_requires | ✅SUCCESS | |||
| rpm_service | ✅SUCCESS | |||
| rpm_symbol | ✅SUCCESS |


/retest


| Check Name | Build Result | 详情 | Build Details | |
|---|---|---|---|---|
| check_consistency | ✅SUCCESS | #2 | ||
| check_binary_file | ✅SUCCESS | |||
| check_spec_file | ✅SUCCESS | |||
| check_repo_in_maintain | ✅SUCCESS | |||
| check_lfsconfig | ☑EXCLUDE | |||
| check_package_yaml_file | ✅SUCCESS | |||


如下为接口变更检查结果,目标分支为master,请PR提交者check差异信息
| Arch Name | Check Items | Rpm Name | Check Result | Build Details |
|---|---|---|---|---|
| compare_package(aarch64) | add_rpms | ✅SUCCESS | #2 | |
| delete_rpms | ✅SUCCESS | |||
| rpm_cmd | ✅SUCCESS | |||
| rpm_header | ✅SUCCESS | |||
| rpm_provides | ✅SUCCESS | |||
| rpm_requires | ✅SUCCESS | |||
| rpm_service | ✅SUCCESS | |||
| rpm_symbol | ✅SUCCESS | |||
| compare_package(x86_64) | add_rpms | ✅SUCCESS | #2 | |
| delete_rpms | ✅SUCCESS | |||
| rpm_cmd | ✅SUCCESS | |||
| rpm_header | ✅SUCCESS | |||
| rpm_provides | ✅SUCCESS | |||
| rpm_requires | ✅SUCCESS | |||
| rpm_service | ✅SUCCESS | |||
| rpm_symbol | ✅SUCCESS |


当前PR是否有AI参与:
[x] 否
[ ] Yes
__1. AI Agent 平台:
__2. AI 模型 :
__3. Prompt 上下文 :
参考:openEuler社区《生成式AI工具使用与开源贡献政策》
PR功能描述 / 为什么需要这个合入**:
技能市场 CLI 未内置,调用需要联网下载。 包内 Python 服务在技能市场相关流程里执行 npx wittyhub add。此前 wittyhub 不在包内,该命令每次都会现场从 npm 拉取,网络不畅时 30 秒超时,技能安装功能不可用。本 PR 把 wittyhub@0.0.5 固定进包内置 Node 的 global prefix,做到安装即用、全程离线。
witty-backend 启动时 /var/log/witty-service 权限不足。 运行目录在 %install 里以 root 属主建成,而原实现只依赖 %post 末尾的一次 chown -R,且错误被 2>/dev/null || true 吞掉;一旦这一步没有生效(目录缺失、脚本未执行、顺序不巧),服务以 witty-service 身份写日志就会失败,且安装日志里看不到线索。本 PR 从三个层面保证属主正确:systemd 的 StateDirectory= / LogsDirectory=、%post 中提前执行的建目录 + chown、%files 中的 %attr。
把 Source0 重新同步到当前应用源码。 现有 Source0 缺少 QQ 渠道适配、wittyhub 错误分类、流式错误类型、opencode MCP 配置等已合入的代码。
该PR关联的issue
(格式为fixes #<issue号>, 或者resolves #<issue号>): fixes #
希望检视人员了解: