@htekdev/actions-debugger 1.0.112 → 1.0.113

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -0,0 +1,88 @@
1
+ id: runner-environment-185
2
+ title: "Node.js 18 Removed from Toolcache After EOL — setup-node Falls Back to Slow Download or Times Out"
3
+ category: runner-environment
4
+ severity: error
5
+ tags:
6
+ - nodejs
7
+ - node18
8
+ - toolcache
9
+ - eol
10
+ - setup-node
11
+ - runner-images
12
+ patterns:
13
+ - regex: "Unable to find Node version '18|Couldn't find a version that satisfied.*18"
14
+ flags: i
15
+ - regex: 'Acquiring 18\.[0-9]+\.[0-9]+ - (x64|arm64) from.*node-versions'
16
+ flags: i
17
+ - regex: 'Client network socket disconnected before secure TLS connection was established'
18
+ flags: i
19
+ - regex: 'Request timeout.*node.*18|Error.*node.*18.*download'
20
+ flags: i
21
+ error_messages:
22
+ - "Unable to find Node version '18' in the local cache."
23
+ - "Couldn't resolve the package 'node' to a version matching '18'"
24
+ - "Acquiring 18.20.4 - x64 from https://github.com/actions/node-versions/releases/download/18.20.4-xxxxxxxxxxxxxxxx/node-18.20.4-linux-x64.tar.gz"
25
+ - "Request timeout..."
26
+ - "Client network socket disconnected before secure TLS connection was established"
27
+ root_cause: |
28
+ Node.js 18 reached end-of-life on **April 30, 2025**. GitHub subsequently removed it from the
29
+ pre-installed toolcache on all GitHub-hosted runner images (Ubuntu, macOS, and Windows). When
30
+ a workflow specifies `node-version: '18'` or `node-version: '18.x'`, the `actions/setup-node`
31
+ action cannot find Node 18 in the local toolcache and falls back to downloading the binary from
32
+ GitHub's node-versions release page. This remote download frequently times out on hosted runners
33
+ (the GitHub Releases endpoint for old Node versions is rate-limited under load), causing the step
34
+ to fail part-way through setup. On self-hosted runners without unrestricted outbound internet
35
+ access, the fallback download fails immediately with a TLS or connection error. The failure is
36
+ unexpected for teams that previously never pinned a `setup-node` step because Node 18 "just
37
+ worked" from the toolcache — after the removal, those workflows break silently on the next
38
+ runner image update. Distinct from `runner-environment-029` (Node.js 20 toolcache removal)
39
+ and `runner-environment-062` (ubuntu-latest default changing from Node 20 to 22).
40
+ fix: |
41
+ Upgrade to a currently-supported Node.js LTS version. Node.js 22 is the current Active LTS
42
+ (supported until April 2027). Update the `node-version` field in your `setup-node` step and
43
+ verify your `package.json` `engines` field matches the new version:
44
+ fix_code:
45
+ - language: yaml
46
+ label: "Upgrade to Node.js 22 (Active LTS)"
47
+ code: |
48
+ - name: Set up Node.js
49
+ uses: actions/setup-node@v4
50
+ with:
51
+ node-version: '22'
52
+ cache: 'npm'
53
+ - language: yaml
54
+ label: "Pin to .nvmrc / .node-version file for consistency"
55
+ code: |
56
+ # .nvmrc or .node-version in repo root:
57
+ # 22
58
+
59
+ - name: Set up Node.js
60
+ uses: actions/setup-node@v4
61
+ with:
62
+ node-version-file: '.nvmrc'
63
+ cache: 'npm'
64
+ - language: yaml
65
+ label: "Matrix test across supported LTS versions"
66
+ code: |
67
+ strategy:
68
+ matrix:
69
+ node-version: ['20', '22']
70
+ steps:
71
+ - uses: actions/setup-node@v4
72
+ with:
73
+ node-version: ${{ matrix.node-version }}
74
+ prevention:
75
+ - "Subscribe to Node.js EOL announcements at https://nodejs.org/en/about/previous-releases to know when to migrate"
76
+ - "Use `node-version-file: '.nvmrc'` so your CI and local environments stay in sync automatically"
77
+ - "Enable Dependabot or Renovate to auto-bump `node-version` in workflow files when LTS versions rotate"
78
+ - "Prefer `lts/*` for non-version-sensitive workflows to always track the current LTS without manual updates"
79
+ - "Avoid relying on the toolcache for EOL versions — always add an explicit `setup-node` step"
80
+ docs:
81
+ - url: "https://github.com/actions/setup-node"
82
+ label: "actions/setup-node"
83
+ - url: "https://nodejs.org/en/about/previous-releases"
84
+ label: "Node.js Release Schedule and EOL Dates"
85
+ - url: "https://github.com/actions/setup-node/issues/933"
86
+ label: "setup-node #933: Node 18 toolcache download timeout reports"
87
+ - url: "https://github.com/actions/runner-images"
88
+ label: "actions/runner-images — pre-installed toolcache contents"
@@ -0,0 +1,95 @@
1
+ id: runner-environment-186
2
+ title: "windows-2025 Runner Label Unexpectedly Includes VS 2026 — Pinned VS 2022 Paths Break"
3
+ category: runner-environment
4
+ severity: error
5
+ tags:
6
+ - windows
7
+ - windows-2025
8
+ - visual-studio
9
+ - runner-image
10
+ - msbuild
11
+ - cmake
12
+ - breaking-change
13
+ patterns:
14
+ - regex: 'Cannot find path.*Visual Studio\\2022.*because it does not exist'
15
+ flags: i
16
+ - regex: 'Visual Studio 2022.*not found|MSBuild.*17\.[0-9]+.*not available'
17
+ flags: i
18
+ - regex: 'CMake.*generator.*Visual Studio 17 2022.*not available'
19
+ flags: i
20
+ - regex: 'vswhere.*version.*\[17,18\).*returned empty|No valid VS instances found'
21
+ flags: i
22
+ - regex: 'MSB4019.*Microsoft\.CppBuild\.targets.*was not found'
23
+ flags: i
24
+ error_messages:
25
+ - "Cannot find path 'C:\\Program Files\\Microsoft Visual Studio\\2022\\Enterprise\\MSBuild\\Microsoft\\VC' because it does not exist."
26
+ - "MSB4019: The imported project 'Microsoft.CppBuild.targets' was not found. Confirm that the expression in the Import declaration is correct."
27
+ - "CMake Error: CMake was unable to find a build program corresponding to \"Visual Studio 17 2022\"."
28
+ - "The C++ toolchain version 14.30 targeting platform 'x64' is not installed. Install it from the VS Installer."
29
+ root_cause: |
30
+ In early 2026, some builds of the `windows-2025` runner image label began shipping with
31
+ Visual Studio 2026 (Public Preview) as the primary Visual Studio installation, removing or
32
+ demoting VS 2022 components that had been present in earlier `windows-2025` builds. Developers
33
+ who had explicitly pinned `runs-on: windows-2025` (rather than `windows-latest`) to preserve
34
+ VS 2022 compatibility found their workflows unexpectedly broken, because hardcoded paths to
35
+ `C:\Program Files\Microsoft Visual Studio\2022\...` no longer existed, and CMake generators
36
+ targeting "Visual Studio 17 2022" could not locate a matching installation.
37
+
38
+ This is distinct from the intentional `windows-latest` → VS 2026 migration documented in
39
+ `runner-environment-020`. In that case, developers pinned to a versioned label specifically
40
+ to avoid the change — the versioned label was supposed to be stable. The regression occurred
41
+ because `windows-2025` image builds that included VS 2026 were briefly pushed to the label's
42
+ rotation before being identified and rolled back.
43
+
44
+ Source: actions/runner-images#13638, actions/runner-images#14004.
45
+ fix: |
46
+ Pin to `windows-2022` to guarantee a VS 2022 toolchain for the foreseeable future. Use
47
+ `vswhere.exe` to discover Visual Studio components at runtime rather than hardcoding
48
+ installation paths, which protects against future image changes on any Windows label.
49
+ fix_code:
50
+ - language: yaml
51
+ label: "Pin to windows-2022 for guaranteed VS 2022"
52
+ code: |
53
+ jobs:
54
+ build:
55
+ # Use windows-2022 instead of windows-2025 to guarantee VS 2022 toolchain
56
+ runs-on: windows-2022
57
+ - language: yaml
58
+ label: "Use vswhere to discover MSBuild path at runtime"
59
+ code: |
60
+ - name: Locate MSBuild via vswhere
61
+ id: msbuild
62
+ shell: pwsh
63
+ run: |
64
+ $vswhere = "${env:ProgramFiles(x86)}\Microsoft Visual Studio\Installer\vswhere.exe"
65
+ $msbuild = & $vswhere -latest -requires Microsoft.Component.MSBuild `
66
+ -find MSBuild\**\Bin\MSBuild.exe | Select-Object -First 1
67
+ if (-not $msbuild) { throw "MSBuild not found via vswhere" }
68
+ "path=$msbuild" | Out-File -Append $env:GITHUB_OUTPUT
69
+
70
+ - name: Build solution
71
+ shell: pwsh
72
+ run: |
73
+ & "${{ steps.msbuild.outputs.path }}" MySolution.sln /p:Configuration=Release /p:Platform=x64
74
+ - language: yaml
75
+ label: "Use CMake with dynamic VS version detection"
76
+ code: |
77
+ - name: Configure CMake
78
+ run: |
79
+ # Let CMake auto-detect the installed VS version instead of pinning generator
80
+ cmake -B build -DCMAKE_BUILD_TYPE=Release
81
+ # Avoid: cmake -G "Visual Studio 17 2022" which fails if VS 2022 is absent
82
+ prevention:
83
+ - "Use `vswhere.exe` to locate Visual Studio and MSBuild components at runtime — never hardcode installation paths"
84
+ - "Subscribe to the actions/runner-images releases feed to get notified when versioned labels are updated"
85
+ - "Avoid CMake `-G \"Visual Studio 17 2022\"` in favor of `cmake -B build` with auto-detection when possible"
86
+ - "For CUDA or other toolchain integrations that require a specific VS version, test on a matrix of runner labels to catch regressions early"
87
+ docs:
88
+ - url: "https://github.com/actions/runner-images/issues/13638"
89
+ label: "runner-images #13638: windows-2025 label includes VS2026 regression report"
90
+ - url: "https://github.com/actions/runner-images/issues/14004"
91
+ label: "runner-images #14004: VS 2022 paths missing on windows-2025"
92
+ - url: "https://github.com/microsoft/vswhere"
93
+ label: "vswhere — Visual Studio locator (Microsoft)"
94
+ - url: "https://github.com/actions/runner-images/blob/main/images/windows/Windows2025-Readme.md"
95
+ label: "Windows Server 2025 Runner Image Readme"
@@ -0,0 +1,90 @@
1
+ id: runner-environment-187
2
+ title: "ubuntu-24.04 Runner Missing software-properties-common — add-apt-repository Not Found"
3
+ category: runner-environment
4
+ severity: error
5
+ tags:
6
+ - ubuntu
7
+ - ubuntu-24.04
8
+ - apt
9
+ - ppa
10
+ - runner-image
11
+ - breaking-change
12
+ patterns:
13
+ - regex: 'add-apt-repository.*not found|command not found.*add-apt-repository'
14
+ flags: i
15
+ - regex: '/bin/(sh|bash).*add-apt-repository.*not found'
16
+ flags: i
17
+ - regex: 'Unable to locate executable file: add-apt-repository'
18
+ flags: i
19
+ - regex: 'No such file or directory.*add-apt-repository'
20
+ flags: i
21
+ error_messages:
22
+ - "/bin/sh: 1: add-apt-repository: not found"
23
+ - "bash: add-apt-repository: command not found"
24
+ - "Error: Unable to locate executable file: add-apt-repository"
25
+ - "/usr/bin/add-apt-repository: No such file or directory"
26
+ root_cause: |
27
+ The `ubuntu-24.04` GitHub-hosted runner image does not pre-install `software-properties-common`,
28
+ the Debian/Ubuntu package that provides the `add-apt-repository` command. On `ubuntu-22.04`
29
+ runners, `software-properties-common` was included by default, so workflows that used
30
+ `add-apt-repository` to add third-party PPAs (e.g., `ppa:deadsnakes/ppa` for older Python
31
+ versions, `ppa:graphics-drivers/ppa` for NVIDIA drivers) worked without any explicit install
32
+ step. After migrating to `ubuntu-24.04` — either explicitly or when `ubuntu-latest` switched
33
+ from 22.04 to 24.04 in March 2025 — these workflows fail immediately with "command not found".
34
+
35
+ The failure message points at the `add-apt-repository` line, but the actual missing dependency
36
+ is the `software-properties-common` package. Other apt commands in the same step (like
37
+ `apt-get update`) succeed, making the root cause less obvious.
38
+ fix: |
39
+ Install `software-properties-common` before calling `add-apt-repository`. For new workflows,
40
+ prefer adding apt source lists directly using a signing key, which does not require
41
+ `software-properties-common` and is more reproducible.
42
+ fix_code:
43
+ - language: yaml
44
+ label: "Install software-properties-common before using add-apt-repository"
45
+ code: |
46
+ - name: Add PPA and install package
47
+ run: |
48
+ sudo apt-get update
49
+ sudo apt-get install -y software-properties-common
50
+ sudo add-apt-repository -y ppa:deadsnakes/ppa
51
+ sudo apt-get update
52
+ sudo apt-get install -y python3.11 python3.11-venv
53
+ - language: yaml
54
+ label: "Preferred: add repository via source list (no software-properties-common needed)"
55
+ code: |
56
+ - name: Add repository via signed source list
57
+ run: |
58
+ # Download and install the repository GPG key
59
+ curl -fsSL https://example.com/gpg.key \
60
+ | sudo gpg --dearmor -o /usr/share/keyrings/example-archive-keyring.gpg
61
+
62
+ # Add the apt source list with the key reference
63
+ echo "deb [arch=$(dpkg --print-architecture) signed-by=/usr/share/keyrings/example-archive-keyring.gpg] \
64
+ https://example.com/apt stable main" \
65
+ | sudo tee /etc/apt/sources.list.d/example.list > /dev/null
66
+
67
+ sudo apt-get update
68
+ sudo apt-get install -y example-package
69
+ - language: yaml
70
+ label: "Conditionally install software-properties-common (ubuntu-24.04 only)"
71
+ code: |
72
+ - name: Install apt prerequisites
73
+ run: |
74
+ # software-properties-common is not pre-installed on ubuntu-24.04
75
+ sudo apt-get install -y software-properties-common
76
+ prevention:
77
+ - "Do not rely on `software-properties-common` being pre-installed — always add it as an explicit apt-get install step"
78
+ - "Prefer direct apt source list additions (with GPG key dearmoring) over PPAs for better reproducibility on ubuntu-24.04"
79
+ - "Verify pre-installed packages when migrating runner labels — check https://github.com/actions/runner-images/blob/main/images/ubuntu/Ubuntu2404-Readme.md"
80
+ - "Test workflows explicitly on ubuntu-24.04 before relying on ubuntu-latest defaulting to 24.04"
81
+ - "Use `apt-get install -y --no-install-recommends` to keep explicit and minimal dependencies"
82
+ docs:
83
+ - url: "https://github.com/actions/runner-images/blob/main/images/ubuntu/Ubuntu2404-Readme.md"
84
+ label: "Ubuntu 24.04 Runner Image Readme — pre-installed packages list"
85
+ - url: "https://github.com/actions/runner-images/issues/9848"
86
+ label: "runner-images #9848: ubuntu-latest migration to ubuntu-24.04 tracking issue"
87
+ - url: "https://manpages.ubuntu.com/manpages/noble/man1/add-apt-repository.1.html"
88
+ label: "add-apt-repository man page (Ubuntu Noble)"
89
+ - url: "https://help.launchpad.net/Packaging/PPA/InstallingSoftware"
90
+ label: "Launchpad PPA Installation Guide"
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@htekdev/actions-debugger",
3
- "version": "1.0.112",
3
+ "version": "1.0.113",
4
4
  "description": "65+ real GitHub Actions errors, queryable by agents. CLI + MCP server + Copilot skills + error database.",
5
5
  "type": "module",
6
6
  "main": "./dist/index.js",