Skip to content

CI: remove Node 20 GitHub Action runtime deprecation #270

Description

@seonghobae

Current state — 2026-09-15

Protected main@193a87ef54c3fe6dcda4755bce4d6bc81e3a0297 still carries the older Node-20-backed GitHub Action pins, so this warning is not shipped as repaired.

The current canonical LifeOS-local repair is Draft PR #276, exact bcea58b3eacc612578c59850e7d7f1cac2aa4151, open/mergeable on that protected main. It replaces the persistent LifeOS actions/checkout and actions/setup-node boundary with immutable Node-24-backed releases:

  • actions/checkout v7.0.1 exact 3d3c42e5aac5ba805825da76410c181273ba90b1;
  • actions/setup-node v7.0.0 exact 820762786026740c76f36085b0efc47a31fe5020.

The same owner branch also explicitly supplies Git's init.defaultBranch=main to persistent checkout initialization rather than suppressing the separate default-branch warning. This is a source repair, not ACTIONS_ALLOW_USE_UNSECURE_NODE_VERSION, FORCE_JAVASCRIPT_ACTIONS_TO_NODE24, stderr filtering, advice.defaultBranchName=false, or another warning-hiding switch.

Evidence and remaining acceptance

Current #276 has already passed its LifeOS-local AppGuardrail lane. Commercial Readiness run 34792004500 successfully crossed the repaired checkout/setup boundary and then failed later at Collect bounded GitHub evidence, which is canonical #247 territory rather than an action-runtime failure. CI, SAST, CodeQL PR, and Security Scan on the exact #276 head were still queued at the latest fresh owner read, so repository-wide warning-free GREEN is not claimed and predecessor evidence is not promoted.

The original reproduction remains useful historical evidence: #275 predecessor e28e619e7c7db02d25bf6a084aee04c5a97cabca, CI 34609556607, emitted both the Node-20 action-runtime warning and setup-node's Node [DEP0040] punycode deprecation. The final acceptance must establish on one unchanged #276/restacked descendant that these action-owned warnings are absent on hosted runners. If the punycode warning survives the current setup-node v7 pin, route it to the actual action/runtime dependency rather than hiding it.

Acceptance

  • Replace the LifeOS persistent checkout/setup-node pins with current Node-24-backed releases pinned by immutable SHA on canonical owner fix(ci): adopt Node 24 GitHub Action runtimes #276.
  • Preserve exact-head checkout, persist-credentials: false, permissions, required workflows and security gates in the owner repair.
  • Do not use runtime compatibility switches, stderr filtering, generic warning suppression or floating action tags.
  • Obtain terminal applicable current-head CI/SAST/Security/CodeQL evidence on the final fix(ci): adopt Node 24 GitHub Action runtimes #276 candidate and verify the Node-20 and setup-node punycode warnings are absent, or route any surviving warning to its real upstream owner with exact evidence.
  • Satisfy independent current-head review/thread authority.
  • Integrate fix(ci): adopt Node 24 GitHub Action runtimes #276 normally into protected main; dependent fix(ci): materialize bounded SARIF PR provenance #279 then adopts that protected ancestry by ordinary non-force restack and reacquires its own evidence.

Do not close this issue merely because the Draft source repair exists. Closure requires the warning-free repair to reach protected authority or a verified successor to assume the full acceptance boundary.

Refs #276 #279 #247 #249 #273 #275; ContextualWisdomLab/.github#2106.

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions