Skip to content

feat(quality): lean deterministic gate model (proof) - #202

Closed
Prekzursil wants to merge 221 commits into
mainfrom
quality/lean-gates
Closed

Prekzursil wants to merge 221 commits into
mainfrom
quality/lean-gates

Conversation

@Prekzursil

@Prekzursil Prekzursil commented Jun 16, 2026 •

Copy link
Copy Markdown
Owner

Lean deterministic quality-gate model (proof)

Replaces the SaaS / Quality-Zero-Platform layer with 6 deterministic, local-first
gates behind one CI check quality
. Every tool is version-pinned with an in-repo
config; no SaaS, no baselines, no auto-fetched rulesets.

Honest proof: gates 1, 4, 5 are at literal zero; gates 2 (types) and 6 (deps)
have residuals that need a human decision
(see below). This is a partial proof by
design — the cleaning procedure stops rather than grind judgment-heavy residuals.

Pinned tool versions (latest stable @ 2026-06-16)

Tool Version
ruff 0.15.17
oxlint / @oxlint/migrate 1.70.0 (pre-commit mirror v1.69.0)
biome 2.5.0
basedpyright 1.39.8 (typeCheckingMode=standard)
gitleaks 8.30.1
osv-scanner 2.3.8
opengrep (CI) / semgrep (local) 1.22.0 / 1.166.0
pre-commit 4.6.0
Rust toolchain 1.96.0 (rust-toolchain.toml)

JS/TS formatter = Biome (format-only), not oxfmt — oxfmt is still beta (0.55.0, no GA).

Per-gate status

Gate Status
1 lint+format+sec-lint (ruff / oxlint / biome / rustfmt+clippy) ✅ 0
2 types (tsc web+desktop / basedpyright) tsc ✅ 0 · basedpyright = 182 errors — NEEDS DECISION
3 tests+coverage (pytest 100% branch / vitest 100%) web vitest ✅ 100% · pytest+desktop run on CI (see notes)
4 SAST (opengrep curated .quality/opengrep/) ✅ 0
5 secrets (gitleaks .gitleaks.toml) ✅ 0 (current tree)
6 deps (osv-scanner) 76 known CVEs — NEEDS DECISION

NEEDS-DECISION items

  1. Gate 2 — basedpyright: 182 errors. ~60-65% trace to one pattern
    (_owner_fields() returning a generic dict **-unpacked into typed models) +
    return-type tightening; ~30% is third-party-stub noise (Celery .conf/.task,
    SQLModel column.desc()); ~5% genuine null-safety bugs in billing_api.py.
    Decide: fix the _owner_fields typing + null guards vs add per-module overrides
    for stub noise.
  2. Gate 6 — osv-scanner: 76 CVEs (37 npm + 21 PyPI + 18 crates.io). Runtime:
    pyjwt 2.9.0 (7, incl. alg-bypass), python-multipart 0.0.9 (8 DoS). Dev/E2E
    stack (vite/undici/esbuild/storybook/vitest) needs SemVer-major bumps. No blanket
    ignores added — osv-scanner.toml is documented but empty. Decide: upgrade vs
    per-vuln accept-with-reason.
  3. Gate 3 — desktop vitest branch threshold raised 0→100, surfacing ~33
    uncovered Tauri IPC/updater branches in apps/desktop/src/main.ts. Decide: write
    IPC-mock branch tests vs /* v8 ignore */ the platform branches.

Notes

  • Python tests + coverage and desktop vitest run green on Linux CI; locally on
    Windows a few integration tests hit WinError 32 file-locking and the render
    pipeline (environmental, not logic). The conftest SQLite URL was made cross-platform.
  • react-hooks/exhaustive-deps set off (advisory; auto-fix risks render loops).
  • CodeQL kept (public repo) but rewired from the QZP wrapper to the native
    github/codeql-action with pinned SHAs.

Salvaged

  • fdd0640 rate-limiter per-test isolation (resolved a conflict to keep async _enforce_policy).
  • 4a90b6a npm audit fix. (Did not bring 8d3ce2e secret-forward — moot.)

Created / deleted

  • Created: QUALITY-CHARTER.md, .github/workflows/quality.yml, .pre-commit-config.yaml,
    .quality/charter_check.py, .quality/opengrep/*, .gitleaks.toml, osv-scanner.toml,
    rust-toolchain.toml, apps/web/.oxlintrc.json, apps/desktop/.oxlintrc.json,
    biome.json, pyproject.toml, apps/desktop/src-tauri/Cargo.lock.
  • Deleted (33): sonar/codacy/codecov configs; quality-zero-*, applitools, browserstack,
    chromatic, codecov-analytics, ops-weekly-digest, release-readiness, strict23-preflight,
    branch-protection-audit workflows; their scripts + tests; dead apps/web/.eslintrc.cjs.
  • Dependabot config kept. Branch-protection / GitHub Apps untouched (human step).

charter_check.py enforces that this gate list and quality.yml never diverge.


Summary by cubic

Replaces the SaaS quality layer with six deterministic, local-first gates behind a single quality CI check, with all tools version-pinned and configs in-repo. Adds curated SAST, secrets, and dependency gates; rewires CodeQL to the native action; and removes legacy SaaS workflows.

  • New Features

    • Single quality workflow running gates 1–6: lint/format, types, tests+coverage, SAST, secrets, deps (pinned ruff, oxlint, biome, rustfmt/clippy, opengrep, gitleaks, osv-scanner).
    • In-repo SAST ruleset (.quality/opengrep/*), gitleaks config, and osv-scanner.toml with no blanket ignores.
    • pre-commit setup for auto-fixers; pinned Rust via rust-toolchain.toml; charter/workflow consistency enforced by .quality/charter_check.py.
    • Removed QZP/SaaS workflows and scripts; codeql.yml migrated to github/codeql-action with pinned SHAs; JS/TS linting moved to oxlint + biome.
  • Migration

    • Run locally: pre-commit run --all-files and ensure tests hit 100% coverage (desktop Vitest branches now 100%).
    • Gate 2: decide on resolving 182 basedpyright errors (tighten types/null checks vs. targeted overrides).
    • Gate 6: decide on 76 CVEs from osv-scanner (upgrade vs. per-vuln accept-with-reason).

Written for commit 32d2c88. Summary will update on new commits.

Review in cubic

Prekzursil and others added 30 commits December 6, 2025 07:21
feat: scaffold monorepo layout and api skeleton
chore: add env template and ci pipeline
feat: add faster-whisper backend normalization
feat: add whisper.cpp backend normalization
feat: add subtitle builder and srt/vtt exporters
feat: add whisperx normalization and ass export
feat: add whisperx normalization and ass export
feat: add translation scaffold with srt utilities
feat: add ffmpeg video editing helpers
DariaGrama and others added 13 commits March 30, 2026 05:23
…al/strict23)

Remove the Quality-Zero-Platform layer in favor of lean local gates:
- delete SaaS check scripts (codacy/sonar/sentry/deepscan/visual/required-checks/quality-secrets)
- delete QZP/ops/release-readiness/branch-protection/strict23 scripts + their tests
- delete SaaS workflows (quality-zero-*, applitools, browserstack, chromatic, codecov-analytics, ops-weekly-digest, release-readiness, strict23-preflight, branch-protection-audit)
- delete sonar-project.properties, .codacy.yml, codecov.yml
- replace codeql.yml QZP wrapper with native github/codeql-action (public repo, pinned SHAs)
- trim test_scripts_quality_gates.py to the kept assert_coverage_100 tests
- seed apps/web/.oxlintrc.json (migrated intent of dead .eslintrc.cjs)
- ignore /.tooling-bin/
The module-level policy_limiters singleton accumulated hits across the
entire pytest session, keyed by testclient:/api/v1/assets/upload. On fast
CI runs many upload tests clustered within the 60s window and exhausted the
uploads limiter (30/60s), so later asset upload/download tests received
429 RATE_LIMITED instead of 201/400/413 (4 failures on CI, ordering/timing
dependent — not reproducible on the slower local run).

Add RateLimiter.reset() + reset_all_policy_limiters() and an autouse
conftest fixture that clears limiter state before each test. Test-only
isolation; no runtime behavior change.
Resolves 24 advisories within existing semver ranges (package.json
unchanged). Closes all 4 criticals incl. the Vitest UI-server arbitrary
file read/exec (GHSA-5xrq-8626-4rwp) by bumping vitest 4.0->4.1.9.

Remaining 21 (6 low / 7 moderate / 8 high) require SemVer-major bumps
in the visual-testing/E2E dev stack (Applitools, Chromatic/Storybook,
BrowserStack, vite 7->8) and are handled separately. Web suite: 47/47.
- add root pyproject.toml: ruff 0.15.17 config (E,F,W,I,N,UP,B,C4,SIM; line 120)
  with FastAPI immutable-call allowlist + worker E402 per-file ignore + basedpyright config
- ruff auto-fixed 534 lint issues + reformatted 104 files
- ~22 residual real fixes: ambiguous l->ln (E741), lambda loop-var binding (B023),
  raise ... from exc (B904), contextlib.suppress + collapsed if (SIM), StrEnum (UP042),
  zip(strict=False) (B905); torch F / WhisperModel noqa with reasons
- add rust-toolchain.toml pinning Rust stable 1.96.0 (rustfmt + clippy)
- make test SQLite URLs cross-platform (as_posix) in conftest + 3 worker tests
- drop release-readiness Makefile target + its test (retired layer)
- migrate dead apps/web/.eslintrc.cjs to .oxlintrc.json via @oxlint/migrate, then DELETE it
- oxlint 1.70.0 (correctness category = eslint:recommended-equivalent + react + typescript + import);
  auto-fixed 18 no-useless-escape; web + desktop oxlint = 0
- react-hooks/exhaustive-deps set off (advisory; auto-fix risks render loops; was warn in old eslintrc)
- JS/TS FORMATTER = Biome 2.5.0 format-only (oxfmt not GA: beta 0.55.0) — biome.json format scope, linter disabled
- add apps/desktop/.oxlintrc.json (typescript + import)
- raise desktop vitest branch threshold 0 -> 100 (surfaces Tauri IPC branch gap; see report)
- web vitest 47/47 + coverage 100%; desktop tsc + web tsc clean
…config

- .gitleaks.toml: extend default ruleset; exclude vendored/build/.tooling-bin trees +
  .env.example template; allowlist 2 reasoned test fixtures (idempotency key, empty
  start.sh provider placeholders). gitleaks 8.30.1 working-tree scan = 0.
- osv-scanner.toml (pinned 2.3.8): documented, NO blanket ignores / NO baseline.
  Dep gate currently reports 58 known CVEs (pyjwt/python-multipart runtime +
  npm dev-stack major-bump set) — left RED for a human upgrade-vs-accept decision.
…-zero)

- .quality/opengrep/: curated, in-repo, deterministic ruleset (NOT --config auto)
  distilled from p/python + p/javascript + p/r2c-security-audit:
  python-security.yaml (exec/eval/shell=True/os.system/yaml.load/pickle/weak-hash/
  verify=False/jwt-verify-false), javascript-security.yaml (eval/Function/innerHTML/
  dangerouslySetInnerHTML/child_process.exec/insecure-random-token),
  general-security.yaml (committed private keys, AWS key IDs)
- 18 rules, runs offline; scan of apps/services/packages = 0 findings
- pinned opengrep 1.22.0 (CI) / semgrep 1.166.0 (local, rule-compatible)
- cargo fmt applied to src-tauri (lib.rs line-wrapping)
- cargo clippy --all-targets --all-features -- -D warnings = 0 (verified local rustc 1.91;
  CI pins 1.96 via rust-toolchain.toml)
- commit Cargo.lock for reproducible builds + osv-scanner Rust dep coverage
…, charter

- QUALITY-CHARTER.md: closed 6-gate list + one-in/one-out rule + pinned versions
- .github/workflows/quality.yml: single 'quality' job running pre-commit (gate1+5),
  tsc + basedpyright (gate2), pytest+coverage + vitest+coverage (gate3),
  opengrep (gate4), osv-scanner (gate6), then charter_check.py. Pinned action SHAs.
- .pre-commit-config.yaml: pinned auto-fixers (ruff v0.15.17, oxlint mirror v1.69.0,
  biome v2.5.0, gitleaks v8.30.1) + local cargo fmt/clippy hooks
- .quality/charter_check.py: parses the charter gate table + quality.yml gate steps,
  fails if they diverge (verified both directions)
gitleaks dir mode does not honor .gitignore; add target/ to the path allowlist so
compiled Rust artifacts (false-positive strings) aren't scanned. Current-tree
secrets scan = 0.
@devloai

devloai Bot commented Jun 16, 2026

Copy link
Copy Markdown

Unable to trigger custom agent "Code Reviewer". You have run out of credits 😔
Please upgrade your plan or buy additional credits from the subscription page.

@qodo-code-review

Copy link
Copy Markdown

Qodo reviews are paused for this user.

Troubleshooting steps vary by plan Learn more →

On a Teams plan?
Reviews resume once this user has a paid seat and their Git account is linked in Qodo.
Link Git account →

Using GitHub Enterprise Server, GitLab Self-Managed, or Bitbucket Data Center?
These require an Enterprise plan - Contact us
Contact us →

@codeant-ai

codeant-ai Bot commented Jun 16, 2026

Copy link
Copy Markdown

Skipping CodeAnt AI review — this PR changes more than 100 files, which usually means a migration, codemod, or vendored drop. Line-level review on diffs this large produces duplicate findings on the same rewrite pattern and drowns out anything that actually matters.

If you still want a review, comment @codeant-ai : review. For better signal, consider splitting the PR into smaller chunks.

@coderabbitai

coderabbitai Bot commented Jun 16, 2026

Copy link
Copy Markdown

Important

Review skipped

Too many files!

This PR contains 155 files, which is 5 over the limit of 150.

To get a review, narrow the scope:
• coderabbit review --type committed # exclude uncommitted changes
• coderabbit review --dir # limit to a subdirectory
• coderabbit review --base # compare against a closer base

⚙️ Run configuration

Configuration used: defaults

Review profile: CHILL

Plan: Pro

Run ID: 1e2fa969-e571-4431-b89e-90b7aceee51f

📥 Commits

Reviewing files that changed from the base of the PR and between df95284 and 32d2c88.

⛔ Files ignored due to path filters (2)
  • apps/desktop/src-tauri/Cargo.lock is excluded by !**/*.lock
  • apps/web/package-lock.json is excluded by !**/package-lock.json
📒 Files selected for processing (155)
  • .codacy.yml
  • .github/workflows/applitools-visual.yml
  • .github/workflows/branch-protection-audit.yml
  • .github/workflows/browserstack-e2e.yml
  • .github/workflows/chromatic-playwright.yml
  • .github/workflows/codecov-analytics.yml
  • .github/workflows/codeql.yml
  • .github/workflows/ops-weekly-digest.yml
  • .github/workflows/quality-zero-backlog.yml
  • .github/workflows/quality-zero-gate.yml
  • .github/workflows/quality-zero-platform.yml
  • .github/workflows/quality-zero-remediation.yml
  • .github/workflows/quality.yml
  • .github/workflows/release-readiness.yml
  • .github/workflows/strict23-preflight.yml
  • .gitignore
  • .gitleaks.toml
  • .pre-commit-config.yaml
  • .quality/charter_check.py
  • .quality/opengrep/README.md
  • .quality/opengrep/general-security.yaml
  • .quality/opengrep/javascript-security.yaml
  • .quality/opengrep/python-security.yaml
  • Makefile
  • QUALITY-CHARTER.md
  • apps/api/alembic/env.py
  • apps/api/alembic/versions/2024092601_init_models.py
  • apps/api/alembic/versions/2024092602_add_job_payload.py
  • apps/api/alembic/versions/2024092603_add_projects.py
  • apps/api/alembic/versions/2026022601_hosted_saas_foundation.py
  • apps/api/alembic/versions/2026022602_add_org_invites.py
  • apps/api/alembic/versions/2026030101_next_big_phase_entities.py
  • apps/api/alembic/versions/2026030201_add_org_budget_policy.py
  • apps/api/alembic/versions/2026030202_enterprise_identity_collab_publish.py
  • apps/api/app/api.py
  • apps/api/app/auth_api.py
  • apps/api/app/billing.py
  • apps/api/app/billing_api.py
  • apps/api/app/cleanup.py
  • apps/api/app/collaboration_api.py
  • apps/api/app/config.py
  • apps/api/app/database.py
  • apps/api/app/errors.py
  • apps/api/app/identity_api.py
  • apps/api/app/logging_config.py
  • apps/api/app/main.py
  • apps/api/app/models.py
  • apps/api/app/publish_api.py
  • apps/api/app/rate_limit.py
  • apps/api/app/security.py
  • apps/api/app/share_links.py
  • apps/api/app/storage.py
  • apps/api/tests/conftest.py
  • apps/api/tests/test_assets_upload_validation.py
  • apps/api/tests/test_billing_seats.py
  • apps/api/tests/test_budget_policy.py
  • apps/api/tests/test_delete_flows.py
  • apps/api/tests/test_enterprise_workflows_and_costs.py
  • apps/api/tests/test_hosted_uploads.py
  • apps/api/tests/test_integration_cut_clip.py
  • apps/api/tests/test_integration_jobs.py
  • apps/api/tests/test_job_idempotency.py
  • apps/api/tests/test_org_collaboration.py
  • apps/api/tests/test_project_collaboration.py
  • apps/api/tests/test_publish_jobs.py
  • apps/api/tests/test_rate_limit_policies.py
  • apps/api/tests/test_scim_users_groups.py
  • apps/api/tests/test_scripts_branch_protection_audit.py
  • apps/api/tests/test_scripts_diarization_benchmark_docker.py
  • apps/api/tests/test_scripts_ops_digest.py
  • apps/api/tests/test_scripts_quality_gates.py
  • apps/api/tests/test_scripts_release_readiness_report.py
  • apps/api/tests/test_scripts_run_diarization_benchmarks.py
  • apps/api/tests/test_scripts_strict23_preflight.py
  • apps/api/tests/test_security_auth.py
  • apps/api/tests/test_sso_okta.py
  • apps/api/tests/test_usage_summary.py
  • apps/desktop/.oxlintrc.json
  • apps/desktop/src-tauri/src/lib.rs
  • apps/desktop/src/main.test.ts
  • apps/desktop/src/main.ts
  • apps/desktop/src/styles.css
  • apps/desktop/vitest.config.ts
  • apps/web/.eslintrc.cjs
  • apps/web/.oxlintrc.json
  • apps/web/src/App.billingCollab.test.tsx
  • apps/web/src/App.e2e.test.tsx
  • apps/web/src/App.enterpriseAutomation.test.tsx
  • apps/web/src/App.jobs.test.tsx
  • apps/web/src/App.projects.test.tsx
  • apps/web/src/App.tsx
  • apps/web/src/api/client.ts
  • apps/web/src/components/SettingsModal.tsx
  • apps/web/src/components/ui.tsx
  • apps/web/src/main.tsx
  • apps/web/src/security/url.test.ts
  • apps/web/src/shorts/timeline.test.ts
  • apps/web/src/shorts/timeline.ts
  • apps/web/src/styles.css
  • apps/web/src/subtitles/cues.ts
  • apps/web/src/subtitles/shift.ts
  • apps/web/src/test/setup.ts
  • biome.json
  • codecov.yml
  • docs/QUALITY_GATES_SECRETS.md
  • osv-scanner.toml
  • packages/media-core/src/media_core/diarize/__init__.py
  • packages/media-core/src/media_core/diarize/config.py
  • packages/media-core/src/media_core/diarize/models.py
  • packages/media-core/src/media_core/segment/shorts.py
  • packages/media-core/src/media_core/subtitles/builder.py
  • packages/media-core/src/media_core/subtitles/styled.py
  • packages/media-core/src/media_core/subtitles/vtt.py
  • packages/media-core/src/media_core/transcribe/__init__.py
  • packages/media-core/src/media_core/transcribe/__main__.py
  • packages/media-core/src/media_core/transcribe/backends/faster_whisper.py
  • packages/media-core/src/media_core/transcribe/backends/openai_whisper.py
  • packages/media-core/src/media_core/transcribe/backends/whisper_cpp.py
  • packages/media-core/src/media_core/transcribe/backends/whisper_timestamped.py
  • packages/media-core/src/media_core/transcribe/config.py
  • packages/media-core/src/media_core/transcribe/models.py
  • packages/media-core/src/media_core/transcribe/path_guard.py
  • packages/media-core/src/media_core/translate/__init__.py
  • packages/media-core/src/media_core/translate/srt.py
  • packages/media-core/src/media_core/translate/translator.py
  • packages/media-core/src/media_core/video_edit/ffmpeg.py
  • packages/media-core/tests/test_diarize_assign.py
  • packages/media-core/tests/test_diarize_speechbrain_optional.py
  • packages/media-core/tests/test_subtitle_builder.py
  • packages/media-core/tests/test_subtitle_styled.py
  • packages/media-core/tests/test_transcribe_models.py
  • packages/media-core/tests/test_transcribe_path_guard.py
  • packages/media-core/tests/test_video_edit_ffmpeg.py
  • pyproject.toml
  • rust-toolchain.toml
  • scripts/audit_branch_protection.py
  • scripts/generate_ops_digest.py
  • scripts/quality/check_codacy_zero.py
  • scripts/quality/check_deepscan_zero.py
  • scripts/quality/check_quality_secrets.py
  • scripts/quality/check_required_checks.py
  • scripts/quality/check_sentry_zero.py
  • scripts/quality/check_sonar_zero.py
  • scripts/quality/check_visual_zero.py
  • scripts/release_readiness_report.py
  • scripts/strict23_preflight.py
  • scripts/upsert_ops_digest_issue.py
  • services/worker/groq_client.py
  • services/worker/test_worker_fetch_asset_remote.py
  • services/worker/test_worker_publish_adapters.py
  • services/worker/test_worker_retention.py
  • services/worker/test_worker_retries.py
  • services/worker/test_worker_workflow_pipeline.py
  • services/worker/worker.py
  • sonar-project.properties

You can disable this status message by setting the reviews.review_status to false in the CodeRabbit configuration file.

Use the checkbox below for a quick retry:

  • 🔍 Trigger review
✨ Finishing Touches
🧪 Generate unit tests (beta)
  • Create PR with unit tests
  • Commit unit tests in branch quality/lean-gates

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 and usage tips.

@deepsource-io

deepsource-io Bot commented Jun 16, 2026 •

Copy link
Copy Markdown

DeepSource Code Review

We reviewed changes in df95284...32d2c88 on this pull request. Below is the summary for the review, and you can see the individual issues we found as inline review comments.

See full review on DeepSource ↗

Important

Some issues found as part of this review are outside of the diff in this pull request and aren't shown in the inline review comments due to GitHub's API limitations. You can see those issues on the DeepSource dashboard.

PR Report Card

Overall Grade   Security  

Reliability  

Complexity  

Hygiene  

Code Review Summary

Analyzer Status Updated (UTC) Details
VB.NET Jun 16, 2026 12:19a.m. Review ↗
Terraform Jun 16, 2026 12:19a.m. Review ↗
Swift Jun 16, 2026 12:19a.m. Review ↗
SQL Jun 16, 2026 12:19a.m. Review ↗
Scala Jun 16, 2026 12:19a.m. Review ↗
Shell Jun 16, 2026 12:19a.m. Review ↗
Ruby Jun 16, 2026 12:19a.m. Review ↗
Python Jun 16, 2026 12:19a.m. Review ↗
PowerShell Jun 16, 2026 12:19a.m. Review ↗
Rust Jun 16, 2026 12:19a.m. Review ↗
PHP Jun 16, 2026 12:19a.m. Review ↗
Perl Jun 16, 2026 12:19a.m. Review ↗
Objective-C Jun 16, 2026 12:19a.m. Review ↗
Lua Jun 16, 2026 12:19a.m. Review ↗
Kotlin Jun 16, 2026 12:19a.m. Review ↗
JavaScript Jun 16, 2026 12:19a.m. Review ↗
Java Jun 16, 2026 12:19a.m. Review ↗
Helm Jun 16, 2026 12:19a.m. Review ↗
Groovy Jun 16, 2026 12:19a.m. Review ↗
Go Jun 16, 2026 12:19a.m. Review ↗
Erlang Jun 16, 2026 12:19a.m. Review ↗
Elixir Jun 16, 2026 12:19a.m. Review ↗
C & C++ Jun 16, 2026 12:19a.m. Review ↗
Dart Jun 16, 2026 12:19a.m. Review ↗
Docker Jun 16, 2026 12:19a.m. Review ↗
C# Jun 16, 2026 12:19a.m. Review ↗
Apex Jun 16, 2026 12:19a.m. Review ↗
Ansible Jun 16, 2026 12:19a.m. Review ↗

Important

AI Review is run only on demand for your team. We're only showing results of static analysis review right now. To trigger AI Review, comment @deepsourcebot review on this thread.

@socket-security

Copy link
Copy Markdown

Warning

Review the following alerts detected in dependencies.

According to your organization's Security Policy, it is recommended to resolve "Warn" alerts. Learn more about Socket for GitHub.

Action Severity Alert  (click "▶" to expand/collapse)
Warn High
Obfuscated code: cargo hyper-util is 90.0% likely obfuscated

Confidence: 0.90

Location: Package overview

From: ? → cargo/tauri-plugin-updater@2.10.1 → cargo/tauri@2.11.2 → cargo/hyper-util@0.1.20

ℹ Read more on: This package | This alert | What is obfuscated code?

Next steps: Take a moment to review the security alert above. Review the linked package source code to understand the potential risk. Ensure the package is not malicious before proceeding. If you're unsure how to proceed, reach out to your security team or ask the Socket team for help at support@socket.dev.

Suggestion: Packages should not obfuscate their code. Consider not using packages with obfuscated code.

Mark the package as acceptable risk. To ignore this alert only in this pull request, reply with the comment @SocketSecurity ignore cargo/hyper-util@0.1.20. You can also ignore all packages with @SocketSecurity ignore-all. To ignore an alert for all future pull requests, use Socket's Dashboard to change the triage state of this alert.

Warn High
Obfuscated code: cargo libc is 90.0% likely obfuscated

Confidence: 0.90

Location: Package overview

From: ? → cargo/tauri-plugin-updater@2.10.1 → cargo/tauri-plugin-opener@2.5.4 → cargo/tauri@2.11.2 → cargo/tauri-build@2.6.2 → cargo/tauri-plugin-process@2.3.1 → cargo/libc@0.2.186

ℹ Read more on: This package | This alert | What is obfuscated code?

Next steps: Take a moment to review the security alert above. Review the linked package source code to understand the potential risk. Ensure the package is not malicious before proceeding. If you're unsure how to proceed, reach out to your security team or ask the Socket team for help at support@socket.dev.

Suggestion: Packages should not obfuscate their code. Consider not using packages with obfuscated code.

Mark the package as acceptable risk. To ignore this alert only in this pull request, reply with the comment @SocketSecurity ignore cargo/libc@0.2.186. You can also ignore all packages with @SocketSecurity ignore-all. To ignore an alert for all future pull requests, use Socket's Dashboard to change the triage state of this alert.

Warn High
Obfuscated code: cargo tokio is 90.0% likely obfuscated

Confidence: 0.90

Location: Package overview

From: ? → cargo/tauri-plugin-updater@2.10.1 → cargo/tauri@2.11.2 → cargo/tokio@1.52.3

ℹ Read more on: This package | This alert | What is obfuscated code?

Next steps: Take a moment to review the security alert above. Review the linked package source code to understand the potential risk. Ensure the package is not malicious before proceeding. If you're unsure how to proceed, reach out to your security team or ask the Socket team for help at support@socket.dev.

Suggestion: Packages should not obfuscate their code. Consider not using packages with obfuscated code.

Mark the package as acceptable risk. To ignore this alert only in this pull request, reply with the comment @SocketSecurity ignore cargo/tokio@1.52.3. You can also ignore all packages with @SocketSecurity ignore-all. To ignore an alert for all future pull requests, use Socket's Dashboard to change the triage state of this alert.

Warn High
Obfuscated code: cargo writeable is 90.0% likely obfuscated

Confidence: 0.90

Location: Package overview

From: ? → cargo/tauri-plugin-updater@2.10.1 → cargo/tauri-plugin-opener@2.5.4 → cargo/tauri@2.11.2 → cargo/tauri-build@2.6.2 → cargo/tauri-plugin-process@2.3.1 → cargo/writeable@0.6.3

ℹ Read more on: This package | This alert | What is obfuscated code?

Next steps: Take a moment to review the security alert above. Review the linked package source code to understand the potential risk. Ensure the package is not malicious before proceeding. If you're unsure how to proceed, reach out to your security team or ask the Socket team for help at support@socket.dev.

Suggestion: Packages should not obfuscate their code. Consider not using packages with obfuscated code.

Mark the package as acceptable risk. To ignore this alert only in this pull request, reply with the comment @SocketSecurity ignore cargo/writeable@0.6.3. You can also ignore all packages with @SocketSecurity ignore-all. To ignore an alert for all future pull requests, use Socket's Dashboard to change the triage state of this alert.

Warn High
Obfuscated code: npm @emnapi/runtime is 90.0% likely obfuscated

Confidence: 0.90

Location: Package overview

From: apps/web/package-lock.json → npm/@applitools/eyes-playwright@1.47.8 → npm/@emnapi/runtime@1.11.1

ℹ Read more on: This package | This alert | What is obfuscated code?

Next steps: Take a moment to review the security alert above. Review the linked package source code to understand the potential risk. Ensure the package is not malicious before proceeding. If you're unsure how to proceed, reach out to your security team or ask the Socket team for help at support@socket.dev.

Suggestion: Packages should not obfuscate their code. Consider not using packages with obfuscated code.

Mark the package as acceptable risk. To ignore this alert only in this pull request, reply with the comment @SocketSecurity ignore npm/@emnapi/runtime@1.11.1. You can also ignore all packages with @SocketSecurity ignore-all. To ignore an alert for all future pull requests, use Socket's Dashboard to change the triage state of this alert.

Warn High
Obfuscated code: npm @google-cloud/compute is 90.0% likely obfuscated

Confidence: 0.90

Location: Package overview

From: apps/web/package-lock.json → npm/browserstack-node-sdk@1.57.0 → npm/@google-cloud/compute@5.3.0

ℹ Read more on: This package | This alert | What is obfuscated code?

Next steps: Take a moment to review the security alert above. Review the linked package source code to understand the potential risk. Ensure the package is not malicious before proceeding. If you're unsure how to proceed, reach out to your security team or ask the Socket team for help at support@socket.dev.

Suggestion: Packages should not obfuscate their code. Consider not using packages with obfuscated code.

Mark the package as acceptable risk. To ignore this alert only in this pull request, reply with the comment @SocketSecurity ignore npm/@google-cloud/compute@5.3.0. You can also ignore all packages with @SocketSecurity ignore-all. To ignore an alert for all future pull requests, use Socket's Dashboard to change the triage state of this alert.

Warn High
Obfuscated code: npm @google-cloud/compute is 90.0% likely obfuscated

Confidence: 0.90

Location: Package overview

From: apps/web/package-lock.json → npm/browserstack-node-sdk@1.57.0 → npm/@google-cloud/compute@5.3.0

ℹ Read more on: This package | This alert | What is obfuscated code?

Next steps: Take a moment to review the security alert above. Review the linked package source code to understand the potential risk. Ensure the package is not malicious before proceeding. If you're unsure how to proceed, reach out to your security team or ask the Socket team for help at support@socket.dev.

Suggestion: Packages should not obfuscate their code. Consider not using packages with obfuscated code.

Mark the package as acceptable risk. To ignore this alert only in this pull request, reply with the comment @SocketSecurity ignore npm/@google-cloud/compute@5.3.0. You can also ignore all packages with @SocketSecurity ignore-all. To ignore an alert for all future pull requests, use Socket's Dashboard to change the triage state of this alert.

Warn High
Obfuscated code: npm @google-cloud/compute is 90.0% likely obfuscated

Confidence: 0.90

Location: Package overview

From: apps/web/package-lock.json → npm/browserstack-node-sdk@1.57.0 → npm/@google-cloud/compute@5.3.0

ℹ Read more on: This package | This alert | What is obfuscated code?

Next steps: Take a moment to review the security alert above. Review the linked package source code to understand the potential risk. Ensure the package is not malicious before proceeding. If you're unsure how to proceed, reach out to your security team or ask the Socket team for help at support@socket.dev.

Suggestion: Packages should not obfuscate their code. Consider not using packages with obfuscated code.

Mark the package as acceptable risk. To ignore this alert only in this pull request, reply with the comment @SocketSecurity ignore npm/@google-cloud/compute@5.3.0. You can also ignore all packages with @SocketSecurity ignore-all. To ignore an alert for all future pull requests, use Socket's Dashboard to change the triage state of this alert.

Warn High
Obfuscated code: npm @zip.js/zip.js is 90.0% likely obfuscated

Confidence: 0.90

Location: Package overview

From: apps/web/package-lock.json → npm/@applitools/eyes-playwright@1.47.8 → npm/@zip.js/zip.js@2.8.26

ℹ Read more on: This package | This alert | What is obfuscated code?

Next steps: Take a moment to review the security alert above. Review the linked package source code to understand the potential risk. Ensure the package is not malicious before proceeding. If you're unsure how to proceed, reach out to your security team or ask the Socket team for help at support@socket.dev.

Suggestion: Packages should not obfuscate their code. Consider not using packages with obfuscated code.

Mark the package as acceptable risk. To ignore this alert only in this pull request, reply with the comment @SocketSecurity ignore npm/@zip.js/zip.js@2.8.26. You can also ignore all packages with @SocketSecurity ignore-all. To ignore an alert for all future pull requests, use Socket's Dashboard to change the triage state of this alert.

Warn High
Obfuscated code: npm browserstack-node-sdk is 90.0% likely obfuscated

Confidence: 0.90

Location: Package overview

From: apps/web/package-lock.json → npm/browserstack-node-sdk@1.57.0

ℹ Read more on: This package | This alert | What is obfuscated code?

Next steps: Take a moment to review the security alert above. Review the linked package source code to understand the potential risk. Ensure the package is not malicious before proceeding. If you're unsure how to proceed, reach out to your security team or ask the Socket team for help at support@socket.dev.

Suggestion: Packages should not obfuscate their code. Consider not using packages with obfuscated code.

Mark the package as acceptable risk. To ignore this alert only in this pull request, reply with the comment @SocketSecurity ignore npm/browserstack-node-sdk@1.57.0. You can also ignore all packages with @SocketSecurity ignore-all. To ignore an alert for all future pull requests, use Socket's Dashboard to change the triage state of this alert.

Warn High
Obfuscated code: npm browserstack-node-sdk is 90.0% likely obfuscated

Confidence: 0.90

Location: Package overview

From: apps/web/package-lock.json → npm/browserstack-node-sdk@1.57.0

ℹ Read more on: This package | This alert | What is obfuscated code?

Next steps: Take a moment to review the security alert above. Review the linked package source code to understand the potential risk. Ensure the package is not malicious before proceeding. If you're unsure how to proceed, reach out to your security team or ask the Socket team for help at support@socket.dev.

Suggestion: Packages should not obfuscate their code. Consider not using packages with obfuscated code.

Mark the package as acceptable risk. To ignore this alert only in this pull request, reply with the comment @SocketSecurity ignore npm/browserstack-node-sdk@1.57.0. You can also ignore all packages with @SocketSecurity ignore-all. To ignore an alert for all future pull requests, use Socket's Dashboard to change the triage state of this alert.

Warn High
Obfuscated code: npm browserstack-node-sdk is 90.0% likely obfuscated

Confidence: 0.90

Location: Package overview

From: apps/web/package-lock.json → npm/browserstack-node-sdk@1.57.0

ℹ Read more on: This package | This alert | What is obfuscated code?

Next steps: Take a moment to review the security alert above. Review the linked package source code to understand the potential risk. Ensure the package is not malicious before proceeding. If you're unsure how to proceed, reach out to your security team or ask the Socket team for help at support@socket.dev.

Suggestion: Packages should not obfuscate their code. Consider not using packages with obfuscated code.

Mark the package as acceptable risk. To ignore this alert only in this pull request, reply with the comment @SocketSecurity ignore npm/browserstack-node-sdk@1.57.0. You can also ignore all packages with @SocketSecurity ignore-all. To ignore an alert for all future pull requests, use Socket's Dashboard to change the triage state of this alert.

Warn High
Obfuscated code: npm browserstack-node-sdk is 90.0% likely obfuscated

Confidence: 0.90

Location: Package overview

From: apps/web/package-lock.json → npm/browserstack-node-sdk@1.57.0

ℹ Read more on: This package | This alert | What is obfuscated code?

Next steps: Take a moment to review the security alert above. Review the linked package source code to understand the potential risk. Ensure the package is not malicious before proceeding. If you're unsure how to proceed, reach out to your security team or ask the Socket team for help at support@socket.dev.

Suggestion: Packages should not obfuscate their code. Consider not using packages with obfuscated code.

Mark the package as acceptable risk. To ignore this alert only in this pull request, reply with the comment @SocketSecurity ignore npm/browserstack-node-sdk@1.57.0. You can also ignore all packages with @SocketSecurity ignore-all. To ignore an alert for all future pull requests, use Socket's Dashboard to change the triage state of this alert.

Warn High
Obfuscated code: npm browserstack-node-sdk is 90.0% likely obfuscated

Confidence: 0.90

Location: Package overview

From: apps/web/package-lock.json → npm/browserstack-node-sdk@1.57.0

ℹ Read more on: This package | This alert | What is obfuscated code?

Next steps: Take a moment to review the security alert above. Review the linked package source code to understand the potential risk. Ensure the package is not malicious before proceeding. If you're unsure how to proceed, reach out to your security team or ask the Socket team for help at support@socket.dev.

Suggestion: Packages should not obfuscate their code. Consider not using packages with obfuscated code.

Mark the package as acceptable risk. To ignore this alert only in this pull request, reply with the comment @SocketSecurity ignore npm/browserstack-node-sdk@1.57.0. You can also ignore all packages with @SocketSecurity ignore-all. To ignore an alert for all future pull requests, use Socket's Dashboard to change the triage state of this alert.

Warn High
Obfuscated code: npm browserstack-node-sdk is 90.0% likely obfuscated

Confidence: 0.90

Location: Package overview

From: apps/web/package-lock.json → npm/browserstack-node-sdk@1.57.0

ℹ Read more on: This package | This alert | What is obfuscated code?

Next steps: Take a moment to review the security alert above. Review the linked package source code to understand the potential risk. Ensure the package is not malicious before proceeding. If you're unsure how to proceed, reach out to your security team or ask the Socket team for help at support@socket.dev.

Suggestion: Packages should not obfuscate their code. Consider not using packages with obfuscated code.

Mark the package as acceptable risk. To ignore this alert only in this pull request, reply with the comment @SocketSecurity ignore npm/browserstack-node-sdk@1.57.0. You can also ignore all packages with @SocketSecurity ignore-all. To ignore an alert for all future pull requests, use Socket's Dashboard to change the triage state of this alert.

Warn High
Obfuscated code: npm browserstack-node-sdk is 90.0% likely obfuscated

Confidence: 0.90

Location: Package overview

From: apps/web/package-lock.json → npm/browserstack-node-sdk@1.57.0

ℹ Read more on: This package | This alert | What is obfuscated code?

Next steps: Take a moment to review the security alert above. Review the linked package source code to understand the potential risk. Ensure the package is not malicious before proceeding. If you're unsure how to proceed, reach out to your security team or ask the Socket team for help at support@socket.dev.

Suggestion: Packages should not obfuscate their code. Consider not using packages with obfuscated code.

Mark the package as acceptable risk. To ignore this alert only in this pull request, reply with the comment @SocketSecurity ignore npm/browserstack-node-sdk@1.57.0. You can also ignore all packages with @SocketSecurity ignore-all. To ignore an alert for all future pull requests, use Socket's Dashboard to change the triage state of this alert.

Warn High
Obfuscated code: npm browserstack-node-sdk is 90.0% likely obfuscated

Confidence: 0.90

Location: Package overview

From: apps/web/package-lock.json → npm/browserstack-node-sdk@1.57.0

ℹ Read more on: This package | This alert | What is obfuscated code?

Next steps: Take a moment to review the security alert above. Review the linked package source code to understand the potential risk. Ensure the package is not malicious before proceeding. If you're unsure how to proceed, reach out to your security team or ask the Socket team for help at support@socket.dev.

Suggestion: Packages should not obfuscate their code. Consider not using packages with obfuscated code.

Mark the package as acceptable risk. To ignore this alert only in this pull request, reply with the comment @SocketSecurity ignore npm/browserstack-node-sdk@1.57.0. You can also ignore all packages with @SocketSecurity ignore-all. To ignore an alert for all future pull requests, use Socket's Dashboard to change the triage state of this alert.

Warn High
Obfuscated code: npm browserstack-node-sdk is 90.0% likely obfuscated

Confidence: 0.90

Location: Package overview

From: apps/web/package-lock.json → npm/browserstack-node-sdk@1.57.0

ℹ Read more on: This package | This alert | What is obfuscated code?

Next steps: Take a moment to review the security alert above. Review the linked package source code to understand the potential risk. Ensure the package is not malicious before proceeding. If you're unsure how to proceed, reach out to your security team or ask the Socket team for help at support@socket.dev.

Suggestion: Packages should not obfuscate their code. Consider not using packages with obfuscated code.

Mark the package as acceptable risk. To ignore this alert only in this pull request, reply with the comment @SocketSecurity ignore npm/browserstack-node-sdk@1.57.0. You can also ignore all packages with @SocketSecurity ignore-all. To ignore an alert for all future pull requests, use Socket's Dashboard to change the triage state of this alert.

Warn High
Obfuscated code: npm browserstack-node-sdk is 90.0% likely obfuscated

Confidence: 0.90

Location: Package overview

From: apps/web/package-lock.json → npm/browserstack-node-sdk@1.57.0

ℹ Read more on: This package | This alert | What is obfuscated code?

Next steps: Take a moment to review the security alert above. Review the linked package source code to understand the potential risk. Ensure the package is not malicious before proceeding. If you're unsure how to proceed, reach out to your security team or ask the Socket team for help at support@socket.dev.

Suggestion: Packages should not obfuscate their code. Consider not using packages with obfuscated code.

Mark the package as acceptable risk. To ignore this alert only in this pull request, reply with the comment @SocketSecurity ignore npm/browserstack-node-sdk@1.57.0. You can also ignore all packages with @SocketSecurity ignore-all. To ignore an alert for all future pull requests, use Socket's Dashboard to change the triage state of this alert.

Warn High
Obfuscated code: npm browserstack-node-sdk is 90.0% likely obfuscated

Confidence: 0.90

Location: Package overview

From: apps/web/package-lock.json → npm/browserstack-node-sdk@1.57.0

ℹ Read more on: This package | This alert | What is obfuscated code?

Next steps: Take a moment to review the security alert above. Review the linked package source code to understand the potential risk. Ensure the package is not malicious before proceeding. If you're unsure how to proceed, reach out to your security team or ask the Socket team for help at support@socket.dev.

Suggestion: Packages should not obfuscate their code. Consider not using packages with obfuscated code.

Mark the package as acceptable risk. To ignore this alert only in this pull request, reply with the comment @SocketSecurity ignore npm/browserstack-node-sdk@1.57.0. You can also ignore all packages with @SocketSecurity ignore-all. To ignore an alert for all future pull requests, use Socket's Dashboard to change the triage state of this alert.

Warn High
Obfuscated code: npm browserstack-node-sdk is 90.0% likely obfuscated

Confidence: 0.90

Location: Package overview

From: apps/web/package-lock.json → npm/browserstack-node-sdk@1.57.0

ℹ Read more on: This package | This alert | What is obfuscated code?

Next steps: Take a moment to review the security alert above. Review the linked package source code to understand the potential risk. Ensure the package is not malicious before proceeding. If you're unsure how to proceed, reach out to your security team or ask the Socket team for help at support@socket.dev.

Suggestion: Packages should not obfuscate their code. Consider not using packages with obfuscated code.

Mark the package as acceptable risk. To ignore this alert only in this pull request, reply with the comment @SocketSecurity ignore npm/browserstack-node-sdk@1.57.0. You can also ignore all packages with @SocketSecurity ignore-all. To ignore an alert for all future pull requests, use Socket's Dashboard to change the triage state of this alert.

Warn High
Obfuscated code: npm browserstack-node-sdk is 90.0% likely obfuscated

Confidence: 0.90

Location: Package overview

From: apps/web/package-lock.json → npm/browserstack-node-sdk@1.57.0

ℹ Read more on: This package | This alert | What is obfuscated code?

Next steps: Take a moment to review the security alert above. Review the linked package source code to understand the potential risk. Ensure the package is not malicious before proceeding. If you're unsure how to proceed, reach out to your security team or ask the Socket team for help at support@socket.dev.

Suggestion: Packages should not obfuscate their code. Consider not using packages with obfuscated code.

Mark the package as acceptable risk. To ignore this alert only in this pull request, reply with the comment @SocketSecurity ignore npm/browserstack-node-sdk@1.57.0. You can also ignore all packages with @SocketSecurity ignore-all. To ignore an alert for all future pull requests, use Socket's Dashboard to change the triage state of this alert.

Warn High
Obfuscated code: npm browserstack-node-sdk is 90.0% likely obfuscated

Confidence: 0.90

Location: Package overview

From: apps/web/package-lock.json → npm/browserstack-node-sdk@1.57.0

ℹ Read more on: This package | This alert | What is obfuscated code?

Next steps: Take a moment to review the security alert above. Review the linked package source code to understand the potential risk. Ensure the package is not malicious before proceeding. If you're unsure how to proceed, reach out to your security team or ask the Socket team for help at support@socket.dev.

Suggestion: Packages should not obfuscate their code. Consider not using packages with obfuscated code.

Mark the package as acceptable risk. To ignore this alert only in this pull request, reply with the comment @SocketSecurity ignore npm/browserstack-node-sdk@1.57.0. You can also ignore all packages with @SocketSecurity ignore-all. To ignore an alert for all future pull requests, use Socket's Dashboard to change the triage state of this alert.

Warn High
Obfuscated code: npm browserstack-node-sdk is 90.0% likely obfuscated

Confidence: 0.90

Location: Package overview

From: apps/web/package-lock.json → npm/browserstack-node-sdk@1.57.0

ℹ Read more on: This package | This alert | What is obfuscated code?

Next steps: Take a moment to review the security alert above. Review the linked package source code to understand the potential risk. Ensure the package is not malicious before proceeding. If you're unsure how to proceed, reach out to your security team or ask the Socket team for help at support@socket.dev.

Suggestion: Packages should not obfuscate their code. Consider not using packages with obfuscated code.

Mark the package as acceptable risk. To ignore this alert only in this pull request, reply with the comment @SocketSecurity ignore npm/browserstack-node-sdk@1.57.0. You can also ignore all packages with @SocketSecurity ignore-all. To ignore an alert for all future pull requests, use Socket's Dashboard to change the triage state of this alert.

Warn High
Obfuscated code: npm browserstack-node-sdk is 90.0% likely obfuscated

Confidence: 0.90

Location: Package overview

From: apps/web/package-lock.json → npm/browserstack-node-sdk@1.57.0

ℹ Read more on: This package | This alert | What is obfuscated code?

Next steps: Take a moment to review the security alert above. Review the linked package source code to understand the potential risk. Ensure the package is not malicious before proceeding. If you're unsure how to proceed, reach out to your security team or ask the Socket team for help at support@socket.dev.

Suggestion: Packages should not obfuscate their code. Consider not using packages with obfuscated code.

Mark the package as acceptable risk. To ignore this alert only in this pull request, reply with the comment @SocketSecurity ignore npm/browserstack-node-sdk@1.57.0. You can also ignore all packages with @SocketSecurity ignore-all. To ignore an alert for all future pull requests, use Socket's Dashboard to change the triage state of this alert.

Warn High
Obfuscated code: npm browserstack-node-sdk is 90.0% likely obfuscated

Confidence: 0.90

Location: Package overview

From: apps/web/package-lock.json → npm/browserstack-node-sdk@1.57.0

ℹ Read more on: This package | This alert | What is obfuscated code?

Next steps: Take a moment to review the security alert above. Review the linked package source code to understand the potential risk. Ensure the package is not malicious before proceeding. If you're unsure how to proceed, reach out to your security team or ask the Socket team for help at support@socket.dev.

Suggestion: Packages should not obfuscate their code. Consider not using packages with obfuscated code.

Mark the package as acceptable risk. To ignore this alert only in this pull request, reply with the comment @SocketSecurity ignore npm/browserstack-node-sdk@1.57.0. You can also ignore all packages with @SocketSecurity ignore-all. To ignore an alert for all future pull requests, use Socket's Dashboard to change the triage state of this alert.

Warn High
Obfuscated code: npm browserstack-node-sdk is 90.0% likely obfuscated

Confidence: 0.90

Location: Package overview

From: apps/web/package-lock.json → npm/browserstack-node-sdk@1.57.0

ℹ Read more on: This package | This alert | What is obfuscated code?

Next steps: Take a moment to review the security alert above. Review the linked package source code to understand the potential risk. Ensure the package is not malicious before proceeding. If you're unsure how to proceed, reach out to your security team or ask the Socket team for help at support@socket.dev.

Suggestion: Packages should not obfuscate their code. Consider not using packages with obfuscated code.

Mark the package as acceptable risk. To ignore this alert only in this pull request, reply with the comment @SocketSecurity ignore npm/browserstack-node-sdk@1.57.0. You can also ignore all packages with @SocketSecurity ignore-all. To ignore an alert for all future pull requests, use Socket's Dashboard to change the triage state of this alert.

See 31 more rows in the dashboard

View full report

@qltysh

qltysh Bot commented Jun 16, 2026

Copy link
Copy Markdown

❌ 32 blocking issues (32 total)

Tool Category Rule Count
qlty Duplication Found 16 lines of similar code in 2 locations (mass = 86) 11 ❌
qlty Structure Function with many returns (count = 6): _dispatch_existing_job 9 ❌
qlty Structure Complex binary expression 8 ❌
qlty Structure Function with many parameters (count = 7): build_checkout_session 3 ❌
qlty Structure Deeply nested control flow (level = 5) 1 ❌

Comment thread apps/api/app/api.py

buffer.seek(0)
headers = {"Content-Disposition": f'attachment; filename=\"job_{job_id}.zip\"'}
headers = {"Content-Disposition": f'attachment; filename="job_{job_id}.zip"'}

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Function with many returns (count = 9): download_job_bundle [qlty:return-statements]

Comment thread apps/api/app/billing.py
success_url: str,
cancel_url: str,
metadata: Optional[dict[str, str]] = None,
metadata: dict[str, str] | None = None,

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Function with many parameters (count = 7): build_checkout_session [qlty:function-parameters]

Comment thread apps/web/src/App.tsx
download
>
Download merged output
</a>
) : (
<div className="muted">Waiting for merged output...</div>
)}
</div>
</div>

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Found 23 lines of similar code in 2 locations (mass = 115) [qlty:similar-code]

Comment thread apps/web/src/App.tsx
{t}
</option>
))}
</select>

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Found 16 lines of similar code in 2 locations (mass = 78) [qlty:similar-code]

Comment thread apps/web/src/App.tsx
{outputAssetUrl && outputAsset.mime_type?.includes("text") && (
<TextPreview url={outputAssetUrl} title="Job output preview" />
)}
</div>

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Complex binary expression [qlty:boolean-logic]

Comment thread apps/web/src/App.tsx
<td>{invite.role}</td>
<td>{invite.status}</td>
{scimTokens.length === 0 && (
<p className="muted">No locally-created SCIM tokens in this session.</p>

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Complex binary expression [qlty:boolean-logic]

model: str,
client: Optional[object] = None,
client: object | None = None,
provider: str = "openai",

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Function with many parameters (count = 6): score_segments_llm [qlty:function-parameters]

max_tokens: Optional[int] = None,
response_format: Optional[dict[str, Any]] = None,
max_tokens: int | None = None,
response_format: dict[str, Any] | None = None,

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Function with many parameters (count = 6): create [qlty:function-parameters]

Comment thread services/worker/worker.py
created_at=datetime.now(UTC),
)
)
session.commit()

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Function with many returns (count = 11): publish_asset [qlty:return-statements]

Comment thread services/worker/worker.py
stderr = (
exc.stderr.decode(errors="replace")
if isinstance(exc.stderr, (bytes, bytearray))
else str(exc.stderr or "")

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Deeply nested control flow (level = 5) [qlty:nested-control-flow]

Comment thread apps/api/alembic/env.py
from logging.config import fileConfig

from alembic import context
from app import models # noqa: F401
Comment thread .quality/charter_check.py
WORKFLOW = REPO_ROOT / ".github" / "workflows" / "quality.yml"

# Gates that are intentionally co-located in one workflow step.
# key: gate slug that has no own `gate-<slug>` step; value: the step slug that covers it.

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

doc line too long (89 > 88 characters)


Docstring line lengths are recommended to be no greater than 79 characters.

Comment thread .quality/charter_check.py
# Gates that are intentionally co-located in one workflow step.
# key: gate slug that has no own `gate-<slug>` step; value: the step slug that covers it.
COVERED_BY = {
"secrets": "lint-format", # gitleaks runs inside the pre-commit (gate-lint-format) step

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

line too long (92 > 88 characters)


Line length greater than configured max_line_length detected, defaults to 79 character. This limit can be configured docs

Comment thread .quality/charter_check.py
"""Extract gate slugs from the table between the BEGIN/END GATES markers."""
block = re.search(r"BEGIN GATES(.*?)END GATES", text, re.DOTALL)
if not block:
raise SystemExit("charter_check: BEGIN/END GATES markers not found in QUALITY-CHARTER.md")

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

line too long (98 > 88 characters)


Line length greater than configured max_line_length detected, defaults to 79 character. This limit can be configured docs

Comment thread .quality/charter_check.py
return found


def main() -> int:

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Docstring missing for `main`


The module/function docstring is missing. If you want to ignore this, you can configure this in the .deepsource.toml file. Please refer to docs for available options.

Comment thread .quality/charter_check.py
for gate in charter_gates:
covering = COVERED_BY.get(gate, gate)
if covering not in workflow_steps:
problems.append(f" - charter gate '{gate}' has no matching 'gate-{covering}' step in quality.yml")

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

line too long (111 > 88 characters)


Line length greater than configured max_line_length detected, defaults to 79 character. This limit can be configured docs

Comment thread .quality/charter_check.py
known = set(charter_gates) | {COVERED_BY[g] for g in COVERED_BY}
for step in sorted(workflow_steps):
if step not in known:
problems.append(f" - quality.yml has 'gate-{step}' step with no matching charter gate")

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

line too long (100 > 88 characters)


Line length greater than configured max_line_length detected, defaults to 79 character. This limit can be configured docs

@codacy-production

codacy-production Bot commented Jun 16, 2026 •

Copy link
Copy Markdown

Not up to standards ⛔

🔴 Issues 52 high · 30 medium · 18 minor

Alerts:
⚠ 100 issues (≤ 0 issues of at least minor severity)

Results:
100 new issues

Category Results
Compatibility 11 medium
7 high
Documentation 4 minor
ErrorProne 1 medium
41 high
Security 1 medium
4 high
CodeStyle 14 minor
Complexity 15 medium
Performance 2 medium

View in Codacy

🟢 Metrics 164 complexity · 60 duplication

Metric Results
Complexity 164
Duplication 60

View in Codacy

NEW Get contextual insights on your PRs based on Codacy's metrics, along with PR and Jira context, without leaving GitHub. Enable AI reviewer
TIP This summary will be updated as you push new changes.

@cubic-dev-ai cubic-dev-ai Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

8 issues found across 157 files

Prompt for AI agents (unresolved issues)

Check if these issues are valid — if so, understand the root cause of each and fix them. If appropriate, use sub-agents to investigate and fix each issue separately.


<file name=".quality/opengrep/README.md">

<violation number="1" location=".quality/opengrep/README.md:25">
P2: License claim is inaccurate: Semgrep Registry rules are licensed under Semgrep Rules License v1.0, not Apache-2.0/LGPL-2.1. This could create legal documentation risk if the repo relies on this attribution.</violation>
</file>

<file name="QUALITY-CHARTER.md">

<violation number="1" location="QUALITY-CHARTER.md:16">
P2: pytest listed as version-pinned tool ("pytest 9") but installed without version constraint in quality.yml, violating charter rule #3 ("Every tool is version-pinned") and the deterministic-gate model.</violation>
</file>

<file name=".quality/opengrep/javascript-security.yaml">

<violation number="1" location=".quality/opengrep/javascript-security.yaml:26">
P2: js-function-constructor rule only catches `new Function(...)` but misses bare `Function(...)` calls, which are equally dangerous. In JavaScript, `Function("return " + userInput)` creates a function from a string identically to `new Function(...)`.</violation>

<violation number="2" location=".quality/opengrep/javascript-security.yaml:78">
P3: js-child-process-exec `pattern-not` excludes static strings for `child_process.exec` but not for `cp.exec`. This means `cp.exec("ls -la", callback)` produces a false positive even though the command is static.</violation>
</file>

<file name=".gitleaks.toml">

<violation number="1" location=".gitleaks.toml:10">
P3: Global allowlist uses deprecated `[allowlist]` syntax. Use `[[allowlists]]` (plural) for gitleaks 8.30.1.</violation>

<violation number="2" location=".gitleaks.toml:40">
P2: Rule-level allowlist uses deprecated `[rules.allowlist]` and missing `regexTarget = "line"`. Use `[[rules.allowlists]]` plural and add `regexTarget = "line"` so the regex matches against the full line (the env-var name) rather than the secret value.</violation>
</file>

<file name="apps/web/.oxlintrc.json">

<violation number="1" location="apps/web/.oxlintrc.json:18">
P2: `react-hooks/exhaustive-deps` turned off: this disables detection of missing/unnecessary hook dependencies, a common source of stale-closure bugs and infinite re-render loops. Acceptable as a temporary proof measure, but should be reconsidered before merging to main.</violation>
</file>

<file name=".github/workflows/quality.yml">

<violation number="1" location=".github/workflows/quality.yml:108">
P1: osv-scanner scan source does NOT auto-load `osv-scanner.toml` from the repo root when lockfile paths are passed explicitly via `--lockfile`. The implicit config detection only looks for `osv-scanner.toml` in each lockfile's own directory. The repo's `osv-scanner.toml` at the root will NOT be applied to any of the specified lockfiles, so ignored-vuln entries are silently skipped and the gate will report CVEs the config was meant to manage.</violation>
</file>

Note: This PR contains a large number of files. cubic only reviews up to 100 files per PR, so some files may not have been reviewed. cubic prioritizes the most important files to review.
On a pro plan you can use ultrareview for larger PRs.

Re-trigger cubic

# gate:6 — deps (osv-scanner on the lockfiles, 0 known CVEs)
- name: gate-deps osv-scanner
run: |
osv-scanner scan source \

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

P1: osv-scanner scan source does NOT auto-load osv-scanner.toml from the repo root when lockfile paths are passed explicitly via --lockfile. The implicit config detection only looks for osv-scanner.toml in each lockfile's own directory. The repo's osv-scanner.toml at the root will NOT be applied to any of the specified lockfiles, so ignored-vuln entries are silently skipped and the gate will report CVEs the config was meant to manage.

Prompt for AI agents
Check if this issue is valid — if so, understand the root cause and fix it. At .github/workflows/quality.yml, line 108:

<comment>osv-scanner scan source does NOT auto-load `osv-scanner.toml` from the repo root when lockfile paths are passed explicitly via `--lockfile`. The implicit config detection only looks for `osv-scanner.toml` in each lockfile's own directory. The repo's `osv-scanner.toml` at the root will NOT be applied to any of the specified lockfiles, so ignored-vuln entries are silently skipped and the gate will report CVEs the config was meant to manage.</comment>

<file context>
@@ -0,0 +1,117 @@
+      # gate:6 — deps (osv-scanner on the lockfiles, 0 known CVEs)
+      - name: gate-deps osv-scanner
+        run: |
+          osv-scanner scan source \
+            --lockfile=apps/web/package-lock.json \
+            --lockfile=apps/desktop/package-lock.json \
</file context>

insecure-randomness patterns.
- `general-security.yaml` — language-agnostic patterns (secrets in code, insecure TLS).

Upstream registry rules are Apache-2.0 / LGPL-2.1 licensed; rule logic is reproduced /

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

P2: License claim is inaccurate: Semgrep Registry rules are licensed under Semgrep Rules License v1.0, not Apache-2.0/LGPL-2.1. This could create legal documentation risk if the repo relies on this attribution.

Prompt for AI agents
Check if this issue is valid — if so, understand the root cause and fix it. At .quality/opengrep/README.md, line 25:

<comment>License claim is inaccurate: Semgrep Registry rules are licensed under Semgrep Rules License v1.0, not Apache-2.0/LGPL-2.1. This could create legal documentation risk if the repo relies on this attribution.</comment>

<file context>
@@ -0,0 +1,44 @@
+  insecure-randomness patterns.
+- `general-security.yaml` — language-agnostic patterns (secrets in code, insecure TLS).
+
+Upstream registry rules are Apache-2.0 / LGPL-2.1 licensed; rule logic is reproduced /
+adapted here. To refresh against upstream, diff the registry packs and port new
+high-signal rules in (one-in-one-out review).
</file context>

Comment thread QUALITY-CHARTER.md
|---|------|------------------|------------------|
| 1 | lint-format | ruff 0.15.17 · oxlint 1.70.0 · biome 2.5.0 · rustfmt/clippy (rust 1.96.0) | Lint + format + security-lint across Python, JS/TS, Rust. Auto-fixers: `ruff check --fix` + `ruff format`; `oxlint --fix --deny-warnings`; `biome format --write`; `cargo fmt` + `cargo clippy --all-targets --all-features -- -D warnings`. |
| 2 | types | tsc (typescript 5.x) · basedpyright 1.39.8 | `tsc --noEmit` for apps/web + apps/desktop; basedpyright (`typeCheckingMode=standard`) for apps/api + services/worker + packages/media-core. |
| 3 | tests-coverage | pytest 9 + pytest-cov (branch, `--cov-fail-under=100`) · vitest 4 (100% thresholds) | Strict 100% line+branch coverage. Reasoned `# pragma: no cover — <reason>` / `/* v8 ignore */` allowed for genuinely-untestable platform branches. |

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

P2: pytest listed as version-pinned tool ("pytest 9") but installed without version constraint in quality.yml, violating charter rule #3 ("Every tool is version-pinned") and the deterministic-gate model.

Prompt for AI agents
Check if this issue is valid — if so, understand the root cause and fix it. At QUALITY-CHARTER.md, line 16:

<comment>pytest listed as version-pinned tool ("pytest 9") but installed without version constraint in quality.yml, violating charter rule #3 ("Every tool is version-pinned") and the deterministic-gate model.</comment>

<file context>
@@ -0,0 +1,53 @@
+|---|------|------------------|------------------|
+| 1 | lint-format | ruff 0.15.17 · oxlint 1.70.0 · biome 2.5.0 · rustfmt/clippy (rust 1.96.0) | Lint + format + security-lint across Python, JS/TS, Rust. Auto-fixers: `ruff check --fix` + `ruff format`; `oxlint --fix --deny-warnings`; `biome format --write`; `cargo fmt` + `cargo clippy --all-targets --all-features -- -D warnings`. |
+| 2 | types | tsc (typescript 5.x) · basedpyright 1.39.8 | `tsc --noEmit` for apps/web + apps/desktop; basedpyright (`typeCheckingMode=standard`) for apps/api + services/worker + packages/media-core. |
+| 3 | tests-coverage | pytest 9 + pytest-cov (branch, `--cov-fail-under=100`) · vitest 4 (100% thresholds) | Strict 100% line+branch coverage. Reasoned `# pragma: no cover — <reason>` / `/* v8 ignore */` allowed for genuinely-untestable platform branches. |
+| 4 | sast | opengrep 1.22.0 (CI) / semgrep 1.166.0 (local) | Static security analysis using the curated in-repo ruleset under `.quality/opengrep/` (NOT `--config auto`). Clean-zero lock: 0 findings, no baseline. |
+| 5 | secrets | gitleaks 8.30.1 | Secret scanning with the committed `.gitleaks.toml` allowlist (vendored deps + reasoned test fixtures only). Gate on 0. |
</file context>

category: security
cwe: "CWE-95"
patterns:
- pattern: new Function(...)

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

P2: js-function-constructor rule only catches new Function(...) but misses bare Function(...) calls, which are equally dangerous. In JavaScript, Function("return " + userInput) creates a function from a string identically to new Function(...).

Prompt for AI agents
Check if this issue is valid — if so, understand the root cause and fix it. At .quality/opengrep/javascript-security.yaml, line 26:

<comment>js-function-constructor rule only catches `new Function(...)` but misses bare `Function(...)` calls, which are equally dangerous. In JavaScript, `Function("return " + userInput)` creates a function from a string identically to `new Function(...)`.</comment>

<file context>
@@ -0,0 +1,95 @@
+      category: security
+      cwe: "CWE-95"
+    patterns:
+      - pattern: new Function(...)
+
+  - id: js-dangerously-set-inner-html
</file context>

Comment thread .gitleaks.toml
# (e.g. `GROQ_API_KEY=`); these are placeholders, not assigned secrets.
[[rules]]
id = "generic-api-key"
[rules.allowlist]

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

P2: Rule-level allowlist uses deprecated [rules.allowlist] and missing regexTarget = "line". Use [[rules.allowlists]] plural and add regexTarget = "line" so the regex matches against the full line (the env-var name) rather than the secret value.

Prompt for AI agents
Check if this issue is valid — if so, understand the root cause and fix it. At .gitleaks.toml, line 40:

<comment>Rule-level allowlist uses deprecated `[rules.allowlist]` and missing `regexTarget = "line"`. Use `[[rules.allowlists]]` plural and add `regexTarget = "line"` so the regex matches against the full line (the env-var name) rather than the secret value.</comment>

<file context>
@@ -0,0 +1,43 @@
+# (e.g. `GROQ_API_KEY=`); these are placeholders, not assigned secrets.
+[[rules]]
+id = "generic-api-key"
+[rules.allowlist]
+description = "start.sh lists empty optional-provider env-var placeholders."
+paths = ['''(^|/)start\.sh$''']
</file context>

Comment thread apps/web/.oxlintrc.json
},
"rules": {
"react/react-in-jsx-scope": "off",
"react-hooks/exhaustive-deps": "off"

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

P2: react-hooks/exhaustive-deps turned off: this disables detection of missing/unnecessary hook dependencies, a common source of stale-closure bugs and infinite re-render loops. Acceptable as a temporary proof measure, but should be reconsidered before merging to main.

Prompt for AI agents
Check if this issue is valid — if so, understand the root cause and fix it. At apps/web/.oxlintrc.json, line 18:

<comment>`react-hooks/exhaustive-deps` turned off: this disables detection of missing/unnecessary hook dependencies, a common source of stale-closure bugs and infinite re-render loops. Acceptable as a temporary proof measure, but should be reconsidered before merging to main.</comment>

<file context>
@@ -0,0 +1,21 @@
+  },
+  "rules": {
+    "react/react-in-jsx-scope": "off",
+    "react-hooks/exhaustive-deps": "off"
+  },
+  "ignorePatterns": ["dist", "node_modules", "coverage", "*.config.ts", "*.config.js"]
</file context>

- pattern-either:
- pattern: child_process.exec($CMD, ...)
- pattern: cp.exec($CMD, ...)
- pattern-not: child_process.exec("...", ...)

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

P3: js-child-process-exec pattern-not excludes static strings for child_process.exec but not for cp.exec. This means cp.exec("ls -la", callback) produces a false positive even though the command is static.

Prompt for AI agents
Check if this issue is valid — if so, understand the root cause and fix it. At .quality/opengrep/javascript-security.yaml, line 78:

<comment>js-child-process-exec `pattern-not` excludes static strings for `child_process.exec` but not for `cp.exec`. This means `cp.exec("ls -la", callback)` produces a false positive even though the command is static.</comment>

<file context>
@@ -0,0 +1,95 @@
+      - pattern-either:
+          - pattern: child_process.exec($CMD, ...)
+          - pattern: cp.exec($CMD, ...)
+      - pattern-not: child_process.exec("...", ...)
+
+  - id: js-insecure-math-random-token
</file context>

Comment thread .gitleaks.toml
[extend]
useDefault = true

[allowlist]

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

P3: Global allowlist uses deprecated [allowlist] syntax. Use [[allowlists]] (plural) for gitleaks 8.30.1.

Prompt for AI agents
Check if this issue is valid — if so, understand the root cause and fix it. At .gitleaks.toml, line 10:

<comment>Global allowlist uses deprecated `[allowlist]` syntax. Use `[[allowlists]]` (plural) for gitleaks 8.30.1.</comment>

<file context>
@@ -0,0 +1,43 @@
+[extend]
+useDefault = true
+
+[allowlist]
+description = "Vendored deps, build output, and reasoned test fixtures (not real secrets)."
+
</file context>
Suggested change
[allowlist]
[[allowlists]]

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

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

4 participants