Repository navigation
v0.2.10
Gotify Desktop v0.2.10
Fixes & Performance Improvements (macOS 12–15+)
- Zero Old-Message Ghosting & Persistent
NSTableViewReuse (InboxView):- Frame T0 immediately hides the message list (
opacity(0)) and displays.loading(ProgressView) so old messages from the previous category never linger on screen. - Kept a single persistent
MessageListView(NSTableView) mounted insideReadingCanvasacross category switches (removing whole-table.id(page)teardown and avoiding100 -> 0 -> 100row deletion/re-insertion), preserving theNSHostingViewcell reuse pool on macOS 12. - Set
tableView.rowHeight = 84so AppKit'susesAutomaticRowHeightsestimates ~10 visible rows per viewport instead of 50+ rows on macOS 12.
- Frame T0 immediately hides the message list (
- Row Rendering & Visibility Coalescing:
- Coalesced SwiftUI
.onAppear/.onDisappearvisibility callbacks on@MainActorinto a single batched actor update per frame. - Precomputed
GotifyMessage.listSummaryas plain text (String) and removed per-rowTimelineViewinstances and redundant tooltip tracking areas.
- Coalesced SwiftUI
- Window Close & Status Bar Lifecycle Preserved:
- Clicking the red close button (
X) hides the main window and switchesNSAppto.accessorypolicy (hiding the Dock icon), while reopening from the status bar orkAEReopenApplicationrestores.regularpolicy.
- Clicking the red close button (
SHA-256 Checksums
GotifyDesktop-macOS-arm64.dmg:859484f8b41783e24ba93343d25f487df394a67aa75cb7b1d1142f807c443df2GotifyDesktop-macOS-amd64.dmg:ca6534b46ed0bac21e335566806a912c67044a5796bbcf8485e00fc3d2905557