subscribe({ timeoutMs }): gives up with reasontimeoutinstead of hanging on Chrome's quiet prompt or Brave.- A save answered by a redirect (lost session sent to sign-in) now throws
save-failed. unsubscribe({ removeMethod: 'POST' })for POST /unsubscribe routes (default DELETE).@profullstack/notifications/sw-classic: service-worker handlers for plain-script workers viaimportScripts.