Files
start-os/sdk/base/lib/util/logErrorOnce.ts
Aiden McClelland 7335e52ab3 fix: daemon lifecycle cleanup and error logging improvements
- Refactor HealthDaemon to use a tracked session (AbortController + awaitable
  promise) instead of fire-and-forget health check loops, preventing health
  checks from running after a service is stopped
- Stop health checks before terminating daemon to avoid false crash reports
  during intentional shutdown
- Guard onExit callbacks with AbortSignal to prevent stale session callbacks
- Add logErrorOnce utility to deduplicate repeated error logging
- Fix SystemForEmbassy.stop() to capture clean promise before deleting ref
- Treat SIGTERM (signal 15) as successful exit in subcontainer sync
- Fix asError to return original Error instead of wrapping in new Error
- Remove unused ExtendedVersion import from Backups.ts
2026-03-20 13:50:57 -06:00

10 lines
229 B
TypeScript

const loggedErrors = new WeakSet<object>()
export function logErrorOnce(err: unknown) {
if (typeof err === 'object' && err !== null) {
if (loggedErrors.has(err)) return
loggedErrors.add(err)
}
console.error(err)
}