chore: sync develop with main (CODE_SCANNING_FIXES.md relocation)#1099
Merged
GrammaTonic merged 4 commits intodevelopfrom Feb 28, 2026
Merged
chore: sync develop with main (CODE_SCANNING_FIXES.md relocation)#1099GrammaTonic merged 4 commits intodevelopfrom
GrammaTonic merged 4 commits intodevelopfrom
Conversation
chore: promote develop to main
…ructure CI failure (#1098) * Initial plan * fix: move CODE_SCANNING_FIXES.md to docs/ to fix documentation structure check Co-authored-by: GrammaTonic <8269379+GrammaTonic@users.noreply.github.com> * fix: update relative links in CODE_SCANNING_FIXES.md after moving to docs/ Co-authored-by: GrammaTonic <8269379+GrammaTonic@users.noreply.github.com> --------- Co-authored-by: copilot-swe-agent[bot] <198982749+Copilot@users.noreply.github.com> Co-authored-by: GrammaTonic <8269379+GrammaTonic@users.noreply.github.com>
Copilot
AI
changed the title
[WIP] Update develop with latest commits from main
chore: sync develop with main (CODE_SCANNING_FIXES.md relocation)
Feb 28, 2026
GrammaTonic
approved these changes
Feb 28, 2026
GrammaTonic
added a commit
that referenced
this pull request
Mar 1, 2026
* chore(base-image): switch questing to resolute across dockerfiles and docs * fix(ci): guard chrome builds against missing curl/unzip on resolute * fix(docker): remove fallback curl install in chrome layers * fix(docker): align chrome deps with resolute * fix(docker): skip unsupported playwright chromium install * fix(tests): add playwright chromium check with chrome fallback * fix(tests): use npx path and executable chrome fallback * fix(tests): stabilize chrome-go playwright fallback * fix(tests): add playwright chrome-channel fallback * fix(tests): repair playwright chrome installer path * fix(tests): add offline fallback for screenshot navigation * fix(tests): make playwright screenshot network-independent * chore(runner): bump GitHub Actions runner to 2.331.0 (#1095) Squash merge: bump GitHub Actions runner to 2.331.0 and align docs/scripts. * fix(docker): patch npm internals and bump go toolchain for develop code scanning (#1096) * chore: sync develop with main (CODE_SCANNING_FIXES.md relocation) (#1099) * fix: move CODE_SCANNING_FIXES.md to docs/ to resolve documentation structure CI failure (#1098) * Initial plan * fix: move CODE_SCANNING_FIXES.md to docs/ to fix documentation structure check Co-authored-by: GrammaTonic <8269379+GrammaTonic@users.noreply.github.com> * fix: update relative links in CODE_SCANNING_FIXES.md after moving to docs/ Co-authored-by: GrammaTonic <8269379+GrammaTonic@users.noreply.github.com> --------- Co-authored-by: copilot-swe-agent[bot] <198982749+Copilot@users.noreply.github.com> Co-authored-by: GrammaTonic <8269379+GrammaTonic@users.noreply.github.com> * Initial plan --------- Co-authored-by: Syam Sampatsing <gt@grammatonic.nl> Co-authored-by: Copilot <198982749+Copilot@users.noreply.github.com> Co-authored-by: GrammaTonic <8269379+GrammaTonic@users.noreply.github.com> * feat: update Node.js, npm, Go, Playwright, Cypress, and npm security packages to latest (#1100) - Node.js: 24.11.1 -> 24.14.0 (LTS Krypton) - npm: 11.6.4 -> 11.11.0 - Go: 1.25.7 -> 1.26.0 (Chrome-Go runner) - Playwright: 1.55.1 -> 1.58.2 - @playwright/test: 1.55.1 -> 1.58.2 - Cypress: 13.15.0 -> 15.11.0 - tar: 7.5.6 -> 7.5.9 - brace-expansion: 2.0.2 -> 5.0.4 - @isaacs/brace-expansion: 5.0.0 -> 5.0.1 - glob: 13.0.0 -> 13.0.6 - minimatch: 10.1.1 -> 10.2.4 - diff: 8.0.2 -> 8.0.3 Updated all three Dockerfiles and all documentation references. * fix(docker): patch nested node-gyp and @tufjs/models sub-modules to fix CVEs (#1101) * fix(docker): patch nested node-gyp and @tufjs/models sub-modules to fix CVEs Fixes 4 HIGH severity CVEs found in Trivy scan of the standard runner image: - CVE-2025-64756 (glob@10.4.5 in node-gyp nested modules) - Command Injection Fixed: glob 10.4.5 to 10.5.0 (NODE_GYP_GLOB_VERSION) - CVE-2026-26996 (minimatch@9.0.5) - ReDoS via consecutive wildcards - CVE-2026-27903 (minimatch@9.0.5) - ReDoS via GLOBSTAR backtracking - CVE-2026-27904 (minimatch@9.0.5) - ReDoS via nested extglobs Fixed: minimatch 9.0.5 to 9.0.7 (NESTED_MINIMATCH_VERSION) in both node-gyp/node_modules/ and @tufjs/models/node_modules/ Root cause: existing patching replaced top-level npm/node_modules/ but missed deeply-nested sub-modules under node-gyp and @tufjs/models. All three Dockerfiles (standard, chrome, chrome-go) updated with: - Two new ARG variables (NODE_GYP_GLOB_VERSION, NESTED_MINIMATCH_VERSION) - Extended nested-patch step after top-level patching to replace vulnerable packages in node-gyp/node_modules/ and @tufjs/models/node_modules/ using the same runner-bundled node binary * fix(docker): run nested npm install before replacing npm modules The nested patch npm install was running after top-level module replacement, causing the runner-bundled npm to crash with: npm error Class extends value undefined is not a constructor or null Fix: both npm installs (top-level and nested) now run against the original unmodified npm before any rm/cp operations are performed. * chore(docker): update Chrome for Testing from 142.0.7444.162 to 146.0.7680.31 * feat(docker): configure Playwright to use system Chrome binary via PLAYWRIGHT_CHROMIUM_EXECUTABLE_PATH --------- Co-authored-by: Copilot <198982749+Copilot@users.noreply.github.com> Co-authored-by: GrammaTonic <8269379+GrammaTonic@users.noreply.github.com>
GrammaTonic
added a commit
that referenced
this pull request
Mar 1, 2026
* chore(base-image): switch questing to resolute across dockerfiles and docs * fix(ci): guard chrome builds against missing curl/unzip on resolute * fix(docker): remove fallback curl install in chrome layers * fix(docker): align chrome deps with resolute * fix(docker): skip unsupported playwright chromium install * fix(tests): add playwright chromium check with chrome fallback * fix(tests): use npx path and executable chrome fallback * fix(tests): stabilize chrome-go playwright fallback * fix(tests): add playwright chrome-channel fallback * fix(tests): repair playwright chrome installer path * fix(tests): add offline fallback for screenshot navigation * fix(tests): make playwright screenshot network-independent * chore(runner): bump GitHub Actions runner to 2.331.0 (#1095) Squash merge: bump GitHub Actions runner to 2.331.0 and align docs/scripts. * fix(docker): patch npm internals and bump go toolchain for develop code scanning (#1096) * chore: sync develop with main (CODE_SCANNING_FIXES.md relocation) (#1099) * fix: move CODE_SCANNING_FIXES.md to docs/ to resolve documentation structure CI failure (#1098) * Initial plan * fix: move CODE_SCANNING_FIXES.md to docs/ to fix documentation structure check Co-authored-by: GrammaTonic <8269379+GrammaTonic@users.noreply.github.com> * fix: update relative links in CODE_SCANNING_FIXES.md after moving to docs/ Co-authored-by: GrammaTonic <8269379+GrammaTonic@users.noreply.github.com> --------- Co-authored-by: copilot-swe-agent[bot] <198982749+Copilot@users.noreply.github.com> Co-authored-by: GrammaTonic <8269379+GrammaTonic@users.noreply.github.com> * Initial plan --------- Co-authored-by: Syam Sampatsing <gt@grammatonic.nl> Co-authored-by: Copilot <198982749+Copilot@users.noreply.github.com> Co-authored-by: GrammaTonic <8269379+GrammaTonic@users.noreply.github.com> * feat: update Node.js, npm, Go, Playwright, Cypress, and npm security packages to latest (#1100) - Node.js: 24.11.1 -> 24.14.0 (LTS Krypton) - npm: 11.6.4 -> 11.11.0 - Go: 1.25.7 -> 1.26.0 (Chrome-Go runner) - Playwright: 1.55.1 -> 1.58.2 - @playwright/test: 1.55.1 -> 1.58.2 - Cypress: 13.15.0 -> 15.11.0 - tar: 7.5.6 -> 7.5.9 - brace-expansion: 2.0.2 -> 5.0.4 - @isaacs/brace-expansion: 5.0.0 -> 5.0.1 - glob: 13.0.0 -> 13.0.6 - minimatch: 10.1.1 -> 10.2.4 - diff: 8.0.2 -> 8.0.3 Updated all three Dockerfiles and all documentation references. * fix(docker): patch nested node-gyp and @tufjs/models sub-modules to fix CVEs (#1101) * fix(docker): patch nested node-gyp and @tufjs/models sub-modules to fix CVEs Fixes 4 HIGH severity CVEs found in Trivy scan of the standard runner image: - CVE-2025-64756 (glob@10.4.5 in node-gyp nested modules) - Command Injection Fixed: glob 10.4.5 to 10.5.0 (NODE_GYP_GLOB_VERSION) - CVE-2026-26996 (minimatch@9.0.5) - ReDoS via consecutive wildcards - CVE-2026-27903 (minimatch@9.0.5) - ReDoS via GLOBSTAR backtracking - CVE-2026-27904 (minimatch@9.0.5) - ReDoS via nested extglobs Fixed: minimatch 9.0.5 to 9.0.7 (NESTED_MINIMATCH_VERSION) in both node-gyp/node_modules/ and @tufjs/models/node_modules/ Root cause: existing patching replaced top-level npm/node_modules/ but missed deeply-nested sub-modules under node-gyp and @tufjs/models. All three Dockerfiles (standard, chrome, chrome-go) updated with: - Two new ARG variables (NODE_GYP_GLOB_VERSION, NESTED_MINIMATCH_VERSION) - Extended nested-patch step after top-level patching to replace vulnerable packages in node-gyp/node_modules/ and @tufjs/models/node_modules/ using the same runner-bundled node binary * fix(docker): run nested npm install before replacing npm modules The nested patch npm install was running after top-level module replacement, causing the runner-bundled npm to crash with: npm error Class extends value undefined is not a constructor or null Fix: both npm installs (top-level and nested) now run against the original unmodified npm before any rm/cp operations are performed. * chore(docker): update Chrome for Testing from 142.0.7444.162 to 146.0.7680.31 * feat(docker): configure Playwright to use system Chrome binary via PLAYWRIGHT_CHROMIUM_EXECUTABLE_PATH * fix(ci): pin trivy-action to 0.34.1 across all workflows Replace broken aquasecurity/trivy-action@master (floating ref pointing to a broken commit) with pinned stable release 0.34.1 in all workflow files. The master ref was failing because setup-trivy attempted to fetch refs/heads/main from aquasecurity/trivy which does not exist, causing trivy setup to fail and SARIF files to never be generated, resulting in upload-sarif errors. Also add continue-on-error: true to SARIF upload steps to prevent cascading failures if a scan does not produce output. Files updated: - .github/workflows/ci-cd.yml (4 instances) - .github/workflows/release.yml (3 instances) - .github/workflows/security-advisories.yml (6 instances) - .github/workflows/maintenance.yml (1 instance) * fix(ci): bypass broken setup-trivy, install trivy manually All trivy-action versions bundle broken setup-trivy@e6c2c5e which fails to fetch aquasecurity/trivy refs/heads/main. Fix: wget trivy binary directly from GitHub releases and set skip-setup-trivy: true on all trivy-action steps across 5 workflow files. --------- Co-authored-by: Copilot <198982749+Copilot@users.noreply.github.com> Co-authored-by: GrammaTonic <8269379+GrammaTonic@users.noreply.github.com>
GrammaTonic
added a commit
that referenced
this pull request
Mar 1, 2026
* chore(base-image): switch questing to resolute across dockerfiles and docs * fix(ci): guard chrome builds against missing curl/unzip on resolute * fix(docker): remove fallback curl install in chrome layers * fix(docker): align chrome deps with resolute * fix(docker): skip unsupported playwright chromium install * fix(tests): add playwright chromium check with chrome fallback * fix(tests): use npx path and executable chrome fallback * fix(tests): stabilize chrome-go playwright fallback * fix(tests): add playwright chrome-channel fallback * fix(tests): repair playwright chrome installer path * fix(tests): add offline fallback for screenshot navigation * fix(tests): make playwright screenshot network-independent * chore(runner): bump GitHub Actions runner to 2.331.0 (#1095) Squash merge: bump GitHub Actions runner to 2.331.0 and align docs/scripts. * fix(docker): patch npm internals and bump go toolchain for develop code scanning (#1096) * chore: sync develop with main (CODE_SCANNING_FIXES.md relocation) (#1099) * fix: move CODE_SCANNING_FIXES.md to docs/ to resolve documentation structure CI failure (#1098) * Initial plan * fix: move CODE_SCANNING_FIXES.md to docs/ to fix documentation structure check Co-authored-by: GrammaTonic <8269379+GrammaTonic@users.noreply.github.com> * fix: update relative links in CODE_SCANNING_FIXES.md after moving to docs/ Co-authored-by: GrammaTonic <8269379+GrammaTonic@users.noreply.github.com> --------- Co-authored-by: copilot-swe-agent[bot] <198982749+Copilot@users.noreply.github.com> Co-authored-by: GrammaTonic <8269379+GrammaTonic@users.noreply.github.com> * Initial plan --------- Co-authored-by: Syam Sampatsing <gt@grammatonic.nl> Co-authored-by: Copilot <198982749+Copilot@users.noreply.github.com> Co-authored-by: GrammaTonic <8269379+GrammaTonic@users.noreply.github.com> * feat: update Node.js, npm, Go, Playwright, Cypress, and npm security packages to latest (#1100) - Node.js: 24.11.1 -> 24.14.0 (LTS Krypton) - npm: 11.6.4 -> 11.11.0 - Go: 1.25.7 -> 1.26.0 (Chrome-Go runner) - Playwright: 1.55.1 -> 1.58.2 - @playwright/test: 1.55.1 -> 1.58.2 - Cypress: 13.15.0 -> 15.11.0 - tar: 7.5.6 -> 7.5.9 - brace-expansion: 2.0.2 -> 5.0.4 - @isaacs/brace-expansion: 5.0.0 -> 5.0.1 - glob: 13.0.0 -> 13.0.6 - minimatch: 10.1.1 -> 10.2.4 - diff: 8.0.2 -> 8.0.3 Updated all three Dockerfiles and all documentation references. * fix(docker): patch nested node-gyp and @tufjs/models sub-modules to fix CVEs (#1101) * fix(docker): patch nested node-gyp and @tufjs/models sub-modules to fix CVEs Fixes 4 HIGH severity CVEs found in Trivy scan of the standard runner image: - CVE-2025-64756 (glob@10.4.5 in node-gyp nested modules) - Command Injection Fixed: glob 10.4.5 to 10.5.0 (NODE_GYP_GLOB_VERSION) - CVE-2026-26996 (minimatch@9.0.5) - ReDoS via consecutive wildcards - CVE-2026-27903 (minimatch@9.0.5) - ReDoS via GLOBSTAR backtracking - CVE-2026-27904 (minimatch@9.0.5) - ReDoS via nested extglobs Fixed: minimatch 9.0.5 to 9.0.7 (NESTED_MINIMATCH_VERSION) in both node-gyp/node_modules/ and @tufjs/models/node_modules/ Root cause: existing patching replaced top-level npm/node_modules/ but missed deeply-nested sub-modules under node-gyp and @tufjs/models. All three Dockerfiles (standard, chrome, chrome-go) updated with: - Two new ARG variables (NODE_GYP_GLOB_VERSION, NESTED_MINIMATCH_VERSION) - Extended nested-patch step after top-level patching to replace vulnerable packages in node-gyp/node_modules/ and @tufjs/models/node_modules/ using the same runner-bundled node binary * fix(docker): run nested npm install before replacing npm modules The nested patch npm install was running after top-level module replacement, causing the runner-bundled npm to crash with: npm error Class extends value undefined is not a constructor or null Fix: both npm installs (top-level and nested) now run against the original unmodified npm before any rm/cp operations are performed. * chore(docker): update Chrome for Testing from 142.0.7444.162 to 146.0.7680.31 * feat(docker): configure Playwright to use system Chrome binary via PLAYWRIGHT_CHROMIUM_EXECUTABLE_PATH * fix(ci): pin trivy-action to 0.34.1 across all workflows Replace broken aquasecurity/trivy-action@master (floating ref pointing to a broken commit) with pinned stable release 0.34.1 in all workflow files. The master ref was failing because setup-trivy attempted to fetch refs/heads/main from aquasecurity/trivy which does not exist, causing trivy setup to fail and SARIF files to never be generated, resulting in upload-sarif errors. Also add continue-on-error: true to SARIF upload steps to prevent cascading failures if a scan does not produce output. Files updated: - .github/workflows/ci-cd.yml (4 instances) - .github/workflows/release.yml (3 instances) - .github/workflows/security-advisories.yml (6 instances) - .github/workflows/maintenance.yml (1 instance) * fix(ci): bypass broken setup-trivy, install trivy manually All trivy-action versions bundle broken setup-trivy@e6c2c5e which fails to fetch aquasecurity/trivy refs/heads/main. Fix: wget trivy binary directly from GitHub releases and set skip-setup-trivy: true on all trivy-action steps across 5 workflow files. * fix(ci): remove broken manual trivy wget install steps (#1104) fix(ci): remove broken manual trivy wget install steps --------- Co-authored-by: Copilot <198982749+Copilot@users.noreply.github.com> Co-authored-by: GrammaTonic <8269379+GrammaTonic@users.noreply.github.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 join this conversation on GitHub.
Already have an account?
Sign in to comment
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.
📋 Pull Request Description
🔀 Merge Strategy
This repository uses SQUASH MERGE as the standard merge strategy.
Why Squash Merge?
mainbranch - easier to understand project evolutionHow to Create a PR (Recommended):
How to Merge (Recommended):
main, you MUST back-syncdevelop(see Post-Merge Back-Sync section below).Branch Sync Requirements:
mainbranch:git pull origin maindevelopbranch:git pull origin developQuick sync commands:
Post-Merge Back-Sync (CRITICAL after squash merging to main):
Why is this needed?
When you squash merge a PR from
developtomain, the individual commits fromdevelopare condensed into a single commit onmain. This causesdevelopto appear "ahead" ofmainin git history, even though the code is identical. The back-sync merge resolves this divergence and prevents:developWhen to perform back-sync:
develop→main) with squash mergemainwith squash mergedevelop(develop will be promoted later)How to perform back-sync:
Alternative (using GitHub CLI):
Verification:
Troubleshooting:
Summary
developwas missingfa152e1frommain(PR #1098: moveCODE_SCANNING_FIXES.mdtodocs/), causing the documentation structure CI check to fail ondevelop-targeting PRs. This mergesmainintodevelopto close that gap.Type of Change
Related Issues
🔄 Changes Made
Files Modified
docs/CODE_SCANNING_FIXES.md- Renamed from rootCODE_SCANNING_FIXES.md; internal relative links updatedKey Changes
fa152e1(main) intodevelop— resolves the docs structure CI failureCODE_SCANNING_FIXES.mdrelocated from repo root →docs/(enforced by CI docs-structure check)🧪 Testing
Testing Performed
Test Coverage
Manual Testing Steps
docs/CODE_SCANNING_FIXES.mdexists and rootCODE_SCANNING_FIXES.mdis gonegit diff origin/main..HEADshows only the merge topology, no code delta📸 Screenshots/Demos
N/A
🔒 Security Considerations
📚 Documentation
docs/updated🚀 Deployment Notes
✅ Checklist
🤖 AI Review Request
/cc @copilot
Note for Reviewers:
🔒 GitHub Advanced Security automatically protects Copilot coding agent pull requests. You can protect all pull requests by enabling Advanced Security for your repositories. Learn more about Advanced Security.