ConstRegistry destroy / test seam (install.ts → sharedTeardown). Re-arms the
readiness deferred so a re-boot starts pending, AND tears the connectivity
detector down.
⚠️ That second half used to be delegated, in a comment, to Storage.close() —
which has zero production callers in core/src. The two window online/offline
listeners OfflineDetector.init attaches were therefore never released by a
teardown, and a torn-down capability kept reacting to connectivity changes. It
did not ACCUMULATE (a re-init() self-heals, offline-detector.ts:145-148); it
simply never let go. Pinned by
__tests__/capabilities/offline/lifecycle-detector-teardown.test.js.
Engine teardown proper (closing IndexedDB) remains Storage.close()'s business.
Lifecycle for the offline capability (engine init / core-mode detector).