feat(launcher): 通知查询/清除 IPC + App崩溃直报crash (agent-199) — MSG_NOTIFY_QUERY(0x25)/QUERY_RESULT(0x27)/DISMISS_ALL(0x26,保留媒体/进度/常驻红线), DISMISS(0x22)复用既有; 序列化在主循环单写者做; launch_app waitpid 回收处 notify_app_crash(信号杀/非0退出上报 /tmp/meow_crash.sock best-effort, 干净exit不报)
launcher 61f6b0db→3c7c2ec7; qemu IPC 往返+宿主存储单测+mock crash socket 全过; 顺带清理既有告警(util.c/app_launcher.c/meow_ipc.c)
This commit is contained in:
1 parent
29e1b35da8
commit
2d93298f8a
7 files changed
+272
-8
No files matched your search
@@ -132,6 +132,17 @@ void meow_notif_set_icon_cb(meow_notif_icon_cb cb);
|
||||
* 立即归档(落盘快照)并(非 ONGOING)释放槽——对应「里程碑落盘」。返回 NOTIF_OK/NOTIF_ERR_NOENT。 */
|
||||
int meow_notif_update_progress(uint32_t id, int progress);
|
||||
|
||||
/* 一键清除(MSG_NOTIFY_DISMISS_ALL / 通知中心 UI 同语义):dismiss 所有「可清除」活跃通知
|
||||
* (非 ongoing / 非 media / 无进行中进度 progress<0——红线段一律保留)。每条 dismiss = 归档留档
|
||||
* + 释放槽。返回清除条数;<0=错误(NOTIF_ERR_*)。 */
|
||||
int meow_notif_clear_active(void);
|
||||
|
||||
/* 把当前活跃通知集序列化为 JSON 数组文本写入 buf(≤buf_len,NUL 结尾)。app_id 空/NULL=全部,
|
||||
* 非空=仅该 app 的活跃通知。字段同 TF 归档:id/app_id/category/summary/body/urgency/ts/
|
||||
* progress/ongoing/media/target_activity(+app_icon);ts=created_ms(epoch ms)。
|
||||
* 返回文本字节数(不含 NUL);<0=错误(NOTIF_ERR_*)。 */
|
||||
int meow_notif_serialize_json(const char *app_id, char *buf, int buf_len);
|
||||
|
||||
/* == TF 卡转储(通知#6 / M2c,NOTIFICATION_SYSTEM.md §5/§8 + MEOWOS_SPEC_REF §5.3)==
|
||||
* 把 dump_cb 接到 meow_notif_dump_tf 即把每条通知追加为一行 CSV 到
|
||||
* <卡根>/MeowOS/notifications/notifications.log,并按日志总大小滚动截断
|
||||
|
||||
Reference in new issue
Block a user