Skip to content

v1.3.1 - Robust Updater Caches & Native Markdown Rendering ๐Ÿ› ๏ธ Latest

Choose a tag to compare

@itsmeshibintmz itsmeshibintmz released this 28 Jun 03:47

This release contains stability improvements to the auto-updater to resolve network caching issues, support non-standard GitHub release tag formats, and natively render formatted markdown release notes.


๐Ÿš€ What's New

๐Ÿ“ถ Live Update Cache Bypass:

  • The Problem: The update check requests were cached by macOS URLSession caches, resulting in the app showing "You're up to date!" even after a new version was published on GitHub.
  • The Solution: Added .reloadIgnoringLocalAndRemoteCacheData cache policy configuration to the update checker's HTTP request to force checks directly against GitHub's live API.

๐Ÿท๏ธ Robust Tag Normalization (e.g., v.1.3.0):

  • The Problem: Tagging releases on GitHub with non-standard formats (such as v.1.3.0 with a dot) resulted in the version parser stripping only the v and leaving .1.3.0 which broke numeric version comparisons.
  • The Solution: Standardized tag cleaning to normalize v., v, and custom surrounding dots. Both v.1.3.0 and v1.3.0 now clean up to 1.3.0 for safe numeric comparison.

๐Ÿ“– Robust Release Notes Matcher:

  • The Problem: The app queried a static tags endpoint to fetch changelogs. Tag naming anomalies on GitHub resulted in 404 errors when looking up release notes.
  • The Solution: Rewrote the fetcher to query the releases list and find the correct entry by matching normalized tag names, resolving tag formatting differences completely.

๐ŸŽจ Clean Markdown Changelog Rendering:

  • The Problem: The "What's New" modal displayed raw Markdown styling tags (like ##, ***, -, **) literally as plain text.
  • The Solution: Wrapped the dynamic release notes string in SwiftUI's LocalizedStringKey initializer, enabling SwiftUI to render styled headings, lists, and bold text natively.