@htekdev/actions-debugger 1.0.13 → 1.0.14

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,108 @@
1
+ id: runner-environment-034
2
+ title: "Azure PowerShell Az Module Upgraded from 14.x to 15.x on All Runner Images"
3
+ category: runner-environment
4
+ severity: error
5
+ tags:
6
+ - azure
7
+ - powershell
8
+ - az-module
9
+ - breaking-change
10
+ - runner-image
11
+ - migration
12
+ patterns:
13
+ - regex: "Az\\.(?:Accounts|Compute|Storage|Network|Resources|KeyVault|Sql|Monitor).*not recognized|The term '.*-Az.*' is not recognized"
14
+ flags: "i"
15
+ - regex: "Install-Module.*Az.*RequiredVersion.*14"
16
+ flags: "i"
17
+ - regex: "Get-AzVM|Set-AzVMExtension|New-AzResourceGroup.*parameter.*was not found|does not exist in the cmdlet"
18
+ flags: "i"
19
+ - regex: "CommandNotFoundException.*Az\\.|ParameterBindingException.*Az\\."
20
+ flags: "i"
21
+ error_messages:
22
+ - "The term 'Get-AzXxx' is not recognized as a name of a cmdlet"
23
+ - "A parameter cannot be found that matches parameter name"
24
+ - "Cannot process argument transformation on parameter"
25
+ - "Object reference not set to an instance of an object"
26
+ root_cause: |
27
+ The Azure PowerShell (Az) module was upgraded from version 14.6.0 to 15.6.1 on all
28
+ GitHub-hosted runner images beginning June 8, 2026 (completing June 15, 2026).
29
+ This is a major version bump (14 → 15) and includes breaking changes:
30
+
31
+ - **Removed cmdlets**: Several deprecated cmdlets from Az 14.x were dropped with no
32
+ backward-compatible alias.
33
+ - **Parameter changes**: Some cmdlets have altered parameter names, types, or
34
+ removed optional parameters that were previously accepted.
35
+ - **Output type changes**: Return objects from certain cmdlets have changed shape,
36
+ breaking pipeline expressions like `(Get-AzXxx).Property`.
37
+ - **ARM64 images affected disproportionately**: windows-11-arm64 and
38
+ windows-11-vs2026-arm64 jumped from Az 12.5.0 directly to 15.6.1 — a 3-major-version
39
+ leap with significantly more accumulated breaking changes.
40
+
41
+ Unlike other software installed on runner images, the Az PowerShell module does NOT
42
+ have an LTS version — only the latest release receives security fixes and support.
43
+ Microsoft discontinued support for Az 14.x as of the 15.x release cycle.
44
+
45
+ The runner images affected and their before/after versions:
46
+ - ubuntu-22.04, ubuntu-24.04, macos-14/15/26, windows-2022/2025/2025-vs2026: 14.6.0 → 15.6.1
47
+ - windows-11-arm64, windows-11-vs2026-arm64: 12.5.0 → 15.6.1
48
+
49
+ Source: actions/runner-images#14104
50
+ fix: |
51
+ **Option 1 — Pin to Az 14.6.0** (temporary fix while migrating):
52
+ Add an explicit Install-Module step at the start of any job using Az cmdlets.
53
+
54
+ **Option 2 — Migrate to Az 15.x** (recommended long-term):
55
+ Review the Az 15.x migration guide and update scripts to use the new cmdlet names,
56
+ parameters, and output types. Run `Get-AzVersion` to confirm the version in use.
57
+
58
+ **Diagnosis**: Use `Get-Module -Name Az.* -ListAvailable | Select Name, Version` to
59
+ confirm which Az module version is installed on the current runner.
60
+ fix_code:
61
+ - language: yaml
62
+ label: "Pin Az module to 14.6.0 for immediate rollback"
63
+ code: |
64
+ jobs:
65
+ deploy:
66
+ runs-on: ubuntu-latest
67
+ steps:
68
+ - name: Pin Azure PowerShell to 14.6.0
69
+ shell: pwsh
70
+ run: |
71
+ Install-Module -Name Az -RequiredVersion 14.6.0 -Force -AllowClobber -Scope CurrentUser
72
+ Import-Module Az -RequiredVersion 14.6.0
73
+
74
+ - name: Azure login
75
+ uses: azure/login@v2
76
+ with:
77
+ client-id: ${{ secrets.AZURE_CLIENT_ID }}
78
+ tenant-id: ${{ secrets.AZURE_TENANT_ID }}
79
+ subscription-id: ${{ secrets.AZURE_SUBSCRIPTION_ID }}
80
+
81
+ - name: Run Azure operations
82
+ shell: pwsh
83
+ run: |
84
+ # Your existing Az 14.x scripts
85
+ Get-AzVM -ResourceGroupName $env:RG_NAME
86
+ - language: yaml
87
+ label: "Verify installed Az version (diagnosis step)"
88
+ code: |
89
+ - name: Check Az module version
90
+ shell: pwsh
91
+ run: |
92
+ Get-Module -Name Az.Accounts -ListAvailable | Select-Object Name, Version
93
+ Get-AzVersion
94
+ prevention:
95
+ - "Subscribe to actions/runner-images announcements to get advance warning of Az module version changes."
96
+ - "Pin the Az module version explicitly in all CI workflows using `Install-Module -RequiredVersion` rather than relying on the runner image default."
97
+ - "Test Az-based workflows against the new version by temporarily installing Az 15.x before the runner image rollout date."
98
+ - "Review the Az 15.x migration guide (https://learn.microsoft.com/en-us/powershell/azure/migrate-az-15.0.0) when upgrading."
99
+ - "Use `Get-AzVersion` at the start of troublesome workflows to emit the exact Az version to logs."
100
+ docs:
101
+ - url: "https://github.com/actions/runner-images/issues/14104"
102
+ label: "runner-images#14104 — Az module update announcement (14.6.0 → 15.6.1)"
103
+ - url: "https://learn.microsoft.com/en-us/powershell/azure/migrate-az-15.0.0"
104
+ label: "Az 15.x migration guide"
105
+ - url: "https://learn.microsoft.com/en-us/powershell/azure/azureps-support-lifecycle"
106
+ label: "Az PowerShell support lifecycle"
107
+ - url: "https://learn.microsoft.com/en-us/powershell/azure/release-notes-azureps"
108
+ label: "Az PowerShell release notes"
@@ -0,0 +1,110 @@
1
+ id: runner-environment-035
2
+ title: "ubuntu-22.04 Pre-Cached Docker Images Removed — Cold Pulls Now Required"
3
+ category: runner-environment
4
+ severity: warning
5
+ tags:
6
+ - ubuntu
7
+ - docker
8
+ - pre-cached
9
+ - runner-image
10
+ - pull-rate
11
+ - performance
12
+ patterns:
13
+ - regex: "Unable to find image '.*' locally"
14
+ flags: "i"
15
+ - regex: "Pulling from (?:library/)?(?:node|python|postgres|redis|mysql|nginx|ubuntu|alpine).*\nDigest:"
16
+ flags: "im"
17
+ - regex: "docker: Error response from daemon.*manifest.*not found"
18
+ flags: "i"
19
+ error_messages:
20
+ - "Unable to find image 'node:lts-alpine' locally"
21
+ - "Unable to find image 'postgres:15' locally"
22
+ - "Unable to find image 'redis:7-alpine' locally"
23
+ - "Pulling from library/node"
24
+ - "Pulling from library/postgres"
25
+ root_cause: |
26
+ Starting January 12, 2026, GitHub removed all pre-cached Docker images from the
27
+ ubuntu-22.04 runner image to address disk space limits. Previously, commonly used
28
+ Docker images (node, postgres, redis, mysql, python, nginx, alpine, etc.) were
29
+ pre-pulled into the runner's local Docker image cache, so `docker pull` or
30
+ `docker run` on those images started immediately without a network pull.
31
+
32
+ After the change, ALL Docker images must be pulled from the registry at runtime.
33
+ This has two main effects:
34
+
35
+ 1. **Longer job times**: Cold pulls for large images (node, python, postgres) add
36
+ 30-120+ seconds per job depending on image size and registry speed.
37
+
38
+ 2. **DockerHub rate limit exposure**: Workflows that previously never hit the
39
+ DockerHub anonymous pull rate limit (100 pulls/6h per IP) may now exceed it
40
+ once caching is removed — especially on parallel matrix jobs all pulling the
41
+ same image from the same runner subnet IP.
42
+
43
+ The change only affects ubuntu-22.04. Ubuntu 24.04 and other images were not
44
+ pre-caching Docker images in the same way.
45
+
46
+ Source: actions/runner-images#13472
47
+ fix: |
48
+ **Option 1 — Authenticate to DockerHub** to raise the rate limit to 200 pulls/6h
49
+ (free account) or unlimited (Pro/Team).
50
+
51
+ **Option 2 — Use GitHub Container Registry (ghcr.io)** for your own images —
52
+ these never count against DockerHub rate limits and pull faster from GitHub runners.
53
+
54
+ **Option 3 — Upgrade to ubuntu-24.04** if the workflow is not tied to ubuntu-22.04
55
+ specific packages. The 24.04 image has current tooling and better long-term support.
56
+
57
+ **Option 4 — Add a docker/login-action step** before any Docker operations to
58
+ authenticate even with a free DockerHub account, which 2x the anonymous rate limit.
59
+ fix_code:
60
+ - language: yaml
61
+ label: "Authenticate to DockerHub to avoid rate limits on ubuntu-22.04"
62
+ code: |
63
+ jobs:
64
+ build:
65
+ runs-on: ubuntu-22.04
66
+ steps:
67
+ - name: Log in to DockerHub
68
+ uses: docker/login-action@v3
69
+ with:
70
+ username: ${{ secrets.DOCKERHUB_USERNAME }}
71
+ password: ${{ secrets.DOCKERHUB_TOKEN }}
72
+
73
+ - name: Run tests with Postgres
74
+ run: |
75
+ docker run --rm -d -p 5432:5432 \
76
+ -e POSTGRES_PASSWORD=test \
77
+ postgres:15-alpine
78
+ - language: yaml
79
+ label: "Use GitHub Container Registry instead of DockerHub"
80
+ code: |
81
+ jobs:
82
+ build:
83
+ runs-on: ubuntu-22.04
84
+ permissions:
85
+ packages: read
86
+ steps:
87
+ - name: Log in to GHCR
88
+ uses: docker/login-action@v3
89
+ with:
90
+ registry: ghcr.io
91
+ username: ${{ github.actor }}
92
+ password: ${{ secrets.GITHUB_TOKEN }}
93
+
94
+ - name: Run service container from GHCR
95
+ run: docker run --rm ghcr.io/myorg/my-image:latest
96
+ prevention:
97
+ - "Authenticate to DockerHub in all workflows that pull images on ubuntu-22.04 runners."
98
+ - "Consider migrating ubuntu-22.04 workflows to ubuntu-24.04 — it's the current default and avoids this issue."
99
+ - "Prefer GitHub Container Registry (ghcr.io) for your own images to eliminate DockerHub rate limits entirely."
100
+ - "Use `docker/login-action` as a standard first step in any workflow that involves Docker image pulls."
101
+ - "Monitor job durations after runner image updates — unexpected slowdowns often signal a caching change."
102
+ docs:
103
+ - url: "https://github.com/actions/runner-images/issues/13472"
104
+ label: "runner-images#13472 — ubuntu-22.04 pre-cached Docker images removal announcement"
105
+ - url: "https://github.com/actions/runner-images/issues/1445"
106
+ label: "runner-images#1445 — DockerHub pull rate limit discussion"
107
+ - url: "https://docs.docker.com/docker-hub/download-rate-limit/"
108
+ label: "DockerHub pull rate limits documentation"
109
+ - url: "https://docs.github.com/en/packages/working-with-a-github-packages-registry/working-with-the-container-registry"
110
+ label: "Working with GitHub Container Registry (ghcr.io)"
@@ -0,0 +1,112 @@
1
+ id: runner-environment-036
2
+ title: "Windows MSVC LTCG Linker Fails When Jobs in Same Run Receive Different Image Versions"
3
+ category: runner-environment
4
+ severity: error
5
+ tags:
6
+ - windows
7
+ - msvc
8
+ - ltcg
9
+ - linker
10
+ - runner-image
11
+ - build
12
+ - vs2026
13
+ patterns:
14
+ - regex: "C1900.*Il mismatch between 'P1' version.*and 'P2' version"
15
+ flags: "i"
16
+ - regex: "LNK1257.*code generation failed"
17
+ flags: "i"
18
+ - regex: "LNK2001.*unresolved external symbol __std_"
19
+ flags: "i"
20
+ - regex: "fatal error C1900"
21
+ flags: "i"
22
+ error_messages:
23
+ - "EXEC : fatal error C1900: Il mismatch between 'P1' version '20251208' and 'P2' version '20250730'"
24
+ - "LINK : fatal error LNK1257: code generation failed"
25
+ - "skia.lib(...) : error LNK2001: unresolved external symbol __std_minmax_element_f_"
26
+ - "skia.lib(...) : error LNK2001: unresolved external symbol __std_max_element_2u"
27
+ root_cause: |
28
+ GitHub Actions does not guarantee that all jobs within a single workflow run receive
29
+ the same concrete runner image version. When a runner image is being rolled out
30
+ (e.g., during a VS 2026 update or patch cycle), some jobs may be assigned to runners
31
+ with image version 20260510.103.1 while others receive 20260518.113.1 — even for
32
+ jobs with the same `runs-on: windows-2025-vs2026` label.
33
+
34
+ This becomes a hard build failure for workflows that use MSVC Link-Time Code
35
+ Generation (LTCG / /GL):
36
+ - Job A (build) compiles .obj and .lib files with /GL on image version X
37
+ → MSVC compiler emits Intermediate Language (IL) artifacts stamped with version X.
38
+ - Job B (link) downloads those artifacts and attempts to link them using /LTCG on
39
+ image version Y (a different MSVC toolset patch version).
40
+ - MSVC detects the IL version mismatch (C1900) and aborts: the IL produced by
41
+ one toolset cannot be consumed by a different toolset version.
42
+
43
+ The same failure can occur for any build pipeline that:
44
+ - Splits compilation and linking across separate jobs
45
+ - Uses artifact upload/download to pass compiled objects between jobs
46
+ - Relies on LTCG, MSVC STL internals, or other IL-sensitive optimizations
47
+
48
+ This is a known limitation of the GitHub Actions runner assignment model — image
49
+ rollouts are gradual across the runner pool, and job assignments are not pinned
50
+ to a specific image version within a run.
51
+
52
+ Source: actions/runner-images#14140
53
+ fix: |
54
+ **Option 1 — Combine compile and link in a single job** so all MSVC operations
55
+ run on the same runner image. This eliminates the cross-image artifact transfer.
56
+
57
+ **Option 2 — Disable LTCG for CI builds** (/GL is a release optimization; most
58
+ CI builds only need it for final release binaries, not PRs or branch builds).
59
+
60
+ **Option 3 — Add MSVC toolset version check** in the link job to detect mismatches
61
+ before the link fails, and fail fast with a clear diagnostic message.
62
+
63
+ **Option 4 — Use a self-hosted runner** with a pinned image version for builds
64
+ that require LTCG across jobs.
65
+ fix_code:
66
+ - language: yaml
67
+ label: "Combine compile and link in one job to avoid image mismatch"
68
+ code: |
69
+ jobs:
70
+ build-and-link:
71
+ runs-on: windows-2025-vs2026
72
+ steps:
73
+ - uses: actions/checkout@v4
74
+
75
+ - name: Configure CMake
76
+ run: cmake -B build -DCMAKE_BUILD_TYPE=Release
77
+
78
+ # Compile AND link in the same job — same image version guaranteed
79
+ - name: Build (compile + link)
80
+ run: cmake --build build --config Release
81
+ - language: yaml
82
+ label: "Disable LTCG on CI builds, enable only for release"
83
+ code: |
84
+ jobs:
85
+ build:
86
+ runs-on: windows-2025-vs2026
87
+ steps:
88
+ - uses: actions/checkout@v4
89
+
90
+ - name: Build without LTCG (CI)
91
+ # Pass -DNO_LTCG=1 or equivalent CMake flag to disable /GL and /LTCG
92
+ # LTCG is only enabled in the separate release workflow
93
+ run: cmake -B build -DCMAKE_BUILD_TYPE=Release -DENABLE_LTCG=OFF
94
+ env:
95
+ # Alternatively: override CFLAGS/CXXFLAGS directly
96
+ CFLAGS: /O2 # Optimize without /GL
97
+ CXXFLAGS: /O2
98
+ prevention:
99
+ - "Never split MSVC compilation and LTCG linking across separate jobs that upload/download artifacts."
100
+ - "Disable /GL (LTCG) in CI builds — reserve it for final release artifact builds on a single job."
101
+ - "Monitor runner image rollout announcements; if a new Windows image version is being deployed, LTCG cross-job builds are at risk during the rollout window."
102
+ - "Add a MSVC version check step at the start of link jobs to emit the toolset version to logs for post-failure diagnosis."
103
+ - "Use self-hosted runners with pinned image versions for release builds that require LTCG across jobs."
104
+ docs:
105
+ - url: "https://github.com/actions/runner-images/issues/14140"
106
+ label: "runner-images#14140 — MSVC LTCG linker failure from mixed image versions in same run"
107
+ - url: "https://learn.microsoft.com/en-us/cpp/build/reference/gl-whole-program-optimization"
108
+ label: "MSVC /GL (Whole Program Optimization) documentation"
109
+ - url: "https://learn.microsoft.com/en-us/cpp/build/reference/ltcg-link-time-code-generation"
110
+ label: "MSVC /LTCG (Link-Time Code Generation) documentation"
111
+ - url: "https://docs.github.com/en/actions/using-github-hosted-runners/about-github-hosted-runners"
112
+ label: "About GitHub-hosted runners"
@@ -0,0 +1,113 @@
1
+ id: silent-failures-017
2
+ title: "iOS App Store Upload Fails Silently — macOS-latest Uses Xcode 16.4 but Apple Requires iOS 26 SDK"
3
+ category: silent-failures
4
+ severity: silent-failure
5
+ tags:
6
+ - macos
7
+ - xcode
8
+ - ios
9
+ - app-store
10
+ - sdk
11
+ - silent-failure
12
+ - apple
13
+ patterns:
14
+ - regex: "built with the iOS (?:18|17|16)\\.\\d SDK"
15
+ flags: "i"
16
+ - regex: "must be built with the iOS 26 SDK or later.*App Store"
17
+ flags: "i"
18
+ - regex: "Invalid Toolchain.*iOS.*SDK.*required"
19
+ flags: "i"
20
+ - regex: "ITMS-90725|ITMS-90206"
21
+ flags: "i"
22
+ error_messages:
23
+ - "This app was built with the iOS 18.5 SDK. All iOS and iPadOS apps must be built with the iOS 26 SDK or later in order to be uploaded to App Store Connect."
24
+ - "ERROR ITMS-90725: SDK Version Issue - This app was built with the iOS 18.5 SDK"
25
+ - "Invalid Toolchain. New apps and app updates must be built with the public iOS 26 SDK or later"
26
+ root_cause: |
27
+ Apple requires that all new iOS/iPadOS App Store submissions be built with the
28
+ iOS 26 SDK or later (enforced starting mid-2026). However, `macos-latest` currently
29
+ points to macOS 15 (until the macOS 26 migration completes in July 2026), and
30
+ macOS 15 runner images ship with Xcode 16.4 as the default — which includes the
31
+ iOS 18.5 SDK, NOT the iOS 26 SDK.
32
+
33
+ The failure is a classic silent-failure pattern:
34
+ - The build step SUCCEEDS with zero errors or warnings.
35
+ - The archive step SUCCEEDS.
36
+ - The upload/export to App Store Connect FAILS with the SDK version error.
37
+ - Because the failure occurs at the distribution stage (not compilation), it
38
+ can be misdiagnosed as a signing, provisioning, or network issue.
39
+
40
+ Workflows that use `uses: maxim-lobanov/setup-xcode` with an explicit 16.x version,
41
+ or that rely on `macos-latest` defaults without explicit Xcode pinning, will
42
+ silently produce an .ipa or .xcarchive that cannot be submitted to App Store Connect.
43
+
44
+ After the `macos-latest` migration to macOS 26 completes (July 15, 2026), the default
45
+ Xcode will be 26.4.1+, which includes the iOS 26 SDK and resolves this issue.
46
+ Until then, explicit Xcode pinning is required.
47
+
48
+ Source: actions/runner-images#14165
49
+ fix: |
50
+ **Immediate fix**: Pin Xcode to 26.x explicitly using `maxim-lobanov/setup-xcode`
51
+ before any build or archive steps. Use `macos-26` as the runner to ensure Xcode 26
52
+ is available.
53
+
54
+ **For teams not ready to migrate to Xcode 26**: Use `macos-26` and pin to Xcode 26.4.1
55
+ or later — this is required by Apple regardless of code changes.
56
+
57
+ **Verify the SDK in use** by adding `xcodebuild -showsdks` before the build step.
58
+ fix_code:
59
+ - language: yaml
60
+ label: "Pin to macOS 26 + Xcode 26 for App Store submissions"
61
+ code: |
62
+ jobs:
63
+ release:
64
+ runs-on: macos-26 # Explicit: don't rely on macos-latest during transition
65
+ steps:
66
+ - uses: actions/checkout@v4
67
+
68
+ # Explicitly select Xcode 26 (includes iOS 26 SDK required by App Store)
69
+ - uses: maxim-lobanov/setup-xcode@v1
70
+ with:
71
+ xcode-version: '26.4' # or '26.5' once generally available
72
+
73
+ - name: Verify SDK
74
+ run: xcodebuild -showsdks | grep -i iphoneos
75
+
76
+ - name: Archive
77
+ run: |
78
+ xcodebuild archive \
79
+ -scheme MyApp \
80
+ -archivePath $RUNNER_TEMP/MyApp.xcarchive \
81
+ -destination generic/platform=iOS
82
+
83
+ - name: Export for App Store
84
+ run: |
85
+ xcodebuild -exportArchive \
86
+ -archivePath $RUNNER_TEMP/MyApp.xcarchive \
87
+ -exportOptionsPlist ExportOptions.plist \
88
+ -exportPath $RUNNER_TEMP/MyApp.ipa
89
+ - language: yaml
90
+ label: "Check installed Xcode versions and default SDK (diagnosis)"
91
+ code: |
92
+ - name: Diagnose Xcode and SDK versions
93
+ run: |
94
+ echo "=== Default Xcode ==="
95
+ xcode-select -p
96
+ xcodebuild -version
97
+ echo "=== Available SDKs ==="
98
+ xcodebuild -showsdks | grep -i iphone
99
+ prevention:
100
+ - "Never rely on `macos-latest` default Xcode for App Store release builds — always pin the Xcode version explicitly."
101
+ - "Use `xcodebuild -showsdks` as an early workflow step to emit the active iOS SDK version to logs."
102
+ - "Run a smoke test of the App Store export (not just the build) in CI to catch SDK requirement errors before manual submission."
103
+ - "Subscribe to Apple Developer news for SDK requirement enforcement dates and plan runner image migrations in advance."
104
+ - "Pin `runs-on: macos-26` explicitly rather than `macos-latest` for release workflows during the macOS version transition period."
105
+ docs:
106
+ - url: "https://github.com/actions/runner-images/issues/14165"
107
+ label: "runner-images#14165 — macOS-latest Xcode 16.4 breaks App Store submissions"
108
+ - url: "https://github.com/actions/runner-images/issues/14167"
109
+ label: "runner-images#14167 — macos-latest will use macos-26 in June 2026"
110
+ - url: "https://github.com/maxim-lobanov/setup-xcode"
111
+ label: "maxim-lobanov/setup-xcode — Pin Xcode version in workflows"
112
+ - url: "https://developer.apple.com/news/releases/"
113
+ label: "Apple Developer News — SDK requirement announcements"
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@htekdev/actions-debugger",
3
- "version": "1.0.13",
3
+ "version": "1.0.14",
4
4
  "description": "65+ real GitHub Actions errors, queryable by agents. MCP server + Copilot skills + error database.",
5
5
  "type": "module",
6
6
  "main": "./dist/index.js",