From c106f47d89fc5692276f916e5a685d41ee3ca26a Mon Sep 17 00:00:00 2001 From: Alvin Unreal Date: Thu, 14 May 2026 15:20:55 +0200 Subject: [PATCH] Expose desktop logs from tray --- apps/desktop/src/check-packaging-contract.ts | 1 + apps/desktop/src/tray.ts | 6 +++++- 2 files changed, 6 insertions(+), 1 deletion(-) diff --git a/apps/desktop/src/check-packaging-contract.ts b/apps/desktop/src/check-packaging-contract.ts index f2504c21..ad29fdf6 100644 --- a/apps/desktop/src/check-packaging-contract.ts +++ b/apps/desktop/src/check-packaging-contract.ts @@ -75,6 +75,7 @@ assert.match(loggerSource, /OPENPETS_LOG_LEVEL/, "desktop logger must support ve assert.match(loggerSource, /normalizeLogLevel\(process\.env\.OPENPETS_LOG_LEVEL\) \?\? "debug"/, "desktop production logger must default to debug for user-sendable diagnostics."); assert.match(loggerSource, /redacted-token/, "desktop logger must redact token-looking values."); assert.match(mainSource, /initializeLogger\(\)/, "desktop startup must initialize logging before subsystem startup."); +assert.match(traySource, /Open Logs Folder/, "desktop tray must expose user-sendable logs for bug reports."); assert.match(localIpcSourceForLogging, /request received/, "desktop IPC must log request methods for diagnostics."); assert.match(leaseManagerSource, /acquired/, "lease manager must log lease acquisition details."); assert.match(defaultPetControllerSource, /show requested/, "default pet controller must log show lifecycle events."); diff --git a/apps/desktop/src/tray.ts b/apps/desktop/src/tray.ts index 060a1801..e1ac06f2 100644 --- a/apps/desktop/src/tray.ts +++ b/apps/desktop/src/tray.ts @@ -4,7 +4,7 @@ import { getAppStateSnapshot, isOnboardingCompleted } from "./app-state.js"; import { createTrayIcon } from "./assets.js"; import { hideDefaultPet, isDefaultPetVisible, setDefaultPetPaused, showDefaultPet } from "./default-pet-controller.js"; import { quitOpenPets } from "./lifecycle.js"; -import { info } from "./logger.js"; +import { info, openLogsFolder } from "./logger.js"; import { shellState, togglePaused } from "./state.js"; import { getUpdateStatus, openUpdateReleasePage } from "./update-checker.js"; import { openTaskWindow } from "./windows.js"; @@ -91,6 +91,10 @@ export function refreshTrayMenu(): void { label: "Settings...", click: () => openTaskWindow("settings"), }, + { + label: "Open Logs Folder...", + click: () => { void openLogsFolder(); }, + }, { type: "separator" }, { label: "Quit OpenPets",