super-productivity/packages/plugin-dev/voice-reminder
Johannes Millan 5e63eeb294
fix(plugins): stop leaked timers on plugin disable via onUnload hook (#8286)
* feat(sync): show actionable error on persistent WebDAV 409

When a WebDAV PUT keeps returning 409 Conflict even after the parent
collection is created, the Base URL / Sync Folder Path is misconfigured
(the classic Synology / raw-WebDAV setup mistake). Previously the raw
"HTTP 409 Conflict" (or a bare "Unknown error") reached the user with no
hint at the cause.

Throw a dedicated WebDavSyncFolderUnusableSPError with a privacy-safe,
actionable message (no path, no response body) at the spot that already
detects this condition. Mirrors NetworkUnavailableSPError: a fixed
user-facing message matched by instanceof.

* ci(release): revive contributors section in release notes

* fix(plugins): stop leaked timers on plugin disable via onUnload hook

* fix(plugins): harden onUnload teardown hook after review

* refactor(plugins): group lifecycle registers into options object

* fix(plugins): close onReady stale-guard gap and timer interleave race
2026-06-12 17:09:28 +02:00
..
i18n refactor(voice-reminder): extract voice reminder to standalone plugin 2026-03-20 21:36:30 +01:00
icon.svg refactor(voice-reminder): extract voice reminder to standalone plugin 2026-03-20 21:36:30 +01:00
manifest.json refactor(voice-reminder): extract voice reminder to standalone plugin 2026-03-20 21:36:30 +01:00
package.json refactor(voice-reminder): extract voice reminder to standalone plugin 2026-03-20 21:36:30 +01:00
plugin.js fix(plugins): stop leaked timers on plugin disable via onUnload hook (#8286) 2026-06-12 17:09:28 +02:00