* fix(mac): stop unbundled processes crashing on notification-center access
UNUserNotificationCenter.current() aborts with NSInternalInconsistencyException
(bundleProxyForCurrentProcess is nil) in processes without a bundle identity,
e.g. swift-build dev binaries. Live crash: onboarding aborted at
PermissionManager.authorizationStatus during MacNodeModeCoordinator startup.
One availability predicate on PermissionManager gates all five call sites;
unbundled invocations degrade to not-granted/skip instead of crashing.
* chore(mac): refresh native i18n inventory for guard warning
* feat(mac): show native notification permission in dashboard Notifications settings
The Mac app's embedded Control UI showed the web-push section as
Unsupported/Not subscribed even though the app delivers notifications
natively. The dashboard now installs an openclawNotifications WebKit
bridge (status / request-permission / send-test) and the Notifications
settings page renders native permission state with Enable, Open System
Settings, and Send test actions when hosted in the Mac app. Browsers
keep the existing web-push UI. The notifications section renderer moved
out of the oversized config view module.
* fix(ui): break config view import cycle and satisfy lint/deadcode/i18n gates
Move the notifications section props to a leaf contract (no view.ts
type import), unexport the status-event constant, use bracket access
for the injected dunder global, default-case the status switch, and
refresh the native i18n inventory line offset.