Fix app-scoped settings being frozen by preserved settings.json#387
Merged
Conversation
AppVersion and the other "readonly at runtime" fields (AuthorEndpoint, TizenSdb, JellyfinAvReleaseFork, ReleaseInfo, CommunityInfo) were serialized to settings.json. On upgrade, Load() deserialized the user's existing file and overwrote the new code defaults, so existing users kept seeing their old AppVersion and stale endpoint URLs after updating — made more certain by the new per-user-dir settings migration. Mark the app-scoped block [JsonIgnore] so these always reflect the shipped code values and are no longer persisted. Nothing writes to them at runtime, so this is safe; leftover keys in an existing settings.json are ignored on load. Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
PatrickSt1991
added a commit
that referenced
this pull request
Jun 11, 2026
Builds on the merged TVApp oblong-icon work (#389), extending it to Litefin and refreshing the icons. ### Changes - **TVApp icon updated** — swapped in @mjeshurun's revised oblong icon (non-black background matching the Jellyfin oblong tile, so adjacent app tiles are visually separated on the TV). - **Litefin oblong icon** — same opt-in **"Oblong icon (Tizen 5.5 TVs)"** setup as TVApp (default **off**): a new Litefin settings section with the toggle, a bundled 1920×1080 icon, and a `LitefinPackagePatcher` that overwrites the `config.xml <icon src>` target (`icon.png`) before install. `config.xml`, `index.html`, and the existing `tile_1920x1080.png` are left untouched; the package is re-signed afterwards as usual. - **Shared helper** — extracted the icon swap into `WgtIconPatcher` (reads `config.xml`'s `<icon src>`, overwrites that file); both the TVApp and Litefin patchers route through it. - **Version bump → v2.5.4** (AppSettings, csproj, Info.plist). ### Notes - Litefin shows a square icon on Tizen 5.5 because 5.5 falls back to `<icon src>` rather than the Samsung `app_tile` metadata, so overwriting `<icon src>` is what makes it oblong there — verified offline against the real `Litefin-1.1.0.wgt`. - Rebased onto current `beta`, so the `AppVersion` bump keeps the `[JsonIgnore]` from #387 (version reads from code, not `settings.json`). - Icons supplied by @mjeshurun in #379. Release build: 0 errors.
PatrickSt1991
added a commit
that referenced
this pull request
Jun 11, 2026
Stops the release notes from looking like a raw GitHub "What's Changed" dump — every release is now tidy automatically, no manual editing. ### Before ``` ## 📦 [v2.5.4-beta] – 2026-06-11 <!-- Release notes generated using configuration in .github/release.yml ... --> ## What's Changed ### 🔀 Other changes * Fix app-scoped settings ... by @PatrickSt1991 in https://github.com/.../pull/387 ... ``` ### After ``` ## 📦 v2.5.4-beta — 2026-06-11 ### 🔀 Other changes - Fix app-scoped settings being frozen by preserved settings.json (#387) - Add optional oblong (16:9) TVApp launcher icon for Tizen 5.5 TVs (#389) - Update TVApp oblong icon, add Litefin oblong icon, bump v2.5.4 (#394) **Full Changelog**: ... | Platform | Status | Notes | ... ``` ### What changed (both `beta-prerelease.yml` and `stable-release.yml`) Post-process the `generate-notes` output in the "Prepare release notes" step: - strip the `<!-- generated using ... -->` comment - drop the redundant `## What's Changed` heading (it sat under the version header) - shorten `* <title> by @user in <full-url>/pull/N` → `- <title> (#N)` - tidy the header to `## 📦 <tag> — <date>` Pure text transform on the generated changelog — the build/publish/upload steps and the `release.yml` categories are untouched. ### Note on categories The `### 🚀 New features` / `### 🐛 Bug fixes` split in `.github/release.yml` only kicks in when PRs are **labelled** (feature/enhancement, bug/fix, …). Unlabelled PRs land under "Other changes" (now clean). If you want auto-split without manual labelling, a small PR-title auto-labeler can be added as a follow-up.
PatrickSt1991
added a commit
that referenced
this pull request
Jun 12, 2026
Promotes `beta` → `master` for the **v2.5.4** stable release. Merging this triggers the Stable Release workflow (builds + publishes v2.5.4). Highlights since v2.5.3: - 🔐 **Signing across multiple TVs** — stable author cert reused across TVs (#404) + multi-DUID distributor certs & manual DUID entry (#405), so apps stay overwritable and you re-login far less. Validated on real hardware. - 🧩 **Old-Tizen installs** — strip bundled `<tizen:service>` on Tizen < 4.0 so Litefin/service apps install (#401, #402). - 📡 **Not-ready TV detection** — TVs with dev mode on but the debug port closed now show up with an actionable hint instead of "no devices found" (#398). - 🔏 **Cert survives app updates** + clearer install-failure messages (#395). - 📐 Oblong launcher icons for TVApp + Litefin (#389, #394); 🔢 runtime version fix (#387); CI release-notes cleanup (#397, #403).
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
AppVersion and the other "readonly at runtime" fields (AuthorEndpoint, TizenSdb, JellyfinAvReleaseFork, ReleaseInfo, CommunityInfo) were serialized to settings.json. On upgrade, Load() deserialized the user's existing file and overwrote the new code defaults, so existing users kept seeing their old AppVersion and stale endpoint URLs after updating — made more certain by the new per-user-dir settings migration.
Mark the app-scoped block [JsonIgnore] so these always reflect the shipped code values and are no longer persisted. Nothing writes to them at runtime, so this is safe; leftover keys in an existing settings.json are ignored on load.
Pull Request Template
Branch
Description
Please include a summary of the change and which issue is fixed. Also include relevant motivation and context.
Fixes # (issue number, if applicable)
Type of Change
Checklist
Additional Notes
Any other information that reviewers should know, including limitations, concerns, or context about the change.