Pull Request已成功合入, 合并人@openharmony_ci
(感谢 皇甫毅 的贡献)开始进行AI检视!
AI review has been started, please wait...


| check type | result | report |
|---|---|---|
| start ai_review | pass | - |


⏱️ AI检视超时通知 / AI Review Timeout Notification
AI代码检视任务执行时间过长(已耗时: 0:00:10),任务已超时终止。
The AI code review task has been running for too long (elapsed: 0:00:10) and has timed out.
建议 / Suggestions:
- 稍后重试 / Try again later
- 如果问题持续,请联系管理员 / If the issue persists, please contact the administrator
- 检查AI服务状态 / Check AI service status
错误详情 / Error Details: HTTPSConnectionPool(host='openharmonyinsight.cn', port=443): Max retries exceeded with url: /api/v1/review (Caused by ConnectTimeoutError(<HTTPSConnection(host='openharmonyinsight.cn', port=443) at 0x7f42e86d7310>, 'Connection to openharmonyinsight.cn timed out. (connect timeout=10)'))


您好,Committer @jayleehw @zhangyafei-echo @littlejerry1 @jsjzju @wkljy @yzkp @ccllee1 @yangxuguang-huawei @li-weifeng2024 @wendel ,请分配检视人员检视该PR,可以通过命令"assign [@someone_id]"分配检视人员,也可以直接评论"assign"分配给自己进行检视。
Hello, Committer @jayleehw @zhangyafei-echo @littlejerry1 @jsjzju @wkljy @yzkp @ccllee1 @yangxuguang-huawei @li-weifeng2024 @wendel . Please assign someone to review the PR. You can assign a reviewer by using the command "assign [@someone_id]", or you can comment "assign" to review the PR by yourself.


IssueNo:
https://gitcode.com/openharmony/ability_ability_runtime/issues/15824
Description:
稳定性自检:
安全编码自检:
TDD Result:
XTS Result:
是否已执行L0用例
AI检视评分(使用本地代码检视skills扫描):
代码检视报告 — E2E接续(Round 1 / 提交 1720696ef0)
报告元数据
codecheck_report: schema_version: "1.0" scope: "E2E接续 (ContinueAbility userId 参数扩展)" round: 1 commit_id: "1720696ef040fa77c96a043b3cc7b6be0aa71126" change_id: "N/A" commit_subject: "E2E接续" date: "2026-08-17" dimensions_required: ["security-scanner", "logic-scanner"] dimensions_executed: ["security-scanner", "logic-scanner"] waived_dimensions: [] findings_total: 3 findings_by_severity: {P0: 0, P1: 0, P2: 2, P3: 1} score: 91 risk_level: "low" gate_decision: "approve" gate_blockers: [] must_fix: [] followups: ["SEC-01", "SEC-02", "LOG-01"]1. 基本信息
1720696ef040fa77c96a043b3cc7b6be0aa71126提交内容核对
2. 总体评价
2.1 上库质量评估结论
决策依据:
阻塞项(Gate Blocker):
上库条件:
2.2 各维度通过率
2.3 评分扣分明细
3. 问题统计
4. 高优先级发现(P0/P1,跨维度去重后)
无。
5. 分维度明细
5.1 Security(经 security-scanner)
services/abilitymgr/src/ability_manager_stub.cpp:2467-2469services/abilitymgr/src/ability_manager_service.cpp:6769SEC-01 详细分析:
位置:
services/abilitymgr/src/ability_manager_stub.cpp:2467-2469问题描述:
int32_t userId = INVALID_USER_ID; if (!data.ReadInt32(userId)) { userId = INVALID_USER_ID; // 冗余:userId 已经是 INVALID_USER_ID }影响:代码冗余,不影响功能正确性。
触发路径:IPC 调用时,当客户端未传递 userId 参数(旧版本客户端)。
建议:移除冗余赋值,简化为:
int32_t userId = INVALID_USER_ID; data.ReadInt32(userId); // 失败时 userId 保持 INVALID_USER_IDSEC-02 详细分析:
位置:
services/abilitymgr/src/ability_manager_service.cpp:6769问题描述:
auto uiAbilityManager = (userId >= 0) ? GetUIAbilityManagerByUserId(userId) : GetCurrentUIAbilityManager();只检查
userId >= 0,未校验 userId 是否为有效用户 ID。影响:传入无效的 userId 可能导致获取到 nullptr 的 uiAbilityManager。
触发路径:
CHECK_POINTER_AND_RETURN(uiAbilityManager, ERR_INVALID_VALUE)会返回错误建议:
5.2 Logic(经 logic-scanner)
test/unittest/ability_manager_client_branch_test/ability_manager_client_branch_test.cpp:2527-2535LOG-01 详细分析:
位置:
test/unittest/ability_manager_client_branch_test/ability_manager_client_branch_test.cpp:2527-2535问题描述:
新增测试用例
ContinueAbility_0200只测试了 userId = 100 的正常情况,未测试:影响:测试覆盖不足,可能遗漏边界条件错误。
建议:补充测试用例:
HWTEST_F(AbilityManagerClientBranchTest, AbilityManagerClient_ContinueAbility_0300, TestSize.Level1) { // 测试 userId = -1(使用默认值) auto result = client_->ContinueAbility(deviceId, missionId, versionCode, -1); EXPECT_EQ(ERR_OK, result); }6. 待跟进(P2/P3 + Suspicious)
7. 附录
7.1 变更文件清单
interfaces/inner_api/ability_manager/include/ability_manager_client.hinterfaces/inner_api/ability_manager/include/ability_manager_interface.hservices/abilitymgr/include/ability_manager_proxy.hservices/abilitymgr/include/ability_manager_service.hservices/abilitymgr/src/ability_manager_client.cppservices/abilitymgr/src/ability_manager_proxy.cppservices/abilitymgr/src/ability_manager_service.cppservices/abilitymgr/src/ability_manager_stub.cpptest/mock/frameworks_kits_ability_ability_runtime_test/AMS/mock_serviceability_manager_service.htest/mock/frameworks_kits_ability_native_test/include/mock_ability_manager_service.htest/mock/frameworks_kits_appkit_native_test/ability_delegator/mock_ability_delegator_stub.htest/mock/frameworks_kits_test/AMS/mock_ability_manager_service.htest/mock/frameworks_kits_test/AMS/mock_serviceability_manager_service.htest/moduletest/ability_manager_client_test/mock_iabilitymanager.htest/moduletest/mock/include/mock_ability_mgr_service.htest/unittest/ability_manager_client_branch_second_test/ability_manager_stub_mock_second_test.htest/unittest/ability_manager_client_branch_test/ability_manager_client_branch_test.cpptest/unittest/ability_manager_client_branch_test/ability_manager_stub_mock_test.htest/unittest/ability_manager_client_branch_third_test/mock/include/ability_manager_stub_mock_test.htest/unittest/ability_manager_proxy_fifth_test/ability_manager_proxy_fifth_test.cpptest/unittest/ability_manager_proxy_fifth_test/ability_manager_stub_mock.htest/unittest/ability_manager_proxy_fourth_test/ability_manager_stub_mock.htest/unittest/ability_manager_proxy_second_test/ability_manager_stub_mock.htest/unittest/ability_manager_proxy_sixth_test/ability_manager_stub_mock.htest/unittest/ability_manager_proxy_test/ability_manager_proxy_test.cpptest/unittest/ability_manager_proxy_test/ability_manager_stub_mock.htest/unittest/ability_manager_proxy_third_test/ability_manager_stub_mock.htest/unittest/ability_manager_service_second_test/ability_manager_service_second_test.cpptest/unittest/ability_manager_stub_test/ability_manager_stub_impl_mock.htest/unittest/ability_manager_stub_test/ability_manager_stub_test.cpptest/unittest/ability_manager_test/ability_manager_stub_mock.htest/unittest/app_service_extension_context_test/ability_manager_stub_mock.htest/unittest/frameworks_kits_ability_ability_runtime_test/mock_ability_manager_client.cpptest/unittest/service_extension_context_test/ability_manager_stub_mock.htest/unittest/sys_mgr_client_test/mock_ability_manager_service.htools/test/mock/mock_ability_manager_stub.h7.2 检视轨迹
7.3 各 skill 原始产出
附录 A:评分与门禁规则(权威定义,勿改)
A.1 严重等级统一归一化
critical/致命/ Confirmed P0high/严重/ Confirmed P1、Likely P0medium/一般/ Likely P1、P2low/提示/ SuspiciousA.2 评分公式与决策矩阵
决策矩阵(自上而下判定,命中即止):
unknowninsufficienthighblockmediumconditionallowapprovemediumconditionalhighblock决策语义:
approve:可以上库,P2/P3 项登记进 followups 跟踪。conditional:可上库但附条件——必须处理所有must_fix(P1 项)或在门禁复核人书面裁决后放行。block:禁止上库,必须修复gate_blockers(P0 项)后进入下一轮重检。insufficient:无法评估——必检维度缺失,补齐扫描后重出报告。