Repository navigation
Feature: Show LinuxFiles release notes on the Release notes page - #203
Merged
Merged
Conversation
On Linux the page now fetches the GitHub release for the running version (linux-v<Version>) and renders its Markdown with the existing Markdig preview renderer. Links open in the default browser; images show only alt text and HTML stays literal. When the fetch fails the page links to the GitHub release page instead of the upstream Files blog. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01FBkiuJoaDgZGawU94wvpCJ
36 of 47 tasks
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.
Resolved / Related Issues
What changes
On Linux, the Release notes page now shows the LinuxFiles GitHub release notes for the running version. Before, it pointed at the upstream Files blog (
files.community/blog/posts/v0-1-0?minimal, which does not exist for LinuxFiles versions). On X11 that gave a blankWebView2, and on Wayland it opened the browser.ReleaseNotesHelper(new) callsGET https://api.github.com/repos/MemerGamer/LinuxFiles/releases/tags/linux-v<Version>and uses the releasebody. The version is the informational version, i.e.<Version>inFiles.App.csproj(0.1.0-alpha8→linux-v0.1.0-alpha8). The request has a 10 s timeout, aLinuxFiles/<version>User-Agent, no authentication and a 1 MiB response cap. A successful result is cached for the session (one request per launch, since the startup check and the page share it). A failure is retried the next time the page opens.PreviewTextRenderer, already used for Markdown previews). No new dependency. The page uses the same "paragraph → TextBlock" approach as the preview becauseRichTextBlockdraws nothing on Uno Skia. That loop moved intoPreviewTextRenderer.AddParagraphTextBlocksso both callers share it.AddMarkdownBlockstakes an optionalopenLinkcallback. When the callback is set, only absolutehttp/httpslinks becomeHyperlinks, and they open throughILauncherService(xdg-open, the default browser). Without the callback, links stay inert text exactly as before, so file previews are unchanged.https://github.com/MemerGamer/LinuxFiles/releases/tag/linux-v<Version>instead of the upstream blog.WebView2is no longer used on Linux, because it has no native backend there (seedocs/linux-port/wayland-previews.md). It is still realized on demand (x:Load="False"+FindName) on non-Linux paths, which keeps those compiling.DummyUpdateService.CheckForReleaseNotesAsyncuses the same fetch on Linux, so the Release notes command becomes executable when notes exist. I removed its no-opPropertyChangedoverride, which swallowed change notifications, soOpenReleaseNotesActionnow sees the update.AppEnvironmentisDevon Linux, so this does not auto-open the page after an update.wayland-previews.mddescribes the new behaviour; added a CHANGELOG "Unreleased" entry.No new user-visible strings (it reuses the
ReleaseNotesresource). Files touched are LF/UTF-8 as before (BOMs kept).Steps used to test these changes
-f net10.0-desktop -p:FilesWin32Compat=false, plus Files.Shared, Core.Storage, SourceGenerator, Platform.Linux, App.Controls, App.Storage): 0 errors. Files.App.CsWin32 was not built. The only new warnings are Uno0001 forRichTextBlock/Block.Margin(same as the existing text preview) and Uno0007 forProgressRing, whichLinuxHtmlPreviewalready uses.scripts/linux/headless-run.sh(throwaway home,FILES_LAUNCH_DRYRUN=1). TypedReleaseNotesin the address bar: the alpha8 release notes rendered with headings, bullet lists, bold, code blocks and coloured links.xdg-open https://github.com/files-community/Files.https://github.com/MemerGamer/LinuxFiles/releases/tag/linux-v0.1.0-alpha8.tests/Files.Platform.Testsbuilds. Its tests do not reference Files.App. Locally 39 permission/ownership tests fail because the container runs as root; they are unrelated to this diff, and CI runs them as a normal user.Not verified / limitations
ProgressRingmay be invisible on Uno without Lottie, as in the HTML preview.docs/linux-port/release-notes/<version>.mdis not shipped with the app, so it is not used as an offline source.mailto:stay inert text. Pipe tables render as plain paragraphs (pipeline unchanged).NuGetAudit=falsebecause the CommunityToolkit-Labs Azure feed is blocked here. Nothing build-related is committed.AI disclosure
Most of the code in this PR was written by AI agents (Claude Code) under the maintainer's direction. The maintainer reviews and decides on merging.
Generated by Claude Code