-
2.2.0 Stable
released this
2025-06-26 21:26:41 +03:00 | 27 commits to main since this release📅 Originally published on GitHub: Thu, 26 Jun 2025 18:37:24 GMT
🏷️ Git tag created: Thu, 26 Jun 2025 18:26:41 GMTRelease Info
Item SHA-256 Desc 📄 ntfy-desktop-2.2.0-win32-arm64.zip de62a4762adbbd253d635331012595667388b9d88d34173d5d313d196996c5d1Windows arm64 (64-bit) binaries 📄 ntfy-desktop-2.2.0-win32-ia32.zip 262787447910e8e080d0326ac0bdd83bcbc94f02aa5867b5a64c5941aff1f83fWindows ia32 (32-bit) binaries 📄 ntfy-desktop-2.2.0-win32-amd64.zip 9d7ce3f6df9dde7a79e0f9a3e95745591b2ab5c69211425f319c6728e6a8eafaWindows x64 (64-bit) binaries 📄 ntfy-desktop-2.2.0-linux-arm64.zip 06359a6d48f948ab54788180a6158d6f066db02e7e85d238971c79a7ea8415caLinux arm64 (64-bit) binaries 📄 ntfy-desktop-2.2.0-linux-armv7l.zip c91c6092d4b8354eba733826d392805cc19a6812fb757d2baa2507a2502d76c6Linux armv7l (32-bit) binaries 📄 ntfy-desktop-2.2.0-linux-amd64.zip 4c98fe1a773bde72bf3e0725c5e62afa4781a28363b341d103175c3adf72815eLinux x64 (64-bit) binaries 📄 ntfy-desktop-2.2.0-darwin-arm64.zip 298750372e775f8c92505956a7abebfac95fe99f621a880d48190ddcd13db79aDarwin / macOS arm64 (64-bit) binaries 📄 ntfy-desktop-2.2.0-darwin-amd64.zip f82ee7ea0a763a561723c685dd4df85a398cfd7cbef0801c055c1edf6cc07d92Darwin / macOS x64 (64-bit) binaries 📄 sha256sum.txt.asc Signed SHA256 hash digest 📄 sha1sum.txt.asc Signed SHA1 hash digest 🏷️ GUID 22ce449b-259e-57f4-bf70-d94d669cc4b0🏷️ UUID ae6d8eea-511d-53a8-bb01-6231ecfb9298🕟 Stamp 2.1.2-2025-06-09T18:44:32.000Z 🔺 2.1.3-2025-06-25T03:04:15.000Z📅 Last Release 15 days ago
What's New
This release contains the following changes:
Note
This major releases focuses on a complete re-write of the entire app. It also utilizes a proper file structure, separating the application files from other git repo or template files. Additionally, this release focuses on security and utilizing proper practices within Electron to ensure the end-user is not exposed to potential harmful attacks later through open processes that could be intercepted. We have no idea if people are using this app to transmit sensitive information, but it's better to be safe than sorry. Numerous performance enhancing changes have also been made, including proper graceful shutdowns for all operating systems, including MacOSX.
There are plans for more features, but this re-write needed to come first in order to establish a proper structure.
feat: New Notification Badge #27 #88- When the user receives a new message, a numerical value is shown in the OS taskbar indicating how many un-read messages the user has.
- Unread will clear once the user interacts with the menu
feat: New Inter-Process Communication- Electron's different processes now communicate safely with one another without the risk of exposing sensitive info
- Main process and renderer are completely segregated from one another
feat: Action Triggers- Ntfy Desktop now can interpret what buttons you are clicking on the interface; which opens the door to many new features based on a user's navigation
- Introduced with new badge notification counter
improvement: Class Segregation- All classes now reside in a dedicated folder, instead of in the main app code
improvement: Application Restructured- For the most part, the app has been entirely re-written
- Ntfy app files now reside in
src/folder instead of app and repo files being mingled together
improvement: Migrated Electron Menus- Instead of residing in the main app file; menus have been migrated to their own independent class
improvement: Rewrote Windows and Linux Build Scripts- Can utilize both local and global node packages
- Changed the compression functionality for MacOSX users
improvement: Switched to Node Imports- App now uses node imports instead of relative file paths
- Satisfies eslint error import/no-relative-parent-imports
improvement: Re-wroteisValidUrlFunctionality- Now supports both external and internal (localhost) instances of Ntfy
improvement: Electron Preloader and Renderer- Added
preloader.jsandrenderer.jsto handle the different processes
- Added
improvement: Consistent API Token Handling- Safer fallback for empty API tokens
improvement: Topics Validation- Check for empty/missing topics before attempting requests
improvement: Proper Interval Management- Store and cleanup polling intervals properly
improvement: Shutdown State Management- Prevent operations during app shutdown
improvement: Enhanced User-Agent- Include app version in requests
improvement: Shutdown Checks- Skip operations when app is shutting down
improvement: Null Response Handling- Handle cases where requests return null
improvement: Poll Rate Clamping- Automatically fix out-of-bounds poll rates
improvement: Proper macOS Support- Handle window lifecycle correctly on macOS
improvement: Enhanced URL Validation- Better localhost detection and fallback handling
pref: Request Timeout Handling- Added 30-second timeout for message requests with proper cleanup
pref: Concurrent Polling Prevention- Added isPolling flag to prevent multiple simultaneous requests
pref: Graceful Shutdown System- Implemented proper cleanup when app closes
pref: Poll Rate Validation- Added bounds checking (5s minimum, 1 hour maximum)
pref: Better Error Handling- Distinguish between timeout and network errors
pref: Improved Logging- More detailed error messages and URI information
pref: Menu Initialization- Menus now wait until Ntfy is completely initialized before loading
fix(security): Disabled Node Integration #117- Changed
nodeIntegration: falseto prevent renderer from accessing Node.js APIs
- Changed
fix(security): Enabled Context Isolation #117- Ensures proper isolation between main and renderer processes
fix(security): Disabled Remote Module #117- Prevents potential security vulnerabilities
fix(security): Enabled Web Security #117- Blocks insecure content and experimental features
fix(security): Sandboxed About Window #117- Added sandbox mode for the about dialog
fix(build): Windows.batchBuild Script- windows batch build script provided with app failed to build if
build/folders didn't already exist
- windows batch build script provided with app failed to build if
fix(build): MacOS Binaries Build Failed on Windows- when attempting to build macOSX binaries on Windows, script would fail due to windows compression
- changed to tar.gz
tests: New Test Suite- Each release will now run an extensive set of tests to ensure Ntfy functionality works properly
- Utilizes both
VitestandPlaywright
Statistics
How the files have changed:
- Changed files : 16
- Changes : 2474
- Commits : 36
- Additions : 1965
- Deletions : 509
- PRs (categorized) : 24
- PRs (uncategorized) : 12
- PRs (open) : 0
Pull Requests
This release is associated with the following pull requests:
🪛 Continuous integration
- update workflow working directory for node commands :
737080d2d7@Aetherinox - update .env file working path :
3787357680@Aetherinox - update working directory for
package.json:e902918a93@Aetherinox - change working directory on
npm-testsworkflow :d9b4ae12a4@Aetherinox
🚀 Features
- add
backandforwardfunctionality toviewmenu :338782370a@Aetherinox - add new electron
preload.js#116 :90db478e2c@Aetherinox - add new electron
renderer.js#116 :455ef7446a@Aetherinox - add
preload.jsto main dialog #116 :b1f3f961b5@Aetherinox - add badge indicator to taskbar icon #27 :
9f66220461@Aetherinox - add graceful shutdown functionality when app closed :
68cbe33601@Aetherinox - force maximum retries on IsValidUrl :
899207546b@Aetherinox - add polling rate when getting messages from ntfy server :
38fdf83448@Aetherinox - add proper ipc communication from main process to renderer #117 :
58a1e1620f@Aetherinox - add AbortController when fetching messages from ntfy server :
225050bc65@Aetherinox - add graceful shutdown for all supported operating systems :
07c7d10ed9@Aetherinox
🐛 Bugfixes
- (security) set
nodeIntegration: falseto prevent renderer from accessing node api #117 :69fc3ca22e@Aetherinox - (security) ensure proper isolation between main and renderer processes #117 :
72074cd9a7@Aetherinox - (security) prevent potential security vulnerabilities #117 :
90bc6f6f13@Aetherinox - (security) block insecure content and experimental features #117 :
3eaf5133db@Aetherinox - class
Log.jsimporting package in wrong dir, addpackage.jsonimport :494970251e@Aetherinox
🔧 Changes
- clean parent directory; migrate app to
src#116 :0aa9fbdf11@Aetherinox - update
.gitignore:0d667e3484@Aetherinox - assign new classes from
classesfolder to main process :c7ef861afe@Aetherinox
n#### ✨ Optimizations
- menus now wait on app to initialize before loading into memory :
1812db52a9@Aetherinox
🧹 Housekeeping
- re-write build scripts, fix macos bugs with archive compression #116 :
2e11ecd633@Aetherinox - break up classes into separate folder
classes#116 :94a7e828cc@Aetherinox - update eslint rules and dependencies #116 :
2e108b2ebb@Aetherinox - update webpage templates #116 :
05e3e3687e@Aetherinox - electron menus migrated to class, and out of main.js #116 :
faa2c47b33@Aetherinox - update comments :
c218b2852e@Aetherinox - update url verification function to support localhost / self-hosted instances #116 :
1d89168070@Aetherinox - add helper for variable getters :
c38242fc93@Aetherinox - update linter issues :
99e1c92f67@Aetherinox
📦 Build & Dependencies
- stop tracking
package-lock.json:9624c81a4b@Aetherinox - add
package.jsonimports for loader :41a0f53fcf@Aetherinox - update package dependencies :
75af12678a@Aetherinox - define
electrontypes :8f2659f7ae@Aetherinox - (tests) add test suite to project :
50f6e1c6a5@Aetherinox - update
package.jsonscripts to usenpx:07b902d9bd@Aetherinox - bump project version to
v2.2.0:95310006cb@Aetherinox
Downloads
-
Source code (ZIP)
0 downloads
-
Source code (TAR.GZ)
0 downloads
-
ntfy-desktop-2.2.0-darwin-amd64.zip
0 downloads ·
2026-03-02 23:25:56 +03:00 · 330 MiB -
ntfy-desktop-2.2.0-darwin-arm64.zip
0 downloads ·
2026-03-02 23:29:17 +03:00 · 316 MiB -
ntfy-desktop-2.2.0-linux-amd64.zip
0 downloads ·
2026-03-02 23:29:31 +03:00 · 112 MiB -
ntfy-desktop-2.2.0-linux-arm64.zip
0 downloads ·
2026-03-02 23:29:49 +03:00 · 112 MiB -
ntfy-desktop-2.2.0-linux-armv7l.zip
0 downloads ·
2026-03-02 23:30:02 +03:00 · 102 MiB -
ntfy-desktop-2.2.0-win32-amd64.zip
0 downloads ·
2026-03-02 23:30:15 +03:00 · 121 MiB -
ntfy-desktop-2.2.0-win32-arm64.zip
0 downloads ·
2026-03-02 23:30:31 +03:00 · 120 MiB -
ntfy-desktop-2.2.0-win32-ia32.zip
0 downloads ·
2026-03-02 23:30:48 +03:00 · 113 MiB -
sha1sum.sig
0 downloads ·
2026-03-02 23:30:49 +03:00 · 833 B -
sha1sum.txt.asc
0 downloads ·
2026-03-02 23:30:50 +03:00 · 1.5 KiB -
sha256sum.sig
0 downloads ·
2026-03-02 23:30:50 +03:00 · 833 B -
sha256sum.txt.asc
0 downloads ·
2026-03-02 23:30:51 +03:00 · 1.7 KiB
mirror of
https://github.com/Aetherinox/ntfy-desktop.git
synced 2026-04-25 06:55:54 +03:00