SIGN IN SIGN UP

refactor: invert safety->notifications via permission-notifier hook

notifications already depends on safety types (AmbientTranscript,
TranscriptStatus, record_permission_via_file), so safety is the lower
layer. safety previously owned a NotificationDispatcher just to fire one
permission-request notification, creating a back-edge into the higher
notifications layer.

Mirror the existing fallback-resolver/config-observer pattern: safety
exposes register_permission_notifier(fn) + a OnceLock hook, and the
notifications dispatcher is registered at cli::startup::run. safety no
longer constructs NotificationDispatcher.

Evicts safety from the dependency cycle (SCC 25 -> 24 modules). All 9
safety unit tests pass; check is clean.
J
jeremy committed
129ed57822e506c6495780ea9aa1f092081f652a
Parent: 0fe2a49