mirror of
https://github.com/Darkrock-Studios/hammer-editor.git
synced 2026-08-05 07:40:00 +00:00
The app called the GitHub releases API from ProjectSelectionComponent.init to decide whether to show an "update available" dialog. That is an unprompted network request before the user has done anything, which has been raised as a privacy concern. The release notes are already in the repo at release time, so bake them in instead. prepareForRelease writes the new CHANGELOG.md entry to common/src/commonMain/composeResources/files/changelog.md and commits it alongside the version bump, so the resource cannot drift from the version in libs.versions.toml. On load, ChangelogRepository compares the baked entry's version against lastSeenChangelogVersion in global settings and shows a "What's New" dialog when they differ. Dismissing records the version. Fresh installs are seeded as already-seen, so only upgrading users get the popup; the old lastDismissedUpdateVersion key is dropped, which is safe because the TOML serializer ignores unknown keys. About drops its update check entirely and gains two buttons: Changes, which reopens the dialog with no network, and GitHub Release, which opens the browser. VersionCheckRepository stays for the protocol mismatch dialog, which only appears after the user has connected to a sync server and exists to tell them which version to get. It keeps its automatic check and is now that repository's only consumer. Links in the notes are clickable via linkifyChangelog, which handles [label](url) and bare urls, including urls containing parentheses. It is deliberately not a markdown renderer: entries lead with [New] / [Fix] tags that a real parser mangles. |
||
|---|---|---|
| .. | ||
| src | ||
| .gitignore | ||
| build.gradle.kts | ||
| crowdin-screenshots.gradle.kts | ||