Skip to content
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
David7ce merged 3 commits into
mainfrom
claude/actions-node24
Aug 31, 2026
Merged

David7ce merged 3 commits into
mainfrom
claude/actions-node24

Conversation

@David7ce

Copy link
Copy Markdown
Member

The v1.1.3 release run warned:

##[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.

I got this wrong twice before getting it right

Worth recording, because the shape of the mistake matters more than the fix:

  1. I first told you the release job "runs one step on the deprecated Node 20" — an assumption, presented as fact.
  2. I then checked the actions' own action.yml files, found upload-artifact@v5 and download-artifact@v5/v6 all declaring using: 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.
  3. The release run then produced the warning, which is exactly the "revisit only if a release run actually warns" condition I'd written into the roadmap entry.

The fix

Verified from each action's own action.yml, not from a summary:

Action Runtime Change
upload-artifact@v5 node20 → v6 (node24)
download-artifact@v4 — → v7 (node24; v5 and v6 are still node20)
checkout@v5, cache@v5, setup-java@v5 node24 unchanged — absent from the warning

Both 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@v3 or below.

Roadmap item 8 now tracks a real dated fuse

Every Android build warns:

Your app ... applies the Kotlin Gradle Plugin, which will cause build failures in future versions of Flutter.
Your app uses the following plugins that apply KGP: package_info_plus, shared_preferences_android, torrserver_flutter, url_launcher_android, video_player_android, wakelock_plus.

The app's own build.gradle.kts can 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-artifact only runs on a dispatch or tag, never on a PR — so PR checks will exercise upload-artifact@v6 but not download-artifact@v7. Worth watching the next release dispatch for that one step.


Generated by Claude Code

claude added 3 commits August 31, 2026 08:44
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
David7ce merged commit f49c261 into main Aug 31, 2026
1 check passed
@David7ce
David7ce deleted the claude/actions-node24 branch August 31, 2026 09:55
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>
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants