Skip to content

fix: patch image dependencies and enforce Trivy severity - #2409

Draft
groupthinking wants to merge 5 commits into
mainfrom
fix/image-security-2396
Draft

groupthinking wants to merge 5 commits into
mainfrom
fix/image-security-2396

Conversation

@groupthinking

@groupthinking groupthinking commented Oct 12, 2026 •

Copy link
Copy Markdown
Owner

Canonical issue

Closes #2425

Refs #2396

Linear: GRV-807

Outcome

Remediate the patchable application dependencies confirmed in the retained image scan, and make the root image's Trivy result a blocking HIGH/CRITICAL findings gate. This is partial remediation: the current Debian/npm/pip backlog remains unresolved, so this PR does not establish a clean image, production remediation, or deployment.

Current head: 1d9f72d7c40bff34aa43b8107cb817ad01e8efd5.

Exact current-head scan evidence

Security Scan run 38258616455 / job 114843053097 scanned source 1d9f72d7c40bff34aa43b8107cb817ad01e8efd5 and image ID sha256:3e479db974698dc0bf11eec7fbce12acee901a33fe8179570fe4418a6b2ec34e, created 2026-10-12T13:53:16Z for linux/amd64.

Retained artifact trivy-image-evidence:

  • artifact ID: 11751896119
  • ZIP digest: sha256:545f1565a67c41fe5a9d641854e74f28bbb7050aa3247e537ca27d4fcb976459
  • contents: image-source-commit.txt, image-identity.json, trivy-results.sarif

The SARIF contains 259 HIGH/CRITICAL occurrences across 68 unique advisories:

  • OS: 251 (250 HIGH, 1 CRITICAL), all without a fixed version in this Trivy record
  • global npm: 4 HIGH
  • Python/pip vendor bundle: 4 HIGH

This is 15 fewer HIGH/CRITICAL occurrences than the exact prior-head image (274). The enforcing lowercase trivy job failed as designed. The uppercase Trivy SARIF-ingestion check succeeded because it found no new code-scanning alert in the PR diff; it does not override the findings gate.

Verified corrections

These no longer appear in the exact current-head image report:

  • Next.js 16.3.8 and sharp 0.35.5 (already absent from the prior exact image)
  • proxy-addr 2.0.7 -> 2.0.8, production path Workflow -> @workflow/web -> Express
  • source-map-js 1.2.1 -> 1.2.2, production path Next -> PostCSS
  • devalue 5.9.2 -> 5.9.3 under @workflow/core
  • the prior ip-address, pacote, picomatch, sigstore, jaraco.context, and wheel findings

The reconciliation commit has PR #2353 and PR #2358 as parents, incorporating their exact dependency changes without merging their stale branch trees.

Implementation:

  • scoped npm overrides and regenerated package-lock.json
  • urllib3>=2.8.0 application constraint
  • setuptools>=80.10.2 and wheel>=0.46.2; 78.1.1 still carried flagged vendor metadata, so that lower floor was rejected
  • runtime npm 12.2.0
  • clear inherited builder site-packages metadata before copying the constrained environment
  • strict Trivy exit-code: 1, ignore-unfixed: false, retained identity/source/SARIF evidence, and a regular comment-only .github/trivy-no-exceptions.txt

Every remaining non-OS finding

Source path Finding Upstream status Runtime/exploit classification
/usr/lib/node_modules/npm/node_modules/brace-expansion/package.json CVE-2026-102276, 5.0.9 fixed in 5.0.10+ process-terminating DoS requires attacker-controlled brace patterns
same CVE-2026-102278, 5.0.9 fixed in 5.0.11+ process-terminating DoS requires deeply nested attacker-controlled brace patterns
/usr/lib/node_modules/npm/node_modules/http-cache-semantics/package.json CVE-2026-93748, 4.2.0 no fixed version published/reported cross-user shared-cache disclosure requires the vulnerable cache/max-stale flow; npm is a client-side CLI here
/usr/lib/node_modules/npm/node_modules/undici/package.json CVE-2026-19534, 6.28.0 fixed in 6.28.1 process DoS requires npm to open a WebSocket to a malicious/compromised server returning an unrequested subprotocol
/usr/local/lib/python3.11/site-packages/pip/_vendor/msgpack GHSA-6v7p-g79w-8964, 1.1.2 fixed in 1.2.1 requires reuse of an Unpacker after a caught error with untrusted input; pip's CacheControl uses the vendored copy
/usr/local/lib/python3.11/site-packages/pip/_vendor/setuptools CVE-2025-47273, 70.3.0 fixed in 78.1.1 arbitrary file write requires invoking the affected PackageIndex download behavior
/usr/local/lib/python3.11/site-packages/pip/_vendor/urllib3 CVE-2026-97687, 2.7.0 fixed in 2.8.0 requires an HTTPS proxy plus affected TLS-separation configuration
same CVE-2026-97689, 2.7.0 fixed in 2.8.0 memory DoS requires a malicious HTTP server and chunked streaming parser path

The Python filesystem paths are established by the exact version match to the latest pip 26.2.1 wheel's pip/_vendor/vendor.txt and source tree; Trivy labels these four only as Python. Normal requirements constraints cannot replace pip's private vendor bundle.

npm 12.2.0 and pip 26.2.1 are the current published releases inspected on 2026-10-12. npm has an open Priority 1 bug (#10062) confirming its current brace-expansion and undici copies are bundled, downstream overrides/audit fixes cannot replace them, and a refreshed npm release is required. pip 26.2.1 itself vendors msgpack 1.1.2, setuptools 70.3.0, and urllib3 2.7.0.

npm/npx remain runtime-reachable through optional build-validation and NotebookLM paths. pip remains reachable through the repository's CLI installation command and copied utility scripts. Removing either tool would change runtime behavior and is not treated as an incidental security update.

Remaining OS findings

The exact report has 251 OS occurrences across 61 unique advisories, with no fixed version populated. Representative authoritative Debian tracking confirms:

  • libxml2 CVE-2026-6653: trixie vulnerable/no-DSA
  • util-linux CVE-2026-76642: trixie vulnerable/no-DSA
  • ffmpeg CVE-2026-64830: trixie vulnerable/postponed

ffmpeg/ffprobe are part of readiness and yt-dlp runtime behavior. curl is the container healthcheck. gnupg/dirmngr support NodeSource installation but remain in the runtime layer today. Removing packages or changing the base image needs an isolated compatibility/build investigation; no OS finding is dismissed.

Verification

Local:

  • npm ci --legacy-peer-deps: passed (1,010 packages)
  • npm run test --workspace=apps/web: 169 files / 1,495 tests passed; 28 skipped
  • npm run type-check --workspace=apps/web: passed
  • python -m unittest tests.unit.test_merge_policy_security_scan_wording: 4 passed
  • git diff --check: passed
  • production build on the preceding runtime dependency set passed only with Sentry telemetry, source-map, and release uploads disabled; temporary configuration restored

Current-head hosted:

  • CI build, frontend/Python tests and lint, guards: passed
  • E2E, coverage, CodeQL, secret scan, closing-keyword check: passed
  • exact image build and artifact retention: passed
  • lowercase trivy: failed on 259 unresolved occurrences, as policy requires
  • Dependency Review: failed on NumPy 2.5.4's composite license including Zlib; no license policy relaxation
  • no reviews or review threads

Merge gates

  • Current-head CI and hosted build completed
  • Current-head exact image artifact retrieved and independently inspected
  • Trivy HIGH/CRITICAL findings fixed or separately accepted under documented policy
  • Dependency Review license failure resolved without weakening policy
  • Required reviews complete
  • Full branch-protection/ruleset requirements verified

No Trivy exceptions are applied. Future exceptions require separately reviewed package/version/image scope, applicability evidence, compensating controls, owner, linked issue, expiry, and enforced expiry validation.

Ruleset 24057160 requires a Closing keyword to an open issue; this body closes bounded child #2425 and references parent backlog #2396 without closing it. The classic branch-protection endpoint returns 403 to the GitHub App, so complete protection verification remains blocked. PR remains draft and unmerged.

dependabot Bot and others added 3 commits October 7, 2026 02:48
Bumps [source-map-js](https://github.com/7rulnik/source-map-js) from 1.2.1 to 1.2.2.
- [Release notes](https://github.com/7rulnik/source-map-js/releases)
- [Changelog](https://github.com/7rulnik/source-map-js/blob/main/CHANGELOG.md)
- [Commits](7rulnik/source-map-js@v1.2.1...v1.2.2)

---
updated-dependencies:
- dependency-name: source-map-js
  dependency-version: 1.2.2
  dependency-type: indirect
...

Signed-off-by: dependabot[bot] <support@github.com>
Bumps [proxy-addr](https://github.com/jshttp/proxy-addr) from 2.0.7 to 2.0.8.
- [Release notes](https://github.com/jshttp/proxy-addr/releases)
- [Changelog](https://github.com/jshttp/proxy-addr/blob/master/HISTORY.md)
- [Commits](jshttp/proxy-addr@v2.0.7...v2.0.8)

---
updated-dependencies:
- dependency-name: proxy-addr
  dependency-version: 2.0.8
  dependency-type: indirect
...

Signed-off-by: dependabot[bot] <support@github.com>
@vercel

vercel Bot commented Oct 12, 2026 •

Copy link
Copy Markdown
Contributor

The latest updates on your projects. Learn more about Vercel for GitHub.

Project Deployment Actions Updated
v0-uvai Ready Ready Preview, v0 Oct 12, 2026 1:51pm UTC

@coderabbitai

coderabbitai Bot commented Oct 12, 2026

Copy link
Copy Markdown
Contributor

Important

Draft PR not reviewed

Draft PRs are not automatically reviewed by default.

  • Trigger a manual review

To automatically review draft PRs, update your CodeRabbit configuration:

reviews:
  auto_review:
    drafts: true
  • Autofix · Keep fixing CodeRabbit findings and required CI, and resolving merge conflicts

Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ Share

Comment @coderabbitai help to get the list of available commands.

@github-actions github-actions Bot added ci/cd documentation Improvements or additions to documentation python labels Oct 12, 2026
@github-actions

github-actions Bot commented Oct 12, 2026 •

Copy link
Copy Markdown
Contributor

Dependency Review

The following issues were found:
  • ✅ 0 vulnerable package(s)
  • ❌ 6 package(s) with incompatible licenses
  • ✅ 0 package(s) with invalid SPDX license definitions
  • ✅ 0 package(s) with unknown licenses.
See the Details below.

License Issues

requirements.txt

PackageVersionLicenseIssue Type
numpy2.5.4BSD-3-Clause AND 0BSD AND MIT AND Zlib AND CC0-1.0Incompatible License
numpy2.5.4BSD-3-Clause AND 0BSD AND MIT AND Zlib AND CC0-1.0Incompatible License

docs/knowledge_prototypes/universal-automation-service/requirements.txt

PackageVersionLicenseIssue Type
numpy2.5.4BSD-3-Clause AND 0BSD AND MIT AND Zlib AND CC0-1.0Incompatible License
numpy2.5.4BSD-3-Clause AND 0BSD AND MIT AND Zlib AND CC0-1.0Incompatible License

docs/knowledge_prototypes/mcp-servers/mcp-alexnet/requirements.txt

PackageVersionLicenseIssue Type
numpy2.5.4BSD-3-Clause AND 0BSD AND MIT AND Zlib AND CC0-1.0Incompatible License
numpy2.5.4BSD-3-Clause AND 0BSD AND MIT AND Zlib AND CC0-1.0Incompatible License
Allowed Licenses: MIT, Apache-2.0, BSD-2-Clause, BSD-3-Clause, ISC, Python-2.0, BlueOak-1.0.0, MPL-2.0, CC0-1.0, 0BSD
Excluded from license check: pkg:pypi/regex, pkg:pypi/torch, pkg:npm/caniuse-lite, pkg:npm/@sentry/nextjs, pkg:npm/@sentry/cli, pkg:npm/@sentry/cli-darwin, pkg:npm/@sentry/cli-linux-arm, pkg:npm/@sentry/cli-linux-arm64, pkg:npm/@sentry/cli-linux-i686, pkg:npm/@sentry/cli-linux-x64, pkg:npm/@sentry/cli-win32-arm64, pkg:npm/@sentry/cli-win32-i686, pkg:npm/@sentry/cli-win32-x64, pkg:npm/@sentry/bundler-plugin-core, pkg:npm/@sentry/babel-plugin-component-annotate, pkg:npm/@img/sharp-libvips-darwin-arm64, pkg:npm/@img/sharp-libvips-darwin-x64, pkg:npm/@img/sharp-libvips-linux-arm, pkg:npm/@img/sharp-libvips-linux-arm64, pkg:npm/@img/sharp-libvips-linux-ppc64, pkg:npm/@img/sharp-libvips-linux-riscv64, pkg:npm/@img/sharp-libvips-linux-s390x, pkg:npm/@img/sharp-libvips-linux-x64, pkg:npm/@img/sharp-libvips-linuxmusl-arm64, pkg:npm/@img/sharp-libvips-linuxmusl-x64, pkg:npm/@img/sharp-wasm32, pkg:npm/@img/sharp-win32-arm64, pkg:npm/@img/sharp-win32-ia32, pkg:npm/@img/sharp-win32-x64

OpenSSF Scorecard

Scorecard details
PackageVersionScoreDetails
npm/next 16.3.8 🟢 6.1
Details
CheckScoreReason
Maintained🟢 1030 commit(s) and 0 issue activity found in the last 90 days -- score normalized to 10
Code-Review🟢 8Found 26/30 approved changesets -- score normalized to 8
Dangerous-Workflow🟢 10no dangerous workflow patterns detected
CII-Best-Practices⚠️ 0no effort to earn an OpenSSF best practices badge detected
Token-Permissions⚠️ 0detected GitHub workflow tokens with excessive permissions
License🟢 10license file detected
Security-Policy🟢 10security policy file detected
Signed-Releases⚠️ -1no releases found
Branch-Protection⚠️ -1internal error: error during branchesHandler.setup: internal error: githubv4.Query: Resource not accessible by integration
Binary-Artifacts⚠️ 0binaries present in source code
Packaging🟢 10packaging workflow detected
Pinned-Dependencies🟢 4dependency not pinned by hash detected -- score normalized to 4
Fuzzing🟢 10project is fuzzed
SAST⚠️ 0SAST tool is not run on all commits -- score normalized to 0
pip/httptools 0.8.0 UnknownUnknown
pip/aiohttp 3.14.5 UnknownUnknown
pip/httptools 0.9.0 UnknownUnknown
pip/multidict 7.1.0 UnknownUnknown
pip/numpy 2.5.4 UnknownUnknown
pip/pycparser 3.11 UnknownUnknown
pip/pydantic 2.14.1 UnknownUnknown
pip/pydantic-core 2.50.1 🟢 6.6
Details
CheckScoreReason
Code-Review🟢 3Found 8/23 approved changesets -- score normalized to 3
Maintained🟢 1030 commit(s) and 9 issue activity found in the last 90 days -- score normalized to 10
Dangerous-Workflow🟢 10no dangerous workflow patterns detected
Binary-Artifacts🟢 10no binaries found in the repo
Token-Permissions⚠️ 0detected GitHub workflow tokens with excessive permissions
CII-Best-Practices⚠️ 0no effort to earn an OpenSSF best practices badge detected
Pinned-Dependencies🟢 8dependency not pinned by hash detected -- score normalized to 8
License🟢 10license file detected
Fuzzing🟢 10project is fuzzed
Signed-Releases⚠️ -1no releases found
Branch-Protection🟢 3branch protection is not maximal on development and all release branches
Security-Policy🟢 10security policy file detected
SAST⚠️ 0SAST tool is not run on all commits -- score normalized to 0
Packaging🟢 10packaging workflow detected
pip/sentry-sdk 2.72.0 UnknownUnknown
npm/@next/env 16.3.8 🟢 6.1
Details
CheckScoreReason
Maintained🟢 1030 commit(s) and 0 issue activity found in the last 90 days -- score normalized to 10
Code-Review🟢 8Found 26/30 approved changesets -- score normalized to 8
Dangerous-Workflow🟢 10no dangerous workflow patterns detected
CII-Best-Practices⚠️ 0no effort to earn an OpenSSF best practices badge detected
Token-Permissions⚠️ 0detected GitHub workflow tokens with excessive permissions
License🟢 10license file detected
Security-Policy🟢 10security policy file detected
Signed-Releases⚠️ -1no releases found
Branch-Protection⚠️ -1internal error: error during branchesHandler.setup: internal error: githubv4.Query: Resource not accessible by integration
Binary-Artifacts⚠️ 0binaries present in source code
Packaging🟢 10packaging workflow detected
Pinned-Dependencies🟢 4dependency not pinned by hash detected -- score normalized to 4
Fuzzing🟢 10project is fuzzed
SAST⚠️ 0SAST tool is not run on all commits -- score normalized to 0
npm/next 16.3.8 🟢 6.1
Details
CheckScoreReason
Maintained🟢 1030 commit(s) and 0 issue activity found in the last 90 days -- score normalized to 10
Code-Review🟢 8Found 26/30 approved changesets -- score normalized to 8
Dangerous-Workflow🟢 10no dangerous workflow patterns detected
CII-Best-Practices⚠️ 0no effort to earn an OpenSSF best practices badge detected
Token-Permissions⚠️ 0detected GitHub workflow tokens with excessive permissions
License🟢 10license file detected
Security-Policy🟢 10security policy file detected
Signed-Releases⚠️ -1no releases found
Branch-Protection⚠️ -1internal error: error during branchesHandler.setup: internal error: githubv4.Query: Resource not accessible by integration
Binary-Artifacts⚠️ 0binaries present in source code
Packaging🟢 10packaging workflow detected
Pinned-Dependencies🟢 4dependency not pinned by hash detected -- score normalized to 4
Fuzzing🟢 10project is fuzzed
SAST⚠️ 0SAST tool is not run on all commits -- score normalized to 0
npm/proxy-addr 2.0.8 🟢 7.3
Details
CheckScoreReason
Maintained🟢 810 commit(s) and 0 issue activity found in the last 90 days -- score normalized to 8
Binary-Artifacts🟢 10no binaries found in the repo
Dependency-Update-Tool🟢 10update tool detected
Code-Review🟢 5Found 4/7 approved changesets -- score normalized to 5
Dangerous-Workflow🟢 10no dangerous workflow patterns detected
Pinned-Dependencies🟢 5dependency not pinned by hash detected -- score normalized to 5
Token-Permissions🟢 10GitHub workflow tokens follow principle of least privilege
Vulnerabilities🟢 100 existing vulnerabilities detected
CII-Best-Practices⚠️ 0no effort to earn an OpenSSF best practices badge detected
License🟢 10license file detected
Signed-Releases⚠️ -1no releases found
SAST🟢 8SAST tool detected but not run on all commits
Branch-Protection⚠️ 0branch protection not enabled on development/release branches
Fuzzing⚠️ 0project is not fuzzed
Packaging⚠️ -1packaging workflow not detected
Security-Policy🟢 9security policy file detected
Contributors🟢 10project has 6 contributing companies or organizations
CI-Tests🟢 619 out of 29 merged PRs checked by a CI test -- score normalized to 6
npm/source-map-js 1.2.2 🟢 3.1
Details
CheckScoreReason
Token-Permissions⚠️ -1No tokens found
Code-Review🟢 3Found 9/30 approved changesets -- score normalized to 3
Maintained🟢 54 commit(s) and 2 issue activity found in the last 90 days -- score normalized to 5
Dangerous-Workflow⚠️ -1no workflows found
Packaging⚠️ -1packaging workflow not detected
Binary-Artifacts🟢 10no binaries found in the repo
CII-Best-Practices⚠️ 0no effort to earn an OpenSSF best practices badge detected
Pinned-Dependencies⚠️ -1no dependencies found
Security-Policy⚠️ 0security policy file not detected
License🟢 9license file detected
Signed-Releases⚠️ -1no releases found
Branch-Protection⚠️ 0branch protection not enabled on development/release branches
SAST⚠️ 0SAST tool is not run on all commits -- score normalized to 0
Fuzzing⚠️ 0project is not fuzzed
pip/pydantic 2.14.1 UnknownUnknown
pip/pydantic-core 2.50.1 🟢 6.6
Details
CheckScoreReason
Code-Review🟢 3Found 8/23 approved changesets -- score normalized to 3
Maintained🟢 1030 commit(s) and 9 issue activity found in the last 90 days -- score normalized to 10
Dangerous-Workflow🟢 10no dangerous workflow patterns detected
Binary-Artifacts🟢 10no binaries found in the repo
Token-Permissions⚠️ 0detected GitHub workflow tokens with excessive permissions
CII-Best-Practices⚠️ 0no effort to earn an OpenSSF best practices badge detected
Pinned-Dependencies🟢 8dependency not pinned by hash detected -- score normalized to 8
License🟢 10license file detected
Fuzzing🟢 10project is fuzzed
Signed-Releases⚠️ -1no releases found
Branch-Protection🟢 3branch protection is not maximal on development and all release branches
Security-Policy🟢 10security policy file detected
SAST⚠️ 0SAST tool is not run on all commits -- score normalized to 0
Packaging🟢 10packaging workflow detected
pip/filelock 4.1.1 UnknownUnknown
pip/httpcore2 2.13.1 UnknownUnknown
pip/httpx2 2.13.1 UnknownUnknown
pip/huggingface-hub 2.2.0 🟢 7.1
Details
CheckScoreReason
Code-Review🟢 8Found 24/29 approved changesets -- score normalized to 8
Maintained🟢 1030 commit(s) and 15 issue activity found in the last 90 days -- score normalized to 10
Security-Policy🟢 10security policy file detected
Dangerous-Workflow🟢 10no dangerous workflow patterns detected
Binary-Artifacts🟢 10no binaries found in the repo
Token-Permissions⚠️ 0detected GitHub workflow tokens with excessive permissions
CII-Best-Practices⚠️ 0no effort to earn an OpenSSF best practices badge detected
Pinned-Dependencies🟢 5dependency not pinned by hash detected -- score normalized to 5
License🟢 10license file detected
Fuzzing⚠️ 0project is not fuzzed
Signed-Releases⚠️ -1no releases found
Branch-Protection⚠️ -1internal error: error during branchesHandler.setup: internal error: some github tokens can't read classic branch protection rules: https://github.com/ossf/scorecard-action/blob/main/docs/authentication/fine-grained-auth-token.md
Packaging🟢 10packaging workflow detected
SAST🟢 7SAST tool is not run on all commits -- score normalized to 7
pip/numpy 2.5.4 UnknownUnknown
pip/pycparser 3.11 UnknownUnknown
pip/pydantic 2.14.1 UnknownUnknown
pip/pydantic-core 2.50.1 🟢 6.6
Details
CheckScoreReason
Code-Review🟢 3Found 8/23 approved changesets -- score normalized to 3
Maintained🟢 1030 commit(s) and 9 issue activity found in the last 90 days -- score normalized to 10
Dangerous-Workflow🟢 10no dangerous workflow patterns detected
Binary-Artifacts🟢 10no binaries found in the repo
Token-Permissions⚠️ 0detected GitHub workflow tokens with excessive permissions
CII-Best-Practices⚠️ 0no effort to earn an OpenSSF best practices badge detected
Pinned-Dependencies🟢 8dependency not pinned by hash detected -- score normalized to 8
License🟢 10license file detected
Fuzzing🟢 10project is fuzzed
Signed-Releases⚠️ -1no releases found
Branch-Protection🟢 3branch protection is not maximal on development and all release branches
Security-Policy🟢 10security policy file detected
SAST⚠️ 0SAST tool is not run on all commits -- score normalized to 0
Packaging🟢 10packaging workflow detected
pip/tokenizers 0.23.3 UnknownUnknown
pip/truststore 0.10.4 UnknownUnknown
pip/httptools 0.9.0 UnknownUnknown
pip/narwhals 2.27.1 UnknownUnknown
pip/numpy 2.5.4 UnknownUnknown
pip/aiohttp 3.14.5 UnknownUnknown
pip/black 26.10.1 UnknownUnknown
pip/faker 40.43.0 🟢 5.3
Details
CheckScoreReason
Code-Review🟢 3Found 9/27 approved changesets -- score normalized to 3
Dangerous-Workflow🟢 10no dangerous workflow patterns detected
Maintained🟢 1030 commit(s) and 1 issue activity found in the last 90 days -- score normalized to 10
Packaging⚠️ -1packaging workflow not detected
Security-Policy🟢 4security policy file detected
Token-Permissions🟢 9detected GitHub workflow tokens with excessive permissions
Binary-Artifacts🟢 10no binaries found in the repo
Pinned-Dependencies⚠️ 0dependency not pinned by hash detected -- score normalized to 0
CII-Best-Practices⚠️ 0no effort to earn an OpenSSF best practices badge detected
License🟢 10license file detected
Fuzzing⚠️ 0project is not fuzzed
Branch-Protection⚠️ 0branch protection not enabled on development/release branches
Signed-Releases⚠️ -1no releases found
SAST⚠️ 0SAST tool is not run on all commits -- score normalized to 0
pip/filelock 4.1.1 UnknownUnknown
pip/huggingface-hub 2.2.0 🟢 7.1
Details
CheckScoreReason
Code-Review🟢 8Found 24/29 approved changesets -- score normalized to 8
Maintained🟢 1030 commit(s) and 15 issue activity found in the last 90 days -- score normalized to 10
Security-Policy🟢 10security policy file detected
Dangerous-Workflow🟢 10no dangerous workflow patterns detected
Binary-Artifacts🟢 10no binaries found in the repo
Token-Permissions⚠️ 0detected GitHub workflow tokens with excessive permissions
CII-Best-Practices⚠️ 0no effort to earn an OpenSSF best practices badge detected
Pinned-Dependencies🟢 5dependency not pinned by hash detected -- score normalized to 5
License🟢 10license file detected
Fuzzing⚠️ 0project is not fuzzed
Signed-Releases⚠️ -1no releases found
Branch-Protection⚠️ -1internal error: error during branchesHandler.setup: internal error: some github tokens can't read classic branch protection rules: https://github.com/ossf/scorecard-action/blob/main/docs/authentication/fine-grained-auth-token.md
Packaging🟢 10packaging workflow detected
SAST🟢 7SAST tool is not run on all commits -- score normalized to 7
pip/json5 0.17.3 UnknownUnknown
pip/jsonpatch 1.35 🟢 3.3
Details
CheckScoreReason
Code-Review🟢 5Found 12/21 approved changesets -- score normalized to 5
Pinned-Dependencies⚠️ 0dependency not pinned by hash detected -- score normalized to 0
Dangerous-Workflow🟢 10no dangerous workflow patterns detected
Binary-Artifacts🟢 10no binaries found in the repo
Token-Permissions⚠️ 0detected GitHub workflow tokens with excessive permissions
Packaging⚠️ -1packaging workflow not detected
Maintained⚠️ 00 commit(s) and 0 issue activity found in the last 90 days -- score normalized to 0
CII-Best-Practices⚠️ 0no effort to earn an OpenSSF best practices badge detected
Fuzzing⚠️ 0project is not fuzzed
Signed-Releases⚠️ -1no releases found
Branch-Protection⚠️ 0branch protection not enabled on development/release branches
License🟢 10license file detected
SAST⚠️ 0SAST tool is not run on all commits -- score normalized to 0
Security-Policy⚠️ 0security policy file not detected
pip/jsonpath-ng 1.10.1 UnknownUnknown
pip/jsonpointer 3.2.1 🟢 5
Details
CheckScoreReason
Code-Review🟢 6Found 7/11 approved changesets -- score normalized to 6
Maintained🟢 1023 commit(s) and 2 issue activity found in the last 90 days -- score normalized to 10
Binary-Artifacts🟢 10no binaries found in the repo
Dangerous-Workflow🟢 10no dangerous workflow patterns detected
Token-Permissions⚠️ 0detected GitHub workflow tokens with excessive permissions
Pinned-Dependencies⚠️ 0dependency not pinned by hash detected -- score normalized to 0
CII-Best-Practices⚠️ 0no effort to earn an OpenSSF best practices badge detected
Security-Policy⚠️ 0security policy file not detected
Fuzzing⚠️ 0project is not fuzzed
License🟢 9license file detected
Packaging🟢 10packaging workflow detected
Signed-Releases⚠️ -1no releases found
Branch-Protection🟢 3branch protection is not maximal on development and all release branches
SAST⚠️ 0SAST tool is not run on all commits -- score normalized to 0
pip/langchain-google-genai 4.4.1 UnknownUnknown
pip/langsmith 0.14.7 UnknownUnknown
pip/multidict 7.1.0 UnknownUnknown
pip/narwhals 2.27.1 UnknownUnknown
pip/openai 3.29.0 UnknownUnknown
pip/platformdirs 4.13.0 UnknownUnknown
pip/pyarrow 26.0.0 UnknownUnknown
pip/pycparser 3.11 UnknownUnknown
pip/pydantic 2.14.1 UnknownUnknown
pip/pydantic-core 2.50.1 🟢 6.6
Details
CheckScoreReason
Code-Review🟢 3Found 8/23 approved changesets -- score normalized to 3
Maintained🟢 1030 commit(s) and 9 issue activity found in the last 90 days -- score normalized to 10
Dangerous-Workflow🟢 10no dangerous workflow patterns detected
Binary-Artifacts🟢 10no binaries found in the repo
Token-Permissions⚠️ 0detected GitHub workflow tokens with excessive permissions
CII-Best-Practices⚠️ 0no effort to earn an OpenSSF best practices badge detected
Pinned-Dependencies🟢 8dependency not pinned by hash detected -- score normalized to 8
License🟢 10license file detected
Fuzzing🟢 10project is fuzzed
Signed-Releases⚠️ -1no releases found
Branch-Protection🟢 3branch protection is not maximal on development and all release branches
Security-Policy🟢 10security policy file detected
SAST⚠️ 0SAST tool is not run on all commits -- score normalized to 0
Packaging🟢 10packaging workflow detected
pip/tokenizers 0.23.3 UnknownUnknown
npm/@next/env 16.3.8 🟢 6.1
Details
CheckScoreReason
Maintained🟢 1030 commit(s) and 0 issue activity found in the last 90 days -- score normalized to 10
Code-Review🟢 8Found 26/30 approved changesets -- score normalized to 8
Dangerous-Workflow🟢 10no dangerous workflow patterns detected
CII-Best-Practices⚠️ 0no effort to earn an OpenSSF best practices badge detected
Token-Permissions⚠️ 0detected GitHub workflow tokens with excessive permissions
License🟢 10license file detected
Security-Policy🟢 10security policy file detected
Signed-Releases⚠️ -1no releases found
Branch-Protection⚠️ -1internal error: error during branchesHandler.setup: internal error: githubv4.Query: Resource not accessible by integration
Binary-Artifacts⚠️ 0binaries present in source code
Packaging🟢 10packaging workflow detected
Pinned-Dependencies🟢 4dependency not pinned by hash detected -- score normalized to 4
Fuzzing🟢 10project is fuzzed
SAST⚠️ 0SAST tool is not run on all commits -- score normalized to 0
npm/next 16.3.8 🟢 6.1
Details
CheckScoreReason
Maintained🟢 1030 commit(s) and 0 issue activity found in the last 90 days -- score normalized to 10
Code-Review🟢 8Found 26/30 approved changesets -- score normalized to 8
Dangerous-Workflow🟢 10no dangerous workflow patterns detected
CII-Best-Practices⚠️ 0no effort to earn an OpenSSF best practices badge detected
Token-Permissions⚠️ 0detected GitHub workflow tokens with excessive permissions
License🟢 10license file detected
Security-Policy🟢 10security policy file detected
Signed-Releases⚠️ -1no releases found
Branch-Protection⚠️ -1internal error: error during branchesHandler.setup: internal error: githubv4.Query: Resource not accessible by integration
Binary-Artifacts⚠️ 0binaries present in source code
Packaging🟢 10packaging workflow detected
Pinned-Dependencies🟢 4dependency not pinned by hash detected -- score normalized to 4
Fuzzing🟢 10project is fuzzed
SAST⚠️ 0SAST tool is not run on all commits -- score normalized to 0
npm/proxy-addr 2.0.8 🟢 7.3
Details
CheckScoreReason
Maintained🟢 810 commit(s) and 0 issue activity found in the last 90 days -- score normalized to 8
Binary-Artifacts🟢 10no binaries found in the repo
Dependency-Update-Tool🟢 10update tool detected
Code-Review🟢 5Found 4/7 approved changesets -- score normalized to 5
Dangerous-Workflow🟢 10no dangerous workflow patterns detected
Pinned-Dependencies🟢 5dependency not pinned by hash detected -- score normalized to 5
Token-Permissions🟢 10GitHub workflow tokens follow principle of least privilege
Vulnerabilities🟢 100 existing vulnerabilities detected
CII-Best-Practices⚠️ 0no effort to earn an OpenSSF best practices badge detected
License🟢 10license file detected
Signed-Releases⚠️ -1no releases found
SAST🟢 8SAST tool detected but not run on all commits
Branch-Protection⚠️ 0branch protection not enabled on development/release branches
Fuzzing⚠️ 0project is not fuzzed
Packaging⚠️ -1packaging workflow not detected
Security-Policy🟢 9security policy file detected
Contributors🟢 10project has 6 contributing companies or organizations
CI-Tests🟢 619 out of 29 merged PRs checked by a CI test -- score normalized to 6
npm/source-map-js 1.2.2 🟢 3.1
Details
CheckScoreReason
Token-Permissions⚠️ -1No tokens found
Code-Review🟢 3Found 9/30 approved changesets -- score normalized to 3
Maintained🟢 54 commit(s) and 2 issue activity found in the last 90 days -- score normalized to 5
Dangerous-Workflow⚠️ -1no workflows found
Packaging⚠️ -1packaging workflow not detected
Binary-Artifacts🟢 10no binaries found in the repo
CII-Best-Practices⚠️ 0no effort to earn an OpenSSF best practices badge detected
Pinned-Dependencies⚠️ -1no dependencies found
Security-Policy⚠️ 0security policy file not detected
License🟢 9license file detected
Signed-Releases⚠️ -1no releases found
Branch-Protection⚠️ 0branch protection not enabled on development/release branches
SAST⚠️ 0SAST tool is not run on all commits -- score normalized to 0
Fuzzing⚠️ 0project is not fuzzed
pip/httptools 0.8.0 UnknownUnknown
pip/aiohttp 3.14.5 UnknownUnknown
pip/httptools 0.9.0 UnknownUnknown
pip/multidict 7.1.0 UnknownUnknown
pip/numpy 2.5.4 UnknownUnknown
pip/pycparser 3.11 UnknownUnknown
pip/pydantic 2.14.1 UnknownUnknown
pip/pydantic-core 2.50.1 🟢 6.6
Details
CheckScoreReason
Code-Review🟢 3Found 8/23 approved changesets -- score normalized to 3
Maintained🟢 1030 commit(s) and 9 issue activity found in the last 90 days -- score normalized to 10
Dangerous-Workflow🟢 10no dangerous workflow patterns detected
Binary-Artifacts🟢 10no binaries found in the repo
Token-Permissions⚠️ 0detected GitHub workflow tokens with excessive permissions
CII-Best-Practices⚠️ 0no effort to earn an OpenSSF best practices badge detected
Pinned-Dependencies🟢 8dependency not pinned by hash detected -- score normalized to 8
License🟢 10license file detected
Fuzzing🟢 10project is fuzzed
Signed-Releases⚠️ -1no releases found
Branch-Protection🟢 3branch protection is not maximal on development and all release branches
Security-Policy🟢 10security policy file detected
SAST⚠️ 0SAST tool is not run on all commits -- score normalized to 0
Packaging🟢 10packaging workflow detected
pip/sentry-sdk 2.72.0 UnknownUnknown
pip/httptools 0.9.0 UnknownUnknown
pip/narwhals 2.27.1 UnknownUnknown
pip/numpy 2.5.4 UnknownUnknown
pip/aiohttp 3.14.5 UnknownUnknown
pip/black 26.10.1 UnknownUnknown
pip/faker 40.43.0 🟢 5.3
Details
CheckScoreReason
Code-Review🟢 3Found 9/27 approved changesets -- score normalized to 3
Dangerous-Workflow🟢 10no dangerous workflow patterns detected
Maintained🟢 1030 commit(s) and 1 issue activity found in the last 90 days -- score normalized to 10
Packaging⚠️ -1packaging workflow not detected
Security-Policy🟢 4security policy file detected
Token-Permissions🟢 9detected GitHub workflow tokens with excessive permissions
Binary-Artifacts🟢 10no binaries found in the repo
Pinned-Dependencies⚠️ 0dependency not pinned by hash detected -- score normalized to 0
CII-Best-Practices⚠️ 0no effort to earn an OpenSSF best practices badge detected
License🟢 10license file detected
Fuzzing⚠️ 0project is not fuzzed
Branch-Protection⚠️ 0branch protection not enabled on development/release branches
Signed-Releases⚠️ -1no releases found
SAST⚠️ 0SAST tool is not run on all commits -- score normalized to 0
pip/filelock 4.1.1 UnknownUnknown
pip/huggingface-hub 2.2.0 🟢 7.1
Details
CheckScoreReason
Code-Review🟢 8Found 24/29 approved changesets -- score normalized to 8
Maintained🟢 1030 commit(s) and 15 issue activity found in the last 90 days -- score normalized to 10
Security-Policy🟢 10security policy file detected
Dangerous-Workflow🟢 10no dangerous workflow patterns detected
Binary-Artifacts🟢 10no binaries found in the repo
Token-Permissions⚠️ 0detected GitHub workflow tokens with excessive permissions
CII-Best-Practices⚠️ 0no effort to earn an OpenSSF best practices badge detected
Pinned-Dependencies🟢 5dependency not pinned by hash detected -- score normalized to 5
License🟢 10license file detected
Fuzzing⚠️ 0project is not fuzzed
Signed-Releases⚠️ -1no releases found
Branch-Protection⚠️ -1internal error: error during branchesHandler.setup: internal error: some github tokens can't read classic branch protection rules: https://github.com/ossf/scorecard-action/blob/main/docs/authentication/fine-grained-auth-token.md
Packaging🟢 10packaging workflow detected
SAST🟢 7SAST tool is not run on all commits -- score normalized to 7
pip/json5 0.17.3 UnknownUnknown
pip/jsonpatch 1.35 🟢 3.3
Details
CheckScoreReason
Code-Review🟢 5Found 12/21 approved changesets -- score normalized to 5
Pinned-Dependencies⚠️ 0dependency not pinned by hash detected -- score normalized to 0
Dangerous-Workflow🟢 10no dangerous workflow patterns detected
Binary-Artifacts🟢 10no binaries found in the repo
Token-Permissions⚠️ 0detected GitHub workflow tokens with excessive permissions
Packaging⚠️ -1packaging workflow not detected
Maintained⚠️ 00 commit(s) and 0 issue activity found in the last 90 days -- score normalized to 0
CII-Best-Practices⚠️ 0no effort to earn an OpenSSF best practices badge detected
Fuzzing⚠️ 0project is not fuzzed
Signed-Releases⚠️ -1no releases found
Branch-Protection⚠️ 0branch protection not enabled on development/release branches
License🟢 10license file detected
SAST⚠️ 0SAST tool is not run on all commits -- score normalized to 0
Security-Policy⚠️ 0security policy file not detected
pip/jsonpath-ng 1.10.1 UnknownUnknown
pip/jsonpointer 3.2.1 🟢 5
Details
CheckScoreReason
Code-Review🟢 6Found 7/11 approved changesets -- score normalized to 6
Maintained🟢 1023 commit(s) and 2 issue activity found in the last 90 days -- score normalized to 10
Binary-Artifacts🟢 10no binaries found in the repo
Dangerous-Workflow🟢 10no dangerous workflow patterns detected
Token-Permissions⚠️ 0detected GitHub workflow tokens with excessive permissions
Pinned-Dependencies⚠️ 0dependency not pinned by hash detected -- score normalized to 0
CII-Best-Practices⚠️ 0no effort to earn an OpenSSF best practices badge detected
Security-Policy⚠️ 0security policy file not detected
Fuzzing⚠️ 0project is not fuzzed
License🟢 9license file detected
Packaging🟢 10packaging workflow detected
Signed-Releases⚠️ -1no releases found
Branch-Protection🟢 3branch protection is not maximal on development and all release branches
SAST⚠️ 0SAST tool is not run on all commits -- score normalized to 0
pip/langchain-google-genai 4.4.1 UnknownUnknown
pip/langsmith 0.14.7 UnknownUnknown
pip/multidict 7.1.0 UnknownUnknown
pip/narwhals 2.27.1 UnknownUnknown
pip/openai 3.29.0 UnknownUnknown
pip/platformdirs 4.13.0 UnknownUnknown
pip/pyarrow 26.0.0 UnknownUnknown
pip/pycparser 3.11 UnknownUnknown
pip/pydantic 2.14.1 UnknownUnknown
pip/pydantic-core 2.50.1 🟢 6.6
Details
CheckScoreReason
Code-Review🟢 3Found 8/23 approved changesets -- score normalized to 3
Maintained🟢 1030 commit(s) and 9 issue activity found in the last 90 days -- score normalized to 10
Dangerous-Workflow🟢 10no dangerous workflow patterns detected
Binary-Artifacts🟢 10no binaries found in the repo
Token-Permissions⚠️ 0detected GitHub workflow tokens with excessive permissions
CII-Best-Practices⚠️ 0no effort to earn an OpenSSF best practices badge detected
Pinned-Dependencies🟢 8dependency not pinned by hash detected -- score normalized to 8
License🟢 10license file detected
Fuzzing🟢 10project is fuzzed
Signed-Releases⚠️ -1no releases found
Branch-Protection🟢 3branch protection is not maximal on development and all release branches
Security-Policy🟢 10security policy file detected
SAST⚠️ 0SAST tool is not run on all commits -- score normalized to 0
Packaging🟢 10packaging workflow detected
pip/tokenizers 0.23.3 UnknownUnknown
pip/filelock 4.1.1 UnknownUnknown
pip/httpcore2 2.13.1 UnknownUnknown
pip/httpx2 2.13.1 UnknownUnknown
pip/huggingface-hub 2.2.0 🟢 7.1
Details
CheckScoreReason
Code-Review🟢 8Found 24/29 approved changesets -- score normalized to 8
Maintained🟢 1030 commit(s) and 15 issue activity found in the last 90 days -- score normalized to 10
Security-Policy🟢 10security policy file detected
Dangerous-Workflow🟢 10no dangerous workflow patterns detected
Binary-Artifacts🟢 10no binaries found in the repo
Token-Permissions⚠️ 0detected GitHub workflow tokens with excessive permissions
CII-Best-Practices⚠️ 0no effort to earn an OpenSSF best practices badge detected
Pinned-Dependencies🟢 5dependency not pinned by hash detected -- score normalized to 5
License🟢 10license file detected
Fuzzing⚠️ 0project is not fuzzed
Signed-Releases⚠️ -1no releases found
Branch-Protection⚠️ -1internal error: error during branchesHandler.setup: internal error: some github tokens can't read classic branch protection rules: https://github.com/ossf/scorecard-action/blob/main/docs/authentication/fine-grained-auth-token.md
Packaging🟢 10packaging workflow detected
SAST🟢 7SAST tool is not run on all commits -- score normalized to 7
pip/numpy 2.5.4 UnknownUnknown
pip/pycparser 3.11 UnknownUnknown
pip/pydantic 2.14.1 UnknownUnknown
pip/pydantic-core 2.50.1 🟢 6.6
Details
CheckScoreReason
Code-Review🟢 3Found 8/23 approved changesets -- score normalized to 3
Maintained🟢 1030 commit(s) and 9 issue activity found in the last 90 days -- score normalized to 10
Dangerous-Workflow🟢 10no dangerous workflow patterns detected
Binary-Artifacts🟢 10no binaries found in the repo
Token-Permissions⚠️ 0detected GitHub workflow tokens with excessive permissions
CII-Best-Practices⚠️ 0no effort to earn an OpenSSF best practices badge detected
Pinned-Dependencies🟢 8dependency not pinned by hash detected -- score normalized to 8
License🟢 10license file detected
Fuzzing🟢 10project is fuzzed
Signed-Releases⚠️ -1no releases found
Branch-Protection🟢 3branch protection is not maximal on development and all release branches
Security-Policy🟢 10security policy file detected
SAST⚠️ 0SAST tool is not run on all commits -- score normalized to 0
Packaging🟢 10packaging workflow detected
pip/tokenizers 0.23.3 UnknownUnknown
pip/truststore 0.10.4 UnknownUnknown
pip/pydantic 2.14.1 UnknownUnknown
pip/pydantic-core 2.50.1 🟢 6.6
Details
CheckScoreReason
Code-Review🟢 3Found 8/23 approved changesets -- score normalized to 3
Maintained🟢 1030 commit(s) and 9 issue activity found in the last 90 days -- score normalized to 10
Dangerous-Workflow🟢 10no dangerous workflow patterns detected
Binary-Artifacts🟢 10no binaries found in the repo
Token-Permissions⚠️ 0detected GitHub workflow tokens with excessive permissions
CII-Best-Practices⚠️ 0no effort to earn an OpenSSF best practices badge detected
Pinned-Dependencies🟢 8dependency not pinned by hash detected -- score normalized to 8
License🟢 10license file detected
Fuzzing🟢 10project is fuzzed
Signed-Releases⚠️ -1no releases found
Branch-Protection🟢 3branch protection is not maximal on development and all release branches
Security-Policy🟢 10security policy file detected
SAST⚠️ 0SAST tool is not run on all commits -- score normalized to 0
Packaging🟢 10packaging workflow detected

Scanned Files

  • apps/backend/requirements.txt
  • apps/web/package.json
  • docs/guides/requirements.txt
  • docs/knowledge_prototypes/mcp-servers/mcp-alexnet/requirements.txt
  • docs/knowledge_prototypes/universal-automation-service/requirements.txt
  • package-lock.json
  • requirements.txt
  • uv.lock

@github-actions

Copy link
Copy Markdown
Contributor

✅ E2E Test Results: ALL TESTS PASSED

Metric Value
Status 🟢 GREEN
Total Tests
Passed 16
Failed
Deployment https://v0-uvai-i5ednka2f-garv1.vercel.app
Test Output
 on every request without persisting it�[32m 1�[2mms�[22m�[39m
 �[32m✓�[39m tests/e2e/pipeline.test.ts�[2m > �[22mEventRelay E2E — Live Deployment�[2m > �[22mTemplate Gallery�[2m > �[22mhomepage returns 200 with HTML�[32m 109�[2mms�[22m�[39m
 �[32m✓�[39m tests/e2e/pipeline.test.ts�[2m > �[22mEventRelay E2E — Live Deployment�[2m > �[22mTemplate Gallery�[2m > �[22mfeatures page contains template/workflow markup�[32m 134�[2mms�[22m�[39m
 �[32m✓�[39m tests/e2e/pipeline.test.ts�[2m > �[22mEventRelay E2E — Live Deployment�[2m > �[22mTemplate Gallery�[2m > �[22mfeatures page surfaces at least 5 workflow/template indicators�[32m 110�[2mms�[22m�[39m
 �[32m✓�[39m tests/e2e/pipeline.test.ts�[2m > �[22mEventRelay E2E — Live Deployment�[2m > �[22mVideo Pack Pipeline�[2m > �[22mPOST /api/video/pack accepts a YouTube URL without hanging�[33m 2042�[2mms�[22m�[39m
 �[32m✓�[39m tests/e2e/pipeline.test.ts�[2m > �[22mEventRelay E2E — Live Deployment�[2m > �[22mVideo Pack Pipeline�[2m > �[22mGET /api/video/pack resolves to a ready pack with evidence lineage�[33m 640�[2mms�[22m�[39m
 �[32m✓�[39m tests/e2e/pipeline.test.ts�[2m > �[22mEventRelay E2E — Live Deployment�[2m > �[22mError Handling�[2m > �[22mmissing URL returns 400, not a hang�[32m 85�[2mms�[22m�[39m
 �[32m✓�[39m tests/e2e/pipeline.test.ts�[2m > �[22mEventRelay E2E — Live Deployment�[2m > �[22mError Handling�[2m > �[22minvalid URL returns 400 quickly, not a hang�[32m 84�[2mms�[22m�[39m
 �[32m✓�[39m tests/e2e/pipeline.test.ts�[2m > �[22mEventRelay E2E — Live Deployment�[2m > �[22mError Handling�[2m > �[22mPOST /api/video/pack with no body returns 400�[32m 63�[2mms�[22m�[39m
 �[32m✓�[39m tests/e2e/pipeline.test.ts�[2m > �[22mEventRelay E2E — Live Deployment�[2m > �[22mDashboard�[2m > �[22m/dashboard returns 200�[32m 138�[2mms�[22m�[39m
 �[32m✓�[39m tests/e2e/pipeline.test.ts�[2m > �[22mEventRelay E2E — Live Deployment�[2m > �[22mDashboard�[2m > �[22m/dashboard contains agent or pipeline visualization markup�[32m 104�[2mms�[22m�[39m
 �[32m✓�[39m tests/e2e/pipeline.test.ts�[2m > �[22mEventRelay E2E — Live Deployment�[2m > �[22mAPI Health�[2m > �[22mGET /api returns a response (not 404)�[32m 245�[2mms�[22m�[39m
 �[32m✓�[39m tests/e2e/pipeline.test.ts�[2m > �[22mEventRelay E2E — Live Deployment�[2m > �[22mAPI Health�[2m > �[22mretired /api/pipeline routes are gone (no pipeline served)�[32m 58�[2mms�[22m�[39m
 �[32m✓�[39m tests/e2e/pipeline.test.ts�[2m > �[22mEventRelay E2E — Live Deployment�[2m > �[22mStatic Assets�[2m > �[22mhomepage has proper meta tags�[32m 98�[2mms�[22m�[39m
 �[32m✓�[39m tests/e2e/pipeline.test.ts�[2m > �[22mEventRelay E2E — Live Deployment�[2m > �[22mStatic Assets�[2m > �[22m/features page returns 200�[32m 103�[2mms�[22m�[39m

�[2m Test Files �[22m �[1m�[32m1 passed�[39m�[22m�[90m (1)�[39m
�[2m      Tests �[22m �[1m�[32m16 passed�[39m�[22m�[90m (16)�[39m
�[2m   Start at �[22m 12:59:58
�[2m   Duration �[22m 5.75s�[2m (transform 73ms, setup 0ms, import 88ms, tests 5.52s, environment 0ms)�[22m


Incorporates #2353 and #2358 onto the current security branch without their stale branch trees.
@github-actions

Copy link
Copy Markdown
Contributor

🔍 PR Validation

⚠️ Large PR detected (515 lines changed)

@github-actions

Copy link
Copy Markdown
Contributor

✅ E2E Test Results: ALL TESTS PASSED

Metric Value
Status 🟢 GREEN
Total Tests
Passed 16
Failed
Deployment https://v0-uvai-1dpvn2vd1-garv1.vercel.app
Test Output
n every request without persisting it�[32m 1�[2mms�[22m�[39m
 �[32m✓�[39m tests/e2e/pipeline.test.ts�[2m > �[22mEventRelay E2E — Live Deployment�[2m > �[22mTemplate Gallery�[2m > �[22mhomepage returns 200 with HTML�[32m 170�[2mms�[22m�[39m
 �[32m✓�[39m tests/e2e/pipeline.test.ts�[2m > �[22mEventRelay E2E — Live Deployment�[2m > �[22mTemplate Gallery�[2m > �[22mfeatures page contains template/workflow markup�[32m 135�[2mms�[22m�[39m
 �[32m✓�[39m tests/e2e/pipeline.test.ts�[2m > �[22mEventRelay E2E — Live Deployment�[2m > �[22mTemplate Gallery�[2m > �[22mfeatures page surfaces at least 5 workflow/template indicators�[32m 221�[2mms�[22m�[39m
 �[32m✓�[39m tests/e2e/pipeline.test.ts�[2m > �[22mEventRelay E2E — Live Deployment�[2m > �[22mVideo Pack Pipeline�[2m > �[22mPOST /api/video/pack accepts a YouTube URL without hanging�[33m 2053�[2mms�[22m�[39m
 �[32m✓�[39m tests/e2e/pipeline.test.ts�[2m > �[22mEventRelay E2E — Live Deployment�[2m > �[22mVideo Pack Pipeline�[2m > �[22mGET /api/video/pack resolves to a ready pack with evidence lineage�[33m 715�[2mms�[22m�[39m
 �[32m✓�[39m tests/e2e/pipeline.test.ts�[2m > �[22mEventRelay E2E — Live Deployment�[2m > �[22mError Handling�[2m > �[22mmissing URL returns 400, not a hang�[32m 102�[2mms�[22m�[39m
 �[32m✓�[39m tests/e2e/pipeline.test.ts�[2m > �[22mEventRelay E2E — Live Deployment�[2m > �[22mError Handling�[2m > �[22minvalid URL returns 400 quickly, not a hang�[32m 104�[2mms�[22m�[39m
 �[32m✓�[39m tests/e2e/pipeline.test.ts�[2m > �[22mEventRelay E2E — Live Deployment�[2m > �[22mError Handling�[2m > �[22mPOST /api/video/pack with no body returns 400�[32m 96�[2mms�[22m�[39m
 �[32m✓�[39m tests/e2e/pipeline.test.ts�[2m > �[22mEventRelay E2E — Live Deployment�[2m > �[22mDashboard�[2m > �[22m/dashboard returns 200�[32m 172�[2mms�[22m�[39m
 �[32m✓�[39m tests/e2e/pipeline.test.ts�[2m > �[22mEventRelay E2E — Live Deployment�[2m > �[22mDashboard�[2m > �[22m/dashboard contains agent or pipeline visualization markup�[32m 110�[2mms�[22m�[39m
 �[32m✓�[39m tests/e2e/pipeline.test.ts�[2m > �[22mEventRelay E2E — Live Deployment�[2m > �[22mAPI Health�[2m > �[22mGET /api returns a response (not 404)�[32m 265�[2mms�[22m�[39m
 �[32m✓�[39m tests/e2e/pipeline.test.ts�[2m > �[22mEventRelay E2E — Live Deployment�[2m > �[22mAPI Health�[2m > �[22mretired /api/pipeline routes are gone (no pipeline served)�[32m 60�[2mms�[22m�[39m
 �[32m✓�[39m tests/e2e/pipeline.test.ts�[2m > �[22mEventRelay E2E — Live Deployment�[2m > �[22mStatic Assets�[2m > �[22mhomepage has proper meta tags�[32m 96�[2mms�[22m�[39m
 �[32m✓�[39m tests/e2e/pipeline.test.ts�[2m > �[22mEventRelay E2E — Live Deployment�[2m > �[22mStatic Assets�[2m > �[22m/features page returns 200�[32m 128�[2mms�[22m�[39m

�[2m Test Files �[22m �[1m�[32m1 passed�[39m�[22m�[90m (1)�[39m
�[2m      Tests �[22m �[1m�[32m16 passed�[39m�[22m�[90m (16)�[39m
�[2m   Start at �[22m 13:52:30
�[2m   Duration �[22m 6.33s�[2m (transform 52ms, setup 0ms, import 66ms, tests 6.13s, environment 0ms)�[22m


This branch was successfully deployed

1 active deployment
Preview — 1d9f72d7 Deployed Oct 12, 2026 by vercel[bot]
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

ci/cd documentation Improvements or additions to documentation python

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Bootstrap image remediation without closing the parent backlog

1 participant