Files
openclaw/src/shared/node-presence.ts
Peter Steinberger bdba90a20b feat: add authenticated iOS background presence beacon (#73330)
* feat: add iOS background presence beacon

Co-authored-by: ngutman <1540134+ngutman@users.noreply.github.com>

* fix: keep iOS background reconnects ahead of beacon throttle

* build: refresh gateway protocol swift models

* fix: emit swift protocol string enums

---------

Co-authored-by: ngutman <1540134+ngutman@users.noreply.github.com>
2026-04-28 08:10:35 +01:00

25 lines
770 B
TypeScript

import { normalizeOptionalString } from "./string-coerce.js";
export const NODE_PRESENCE_ALIVE_EVENT = "node.presence.alive";
export const NODE_PRESENCE_ALIVE_REASONS = [
"background",
"silent_push",
"bg_app_refresh",
"significant_location",
"manual",
"connect",
] as const;
export type NodePresenceAliveReason = (typeof NODE_PRESENCE_ALIVE_REASONS)[number];
const NODE_PRESENCE_ALIVE_REASON_SET = new Set<string>(NODE_PRESENCE_ALIVE_REASONS);
export function normalizeNodePresenceAliveReason(value: unknown): NodePresenceAliveReason {
const normalized = normalizeOptionalString(value)?.toLowerCase();
if (normalized && NODE_PRESENCE_ALIVE_REASON_SET.has(normalized)) {
return normalized as NodePresenceAliveReason;
}
return "background";
}