760 Commits

Author SHA1 Message Date
openharmony_ci 511aa556b6 !4924 merge master into master
输入不足告警整改

Created-by: lx180327070811
Commit-by: g00586423
Merged-by: openharmony_ci
Description: ### 一、内容说明(相关的Issue)



### 二、建议测试周期和提测地址  
  建议测试完成时间:xxxx.xx.xx  
  投产上线时间:xxxx.xx.xx  
  提测地址:CI环境/压测环境  
  测试账号:  

### 三、变更内容
  * 3.1 关联PR列表

  * 3.2 数据库和部署说明  
    1. 常规更新 
    2. 重启unicorn
    3. 重启sidekiq
    4. 迁移任务:是否有迁移任务,没有写 "无"
    5. rake脚本:`bundle exec xxx RAILS_ENV = production`;没有写 "无"

  * 3.4 其他技术优化内容(做了什么,变更了什么)
    - 重构了 xxxx 代码
    - xxxx 算法优化


  * 3.5 废弃通知(什么字段、方法弃用?)



  * 3.6  后向不兼容变更(是否有无法向后兼容的变更?)


  
### 四、研发自测点(自测哪些?冒烟用例全部自测?)
  自测测试结论:


### 五、测试关注点(需要提醒QA重点关注的、可能会忽略的地方)
  检查点:

| 需求名称 | 是否影响xx公共模块 | 是否需要xx功能 | 需求升级是否依赖其他子产品 |
|------|------------|----------|---------------|
| xxx  | 否          | 需要       | 不需要           |
|      |            |          |               |

  接口测试:

  性能测试:

  并发测试:

  其他:



See merge request: openharmony/notification_distributed_notification_service!4924
2026-08-23 11:33:29 +08:00
g00586423 641224f6db 输入不足告警整改
Signed-off-by: g00586423 <guxiang11@huawei.com>
2026-08-23 10:13:05 +08:00
xdongs2009 010b93b538 extendInfo增加createTime Co-Authored-By:Agent
Signed-off-by: xdongs2009 <xdongs@163.com>
2026-08-19 16:50:03 +08:00
openharmony_ci 47213945cf !4948 merge master into master
添加角标日志+修改GetShowBadgeEnabledForBundles返回值

Created-by: zhaobaoxin
Commit-by: zhaobaoxin
Merged-by: openharmony_ci
Description: ### 一、内容说明(相关的Issue)



### 二、建议测试周期和提测地址  
  建议测试完成时间:xxxx.xx.xx  
  投产上线时间:xxxx.xx.xx  
  提测地址:CI环境/压测环境  
  测试账号:  

### 三、变更内容
  * 3.1 关联PR列表

  * 3.2 数据库和部署说明  
    1. 常规更新 
    2. 重启unicorn
    3. 重启sidekiq
    4. 迁移任务:是否有迁移任务,没有写 "无"
    5. rake脚本:`bundle exec xxx RAILS_ENV = production`;没有写 "无"

  * 3.4 其他技术优化内容(做了什么,变更了什么)
    - 重构了 xxxx 代码
    - xxxx 算法优化


  * 3.5 废弃通知(什么字段、方法弃用?)



  * 3.6  后向不兼容变更(是否有无法向后兼容的变更?)


  
### 四、研发自测点(自测哪些?冒烟用例全部自测?)
  自测测试结论:


### 五、测试关注点(需要提醒QA重点关注的、可能会忽略的地方)
  检查点:

| 需求名称 | 是否影响xx公共模块 | 是否需要xx功能 | 需求升级是否依赖其他子产品 |
|------|------------|----------|---------------|
| xxx  | 否          | 需要       | 不需要           |
|      |            |          |               |

  接口测试:

  性能测试:

  并发测试:

  其他:



See merge request: openharmony/notification_distributed_notification_service!4948
2026-08-09 16:33:52 +08:00
openharmony_ci 2fc45d841d !4960 merge fix/mst-db-isolation into master
fix(ans): fix cross-SO singleton issue by adding AnsNotification::GetInstance()

Created-by: cheerful_ricky
Commit-by: CheerfulRicky
Merged-by: openharmony_ci
Description: ## Problem

`DelayedSingleton<AnsNotification>::GetInstance()` returns different singleton objects in different shared libraries because the template's static members (`instance_`, `mutex_`) have vague linkage (COMDAT) and are hidden per-SO by `-fvisibility=hidden` + version scripts.

## Solution

1. **Add `AnsNotification::GetInstance()`** using function-local static (C++11 thread-safe, defined out-of-line in `ans_notification.cpp` within `libans_innerkits`, symbol exported via `*Ans*` in `.map`)
2. **Replace ALL callers** (NAPI/ANI/Tools/Tests/CJ FFI) from `DelayedSingleton<AnsNotification>::GetInstance()` to `AnsNotification::GetInstance()`
3. **Clean up** `#include singleton.h` from files that no longer use `DelayedSingleton` (kept in `ans_manager_death_recipient.h` and `pixelmap_cache_manager.h` which still use `DelayedSingleton` as base class)

## Why it works

The function-local static in `ans_notification.cpp` lives in `libans_innerkits.so`'s data segment. `AnsNotification::GetInstance()` is a non-inline member function compiled only in `libans_innerkits.so` and exported via `*Ans*` pattern in `libans_innerkits.map`. All SOs call this exported function through dynamic linking, sharing the single instance.

## Verification

Syntax-checked key files with exact ninja build flags: `ans_notification.cpp`, `notification_helper.cpp`, `ans_manager_death_recipient.cpp`, `napi_cancel.cpp`, `ani_cance.cpp`, `notification_manager_impl.cpp` (CJ FFI), `notification_shell_command.cpp` (Tools) — all passed.

Co-Authored-By: Agent

See merge request: openharmony/notification_distributed_notification_service!4960
2026-08-08 16:30:13 +08:00
CheerfulRicky dfb21d3fcf fix(ans): fix cross-SO singleton issue by adding AnsNotification::GetInstance()
DelayedSingleton<AnsNotification>::GetInstance() returns different
singleton objects in different shared libraries because the template's
static members (instance_, mutex_) have vague linkage (COMDAT) and are
hidden per-SO by -fvisibility=hidden + version scripts.

Solution:
1. Add AnsNotification::GetInstance() using function-local static
   (C++11 thread-safe, defined out-of-line in ans_notification.cpp
   within libans_innerkits, symbol exported via *Ans* in .map)
2. Replace ALL callers (NAPI/ANI/Tools/Tests/CJ FFI) from
   DelayedSingleton<AnsNotification>::GetInstance() to
   AnsNotification::GetInstance()
3. Fix singleton.h include hygiene:
   - Add #include singleton.h to 34 files that use Singleton<>,
     DelayedSingleton<>, DECLARE_SINGLETON etc. but relied on
     transitive includes
   - Add #include nocopyable.h to 7 files that use
     DISALLOW_COPY_AND_MOVE but relied on transitive includes
   - Remove #include singleton.h from 70 files that no longer use
     any singleton.h symbols after the DelayedSingleton replacement

The function-local static in ans_notification.cpp lives in
libans_innerkits.so's data segment. AnsNotification::GetInstance() is
a non-inline member function compiled only in libans_innerkits.so and
exported via *Ans* pattern in libans_innerkits.map. All SOs call this
exported function through dynamic linking, sharing the single instance.

Co-Authored-By: Agent
Signed-off-by: CheerfulRicky <yuegang7@h-partners.com>
Change-Id: I1089cfa5bb010daf37c68333a1e71c55fc1f16f3
2026-08-07 18:43:39 +08:00
lx180327070811 080e73ae43 tdd执行异常失败,返回错误码1200004
Signed-off-by: lx180327070811 <guxiang11@huawei.com>
2026-08-07 16:43:38 +08:00
zhaobaoxin 08eb5ea920 update
Signed-off-by: zhaobaoxin <zhaobaoxin1@huawei.com>
Change-Id: I11d2edd975f9c90a33183c34e85f8a7df12a57e3
2026-08-04 20:33:12 +08:00
stepend98 c5690cf239 fix: add null pointer checks to prevent crashes in notification service
Add comprehensive null pointer validation across frameworks and services
layers (notification_request, subscriber_image_util, napi converters,
geofence service, live view service, preferences, subscriber manager, etc.)
to prevent null-dereference crashes, and add unit tests covering the new
null-check branches.

Co-Authored-By: Agent
Signed-off-by: stepend98 <yangjun273@huawei.com>
Change-Id: I62f9e3a450dbdbbcf7b0657c7187c6f7709b01df
2026-08-01 16:41:22 +08:00
CheerfulRicky f2987c78ea fix(ans): fix warning check defects from issue #4250
Fix various static analysis findings including memory leaks, null
pointer dereferences, use-after-free risks, integer overflow, enum
range validation, and resource management issues.

A. NAPI async work return value unchecked (30+ sites): check
   napi_create_async_work/napi_queue_async_work_with_qos return values,
   free asynccallbackinfo on failure; fix subscribe.cpp UB, badge query
   timeout leak, ETS variant GetEnv leaks
C. Type safety: add enum range validation for IPC deserialization
   (SWITCH_STATE, LiveViewStatus), JSON (clone switch info), JS input
   (InputEditType, RingtoneType, BadgeStyle, SlotType); fix uint8_t
   truncation in multiline content marshalling
D. Integer overflow: replace atoi/atoll with strtol/strtoll+ERANGE;
   fix FindLastString logic error (pos != npos always true); fix
   VectorToString int64_t->int truncation; fix GetRemainPartitionSize
   returning -1 as uint64_t
E. UAF/memory: unregister distributed callbacks in destructor; add
   ffrt::wait in StopCacheCleanupTimer; unsubscribe CommonEvent in
   DialogManager destructor; remove DeathRecipient in SubscriberImpl
   destructor; wait for FFRT queue in LocalLiveViewSubscriberManager
F. new(nothrow) unchecked: add null checks for recipient_/deathRecipient_
   allocation in 5 manager classes
G. Other: implement ClearButtonIconsResource; init HaMetaMessage
   sceneId_/branchId_; add dlsym for 5 missing function pointers;
   check OH_DecodingOptions_Create return; fix GetAllDoNotDisturbProfiles
   substring match; add array length limits; check CreateTimer return;
   fix pushRecipient_ overwrite logic; add try-catch for JSON parse

Change-Id: I4204fe52d9fbbd8d89cf188892ab243847649f59

Change-Id: I5588bd9c663d54a17c429143721c124259401e8d

Change-Id: If0705f229837ed1edf0a05712481fb9cfc1f7cda

Change-Id: Id494add5740c95d908016934e69ae704c4ad6f70

Change-Id: I73990ec7e4ff7374a71e3da4692e5bc53bfdbc2c

Change-Id: I57840e82aa808259fc43b9ae8b942f9b999f1271

Change-Id: I715fc92bede97bde739aed63e384359fd39ad3d7

Change-Id: Ib7dce869072b3b4b812fa46319dca3ce946b7c5a

Change-Id: If7359da9013fb008cee436d4db3fd6aa3508421f

Change-Id: I984f57d01cc39b9682f8ce08c88b146e50d132d1

Change-Id: I5b307d34ae22ae8a3919eacb1f3d4efe6c7ef75b

Change-Id: I922a6fdfadb7344c4649a5e54f8ee439f87069cd

Change-Id: I90d91e060c92d6fb0ff056801a58dc056d51b4bc

Change-Id: I21e6e587511d98b2fff3306089b42d997333dfcf

Change-Id: Ie9afd57cfeb66e5a68fa76a35862e84b47177fbf

Change-Id: I29bc907d5653ee322b8a46c9c4523388f8492d47

Change-Id: Ie82eb2cf6541ef43bcd9254cf342e980e4ab19b7

Change-Id: I480ebfe965c7dcb13a2ca30a3b7fb73e35606309

Change-Id: I4e00bfd6020f9f6e50fcab4c7b2d11e824371417

Change-Id: I384d6621b6915c45ad4dc6013c52406bba1b2491

Change-Id: Ifb01195d74f70604e5dd1bad9e291e5ce4d96fcc

Change-Id: I99764684c4c029a114734de1161d0591d59e15c1

Change-Id: I2637febf7282779082f5135671328dfaa75f441a

Change-Id: I8db817f8e84da51e6c1bf69dfc67c90b1b516f41

Co-Authored-By: Agent
Signed-off-by: CheerfulRicky <yuegang7@h-partners.com>
Change-Id: Idaeb6de6233925455d7da38dc41299229244ba32
2026-07-30 20:12:34 +08:00
bettykico cdb8c412d5 fix subscribeNotification bug
Co-Authored-By: Agent

Signed-off-by: bettykico <fangxiaofen1@h-partners.com>
2026-07-29 19:23:35 +08:00
bettykico 0aa7411df7 Revert "Co-Authored-By: Agent"
This reverts commit 2a0b858722.

Signed-off-by: bettykico <fangxiaofen1@h-partners.com>
2026-07-27 13:59:21 +08:00
bettykico d06233a98e fix subscribeNotifictaion bug & add ut
Co-Authored-By: Agent

Signed-off-by: bettykico <fangxiaofen1@h-partners.com>
2026-07-25 16:50:04 +08:00
openharmony_ci 213aa6cfab !4896 merge master into master
add subscribeNotification

Created-by: bettykico
Commit-by: bettykico
Merged-by: openharmony_ci
Description: ### 一、内容说明(相关的Issue)

add subscribeNotification for priorityStrategy
Issue: #4243

### 二、建议测试周期和提测地址  
  建议测试完成时间:xxxx.xx.xx  
  投产上线时间:xxxx.xx.xx  
  提测地址:CI环境/压测环境  
  测试账号:  

### 三、变更内容
  * 3.1 关联PR列表

  * 3.2 数据库和部署说明  
    1. 常规更新 
    2. 重启unicorn
    3. 重启sidekiq
    4. 迁移任务:是否有迁移任务,没有写 "无"
    5. rake脚本:`bundle exec xxx RAILS_ENV = production`;没有写 "无"

  * 3.4 其他技术优化内容(做了什么,变更了什么)
    - 重构了 xxxx 代码
    - xxxx 算法优化


  * 3.5 废弃通知(什么字段、方法弃用?)



  * 3.6  后向不兼容变更(是否有无法向后兼容的变更?)


  
### 四、研发自测点(自测哪些?冒烟用例全部自测?)
  自测测试结论:


### 五、测试关注点(需要提醒QA重点关注的、可能会忽略的地方)
  检查点:

| 需求名称 | 是否影响xx公共模块 | 是否需要xx功能 | 需求升级是否依赖其他子产品 |
|------|------------|----------|---------------|
| xxx  | 否          | 需要       | 不需要           |
|      |            |          |               |

  接口测试:

  性能测试:

  并发测试:

  其他:

Co-Authored-By: Agent

See merge request: openharmony/notification_distributed_notification_service!4896
2026-07-22 15:14:38 +08:00
bettykico 03ade40c37 add subscribeNotification
Signed-off-by: bettykico <fangxiaofen1@h-partners.com>
2026-07-22 11:30:31 +08:00
openharmony_ci 8a682057d1 !4895 merge feat/rom-size-optimization into master
fix(test): use IRemoteStub mock for -Bsymbolic compatibility

Created-by: cheerful_ricky
Commit-by: CheerfulRicky
Merged-by: openharmony_ci
Description: ## ROM Size Optimization - Mock Refactor

### 变更内容
Refactor test mocks to inherit from IRemoteStub<IAnsManager> instead of IAnsManager, enabling iface_cast to return mock objects directly via the stub path.

### Key changes
- MockAnsManagerProxy: IAnsManager → IRemoteStub<IAnsManager>
- MockAnsManagerInterface: IAnsManager → IRemoteStub<IAnsManager>
- Remove mock_ans_notification.h and mock_ans_manager_stub_object.h
- ans_notification.h: no production code change
- Add samgr:samgr_proxy dependency to test BUILD.gn files

### 编译验证
- Local build: PASS
- Unit tests: 194 passed (ans_notification_test), 20 passed (ans_notification_branch_test)

Issue: #4242

Co-Authored-By: Agent

See merge request: openharmony/notification_distributed_notification_service!4895
2026-07-20 21:11:09 +08:00
openharmony_ci 9191aaf628 !4897 merge master into master
ANS支持实况窗分享 Co-Authored-By:Agent

Created-by: xdongs2009
Commit-by: xdongs2009
Merged-by: openharmony_ci
Description: ### 一、内容说明(相关的Issue)



### 二、建议测试周期和提测地址  
  建议测试完成时间:xxxx.xx.xx  
  投产上线时间:xxxx.xx.xx  
  提测地址:CI环境/压测环境  
  测试账号:  

### 三、变更内容
  * 3.1 关联PR列表

  * 3.2 数据库和部署说明  
    1. 常规更新 
    2. 重启unicorn
    3. 重启sidekiq
    4. 迁移任务:是否有迁移任务,没有写 "无"
    5. rake脚本:`bundle exec xxx RAILS_ENV = production`;没有写 "无"

  * 3.4 其他技术优化内容(做了什么,变更了什么)
    - 重构了 xxxx 代码
    - xxxx 算法优化


  * 3.5 废弃通知(什么字段、方法弃用?)



  * 3.6  后向不兼容变更(是否有无法向后兼容的变更?)


  
### 四、研发自测点(自测哪些?冒烟用例全部自测?)
  自测测试结论:


### 五、测试关注点(需要提醒QA重点关注的、可能会忽略的地方)
  检查点:

| 需求名称 | 是否影响xx公共模块 | 是否需要xx功能 | 需求升级是否依赖其他子产品 |
|------|------------|----------|---------------|
| xxx  | 否          | 需要       | 不需要           |
|      |            |          |               |

  接口测试:

  性能测试:

  并发测试:

  其他:



See merge request: openharmony/notification_distributed_notification_service!4897
2026-07-20 20:40:14 +08:00
xdongs2009 37ba94dce3 ANS支持实况窗分享 Co-Authored-By:Agent
Signed-off-by: xdongs2009 <xdongs@163.com>
2026-07-20 17:09:35 +08:00
openharmony_ci 70fe28e417 !4887 merge master into master
ans_innerkit整改,增加依赖ability_runtime及image_native

Created-by: hanwenhui
Commit-by: hanwenhui
Merged-by: openharmony_ci
Description: ### 一、内容说明(相关的Issue)



### 二、建议测试周期和提测地址  
  建议测试完成时间:xxxx.xx.xx  
  投产上线时间:xxxx.xx.xx  
  提测地址:CI环境/压测环境  
  测试账号:  

### 三、变更内容
  * 3.1 关联PR列表

  * 3.2 数据库和部署说明  
    1. 常规更新 
    2. 重启unicorn
    3. 重启sidekiq
    4. 迁移任务:是否有迁移任务,没有写 "无"
    5. rake脚本:`bundle exec xxx RAILS_ENV = production`;没有写 "无"

  * 3.4 其他技术优化内容(做了什么,变更了什么)
    - 重构了 xxxx 代码
    - xxxx 算法优化


  * 3.5 废弃通知(什么字段、方法弃用?)



  * 3.6  后向不兼容变更(是否有无法向后兼容的变更?)


  
### 四、研发自测点(自测哪些?冒烟用例全部自测?)
  自测测试结论:


### 五、测试关注点(需要提醒QA重点关注的、可能会忽略的地方)
  检查点:

| 需求名称 | 是否影响xx公共模块 | 是否需要xx功能 | 需求升级是否依赖其他子产品 |
|------|------------|----------|---------------|
| xxx  | 否          | 需要       | 不需要           |
|      |            |          |               |

  接口测试:

  性能测试:

  并发测试:

  其他:



See merge request: openharmony/notification_distributed_notification_service!4887
2026-07-20 16:38:04 +08:00
CheerfulRicky 3f3339b8f5 fix(test): use IRemoteStub mock for -Bsymbolic compatibility
Refactor test mocks to inherit from IRemoteStub<IAnsManager> instead of
IAnsManager, enabling iface_cast to return mock objects directly via the
stub path. This approach is compatible with -Wl,-Bsymbolic on
libans_innerkits.so because it uses SAMgr field injection + iface_cast
stub path instead of link-time symbol interposition.

Changes:
- MockAnsManagerProxy: IAnsManager → IRemoteStub<IAnsManager>
- MockAnsManagerInterface: IAnsManager → IRemoteStub<IAnsManager>
- mock_service_registry.h: fix undefined ERR_ANS_SERVICE_NOT_CONNECTED
- Remove mock_ans_notification.h and mock_ans_manager_stub_object.h
- ans_notification.h: no production code change
- Add samgr:samgr_proxy dependency to test BUILD.gn files

Verified: 194 tests passed (ans_notification_test), 20 tests passed (ans_notification_branch_test)

Issue: #4242

Co-Authored-By: Agent
Signed-off-by: CheerfulRicky <yuegang7@h-partners.com>
Change-Id: I7300c1de59c577082681a61861cc718ebe48be4a
Signed-off-by: CheerfulRicky <yuegang7@h-partners.com>
2026-07-20 10:36:20 +08:00
openharmony_ci c9e50a1414 !4892 merge feat/rom-size-optimization into master
feat(rom-size): ROM size optimization phase 1 - build config, symbol visibility and mock refactor

Created-by: cheerful_ricky
Commit-by: CheerfulRicky
Merged-by: openharmony_ci
Description: ## ROM Size Optimization Phase 1

### 变更内容
Phase 1 of ROM size optimization (target: 30% reduction, baseline 7963KB).
All changes are limited to BUILD.gn/.gni/.map files, no .cpp/.h modifications (except mock refactor for test compatibility).

### Key changes
- Add notification_size_opt_cflags/ldflags public variables in notification.gni
- Add -fno-rtti/-flto/-Bsymbolic config to all production targets
- Extract ANI sts_*.cpp to ohos_shared_library notification_ani_common
- Extract NAPI common*.cpp to ohos_shared_library notification_napi_common
- Tighten libans_innerkits.map from global:* to class-name-based export
- Add version_script to NAPI/ANI .so (export only napi_module/ANI_Constructor)
- Feature-gate clone source files with conditional sources
- Refactor mock to virtual function for -Bsymbolic compatibility

### 实测优化效果
- Baseline: 7,963 KB (26 .so files)
- After: 7,324 KB (28 .so files)
- Net reduction: 639 KB (8.0%)

### 编译验证
- Local build: PASS
- Unit tests: 189 passed (ans_notification_test), 23 passed (ans_notification_branch_test)

Issue: #4240

Co-Authored-By: Agent

See merge request: openharmony/notification_distributed_notification_service!4892
2026-07-18 10:45:06 +08:00
CheerfulRicky 4cea714e79 fix(test): refactor mock to virtual function for -Bsymbolic compatibility
Make AnsNotification::GetAnsManagerProxy() protected virtual and add
virtual destructor. This enables gmock-based mock via subclass
(MockAnsNotification) instead of link-time symbol interposition,
which is broken by -Wl,-Bsymbolic on libans_innerkits.so.

Changes:
- ans_notification.h: GetAnsManagerProxy() → protected virtual; add virtual ~AnsNotification()
- New mock_ans_notification.h: MockAnsNotification with MOCK_METHOD0(GetAnsManagerProxy)
- mock_ans_manager_proxy.cpp: remove symbol interposition definition
- ans_notification_unit_test.cpp: use MockAnsNotification + ON_CALL instead of MockGetAnsManagerProxy
- ans_notification_branch_test.cpp: use MockAnsNotification + ON_CALL

Verified: 189 tests passed (ans_notification_test), 23 tests passed (ans_notification_branch_test)

Issue: #4240

Co-Authored-By: Agent
Signed-off-by: CheerfulRicky <yuegang7@h-partners.com>
Change-Id: I53974f94b49d0e2ebabc7fe424c7107324eef2d3
Signed-off-by: CheerfulRicky <yuegang7@h-partners.com>
2026-07-18 08:25:23 +08:00
hanwenhui 083e4a2950 Co-Authored-By:hanwenhui
Signed-off-by: hanwenhui <hanwenhui2@h-partners.com>
2026-07-15 11:05:42 +08:00
openharmony_ci d37ee80c9b !4882 merge master into master
native解析内存,缓存日志打印优化

Created-by: lx180327070811
Commit-by: lx180327070811
Merged-by: openharmony_ci
Description: ### 一、内容说明(相关的Issue)



### 二、建议测试周期和提测地址  
  建议测试完成时间:xxxx.xx.xx  
  投产上线时间:xxxx.xx.xx  
  提测地址:CI环境/压测环境  
  测试账号:  

### 三、变更内容
  * 3.1 关联PR列表

  * 3.2 数据库和部署说明  
    1. 常规更新 
    2. 重启unicorn
    3. 重启sidekiq
    4. 迁移任务:是否有迁移任务,没有写 "无"
    5. rake脚本:`bundle exec xxx RAILS_ENV = production`;没有写 "无"

  * 3.4 其他技术优化内容(做了什么,变更了什么)
    - 重构了 xxxx 代码
    - xxxx 算法优化


  * 3.5 废弃通知(什么字段、方法弃用?)



  * 3.6  后向不兼容变更(是否有无法向后兼容的变更?)


  
### 四、研发自测点(自测哪些?冒烟用例全部自测?)
  自测测试结论:


### 五、测试关注点(需要提醒QA重点关注的、可能会忽略的地方)
  检查点:

| 需求名称 | 是否影响xx公共模块 | 是否需要xx功能 | 需求升级是否依赖其他子产品 |
|------|------------|----------|---------------|
| xxx  | 否          | 需要       | 不需要           |
|      |            |          |               |

  接口测试:

  性能测试:

  并发测试:

  其他:



See merge request: openharmony/notification_distributed_notification_service!4882
2026-07-14 20:39:35 +08:00
lx180327070811 e351bde4b2 native解析内存,缓存日志打印优化
Signed-off-by: lx180327070811 <guxiang11@huawei.com>
2026-07-14 16:25:25 +08:00
openharmony_ci 6de7793e92 !4863 merge refactor/want-params-envelope-serialization into master
refactor(ans): replace WantParams/WantAgent serialization with envelope format

Created-by: cheerful_ricky
Commit-by: CheerfulRicky
Merged-by: openharmony_ci
Description: ## Summary

Replace legacy WantParams/WantAgent serialization with the new envelope-based format for safer JSON escaping (quotes, backslashes, nested delimiters).

## Changes

- **New helper**: `NotificationWantParamsHelper` in `frameworks/core/common` centralizes envelope-detection logic (`SerializeWantParams`, `ParseWantParams`, `ParseWantParamsWithBrackets`, `SerializeWantAgent`, `ParseWantAgent`).
- **Serialization (write)**: switch to `WantParamWrapperJson::Serialize` / `WantAgentHelper::ToStringWithEnvelope` at all persistence, dump, and CLI-display call sites.
- **Deserialization (read)**: envelope detection (`HasEnvelope` / `HasWantParamsEnvelope`) → new `Parse` / `FromStringWithEnvelope`; legacy data falls back to `ParseWantParams` / `FromString` for backward compatibility.

## Scope decisions

- Distributed serialization stays legacy (cross-device version compat); only its deserialization is upgraded to envelope-aware.
- Analytics/event reporting unchanged (consumers not yet envelope-aware).

## Verification

All 12 modified files pass `clang -fsyntax-only` with full OpenHarmony include paths (0 errors). Full build blocked by a pre-existing arkcompiler breakage (`unhandled_object_manager.cpp`) unrelated to this change.

Co-Authored-By: Agent

See merge request: openharmony/notification_distributed_notification_service!4863
2026-07-14 11:15:27 +08:00
CheerfulRicky 6f526fe704 refactor(ans): replace WantParams/WantAgent serialization with envelope format
Switch WantParams serialization to WantParamWrapperJson::Serialize and
WantAgent serialization to ToStringWithEnvelope for safer JSON escaping
that correctly handles quotes, backslashes, and nested delimiters.

Deserialization uses envelope detection (HasEnvelope/HasWantParamsEnvelope)
with legacy fallback to ParseWantParams/FromString so that historical data
continues to round-trip unchanged.

Add NotificationWantParamsHelper in frameworks/core/common to centralize
the envelope-detection logic across all call sites. Add 16 unit tests
covering all branches (>90% branch coverage).

Scope notes:
- Distributed serialization stays legacy (cross-device version compat);
  only its deserialization is upgraded to envelope-aware.
- Analytics/event reporting unchanged (consumers not yet envelope-aware).
- Remove wantParameters debug serialization from Dump functions.
- Fix null pointer dereference on template data access.
- Fix variable name typo: wangAgent -> wantAgent.

Change-Id: Ifaa17126e2ba864c4dd968bd15314c2d8dec53eb

Change-Id: Ic3121ed8242b5a1e58f659195b4103ea9b48c6a0

Change-Id: I4eb9a2b0fe87977f7ffe36b0cb60e6a2cf240450

Change-Id: I296fd76e97a888b49d053b243307e627a8bec0fa

Change-Id: Ie5928906fa46b1d45912e9a02fd2f9d2f89dbda2

Co-Authored-By: Agent
Signed-off-by: CheerfulRicky <yuegang7@h-partners.com>
Change-Id: Ib5bc52d7a7fdcdda8bd894483f8e7b8506b6e18f
2026-07-13 20:22:14 +08:00
lx180327070811 a399c19daa native解析内存,传入路径非法时,systemui要求生成nullptr的图片
Signed-off-by: lx180327070811 <guxiang11@huawei.com>
2026-07-09 20:52:51 +08:00
openharmony_ci 809e2c1a94 !4867 merge master into master
refactor: clean up redundant logs in notification switch flow

Created-by: stepend98
Commit-by: stepend98
Merged-by: openharmony_ci
Description: ## 变更说明

精简 `GetNotificationSwitch` 通知开关查询流程中的冗余日志,减少高频路径上的日志噪声,保留关键状态日志。

## 变更范围

- `frameworks/core/src/subscriber_image_util.cpp`:移除空指针分支中的冗余 ERROR 日志
- `frameworks/js/napi/src/manager/napi_notification_switch.cpp`:移除 NAPI 异步回调中的结果 INFO 日志
- `services/ans/src/aggregation_notification/advanced_notification_aggregation_service.cpp`:缩短 success 路径 INFO 日志文本
- `services/ans/src/notification_preferences.cpp`:移除偏好设置层冗余 INFO 日志
- `services/ans/src/notification_preferences_database.cpp`:移除 DB 层冗余 INFO 日志

## 验证

- 构建目标:distributed_notification_service

Fixes #4213

See merge request: openharmony/notification_distributed_notification_service!4867
2026-07-09 10:29:51 +08:00
openharmony_ci 9f4e12ad44 !4865 merge master into master
native解析内存图片会压缩3倍,模糊不清

Created-by: lx180327070811
Commit-by: lx180327070811
Merged-by: openharmony_ci
Description: ### 一、内容说明(相关的Issue)



### 二、建议测试周期和提测地址  
  建议测试完成时间:xxxx.xx.xx  
  投产上线时间:xxxx.xx.xx  
  提测地址:CI环境/压测环境  
  测试账号:  

### 三、变更内容
  * 3.1 关联PR列表

  * 3.2 数据库和部署说明  
    1. 常规更新 
    2. 重启unicorn
    3. 重启sidekiq
    4. 迁移任务:是否有迁移任务,没有写 "无"
    5. rake脚本:`bundle exec xxx RAILS_ENV = production`;没有写 "无"

  * 3.4 其他技术优化内容(做了什么,变更了什么)
    - 重构了 xxxx 代码
    - xxxx 算法优化


  * 3.5 废弃通知(什么字段、方法弃用?)



  * 3.6  后向不兼容变更(是否有无法向后兼容的变更?)


  
### 四、研发自测点(自测哪些?冒烟用例全部自测?)
  自测测试结论:


### 五、测试关注点(需要提醒QA重点关注的、可能会忽略的地方)
  检查点:

| 需求名称 | 是否影响xx公共模块 | 是否需要xx功能 | 需求升级是否依赖其他子产品 |
|------|------------|----------|---------------|
| xxx  | 否          | 需要       | 不需要           |
|      |            |          |               |

  接口测试:

  性能测试:

  并发测试:

  其他:



See merge request: openharmony/notification_distributed_notification_service!4865
2026-07-07 19:05:47 +08:00
stepend98 5b8355b142 refactor: clean up redundant logs in notification switch flow
Co-Authored-By: yangjun
Signed-off-by: stepend98 <yangjun273@huawei.com>
2026-07-07 17:29:38 +08:00
lx180327070811 cd70062199 native解析内存图片会压缩3倍,模糊不清
Co-Authored-By: Agent

Signed-off-by: lx180327070811 <guxiang11@huawei.com>
2026-07-07 15:48:42 +08:00
CheerfulRicky 2580f0e339 fix 801 error message
Signed-off-by: CheerfulRicky <yuegang7@h-partners.com>
Change-Id: I7c8c34ae8777a63d6dba2325d0c35a3c0cfe419f
2026-07-06 17:04:51 +08:00
CheerfulRicky a7a1f14af3 fix: refactor liveview error codes for custom extension checks
- ERR_ANS_CUSTOM_EXTENSION_EXISTS_CHECK_FAILED now maps to new external
  code 1600029 (ERROR_LIVE_VIEW_EXTENSION_NOT_FOUND) with message
  'The system failed to find the ExtensionAbility instance for the
  custom Live View widget template.'
- ERR_ANS_CUSTOM_EXTENSION_RIGHTS_CHECK_FAILED keeps external code
  1600014 but updates message to 'The right of liveView is not enabled.'
- Update test assertions to match new mapping
- Update liveview-rights-check summary documentation

Co-Authored-By: Agent
Signed-off-by: CheerfulRicky <yuegang7@h-partners.com>
Change-Id: I3475995fe9ac6ce1d9508ecfa20d90affb25a119
2026-07-06 09:03:51 +08:00
openharmony_ci d81ca1f963 !4830 merge master into master
解决notification_publish_service_test crash问题

Created-by: lx180327070811
Commit-by: g00586423
Merged-by: openharmony_ci
Description: ### 一、内容说明(相关的Issue)



### 二、建议测试周期和提测地址  
  建议测试完成时间:xxxx.xx.xx  
  投产上线时间:xxxx.xx.xx  
  提测地址:CI环境/压测环境  
  测试账号:  

### 三、变更内容
  * 3.1 关联PR列表

  * 3.2 数据库和部署说明  
    1. 常规更新 
    2. 重启unicorn
    3. 重启sidekiq
    4. 迁移任务:是否有迁移任务,没有写 "无"
    5. rake脚本:`bundle exec xxx RAILS_ENV = production`;没有写 "无"

  * 3.4 其他技术优化内容(做了什么,变更了什么)
    - 重构了 xxxx 代码
    - xxxx 算法优化


  * 3.5 废弃通知(什么字段、方法弃用?)



  * 3.6  后向不兼容变更(是否有无法向后兼容的变更?)


  
### 四、研发自测点(自测哪些?冒烟用例全部自测?)
  自测测试结论:


### 五、测试关注点(需要提醒QA重点关注的、可能会忽略的地方)
  检查点:

| 需求名称 | 是否影响xx公共模块 | 是否需要xx功能 | 需求升级是否依赖其他子产品 |
|------|------------|----------|---------------|
| xxx  | 否          | 需要       | 不需要           |
|      |            |          |               |

  接口测试:

  性能测试:

  并发测试:

  其他:



See merge request: openharmony/notification_distributed_notification_service!4830
2026-06-29 10:01:29 +08:00
g00586423 e4b3e4c773 解决notification_publish_service_test crash问题
Signed-off-by: g00586423 <guxiang11@huawei.com>
2026-06-27 17:13:38 +08:00
openharmony_ci 7b4472a869 !4825 merge master into master
4811代码回退

Created-by: he-guokai
Commit-by: he-guokai
Merged-by: openharmony_ci
Description: ### 一、内容说明(相关的Issue)



### 二、建议测试周期和提测地址  
  建议测试完成时间:xxxx.xx.xx  
  投产上线时间:xxxx.xx.xx  
  提测地址:CI环境/压测环境  
  测试账号:  

### 三、变更内容
  * 3.1 关联PR列表

  * 3.2 数据库和部署说明  
    1. 常规更新 
    2. 重启unicorn
    3. 重启sidekiq
    4. 迁移任务:是否有迁移任务,没有写 "无"
    5. rake脚本:`bundle exec xxx RAILS_ENV = production`;没有写 "无"

  * 3.4 其他技术优化内容(做了什么,变更了什么)
    - 重构了 xxxx 代码
    - xxxx 算法优化


  * 3.5 废弃通知(什么字段、方法弃用?)



  * 3.6  后向不兼容变更(是否有无法向后兼容的变更?)


  
### 四、研发自测点(自测哪些?冒烟用例全部自测?)
  自测测试结论:


### 五、测试关注点(需要提醒QA重点关注的、可能会忽略的地方)
  检查点:

| 需求名称 | 是否影响xx公共模块 | 是否需要xx功能 | 需求升级是否依赖其他子产品 |
|------|------------|----------|---------------|
| xxx  | 否          | 需要       | 不需要           |
|      |            |          |               |

  接口测试:

  性能测试:

  并发测试:

  其他:



See merge request: openharmony/notification_distributed_notification_service!4825
2026-06-26 18:02:20 +08:00
openharmony_ci 11614c31da !4776 merge AI_update into master
atomic update success

Created-by: zhaobaoxin
Commit-by: zhaobaoxin
Merged-by: openharmony_ci
Description: ### 一、内容说明(相关的Issue)



### 二、建议测试周期和提测地址  
  建议测试完成时间:xxxx.xx.xx  
  投产上线时间:xxxx.xx.xx  
  提测地址:CI环境/压测环境  
  测试账号:  

### 三、变更内容
  * 3.1 关联PR列表

  * 3.2 数据库和部署说明  
    1. 常规更新 
    2. 重启unicorn
    3. 重启sidekiq
    4. 迁移任务:是否有迁移任务,没有写 "无"
    5. rake脚本:`bundle exec xxx RAILS_ENV = production`;没有写 "无"

  * 3.4 其他技术优化内容(做了什么,变更了什么)
    - 重构了 xxxx 代码
    - xxxx 算法优化


  * 3.5 废弃通知(什么字段、方法弃用?)



  * 3.6  后向不兼容变更(是否有无法向后兼容的变更?)


  
### 四、研发自测点(自测哪些?冒烟用例全部自测?)
  自测测试结论:


### 五、测试关注点(需要提醒QA重点关注的、可能会忽略的地方)
  检查点:

| 需求名称 | 是否影响xx公共模块 | 是否需要xx功能 | 需求升级是否依赖其他子产品 |
|------|------------|----------|---------------|
| xxx  | 否          | 需要       | 不需要           |
|      |            |          |               |

  接口测试:

  性能测试:

  并发测试:

  其他:



See merge request: openharmony/notification_distributed_notification_service!4776
2026-06-26 15:15:50 +08:00
openharmony_ci 1e7806b0ef !4813 merge feat/batch-slot-query-optimization into master
feat(notification): add batch slot query API and optimize getAllNotificationEnabledBundles

Created-by: cheerful_ricky
Commit-by: CheerfulRicky
Merged-by: openharmony_ci
Description: ### 关联的issue:
#4166

### 变更说明:

#### 1. 新增批量 slot 查询 API `isNotificationSlotEnabledByBundles`

将 300 次 IPC 调用缩减为 1 次,预期总耗时从 ~900ms 降低到 ~30ms。

- 新增 Parcelable 类型 `NotificationBundleSlotKey`(含 BundleOption + SlotType)
- IDL: `GetEnabledForBundleSlots` 使用 `OrderedMap<sptr<NotificationBundleSlotKey>, boolean>` 输出
- ArkTS API: `isNotificationSlotEnabledByBundles(Array<BundleSlotParameter>): Promise<Map<BundleSlotParameter, boolean>>`
- 直查 DB 精确 key(`ans_bundle_{name}{uid}_slot_type_{type}_enabled`),不经过 LRU Cache
- slot 不存在的 bundle 排除出结果集
- 批量 IN 查询每批 ≤100 个 key
- NAPI + ANI 双绑定
- 遵循错误码分层架构(`ERR_ANS_INNER_*` → `InnerErrorCode` → `InnerErrorToNative` → 外部错误码)

#### 2. 优化 `getAllNotificationEnabledBundles`

- 单次 OR 复合 QuerySql 替代全量前缀扫描(I/O 降低 80%)
- `HandleDataBaseMapInner` 正则→字符串匹配(CPU 提升 10~100x)

#### 3. 测试覆盖

- 29 个单元测试用例 + 3 个性能测试用例
- 编译验证通过(`distributed_notification_service` + `distributed_notification_service_unit_test`)

### 变更范围:

- 38 个文件修改(+2847/-9 行)
- 涵盖全链路:RDB → DB → IDL → 客户端 → 服务端 → ArkTS → NAPI/ANI → 测试

### 自检清单:

- [x] 编译通过
- [x] 无新增编译警告
- [x] 错误码遵循分层架构
- [x] 权限校验与现有接口一致(NOTIFICATION_CONTROLLER)
- [x] NAPI + ANI 双绑定同步实现
- [x] 不修改公共 API 签名、错误码、权限行为

See merge request: openharmony/notification_distributed_notification_service!4813
2026-06-26 10:00:50 +08:00
he-guokai 2f62c228dc 4811代码回退
Signed-off-by: he-guokai <heguokai6@huawei-partners.com>
2026-06-25 20:28:58 +08:00
openharmony_ci 3bf094e06f !4817 merge feat/error-code-layering into master
update ans_service_errors_test expected values

Created-by: cheerful_ricky
Commit-by: CheerfulRicky
Merged-by: openharmony_ci
Description: ### 一、内容说明(相关的Issue)



### 二、建议测试周期和提测地址  
  建议测试完成时间:xxxx.xx.xx  
  投产上线时间:xxxx.xx.xx  
  提测地址:CI环境/压测环境  
  测试账号:  

### 三、变更内容
  * 3.1 关联PR列表

  * 3.2 数据库和部署说明  
    1. 常规更新 
    2. 重启unicorn
    3. 重启sidekiq
    4. 迁移任务:是否有迁移任务,没有写 "无"
    5. rake脚本:`bundle exec xxx RAILS_ENV = production`;没有写 "无"

  * 3.4 其他技术优化内容(做了什么,变更了什么)
    - 重构了 xxxx 代码
    - xxxx 算法优化


  * 3.5 废弃通知(什么字段、方法弃用?)



  * 3.6  后向不兼容变更(是否有无法向后兼容的变更?)


  
### 四、研发自测点(自测哪些?冒烟用例全部自测?)
  自测测试结论:


### 五、测试关注点(需要提醒QA重点关注的、可能会忽略的地方)
  检查点:

| 需求名称 | 是否影响xx公共模块 | 是否需要xx功能 | 需求升级是否依赖其他子产品 |
|------|------------|----------|---------------|
| xxx  | 否          | 需要       | 不需要           |
|      |            |          |               |

  接口测试:

  性能测试:

  并发测试:

  其他:



See merge request: openharmony/notification_distributed_notification_service!4817
2026-06-25 16:19:03 +08:00
CheerfulRicky 0c38587493 feat(notification): add batch slot query API and optimize getAllNotificationEnabledBundles
Add isNotificationSlotEnabledByBundles batch slot query API to query
multiple bundles' slot enabled state in a single IPC call, avoiding the
performance degradation caused by LRU cache misses in the single-query
path. Optimize getAllNotificationEnabledBundles to only query
_enabledNotification keys (filtered by VALUE IN ('1','3')) and parse
bundleName/uid from the key, reducing I/O by ~66%.

- Add IDL method GetEnabledForBundleSlots with OrderedMap output
- Add full-stack implementation: server, DB, client, helper, NAPI, ANI
- Unify single query path to bypass LRU cache via batch query internally
- Add QueryDataInKeys batched IN query and QueryEnabledBundles in RDB layer
- Add unit tests for server, DB layer, and RDB batch query
- Add performance test (300-bundle batch query < 30ms target)

Signed-off-by: CheerfulRicky <yuegang7@h-partners.com>
Co-Authored-By: Agent
Change-Id: I59ed3041c14b33a2fbe69517d6b366597f03b11b
2026-06-24 18:10:37 +08:00
CheerfulRicky 46c329db1a refactor(ani): align ETS error handling with error-code-layering spec
- sts_request.cpp: replace ERROR_INTERNAL_ERROR with ERR_ANS_INNER_TASK_ERR
  and ERROR_PARAM_INVALID with ERR_ANS_INNER_INVALID_PARAM; change return
  types from int32_t to InnerErrorCode for UnWarpNotificationRequest,
  GetNotificationContent, GetNotificationRequestByCustom and sub-functions
- sts_request.h: add ans_service_errors.h include, update declaration
- ani_publish.cpp: change int32_t ret to InnerErrorCode ret
- ani_request_enable.cpp: replace ThrowError(env, ERR_ANS_INNER_INVALID_PARAM, msg)
  with ThrowErrorWithCode(env, ERR_ANS_INNER_INVALID_PARAM, msg) to preserve
  custom error message while using the spec-compliant entry point
- ani_open_settings.cpp: same ThrowError -> ThrowErrorWithCode fix
- ans_service_errors_test.cpp: update expected values for ERR_ANS_INNER_NO_MEMORY
  and ERR_ANS_INNER_CHECK_WEAK_NETWORK to match ERROR_INTERNAL_ERROR mapping

Signed-off-by: CheerfulRicky <yuegang7@h-partners.com>
Co-Authored-By: Agent
Change-Id: I55cbf67e174c1e38aa1cbfecbbc939f1fa7de73f
2026-06-24 16:55:16 +08:00
openharmony_ci f8a93b77f3 !4811 merge master into master
优化SubscribeNotification接口

Created-by: he-guokai
Commit-by: he-guokai
Merged-by: openharmony_ci
Description: ### 相关的Issue
https://gitcode.com/openharmony/notification_distributed_notification_service/issues/4161

###  变更说明:
#### 1. 接口合并简化 
移除 SubscribeNotification 和 SubscribeNotificationV26 中不带 NotificationSubscribeInfo 参数的重载版本,统一保留带 subscribeInfo 的版本,并通过默认参数 nullptr 兼容原有调用方式。
#### 2. IDL 清理 
从 IAnsManager.idl 中移除多余的 SubscribeNotification 声明(无 info 参数版本)。


Fixes [#4161](https://gitcode.com/openharmony/notification_distributed_notification_service/issues/4161) 

See merge request: openharmony/notification_distributed_notification_service!4811
2026-06-24 16:14:37 +08:00
openharmony_ci 2e5422468c !4812 merge feat/error-code-layering into master
fix(napi): ReturnCallbackPromise use CreateErrorValueLegacy to preserve nativeCode

Created-by: cheerful_ricky
Commit-by: CheerfulRicky
Merged-by: openharmony_ci
Description: ### 一、内容说明(相关的Issue)



### 二、建议测试周期和提测地址  
  建议测试完成时间:xxxx.xx.xx  
  投产上线时间:xxxx.xx.xx  
  提测地址:CI环境/压测环境  
  测试账号:  

### 三、变更内容
  * 3.1 关联PR列表

  * 3.2 数据库和部署说明  
    1. 常规更新 
    2. 重启unicorn
    3. 重启sidekiq
    4. 迁移任务:是否有迁移任务,没有写 "无"
    5. rake脚本:`bundle exec xxx RAILS_ENV = production`;没有写 "无"

  * 3.4 其他技术优化内容(做了什么,变更了什么)
    - 重构了 xxxx 代码
    - xxxx 算法优化


  * 3.5 废弃通知(什么字段、方法弃用?)



  * 3.6  后向不兼容变更(是否有无法向后兼容的变更?)


  
### 四、研发自测点(自测哪些?冒烟用例全部自测?)
  自测测试结论:


### 五、测试关注点(需要提醒QA重点关注的、可能会忽略的地方)
  检查点:

| 需求名称 | 是否影响xx公共模块 | 是否需要xx功能 | 需求升级是否依赖其他子产品 |
|------|------------|----------|---------------|
| xxx  | 否          | 需要       | 不需要           |
|      |            |          |               |

  接口测试:

  性能测试:

  并发测试:

  其他:



See merge request: openharmony/notification_distributed_notification_service!4812
2026-06-23 11:51:43 +08:00
CheerfulRicky 832f9d4661 fix(napi): ReturnCallbackPromise use CreateErrorValueLegacy to preserve nativeCode
ReturnCallbackPromise is used by old-style NAPI files (disturb_mode,
cancel, slot, distributed, subscribe, publish, remove, get_active,
enable_notification, display_badge, ans_template, unsubscribe) that
store nativeCode (from NotificationHelper) in info.errorCode.

The new CreateErrorValue always calls InnerErrorToExternal, which
incorrectly converts nativeCode to externalCode. Old-style APIs
expect nativeCode to pass through unchanged (XTS tests like
setDoNotDisturbDate expect nativeCode values).

CreateErrorValueLegacy uses napi_create_int32(env, errCode) directly
without conversion, restoring the original behavior.

Signed-off-by: CheerfulRicky <yuegang7@h-partners.com>
Co-Authored-By: Agent
Change-Id: Ie68427f3ac7066f205dbe460b23ffe6196279da5
2026-06-22 11:56:09 +08:00
he-guokai 6bed378de9 优化SubscribeNotification接口
Signed-off-by: he-guokai <heguokai6@huawei-partners.com>
2026-06-22 11:30:40 +08:00
zhaobaoxin cfbd32b823 atomic update success
Signed-off-by: zhaobaoxin <zhaobaoxin1@huawei.com>
Change-Id: I9dccf20a7c167536d4914794280188e8b476e92a
2026-06-21 16:46:37 +08:00
openharmony_ci 4e51f519f5 !4804 merge master into master
DT-Fuzz AI检视意见修改

Created-by: lx180327070811
Commit-by: g00586423
Merged-by: openharmony_ci
Description: ### 一、内容说明(相关的Issue)



### 二、建议测试周期和提测地址  
  建议测试完成时间:xxxx.xx.xx  
  投产上线时间:xxxx.xx.xx  
  提测地址:CI环境/压测环境  
  测试账号:  

### 三、变更内容
  * 3.1 关联PR列表

  * 3.2 数据库和部署说明  
    1. 常规更新 
    2. 重启unicorn
    3. 重启sidekiq
    4. 迁移任务:是否有迁移任务,没有写 "无"
    5. rake脚本:`bundle exec xxx RAILS_ENV = production`;没有写 "无"

  * 3.4 其他技术优化内容(做了什么,变更了什么)
    - 重构了 xxxx 代码
    - xxxx 算法优化


  * 3.5 废弃通知(什么字段、方法弃用?)



  * 3.6  后向不兼容变更(是否有无法向后兼容的变更?)


  
### 四、研发自测点(自测哪些?冒烟用例全部自测?)
  自测测试结论:


### 五、测试关注点(需要提醒QA重点关注的、可能会忽略的地方)
  检查点:

| 需求名称 | 是否影响xx公共模块 | 是否需要xx功能 | 需求升级是否依赖其他子产品 |
|------|------------|----------|---------------|
| xxx  | 否          | 需要       | 不需要           |
|      |            |          |               |

  接口测试:

  性能测试:

  并发测试:

  其他:



See merge request: openharmony/notification_distributed_notification_service!4804
2026-06-21 11:28:11 +08:00
OpenCode Agent 69ef86e1a1 refactor(errors): implement unified error code layering architecture
Signed-off-by: CheerfulRicky <yuegang7@h-partners.com>
Co-Authored-by: Agent
Change-Id: I136b4e503936f86c646fb936563a6eca6e7bc7d0
2026-06-20 15:02:53 +08:00