吸收数字员工系统桌面通知

This commit is contained in:
baiyanyun
2026-06-11 20:53:46 +08:00
parent 8278fdc81c
commit 245a210b25
14 changed files with 370 additions and 40 deletions

View File

@@ -25,6 +25,7 @@ const testFiles = [
"src/main/services/digitalEmployee/stateService.test.ts",
"src/main/services/digitalEmployee/artifactAccessService.test.ts",
"src/main/services/digitalEmployee/schedulerService.test.ts",
"src/main/services/digitalEmployee/desktopNotificationService.test.ts",
"src/main/ipc/digitalEmployeeHandlers.test.ts",
"src/main/ipc/eventForwarders.test.ts",
"src/main/services/engines/acp/acpEngine.test.ts",
@@ -203,6 +204,7 @@ function checkDigitalNotificationPreferences() {
const shellPath = path.join(packageRoot, "embedded", "sgrobot-digital", "src", "pages", "digital", "DigitalEmployeeShell.tsx");
const stateServicePath = path.join(packageRoot, "src", "main", "services", "digitalEmployee", "stateService.ts");
const syncServicePath = path.join(packageRoot, "src", "main", "services", "digitalEmployee", "syncService.ts");
const desktopNotificationServicePath = path.join(packageRoot, "src", "main", "services", "digitalEmployee", "desktopNotificationService.ts");
const ipcHandlersPath = path.join(packageRoot, "src", "main", "ipc", "digitalEmployeeHandlers.ts");
const preloadPath = path.join(packageRoot, "src", "preload", "webviewPerfBridge.ts");
const adapter = fs.readFileSync(adapterPath, "utf8");
@@ -211,6 +213,7 @@ function checkDigitalNotificationPreferences() {
const shell = fs.readFileSync(shellPath, "utf8");
const stateService = fs.readFileSync(stateServicePath, "utf8");
const syncService = fs.readFileSync(syncServicePath, "utf8");
const desktopNotificationService = fs.readFileSync(desktopNotificationServicePath, "utf8");
const ipcHandlers = fs.readFileSync(ipcHandlersPath, "utf8");
const preload = fs.readFileSync(preloadPath, "utf8");
const requiredSnippets = [
@@ -228,17 +231,30 @@ function checkDigitalNotificationPreferences() {
[adapter, "pullBridgeNotificationUpdates", "adapter notification updates bridge pull helper"],
[adapter, "submitNotificationAction", "adapter notification action bridge declaration"],
[adapter, "submitBridgeNotificationAction", "adapter notification action bridge submit helper"],
[adapter, "showDesktopNotification", "adapter desktop notification bridge declaration"],
[adapter, "/api/notifications/desktop", "adapter desktop notification endpoint"],
[adapter, "showBridgeDesktopNotification", "adapter desktop notification helper"],
[adapter, "notificationMatchesPreferences", "adapter notification preference filter"],
[adapter, "desktop_enabled", "adapter notification desktop preference"],
[adapter, "update_notification_preferences", "adapter notification preference save action"],
[api, "getNotificationPreferences", "notification preferences API getter"],
[api, "patchNotificationPreferences", "notification preferences API patcher"],
[api, "pullNotificationUpdates", "embedded notification updates API"],
[api, "showDesktopNotification", "embedded desktop notification API"],
[types, "NotificationPreferences", "notification preferences type"],
[types, "desktop_enabled", "notification desktop preference type field"],
[types, "NotificationUpdatesPullResult", "notification updates pull result type"],
[shell, "de-notification-preferences", "notification preferences UI"],
[shell, "handleNotificationSync", "notification manual sync UI action"],
[shell, "showUnreadDesktopNotifications", "notification desktop trigger helper"],
[shell, "qimingclaw:digital-desktop-notified", "notification desktop dedupe key"],
[shell, "桌面通知", "notification desktop preference UI"],
[shell, "NOTIFICATION_KIND_OPTIONS", "notification kind mute UI options"],
[stateService, "update_notification_preferences", "notification preference runtime event"],
[stateService, "desktop_enabled", "notification desktop preference state field"],
[desktopNotificationService, "showDigitalEmployeeDesktopNotification", "desktop notification service"],
[desktopNotificationService, "Notification", "Electron Notification usage"],
[desktopNotificationService, "notification_unavailable", "desktop notification unavailable fallback"],
[stateService, "notification_updates_pulled", "notification updates pulled runtime event"],
[stateService, "notification_action_submitted", "notification action submitted runtime event"],
[syncService, "pullDigitalEmployeeNotificationUpdates", "remote notification updates pull service"],
@@ -257,8 +273,10 @@ function checkDigitalNotificationPreferences() {
[syncService, "return \"notification\"", "notification business category"],
[ipcHandlers, "digitalEmployee:pullNotificationUpdates", "IPC notification updates pull handler"],
[ipcHandlers, "digitalEmployee:submitNotificationAction", "IPC notification action submit handler"],
[ipcHandlers, "digitalEmployee:showDesktopNotification", "IPC desktop notification handler"],
[preload, "pullNotificationUpdates", "preload notification updates bridge"],
[preload, "submitNotificationAction", "preload notification action bridge"],
[preload, "showDesktopNotification", "preload desktop notification bridge"],
];
const missing = requiredSnippets
.filter(([content, snippet]) => !content.includes(snippet))