Skip to content

Fix app-scoped settings being frozen by preserved settings.json#387

Merged
PatrickSt1991 merged 1 commit into
betafrom
fix/app-scoped-settings-not-persisted
Jun 11, 2026
Merged

Fix app-scoped settings being frozen by preserved settings.json#387
PatrickSt1991 merged 1 commit into
betafrom
fix/app-scoped-settings-not-persisted

Conversation

@PatrickSt1991

Copy link
Copy Markdown
Collaborator

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

  • I branched off beta (not master) to develop this feature/fix

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

  • Bug fix (non-breaking change)
  • New feature (non-breaking change)
  • Breaking change (fix or feature that would cause existing functionality to change)
  • Documentation update
  • Other (please describe):

Checklist

  • My code follows the existing project structure and style
  • I have tested my changes manually
  • I have added necessary documentation (if applicable)
  • I have verified that the installer still works with the underlying CLI

Additional Notes

Any other information that reviewers should know, including limitations, concerns, or context about the change.

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 PatrickSt1991 merged commit 9356d8b into beta Jun 11, 2026
1 check passed
@PatrickSt1991 PatrickSt1991 deleted the fix/app-scoped-settings-not-persisted branch June 11, 2026 08:39
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).
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant