This repository was archived by the owner on Sep 7, 2026. It is now read-only.
Move the artifact actions onto Node 24 - #22
Merged
Merged
Conversation
I got this wrong twice before getting it right, so the reasoning is worth recording. First I claimed the release job ran a step on "the deprecated Node 20" -- an assumption, not a check. Then I read the actions' own action.yml files, found upload-artifact@v5 and download-artifact@v5/v6 all declaring using: node20, and concluded there was nothing to fix, since bumping within those majors changed nothing. The v1.1.3 release run settled it: ##[warning]Node.js 20 is deprecated. The following actions target Node.js 20 but are being forced to run on Node.js 24: actions/upload-artifact@v5 The runner is already overriding them and GitHub says that override is temporary -- exactly the "revisit only if a release run actually warns" condition the roadmap entry named. The fix is a higher major, not a different v5. Verified from each action's own action.yml: upload-artifact@v6 and download-artifact@v7 declare node24. Both are post-v4 so they stay a compatible pair; the only documented artifact incompatibility is v4-and-above being unable to read upload-artifact@v3 or below. checkout@v5, cache@v5 and setup-java@v5 did not appear in the warning and are already on Node 24, so they stay. Roadmap item 8 now tracks the real dated fuse instead: every Android build warns that the app and six plugins apply the Kotlin Gradle Plugin, and that future Flutter versions will fail to build because of it. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01B62qvJ25JCrwnV2uiDrnCQ
Two conflicts, only one of them mechanical. The changelog was a plain keep-both: #20 landed first and added its entry at the top of the same section. The roadmap was not. This branch predates #20, so its side still carried row 7b -- "the Mini Player tab configures a widget that does not exist" -- which #20 removed because that work is now done. Resolving by keeping both sides would have resurrected a roadmap entry for work that just shipped, and kept the stale item 8 ("nothing to fix") alongside the corrected one that the v1.1.3 release run disproved. Took this branch's item 8 and dropped 7b. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01B62qvJ25JCrwnV2uiDrnCQ
Same keep-both as last time: #21 landed and added its entry at the top of the section this branch also writes to. Git cannot auto-merge two insertions at one anchor, so this round was expected. The roadmap needed nothing this time -- the row #20 retired stayed retired, and the corrected item 8 survived. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01B62qvJ25JCrwnV2uiDrnCQ
David7ce
added a commit
that referenced
this pull request
Sep 1, 2026
…y icon) Five new items, tracked not implemented, each investigated enough to be concrete rather than restating the ask: - #18: Movies/Series and Comics/Manga section labels -- code still says the slash form, only the roadmap's own table had already drifted to the ampersand form. - #19: Anime's language toggle is a binary IconButton today, not a dropdown -- needs FilterDropdown treatment matching its own genre filter right next to it. - #20: hero carousel issues are three separate root causes, not one bug -- Movies & Series has no backdrop image field at all (poster force-fit into a landscape slot), Live TV's code looks correct so the cause is unclear without eyes on it, Anime not yet investigated. - #21: Radio is not a styling problem -- it has no real station data source, just genre-flavoured song search reskinned as "stations". Books/Podcast UX-parity with Anime is blocked on Books' existing no-cover-URL problem. - #22: Library's "Saved" tab uses a heart icon for something broader than "liked" by its own doc comment; asked to split Liked/Playlist inside it, deliberately skipping Read for Playlist. Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
David7ce
added a commit
that referenced
this pull request
Sep 1, 2026
…book UI, nav-block bug) Four more items, investigated before writing: - ayman708-UX#23: History isn't actually identical to Continue in code (purged vs full log, no-dismiss vs dismiss) but they share one row renderer so they look like duplicates. Flagged the real data loss removing it causes -- finished items currently survive in History and would not survive anywhere once it's gone, unless Continue stops purging first. - ayman708-UX#24: flagged direct tension with #22 (which puts Listen's Playlist inside Saved) -- needs a decision before either is built, not a guess. - ayman708-UX#25: confirmed a real bug, not just a style complaint -- the audiobook details page's outer build() and its own _buildDetails() helper both render cover+title+play button, so the content appears twice on one page. - ayman708-UX#26: root-caused -- each hub's NestedNavigator stays alive across hub switches, so a pushed Details page keeps covering the screen when the pills/bottom bar only change HubController state without popping it first. HubNavigator.goHome() already exists for this exact shape of problem but has zero callers today. Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
David7ce
added a commit
that referenced
this pull request
Sep 1, 2026
…aylist, audiobook detail duplication, nav-blocking Details pages (items 22/23/24/25/26) - ayman708-UX#23: LibrarySection drops History (Continue is the actionable one of the pair) - #22: Watch's Saved tab gains a Liked chip alongside Watchlist (_StatusChip) - ayman708-UX#24: New Playlist moved to Listen's persistent toolbar, out of Library - ayman708-UX#25: removed audiobook detail page's duplicate cover/title/play block - ayman708-UX#26: NestedNavigator takes an external key; HubPage pops all hubs to root on hub/section change so a pushed Details page can't block pill or bottom-bar navigation anymore Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
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 subscribe to this conversation on GitHub.
Already have an account?
Sign in.
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.
The v1.1.3 release run warned:
The runner is already overriding them, and GitHub says that override is temporary.
I got this wrong twice before getting it right
Worth recording, because the shape of the mistake matters more than the fix:
action.ymlfiles, foundupload-artifact@v5anddownload-artifact@v5/v6all declaringusing: node20, and corrected myself to "there is nothing to fix" — reasoning that bumping within those majors changed nothing. That was true but the wrong conclusion: the right move was a higher major, which I didn't check.The fix
Verified from each action's own
action.yml, not from a summary:upload-artifact@v5node20node24)download-artifact@v4node24; v5 and v6 are stillnode20)checkout@v5,cache@v5,setup-java@v5node24Both artifact actions stay post-v4, so they remain a compatible pair: the only documented incompatibility is v4-and-above being unable to read
upload-artifact@v3or below.Roadmap item 8 now tracks a real dated fuse
Every Android build warns:
The app's own
build.gradle.ktscan migrate to Built-in Kotlin; the six plugins can't be fixed here — each needs a version that supports it, or an upstream issue. Not urgent, but unlike the artifact bump it has a real deadline attached.Verification
The release job that consumes
download-artifactonly runs on a dispatch or tag, never on a PR — so PR checks will exerciseupload-artifact@v6but notdownload-artifact@v7. Worth watching the next release dispatch for that one step.Generated by Claude Code