Files
openclaw/extensions/imessage/src/constants.ts
Omar Shahine 6c35c0d965 fix(imessage): self-explaining private-API failures and dedicated send timeout (#91041)
Append imsg's own status message (SIP / library validation / macOS 26 AMFI gate)
to iMessage private-API blocked-action errors so operators see the real blocker
instead of a generic "run imsg launch". Add a dedicated 150s default timeout for
iMessage send RPCs (explicit opts and probeTimeoutMs still win) so macOS 26
bridge stalls are not aborted mid-send.

Staged mitigation: the longer wait fully activates once the companion bridge
timeout (openclaw/imsg#139) ships; on current imsg the bridge still returns at
its own 10s, so there is no regression. Diagnostics half is live-proven; the
delayed-send timeout is covered by source + unit proof + maintainer waiver.
2026-06-07 14:07:31 -07:00

12 lines
732 B
TypeScript

/** Default timeout for iMessage probe/RPC operations (10 seconds). */
export const DEFAULT_IMESSAGE_PROBE_TIMEOUT_MS = 10_000;
// Sends get a much longer default than probes: on macOS 26 (Tahoe) the private
// API bridge intermittently stalls up to ~124s before the send completes. The
// 10s probe timeout aborts those mid-flight, and non-recoverable shapes
// (attachment/reply) are then lost. This must clear the observed upper bound
// plus headroom, otherwise the long tail of stalls still loses sends — 150s
// covers 124s with margin. Decoupling keeps probes/health checks fast while
// letting real sends ride out the stall. Akin to the BlueBubbles fix (#69193).
export const DEFAULT_IMESSAGE_SEND_TIMEOUT_MS = 150_000;