* feat(plugins): add experimental FaceTime realtime voice bridge Co-authored-by: Peter Steinberger <steipete@gmail.com> Co-authored-by: Dallin Romney <dallinromney@gmail.com> * test(facetime): align portable release gates * ci: refresh FaceTime PR checks * fix(facetime): retain startup suppression through hangup Begin carrier closure before startup teardown and keep native suppression pending until carrier absence is confirmed. * fix(facetime): retain cancellation until carrier safety is confirmed * fix(facetime): separate carrier closure from startup teardown * test(pr): model authoritative repository identity in sibling fixtures * fix(facetime): retain suppression without carrier proof Do not treat the capture watchdog shutdown as evidence that the native carrier terminated. Keep the call unresolved and process suppression retained until exact termination or stable absence is observed.\n\nCo-authored-by: Codex <noreply@openai.com> * fix(facetime): retain disconnected carrier proof * fix(facetime): stabilize live audio startup and routing * fix(facetime): refresh merged lockfile * refactor(facetime): separate helper result projection * fix(facetime): align published package metadata * fix(facetime): satisfy preflight lint checks * fix(facetime): preserve consult and carrier ownership * test(facetime): declare regression fixture types * test(release): align merged publisher inventory * fix(facetime): retain runtime across safe uninstall * fix(facetime): restore responsive call opening * refactor(facetime): keep greeting policy localized * fix(facetime): accept trusted stock Xcode * fix(facetime): use compiler link drivers * fix(facetime): repair portable lifecycle checks * fix(facetime): normalize installed driver permissions * fix(facetime): preserve consults during caller speech * fix(facetime): make answered-call greeting reliable * fix(facetime): honor explicit agent session owner * fix(facetime): finish voice consults promptly * fix(facetime): preserve repeated voice consults * fix(facetime): settle consult delivery before reporting success * fix(facetime): retain suppression until carrier closure is proven * docs(facetime): refresh merged plugin reference count * fix(facetime): preserve installed driver when backup fails * test(facetime): prove rejected calls cannot start media * fix(facetime): verify unknown SIP status before setup advice * test(facetime): prove caller rejection at authenticated media boundary --------- Co-authored-by: Omar Shahine <10343873+omarshahine@users.noreply.github.com> Co-authored-by: Dallin Romney <dallinromney@gmail.com>
2.5 KiB
| summary | read_when | title | ||
|---|---|---|---|---|
| Remove FaceTime native artifacts and restore standard Mac security policy |
|
FaceTime recovery and removal |
This procedure removes the FaceTime plugin's native artifacts and describes the separate operator actions needed to restore the Mac's standard security posture. OpenClaw never changes SIP automatically.
Remove driver and helper artifacts
End any active call, then run:
openclaw gateway call facetime.uninstall --json
openclaw plugins disable facetime
The uninstall removes the HAL driver, cached driver output, staged and timestamped helper dylibs for FaceTime and Phone, the helper key, and the staged helper build stamp. It does not kill unrelated processes.
Quit and reopen FaceTime and Phone so neither app retains a mapped helper. If an app will not quit normally, terminate only that exact app from Activity Monitor and reopen it. Do not use broad process-name kill commands.
Verify that OpenClaw-Mic and OpenClaw-Feed no longer appear:
system_profiler SPAudioDataType
Restore SIP debugging restrictions
If you previously accepted the private-helper tradeoff and disabled debugging restrictions, restore standard SIP from macOS Recovery:
- Shut down the Mac.
- Hold the power button until startup options appear.
- Choose Options, authenticate, and open Terminal from Utilities.
- Run
csrutil enable. - Reboot and verify with
csrutil status.
Do not modify SIP merely to diagnose a driver or configuration problem.
Recover a failed driver update
Driver replacement is transactional. A failed staged or post-swap verification
restores the previous driver and does not restart Core Audio. If status remains
invalid or outdated, rerun facetime.updateDriver from an interactive admin
session and inspect its exact error. Never copy an unverified driver into
/Library/Audio/Plug-Ins/HAL manually.
The installer intentionally rejects Xcode that is not canonical, Apple-signed,
root-owned, or free of group/world-writable content. Reinstall Xcode from Apple
into /Applications using an administrator-managed installation. If the error
names a writable path component, an administrator must remove group/world write
access from that component, including /Applications, according to the Mac's
software-management policy. Do not work around the check by changing the
plugin, supplying another compiler path, or copying a locally built driver into
the HAL directory.