The open-source AI Management System
This report presents the forensic synthetic code analysis of kortix-ai/suna, a TypeScript project with 20,150 GitHub stars. SynthScan v2.0 examined 2,726,269 lines of code across 7136 source files, recording 6140 pattern matches distributed across 21 syntactic categories. The overall adjusted score of 4.2 places this repository in the Likely human-written band.
The scanner applied 160+ deterministic lexical heuristics, multi-line block detectors, abstract syntax tree depth profilers, and a cross-file Jaccard similarity matrix to construct a statistically normalised synthetic code estimate. All matches are individually weighted by severity coefficient and contextual multiplier before summation, and the resulting headline score is temporally discounted to account for the repository's development history relative to the commercial emergence of large language model coding tooling (November 2022 onward).
This chart maps the temporal evolution of the adjusted synthetic code score across successive scan runs. An upward trajectory indicates ongoing incorporation of AI-generated code or expanding LLM-assisted scaffolding; a stable or declining trajectory may reflect active human refactoring, code removal, or the adoption of stricter authorship policies. The dashed secondary line (right axis) independently tracks total raw pattern hit count, which can diverge from the normalised score when codebase size changes significantly between scans.
Classifies detected patterns by their diagnostic confidence and structural impact. CRITICAL patterns (coefficient 10) represent definitive synthetic signatures — hallucinated imports, explicit LLM attribution metadata — virtually never produced by human authors. HIGH (5) indicates strong structural tells such as cross-file repetition or cross-linguistic idioms. MEDIUM (2) covers recognisable conversational padding and AI-specific vocabulary. LOW (1) captures subtle indicators like tautological comments and generic boilerplate that require density to carry independent signal.
This horizontal bar chart decomposes the repository's raw synthetic code score by top-level directory, allowing you to pinpoint precisely which modules or components carry the highest AI authorship density. Directories with disproportionately high scores relative to their size warrant targeted manual review: concentrated AI signatures often trace back to mass-generated configuration layers, auto-ported test suites, LLM-scaffolded boilerplate classes, or entire subsystems authored under heavy copilot assistance. Use this view to prioritise your human code-review effort.
The scanner identified 6140 distinct pattern matches across 21 syntactic categories. Each entry below represents a discrete location in the source code where the engine recorded a statistically significant AI authorship indicator. Expand any category row to inspect the individual file paths, line numbers, code snippets, and the lexical context (CODE, COMMENT, or STRING) in which each match was detected.
Reading the findings table: The Severity column indicates the diagnostic confidence level (CRITICAL / HIGH / MEDIUM / LOW). The Context column identifies whether the match occurred inside executable code, an inline comment, or a string literal — comment-context matches receive a ×1.5 weight because LLMs systematically over-annotate. The ⚡ bolt icon marks clustered matches: three or more patterns within a 10-line window, each receiving an additional ×1.5 density multiplier as dense clusters constitute far stronger evidence of synthetic authorship than isolated hits.
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| MEDIUM | self-host/terraform/variables.tf | 13 | # ── Required ──────────────────────────────────────────────────────────────── | COMMENT |
| MEDIUM | self-host/terraform/variables.tf | 26 | # ── DNS ───────────────────────────────────────────────────────────────────── | COMMENT |
| MEDIUM | self-host/terraform/variables.tf | 46 | # ── Naming / tags ─────────────────────────────────────────────────────────── | COMMENT |
| MEDIUM | self-host/terraform/variables.tf | 60 | # ── Instance ──────────────────────────────────────────────────────────────── | COMMENT |
| MEDIUM | self-host/terraform/variables.tf | 86 | # ── Networking ────────────────────────────────────────────────────────────── | COMMENT |
| MEDIUM | self-host/terraform/variables.tf | 112 | # ── Data volume ───────────────────────────────────────────────────────────── | COMMENT |
| MEDIUM | self-host/terraform/variables.tf | 126 | # ── Backups (DLM snapshot schedule for the data volume) ──────────────────── | COMMENT |
| MEDIUM | self-host/terraform/variables.tf | 146 | # ── kortix self-host bootstrap ────────────────────────────────────────────── | COMMENT |
| MEDIUM | infra/terraform/environments/prod/main.tf | 1 | # ── prod environment — api.kortix.com on ECS Fargate (autoscaled, HA) ───────── | COMMENT |
| MEDIUM | infra/terraform/environments/prod/main.tf | 138 | # ── Gateway (LLM proxy) — its own ECS Fargate service + CF-validated cert ───── | COMMENT |
| MEDIUM | infra/terraform/environments/staging/main.tf | 1 | # ── staging environment — ECS Fargate (api + gateway), autoscaled ───────────── | COMMENT |
| MEDIUM | infra/terraform/environments/staging/main.tf | 56 | # ── Network (VPC + public/private subnets + NAT) ────────────────────────────── | COMMENT |
| MEDIUM | infra/terraform/environments/staging/main.tf | 66 | # ── ECS Fargate API service (autoscaled) ────────────────────────────────────── | COMMENT |
| MEDIUM | infra/terraform/environments/staging/main.tf | 133 | # ── Gateway (LLM proxy) as its own ECS Fargate service ──────────────────────── | COMMENT |
| MEDIUM | infra/terraform/environments/staging/main.tf | 184 | # ── DNS (optional; default off — records created out-of-band) ───────────────── | COMMENT |
| MEDIUM | infra/terraform/environments/dev/main.tf | 67 | # ── Network (VPC + public/private subnets + NAT) ────────────────────────────── | COMMENT |
| MEDIUM | infra/terraform/environments/dev/main.tf | 77 | # ── TLS cert (ACM, validated via Cloudflare DNS) ────────────────────────────── | COMMENT |
| MEDIUM | infra/terraform/environments/dev/main.tf | 90 | # ── ECS Fargate API service (autoscaled) ────────────────────────────────────── | COMMENT |
| MEDIUM | infra/terraform/environments/dev/main.tf | 149 | # ── Gateway (LLM proxy) as its own ECS Fargate service ──────────────────────── | COMMENT |
| MEDIUM | infra/terraform/environments/dev/main.tf | 204 | # ── DNS: dev-api-ecs-fargate.kortix.com → the ALB (Cloudflare-proxied) ───────── | COMMENT |
| MEDIUM | infra/terraform/compliance-monitoring/use2-security.tf | 49 | # ── Regional alert delivery ────────────────────────────────────────────────── | COMMENT |
| MEDIUM | infra/terraform/compliance-monitoring/use2-security.tf | 176 | # ── WAF and ALB monitoring ──────────────────────────────────────────────────── | COMMENT |
| MEDIUM | infra/terraform/compliance-monitoring/use2-security.tf | 401 | # ── Backup failure monitoring ───────────────────────────────────────────────── | COMMENT |
| MEDIUM | infra/terraform/compliance-monitoring/use2-security.tf | 433 | # ── VPC baseline ─────────────────────────────────────────────────────────────── | COMMENT |
| MEDIUM | infra/terraform/security-baseline/main.tf | 1 | # ════════════════════════════════════════════════════════════════════════════ | COMMENT |
| MEDIUM | infra/terraform/security-baseline/main.tf | 3 | # ════════════════════════════════════════════════════════════════════════════ | COMMENT |
| MEDIUM | infra/terraform/security-baseline/main.tf | 15 | # ════════════════════════════════════════════════════════════════════════════ | COMMENT |
| MEDIUM | infra/terraform/security-baseline/main.tf | 18 | # ════════════════════════════════════════════════════════════════════════════ | COMMENT |
| MEDIUM | infra/terraform/security-baseline/main.tf | 192 | # ════════════════════════════════════════════════════════════════════════════ | COMMENT |
| MEDIUM | infra/terraform/security-baseline/main.tf | 195 | # ════════════════════════════════════════════════════════════════════════════ | COMMENT |
| MEDIUM⚡ | infra/terraform/security-baseline/main.tf | 418 | # ════════════════════════════════════════════════════════════════════════════ | COMMENT |
| MEDIUM⚡ | infra/terraform/security-baseline/main.tf | 422 | # ════════════════════════════════════════════════════════════════════════════ | COMMENT |
| MEDIUM⚡ | infra/terraform/security-baseline/main.tf | 430 | # ════════════════════════════════════════════════════════════════════════════ | COMMENT |
| MEDIUM⚡ | infra/terraform/security-baseline/main.tf | 432 | # ════════════════════════════════════════════════════════════════════════════ | COMMENT |
| MEDIUM | infra/terraform/security-baseline/main.tf | 558 | # ════════════════════════════════════════════════════════════════════════════ | COMMENT |
| MEDIUM | infra/terraform/security-baseline/main.tf | 561 | # ════════════════════════════════════════════════════════════════════════════ | COMMENT |
| MEDIUM | infra/terraform/security-baseline/iam-gha-ecs-deploy.tf | 1 | # ════════════════════════════════════════════════════════════════════════════ | COMMENT |
| MEDIUM | infra/terraform/security-baseline/iam-gha-ecs-deploy.tf | 25 | # ════════════════════════════════════════════════════════════════════════════ | COMMENT |
| MEDIUM | infra/terraform/security-baseline/iam-gha-ecs-deploy.tf | 199 | # ── One-shot adoption of the live role (created out-of-band) ────────────────── | COMMENT |
| MEDIUM | infra/terraform/security-baseline/iam-groups.tf | 1 | # ════════════════════════════════════════════════════════════════════════════ | COMMENT |
| MEDIUM | infra/terraform/security-baseline/iam-groups.tf | 6 | # ════════════════════════════════════════════════════════════════════════════ | COMMENT |
| MEDIUM | infra/terraform/security-baseline/providers.tf | 1 | # ── Account-level security baseline (SOC 2 / Drata) ────────────────────────── | COMMENT |
| MEDIUM | …ra/terraform/security-baseline/imports-legacy-roles.tf | 1 | # ════════════════════════════════════════════════════════════════════════════ | COMMENT |
| MEDIUM | …ra/terraform/security-baseline/imports-legacy-roles.tf | 15 | # ════════════════════════════════════════════════════════════════════════════ | COMMENT |
| MEDIUM | infra/terraform/security-baseline/iam-gha-tf-plan.tf | 1 | # ════════════════════════════════════════════════════════════════════════════ | COMMENT |
| MEDIUM | infra/terraform/security-baseline/iam-gha-tf-plan.tf | 18 | # ════════════════════════════════════════════════════════════════════════════ | COMMENT |
| MEDIUM | infra/terraform/security-baseline/iam-gha-tf-apply.tf | 1 | # ════════════════════════════════════════════════════════════════════════════ | COMMENT |
| MEDIUM | infra/terraform/security-baseline/iam-gha-tf-apply.tf | 25 | # ════════════════════════════════════════════════════════════════════════════ | COMMENT |
| MEDIUM | infra/terraform/security-baseline/iam-gha-tf-apply.tf | 119 | # ── Account-global roots: compliance-monitoring + security-baseline ────────── | COMMENT |
| MEDIUM | infra/terraform/security-baseline/iam-gha-nacl-audit.tf | 1 | # ════════════════════════════════════════════════════════════════════════════ | COMMENT |
| MEDIUM | infra/terraform/security-baseline/iam-gha-nacl-audit.tf | 16 | # ════════════════════════════════════════════════════════════════════════════ | COMMENT |
| MEDIUM | infra/terraform/scripts/bootstrap-state.sh | 12 | # ── S3 bucket ──────────────────────────────────────────────────────────────── | COMMENT |
| MEDIUM | infra/terraform/scripts/bootstrap-state.sh | 28 | # ── DynamoDB lock table ────────────────────────────────────────────────────── | COMMENT |
| MEDIUM | infra/terraform/modules/network/main.tf | 61 | # ── Default network ACL baseline ────────────────────────────────────────────── | COMMENT |
| MEDIUM | infra/terraform/modules/network/main.tf | 157 | # ── Public subnets ──────────────────────────────────────────────────────────── | COMMENT |
| MEDIUM | infra/terraform/modules/network/main.tf | 202 | # ── Private subnets (egress via NAT) ────────────────────────────────────────── | COMMENT |
| MEDIUM | infra/terraform/modules/network/variables.tf | 30 | # ── Default network ACL ─────────────────────────────────────────────────────── | COMMENT |
| MEDIUM | infra/terraform/modules/network/variables.tf | 56 | # ── EKS subnet discovery tags (optional; empty = no-op for the ECS envs) ─────── | COMMENT |
| MEDIUM | infra/terraform/modules/selfhost-ec2/main.tf | 72 | # ── AMI (Ubuntu 24.04 LTS via Canonical's public SSM parameter) ──────────── | COMMENT |
| MEDIUM | infra/terraform/modules/selfhost-ec2/main.tf | 79 | # the module deployable in a stock account with zero network inputs) ───── | COMMENT |
| 2378 more matches not shown… | ||||
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | …-monitoring/functions/test_ec2_cpu_alarm_reconciler.py | 55 | def test_creates_a_drata_compatible_alarm_for_every_running_instance(self): | CODE |
| LOW | …-monitoring/functions/test_ec2_cpu_alarm_reconciler.py | 81 | def test_does_not_rewrite_an_already_compliant_alarm(self): | CODE |
| LOW | …-monitoring/functions/test_ec2_cpu_alarm_reconciler.py | 105 | def test_repairs_an_alarm_with_no_notification_action(self): | CODE |
| LOW | …ance-monitoring/functions/test_alb_alarm_reconciler.py | 117 | def test_creates_three_drata_compatible_alarms_for_each_application_lb(self): | CODE |
| LOW | …ance-monitoring/functions/test_alb_alarm_reconciler.py | 179 | def test_creates_distinct_target_alarms_for_multiple_target_groups(self): | CODE |
| LOW | …ance-monitoring/functions/test_alb_alarm_reconciler.py | 206 | def test_does_not_rewrite_compliant_alarms(self): | CODE |
| LOW | …ance-monitoring/functions/test_alb_alarm_reconciler.py | 217 | def test_repairs_stale_dimensions_and_missing_notification_actions(self): | CODE |
| LOW | …ance-monitoring/functions/test_alb_alarm_reconciler.py | 254 | def test_deletes_retired_target_response_time_alarms_it_created(self): | CODE |
| LOW | …ance-monitoring/functions/test_alb_alarm_reconciler.py | 292 | def test_deletes_legacy_compliance_alb_alarms_but_not_cpu_alarms(self): | CODE |
| LOW | …ance-monitoring/functions/test_alb_alarm_reconciler.py | 322 | def test_never_deletes_a_desired_alarm(self): | CODE |
| LOW⚡ | …ra/terraform/scripts/test_alb_log_bucket_versioning.py | 31 | def assert_alb_logs_versioning_enabled(source: str) -> None: | CODE |
| LOW⚡ | …ra/terraform/scripts/test_alb_log_bucket_versioning.py | 41 | def test_module_enables_alb_log_bucket_versioning() -> None: | CODE |
| LOW⚡ | …ra/terraform/scripts/test_alb_log_bucket_versioning.py | 45 | def test_missing_versioning_is_rejected() -> None: | CODE |
| LOW⚡ | …ra/terraform/scripts/test_alb_log_bucket_versioning.py | 54 | def test_suspended_versioning_is_rejected() -> None: | CODE |
| LOW | infra/terraform/scripts/test_web_waf_associations.py | 12 | def test_ecs_module_exposes_alb_arn(self): | CODE |
| LOW | infra/terraform/scripts/test_web_waf_associations.py | 17 | def test_each_web_environment_owns_a_regional_waf_association(self): | CODE |
| LOW | infra/terraform/scripts/test_web_waf_associations.py | 34 | def test_compliance_stack_does_not_compete_for_web_albs(self): | CODE |
| LOW | infra/terraform/scripts/test_reconciler_iam_coverage.py | 54 | def test_every_lambda_api_call_is_granted(self): | CODE |
| LOW | infra/terraform/scripts/test_reconciler_iam_coverage.py | 68 | def test_alb_reconciler_detection_sees_the_known_calls(self): | CODE |
| LOW | infra/terraform/scripts/test_audit_nacl_admin_ports.py | 74 | def test_fixed_ruleset_is_clean(): | CODE |
| LOW | infra/terraform/scripts/test_audit_nacl_admin_ports.py | 89 | def test_module_baseline_is_clean(): | CODE |
| LOW | infra/terraform/scripts/test_audit_nacl_admin_ports.py | 105 | def test_default_vpc_acl_is_caught(): | CODE |
| LOW | infra/terraform/scripts/test_audit_nacl_admin_ports.py | 111 | def test_deny_before_allow_wins(): | CODE |
| LOW | infra/terraform/scripts/test_audit_nacl_admin_ports.py | 124 | def test_allow_before_deny_still_fails(): | CODE |
| LOW | infra/terraform/scripts/test_audit_nacl_admin_ports.py | 130 | def test_narrow_source_is_not_a_finding(): | CODE |
| LOW⚡ | infra/scripts/test-ecs-preview-runtime.py | 274 | def test_the_preview_origin_is_credential_free_https(self): | CODE |
| LOW | infra/scripts/test-ecs-preview-runtime.py | 92 | def test_preview_label_approves_one_exact_sha(self): | CODE |
| LOW | infra/scripts/test-ecs-preview-runtime.py | 122 | def test_every_later_job_consumes_the_approved_sha_not_the_event_sha(self): | CODE |
| LOW | infra/scripts/test-ecs-preview-runtime.py | 135 | def test_deploy_revalidates_permission_label_and_sha_before_publishing(self): | CODE |
| LOW | infra/scripts/test-ecs-preview-runtime.py | 143 | def test_the_sandbox_refuses_to_run_any_other_sha(self): | CODE |
| LOW | infra/scripts/test-ecs-preview-runtime.py | 158 | def test_no_checkout_persists_credentials(self): | CODE |
| LOW | infra/scripts/test-ecs-preview-runtime.py | 168 | def test_build_jobs_have_no_secret_no_registry_and_no_push(self): | CODE |
| LOW | infra/scripts/test-ecs-preview-runtime.py | 184 | def test_the_credentialed_job_loads_images_and_never_runs_them(self): | CODE |
| LOW | infra/scripts/test-ecs-preview-runtime.py | 201 | def test_a_failed_preview_cannot_report_success(self): | CODE |
| LOW | infra/scripts/test-ecs-preview-runtime.py | 207 | def test_the_preview_pipeline_holds_no_cloud_or_delivery_identity(self): | CODE |
| LOW | infra/scripts/test-ecs-preview-runtime.py | 224 | def test_each_pull_request_gets_one_named_sandbox(self): | CODE |
| LOW | infra/scripts/test-ecs-preview-runtime.py | 251 | self.assertIn("async function replaceExistingPlatinumPreview(", PREVIEW_PROVIDERS) | CODE |
| LOW | infra/scripts/test-ecs-preview-runtime.py | 252 | self.assertIn("async function replaceExistingDaytonaPreview(", PREVIEW_PROVIDERS) | CODE |
| LOW | infra/scripts/test-ecs-preview-runtime.py | 299 | def test_only_the_edge_port_is_published_and_the_gateway_stays_internal(self): | CODE |
| LOW | infra/scripts/test-ecs-preview-runtime.py | 313 | def test_the_preview_runs_its_own_data_plane_in_preview_mode(self): | CODE |
| LOW | infra/scripts/test-ecs-preview-runtime.py | 348 | def test_runtime_secrets_are_allowlisted_and_delivered_per_sandbox(self): | CODE |
| LOW | infra/scripts/test-ecs-preview-runtime.py | 390 | def test_unlabel_and_branch_delete_run_complete_default_branch_teardown(self): | CODE |
| LOW | infra/scripts/test-ecs-preview-runtime.py | 446 | def test_a_new_head_sha_redeploys_instead_of_revoking_the_approval(self): | CODE |
| LOW | infra/scripts/test-ecs-preview-runtime.py | 508 | def test_the_nightly_sweep_deletes_only_unapproved_sandboxes(self): | CODE |
| LOW | infra/scripts/test-ecs-preview-runtime.py | 561 | def test_a_failed_pull_request_query_never_reads_as_no_active_previews(self): | CODE |
| LOW | infra/scripts/test-ecs-preview-runtime.py | 583 | def test_deploy_requires_exact_api_health_and_the_full_deployed_suite(self): | CODE |
| LOW | infra/scripts/test-ecs-preview-runtime.py | 598 | def test_provider_fallback_hides_no_product_failure(self): | CODE |
| LOW | infra/scripts/test-ecs-preview-runtime.py | 617 | def test_shared_edge_has_tls_waf_logs_and_preview_only_oidc_role(self): | CODE |
| LOW | infra/scripts/test-ecs-preview-runtime.py | 643 | def test_database_egress_and_bootstrap_are_bounded(self): | CODE |
| LOW | tests/bin/ke2e.ts | 288 | function installCancellationReclaim(runId: string): void { | CODE |
| LOW | tests/bin/sandbox-preview.ts | 63 | async function activePreviewPullRequests( | CODE |
| LOW | tests/e2e/global-setup.ts | 94 | export async function assertBrowserLaneCapabilities( | CODE |
| LOW | tests/e2e/specs/01-account-auth.spec.ts | 30 | async function requestEmailAuthentication(page: Page, email: string) { | CODE |
| LOW | tests/e2e/specs/01-account-auth.spec.ts | 70 | async function completeEmailAuthentication(page: Page, action: AuthEmailAction) { | CODE |
| LOW | tests/e2e/specs/08-accounts-project-access.spec.ts | 149 | async function createProjectForAccessTest( | CODE |
| LOW | tests/e2e/helpers/session-auth.ts | 156 | export async function installBrowserSessionDirect( | CODE |
| LOW | tests/e2e/helpers/http.ts | 66 | export async function requestWithTransientRetry( | CODE |
| LOW | tests/e2e/helpers/deployment-bypass.ts | 70 | export function isDeploymentInfrastructureCookie(name: string): boolean { | CODE |
| LOW | tests/e2e/helpers/deployment-bypass.ts | 127 | export async function mintDeploymentBypassState( | CODE |
| LOW | tests/e2e/helpers/deployment-bypass.ts | 155 | export async function writeDeploymentBypassState( | CODE |
| 1844 more matches not shown… | ||||
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | pnpm-workspace.yaml | 1 | packages: | COMMENT |
| LOW | self-host/terraform/main.tf | 1 | # self-host/terraform — AWS/EC2 provisioner for Kortix self-host. | COMMENT |
| LOW | infra/terraform/environments/prod/variables.tf | 101 | description = "Non-secret env vars for the API container." | COMMENT |
| LOW | infra/terraform/environments/staging/main.tf | 1 | # ── staging environment — ECS Fargate (api + gateway), autoscaled ───────────── | COMMENT |
| LOW | infra/terraform/environments/staging/main.tf | 101 | # Staging must absorb the release gate's FULL concurrent load: `pnpm test -- | COMMENT |
| LOW | infra/terraform/environments/dev/main.tf | 1 | # ── dev environment — dev-api-ecs-fargate.kortix.com (ECS Fargate, autoscaled) ─ | COMMENT |
| LOW | infra/terraform/environments/dev/main.tf | 121 | ses_send_identity_names = ["kortix.com", "kortix.ai"] | COMMENT |
| LOW | infra/terraform/environments/dev/main.tf | 181 | # request bodies (multimodal turns reach tens of MB) while it forwards them. | COMMENT |
| LOW | infra/terraform/security-baseline/iam-gha-ecs-deploy.tf | 1 | # ════════════════════════════════════════════════════════════════════════════ | COMMENT |
| LOW | infra/terraform/security-baseline/iam-groups.tf | 61 | tags = local.tags | COMMENT |
| LOW | infra/terraform/security-baseline/iam-groups.tf | 81 | # scoped to a resource ARN. The Drata Compliance-as-Code scanner (testId 8025 | COMMENT |
| LOW | infra/terraform/security-baseline/iam-groups.tf | 181 | mfa-self-manage = { | COMMENT |
| LOW | infra/terraform/security-baseline/iam-groups.tf | 221 | groups = each.value | COMMENT |
| LOW | infra/terraform/security-baseline/providers.tf | 1 | # ── Account-level security baseline (SOC 2 / Drata) ────────────────────────── | COMMENT |
| LOW | …ra/terraform/security-baseline/imports-legacy-roles.tf | 1 | # ════════════════════════════════════════════════════════════════════════════ | COMMENT |
| LOW | infra/terraform/security-baseline/iam-gha-tf-plan.tf | 1 | # ════════════════════════════════════════════════════════════════════════════ | COMMENT |
| LOW | infra/terraform/security-baseline/iam-gha-tf-apply.tf | 1 | # ════════════════════════════════════════════════════════════════════════════ | COMMENT |
| LOW | infra/terraform/security-baseline/iam-gha-tf-apply.tf | 121 | # These two roots are not environment infrastructure. They manage the account | COMMENT |
| LOW | infra/terraform/security-baseline/iam-gha-nacl-audit.tf | 1 | # ════════════════════════════════════════════════════════════════════════════ | COMMENT |
| LOW | infra/terraform/security-baseline/patch-management.tf | 1 | # Automated weekly security patching for the EC2 worker fleet. | COMMENT |
| LOW | infra/terraform/examples/selfhost-ec2/main.tf | 1 | # Example root module: a single self-hosted Kortix VPS on EC2. | COMMENT |
| LOW | infra/terraform/modules/selfhost-ec2/main.tf | 1 | # selfhost-ec2 — a thin, optional convenience provisioner for `kortix | COMMENT |
| LOW | infra/terraform/modules/selfhost-ec2/main.tf | 21 | subnet_id = var.subnet_id != "" ? var.subnet_id : data.aws_subnets.default[0].ids[0] | COMMENT |
| LOW | infra/terraform/modules/selfhost-ec2/storage.tf | 1 | # Separate EBS data volume holding ALL durable self-host state, so it survives | COMMENT |
| LOW | infra/terraform/modules/selfhost-ec2/storage.tf | 21 | data_mount_path = "/mnt/kortix-data" | COMMENT |
| LOW | infra/terraform/modules/selfhost-ec2/monitoring.tf | 1 | # Minimal, boring CloudWatch monitoring: an EC2 status-check alarm (no | COMMENT |
| LOW | infra/terraform/modules/selfhost-ec2/monitoring.tf | 201 | # software/hardware issue) — never triggered by anything happening inside the | COMMENT |
| LOW | infra/terraform/modules/selfhost-ec2/monitoring.tf | 241 | COMMENT | |
| LOW | …modules/selfhost-ec2/scripts/check-data-volume-safe.sh | 1 | #!/usr/bin/env bash | COMMENT |
| LOW | infra/terraform/modules/ecs-api/main.tf | 21 | name = var.name | COMMENT |
| LOW | infra/terraform/modules/ecs-api/main.tf | 501 | options = { | COMMENT |
| LOW | infra/cloudflare/workers/pi-router/wrangler.toml | 1 | # Cloudflare Worker that serves `pi.kortix.com` — the stable name for the | COMMENT |
| LOW | infra/cloudflare/workers/api-router/wrangler.toml | 1 | # Cloudflare Worker that fronts the public API and routes to the active backend. | COMMENT |
| LOW | infra/scripts/ecs-deploy.sh | 1 | #!/usr/bin/env bash | COMMENT |
| LOW | infra/scripts/ecs-deploy.sh | 21 | # string (e.g. 0.9.109-staging.<sha8>) — without this stamp, ECS | COMMENT |
| LOW | infra/scripts/ecs-deploy.sh | 281 | fi | COMMENT |
| LOW | infra/scripts/test-ecs-preview-runtime.py | 241 | # satisfy the warm check ("restored, nothing running") — waiting on it | COMMENT |
| LOW | tests/playwright.config.ts | 121 | // REST lane, so transient overload (5xx laundered into MAINTENANCE_MODE by the | COMMENT |
| LOW | tests/dev-turn-truth-probe.ts | 141 | // A message POSTed through the sandbox PROXY is NOT a valid test: the proxy | COMMENT |
| LOW | tests/bin/sandbox-preview.ts | 141 | if (action === 'deploy') { | COMMENT |
| LOW | tests/e2e/specs/01-account-auth.spec.ts | 101 | // from a `page.waitForResponse('/v1/accounts')`. | COMMENT |
| LOW | tests/e2e/specs/08-accounts-project-access.spec.ts | 721 | // General and Repositories tabs and the link did NOT come with it | COMMENT |
| LOW | tests/e2e/specs/13-sdk-only-session.spec.ts | 421 | authOptions, | COMMENT |
| LOW | tests/e2e/specs/23-composio-connector.spec.ts | 261 | ); | COMMENT |
| LOW | tests/src/core/preview-stack.ts | 181 | // Managed git has two supported shapes, and the API prefers the PAT when both | COMMENT |
| LOW | tests/src/core/local-runner.ts | 361 | // its own AUTH_EMAIL_HOOK_SECRET. Injecting the local literal there made | COMMENT |
| LOW | tests/src/core/sandbox-preview.ts | 141 | # The Caddyfile is a BIND MOUNT, so rewriting it changes nothing that | COMMENT |
| LOW | tests/src/flows/audit.flow.ts | 201 | COMMENT | |
| LOW | tests/src/flows/session-thread-reliability.flow.ts | 461 | // (`abortLiveTurnBeforeStop`, apps/api/src/projects/reaping/stop-box.ts, | COMMENT |
| LOW | tests/src/flows/session-thread-reliability.flow.ts | 901 | COMMENT | |
| LOW | tests/src/flows/session-thread-reliability.flow.ts | 1041 | } | COMMENT |
| LOW | tests/src/flows/router.flow.ts | 101 | // catch-all, so it is not a discrete entry in app.routes / the route manifest and | COMMENT |
| LOW | tests/src/flows/triggers.flow.ts | 241 | // - ANON → 401 on POST/PATCH/DELETE/fire/activation (auth boundary) | COMMENT |
| LOW | tests/src/flows/channels.flow.ts | 681 | }); | COMMENT |
| LOW | tests/src/flows/run-session-backlog.flow.ts | 1321 | // | COMMENT |
| LOW | supabase/config.toml | 1 | # ╔══════════════════════════════════════════════════════════════════════════════╗ | COMMENT |
| LOW | supabase/config.toml | 41 | enable_signup = true | COMMENT |
| LOW | scripts/dev-local.sh | 21 | # laptop diligence as `pnpm dev` — decrypt env, clear ports, Docker/Supabase, | COMMENT |
| LOW | scripts/dev-local.sh | 181 | } | COMMENT |
| LOW | scripts/dev-local.sh | 241 | COMMENT | |
| 1416 more matches not shown… | ||||
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| MEDIUM | infra/scripts/test-ecs-preview-runtime.py | 614 | # guardrails stay gated here. Retiring it must delete this class and the | COMMENT |
| MEDIUM | tests/src/flows/cli-resources.flow.ts | 420 | // Scope `enabled` to the daily block. The scaffold ships another, ENABLED | COMMENT |
| MEDIUM | tests/src/flows/skills.flow.ts | 15 | // every other Kortix skill and the seeded project scaffold reference by name. | COMMENT |
| MEDIUM | tests/src/flows/cli-ship.flow.ts | 560 | // Establish the link via a first managed ship (clean push of the scaffold). | COMMENT |
| MEDIUM | packages/shared/src/sandbox/dockerfile-layer.ts | 627 | // Canonical scaffold repo (bare). Its root commit matches every seeded | COMMENT |
| MEDIUM | packages/starter/scripts/write-managed-skills.ts | 26 | // `kortix-cli` (the one managed skill deliberately left in the scaffold). Both | COMMENT |
| MEDIUM | …managed/.kortix/opencode/skills/kortix-system/SKILL.md | 381 | ## Continual harness — the project refines its own scaffolding | COMMENT |
| MEDIUM | …e/skills/kortix-system/references/kortix/kortix-cli.md | 411 | ### Project scaffold | COMMENT |
| MEDIUM | packages/starter/src/index.test.ts | 262 | // `kortix-cli` is the sole managed skill left in the scaffold; the rest of the | COMMENT |
| MEDIUM | packages/starter/src/index.ts | 103 | // disk here, so a filter in only one place means the two paths scaffold | COMMENT |
| MEDIUM | packages/starter/src/index.ts | 275 | // a root the scaffold actually needs is worth throwing over. | COMMENT |
| MEDIUM | …ckages/sdk/src/react/use-opencode-sessions/sessions.ts | 40 | // With the scaffold-warm seed, opencode is ALREADY 'ok' for /workspace and a | COMMENT |
| MEDIUM | packages/registry/src/schema.ts | 47 | 'registry:project', // a whole Kortix project (full repo scaffold) | CODE |
| MEDIUM | packages/db/scripts/generate-safety-header.test.ts | 79 | // The template and lint-migrations.ts must not drift apart: a scaffold that | COMMENT |
| MEDIUM | packages/llm-catalog/src/index.ts | 535 | // credible agentic coder). | COMMENT |
| MEDIUM | apps/web/src/features/session/session-chat.tsx | 1553 | // renderer drew a full-height turn scaffold per attempt — a retry loop | COMMENT |
| MEDIUM | apps/web/src/features/session/session-chat.tsx | 2602 | // UI doesn't flicker between agentic steps. NOT a 2s debounce. | COMMENT |
| MEDIUM | …/src/features/session/session-chat-inbox-queue.test.ts | 219 | // agentic steps, which is exactly when a command would land mid-turn. | COMMENT |
| MEDIUM | apps/web/src/lib/blog-posts.ts | 1053 | text: 'The rest of the market is converging on the same lesson. [Auth0](https://auth0.com/blog/api-key-security-fo | CODE |
| MEDIUM | apps/web/src/lib/blog-posts.ts | 1206 | text: 'The market is already pointing this way. [Accenture AI Refinery](https://www.accenture.com/us-en/services/a | CODE |
| MEDIUM | apps/cli/DESIGN.md | 244 | scaffold.ts # init scaffold (existing) | CODE |
| MEDIUM | apps/cli/scripts/e2e-cloud.sh | 205 | # …then scaffold a Kortix project so link CAN succeed. | COMMENT |
| MEDIUM | apps/cli/src/index.ts | 641 | // project scaffold — `kortix <new-project-name>` used to, which turned | COMMENT |
| MEDIUM | apps/cli/src/commands/init.ts | 270 | // scaffold into an existing non-empty folder — a Kortix project is standalone. | COMMENT |
| MEDIUM⚡ | apps/kortix-sandbox-agent-server/src/main.ts | 1200 | // Scaffold-warm the seed: materialize the image-baked scaffold at /workspace | COMMENT |
| MEDIUM⚡ | apps/kortix-sandbox-agent-server/src/main.ts | 1204 | // wall). Resolve opencode's config from the scaffold's .kortix/opencode so the | COMMENT |
| MEDIUM⚡ | apps/kortix-sandbox-agent-server/src/main.ts | 1209 | // scaffold seed. A failed project clone returns false and degrades to the | COMMENT |
| MEDIUM⚡ | apps/kortix-sandbox-agent-server/src/main.ts | 1210 | // scaffold seed. | COMMENT |
| MEDIUM | apps/kortix-sandbox-agent-server/src/main.ts | 1296 | // (scaffold OR real project repo) materialized; otherwise capture cannot be pinned. | COMMENT |
| MEDIUM | apps/kortix-sandbox-agent-server/src/opencode.ts | 559 | // returned empty completions on real agentic/image turns while this path | COMMENT |
| MEDIUM | apps/kortix-sandbox-agent-server/src/git.ts | 672 | // the baked content IS this session's base — i.e. a fresh scaffold-rooted | COMMENT |
| MEDIUM | apps/kortix-sandbox-agent-server/src/git.ts | 674 | // (an imported repo / diverged project), the baked scaffold is the WRONG | COMMENT |
| MEDIUM | apps/kortix-sandbox-agent-server/src/git.ts | 736 | // /opt/kortix/scaffold.git whose root commit is SHARED with every project | COMMENT |
| MEDIUM | apps/kortix-sandbox-agent-server/src/git.ts | 987 | // Materialize `target` from the image-baked scaffold + a delta fetch from the | COMMENT |
| MEDIUM | apps/kortix-sandbox-agent-server/src/git.ts | 1004 | // ZERO-NETWORK fast path: the image-baked scaffold's root commit is shared, | COMMENT |
| MEDIUM | apps/kortix-sandbox-agent-server/src/git.ts | 1060 | // plain fetch runs over the scaffold's loose objects (each round ~1 s | COMMENT |
| MEDIUM | …box-agent-server/src/__tests__/fast-boot-delta.test.ts | 136 | // Bake a DIFFERENT scaffold: the parent tree is unknown to it. | COMMENT |
| MEDIUM | apps/api/src/config.ts | 537 | // scaffold-delta hint (inline or remote bundle), and the OpenCode config-dir | COMMENT |
| MEDIUM | apps/api/src/snapshots/build-context.ts | 671 | // Canonical scaffold repo baked at /opt/kortix/scaffold.git. Built from the | COMMENT |
| MEDIUM | apps/api/src/snapshots/build-context.ts | 699 | // Fail-loud completeness guard: a context missing scaffold.git / the agent | COMMENT |
| MEDIUM | apps/api/src/snapshots/templates.ts | 81 | // (`ship`, `cr`, `tunnel`, `self-host`, `accounts`, the whole `init`/scaffold | COMMENT |
| MEDIUM | apps/api/src/snapshots/templates.ts | 96 | // /opt/kortix/scaffold.git. A starter change must invalidate the non-agent | COMMENT |
| MEDIUM | apps/api/src/snapshots/templates.ts | 98 | // image while preserving a stale scaffold, which makes every fresh session | COMMENT |
| MEDIUM | apps/api/src/snapshots/providers/daytona.ts | 122 | // reports as "Path does not exist: …/scaffold.git". Re-staging self-heals | COMMENT |
| MEDIUM | …/src/snapshots/__tests__/cli-connector-closure.test.ts | 11 | // developer-only CLI edit (`ship`, `cr`, `tunnel`, `self-host`, the scaffold | COMMENT |
| MEDIUM | apps/api/src/projects/provision-core.ts | 574 | // Seed a deterministic scaffold root followed by the project's small | COMMENT |
| MEDIUM | apps/api/src/projects/provision-core.ts | 645 | // session must already find its base tip + scaffold delta cached. | COMMENT |
| MEDIUM | apps/api/src/projects/seed-files.test.ts | 79 | // The pack's own README wins over the minimal scaffold's. | COMMENT |
| MEDIUM | apps/api/src/projects/seed-files.test.ts | 86 | // The scaffold still provides the manifest with a declared default agent. | COMMENT |
| MEDIUM | apps/api/src/projects/git-backends/github.ts | 213 | // image-baked scaffold (snapshots/build-context.ts). Without forwarding | COMMENT |
| MEDIUM | apps/api/src/projects/git-backends/github.ts | 215 | // to the baked scaffold → every fresh session full-cloned through the | COMMENT |
| MEDIUM | apps/api/src/projects/git-backends/code-storage.ts | 432 | // deterministic base-scaffold commit first, then the per-project files — | COMMENT |
| MEDIUM | apps/api/src/projects/lib/session-runtime-env.ts | 91 | // locally and materializes from the baked scaffold + the API's delta, so no | COMMENT |
| MEDIUM | …i/src/projects/lib/sessions.fast-boot-git-hint.test.ts | 72 | // Hint: a worker never clones, so the scaffold/delta race must not hold | COMMENT |
| MEDIUM⚡ | apps/api/src/projects/lib/sessions.ts | 1697 | // one-commit scaffold delta. This moves the small object transfer into | COMMENT |
| MEDIUM⚡ | apps/api/src/projects/lib/sessions.ts | 1704 | // daemon boot with ZERO proxied git requests (scaffold + delta) and spawn | COMMENT |
| MEDIUM⚡ | apps/api/src/projects/lib/sessions.ts | 1709 | // The worker path never clones: the scaffold/delta hint is pure waste | COMMENT |
| MEDIUM | apps/api/src/projects/git/branches.ts | 336 | // scaffold seed never landed — the repo is structurally empty and every | COMMENT |
| MEDIUM | apps/api/src/marketplace/catalog.ts | 533 | // README is a generic scaffold note) — replace it in place, or add one. | COMMENT |
| MEDIUM | apps/api/src/__tests__/e2e-create-repo-starter.test.ts | 28 | // scaffold changes. | COMMENT |
| 4 more matches not shown… | ||||
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| HIGH⚡ | infra/scripts/test-ecs-preview-runtime.py | 266 | self.assertIn("sandbox.name === persistent && owner === 'kortix-branch-env'", PREVIEW_CORE) | CODE |
| HIGH⚡ | infra/scripts/test-ecs-preview-runtime.py | 282 | self.assertIn("if (url.protocol !== 'https:' || url.username || url.password)", PREVIEW_PROVIDERS) | CODE |
| HIGH | infra/scripts/test-ecs-preview-runtime.py | 530 | self.assertIn("return !activeSha || activeSha !== sandbox.metadata?.git_sha;", PREVIEW_CORE) | CODE |
| HIGH | infra/scripts/test-ecs-preview-runtime.py | 539 | self.assertIn("if (sandbox.name === undefined) return false;", PREVIEW_CORE) | CODE |
| HIGH⚡ | …/opencode/skills/presentations/scripts/convert_pptx.py | 110 | if (cs.backgroundImage && cs.backgroundImage !== 'none') return true; | CODE |
| HIGH⚡ | …/opencode/skills/presentations/scripts/convert_pptx.py | 112 | if (bg && bg !== 'rgba(0, 0, 0, 0)' && bg !== 'transparent') return true; | CODE |
| HIGH⚡ | …/opencode/skills/presentations/scripts/convert_pptx.py | 113 | if (cs.borderStyle && cs.borderStyle !== 'none' && cs.borderWidth !== '0px') return true; | CODE |
| HIGH⚡ | …/opencode/skills/presentations/scripts/convert_pptx.py | 114 | if (cs.boxShadow && cs.boxShadow !== 'none') return true; | CODE |
| HIGH⚡ | …/opencode/skills/presentations/scripts/convert_pptx.py | 124 | if (!el || el.nodeType !== 1) return []; | CODE |
| HIGH⚡ | …/opencode/skills/presentations/scripts/convert_pptx.py | 127 | if (r.width === 0 || r.height === 0) return []; | CODE |
| HIGH⚡ | …/opencode/skills/presentations/scripts/convert_pptx.py | 133 | out.push({type:'visual', captureId:cid, x:r.left, y:r.top, width:r.width, height:r.height, tag:el.tagName.to | CODE |
| HIGH⚡ | …/opencode/skills/presentations/scripts/convert_pptx.py | 135 | for (const ch of el.children) out.push(...walk(ch, depth+1)); | CODE |
| HIGH⚡ | …/opencode/skills/presentations/scripts/convert_pptx.py | 141 | if (el.textContent && el.textContent.trim()) { | CODE |
| HIGH⚡ | …/opencode/skills/presentations/scripts/convert_pptx.py | 158 | if (!el || el.nodeType !== 1) return []; | CODE |
| HIGH⚡ | …/opencode/skills/presentations/scripts/convert_pptx.py | 162 | if (r.width === 0 || r.height === 0) return []; | CODE |
| HIGH⚡ | …/opencode/skills/presentations/scripts/convert_pptx.py | 170 | out.push({ | CODE |
| HIGH | …/opencode/skills/presentations/scripts/convert_pptx.py | 182 | for (const ch of el.children) out.push(...extract(ch)); | CODE |
| HIGH | …/opencode/skills/presentations/scripts/convert_pptx.py | 221 | if (!root && orig.tagName !== 'svg' && orig.tagName !== 'SVG' && | CODE |
| HIGH | …/opencode/skills/presentations/scripts/convert_pptx.py | 225 | for (let j=0; j<orig.children.length && j<cl.children.length; j++) | CODE |
| HIGH | …/opencode/skills/presentations/scripts/convert_pptx.py | 313 | if (el.textContent && el.textContent.trim()) { | CODE |
| HIGH | …/opencode/skills/presentations/scripts/convert_pptx.py | 325 | if (Math.abs(r.left-v.x)<5 && Math.abs(r.top-v.y)<5 && | CODE |
| HIGH | …/opencode/skills/presentations/scripts/convert_pptx.py | 326 | Math.abs(r.width-v.width)<5 && Math.abs(r.height-v.height)<5) { | CODE |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | self-host/terraform/variables.tf | 1 | # All variables here just pass through to modules/selfhost-ec2 — see that | COMMENT |
| MEDIUM⚡ | packages/starter/templates/base/kortix.yaml | 96 | # Continual-harness reflector: refines the shared harness (prompts, | COMMENT |
| MEDIUM⚡ | packages/starter/templates/base/kortix.yaml | 99 | # one per recent session, then opens — never merges — a harness CR. | COMMENT |
| MEDIUM⚡ | packages/starter/templates/base/kortix.yaml | 108 | # Sub-agent of the harness-reflector: deep-reviews ONE session's full | COMMENT |
| MEDIUM⚡ | packages/starter/templates/base/kortix.yaml | 122 | # Harness reflector — the continual-harness loop across sessions. | COMMENT |
| MEDIUM⚡ | packages/starter/templates/base/kortix.yaml | 125 | # objectives), and refines the shared harness — agent prompts, | COMMENT |
| MEDIUM⚡ | packages/starter/templates/base/kortix.yaml | 127 | # the `kortix-harness-refinement` skill. Opens a `harness: …` change | COMMENT |
| MEDIUM | packages/sdk/src/react/use-session.ts | 1152 | // lands (count grows) — robust to server-normalized text where a text-equality | COMMENT |
| MEDIUM | packages/sdk/src/react/use-model-store.ts | 245 | // the robust path — the gateway now serves it directly, so grouping/gating | COMMENT |
| MEDIUM | apps/desktop-electron/src/main.js | 309 | // Same size + center as the main window so swapping splash → app is seamless | COMMENT |
| MEDIUM | apps/web/src/app/(system)/debug/tools/page.tsx | 489 | '# App Router\n\nThe App Router is a new paradigm for building applications using React’s latest features.', | CODE |
| MEDIUM | apps/web/src/features/session/detect-command.ts | 85 | // Fallback: robust full-template match where placeholders are wildcards. | COMMENT |
| MEDIUM | apps/web/src/features/session/session-chat.tsx | 3966 | // drive the agent through the SAME robust path the input uses — optimistic | COMMENT |
| MEDIUM | apps/web/src/features/session/model-grouping.ts | 24 | // The robust fix (per the live /v1/models trace): the gateway now serves an | COMMENT |
| MEDIUM | …tures/session/action-panel/advanced/advanced-panel.tsx | 60 | // Jump to the tool the user clicked in the chat (focus by callID, robust to | COMMENT |
| MEDIUM | apps/web/src/components/ui/sidebar.tsx | 479 | // wrapper, so the band ahead of the incoming panel is seamless and | COMMENT |
| MEDIUM | apps/cli/scripts/build.sh | 8 | # are produced the same way (CI, dev-local.sh, the snapshot test harness). | COMMENT |
| MEDIUM | apps/cli/src/commands/ship.ts | 609 | // GitHub origin → the seamless import (one-click App install, or --github-token). | COMMENT |
| MEDIUM | apps/kortix-sandbox-agent-server/src/git.ts | 607 | // Rename the unborn branch to `base` — version-robust vs `git init -b`, which | COMMENT |
| MEDIUM | …agent-server/src/__tests__/static-web-curl.e2e.test.ts | 22 | // Capture body + status + content-type in one shot. Markers keep parsing robust | COMMENT |
| MEDIUM | apps/api/src/middleware/request-deadline.ts | 135 | // Any SSE client explicitly asks for an event stream — robust catch-all for | COMMENT |
| MEDIUM | apps/api/src/projects/routes/r2.ts | 140 | // needed — either a caller-supplied token (the seamless `kortix ship` flow | COMMENT |
| MEDIUM | …pi/src/__tests__/unit-kortix-projects-security.test.ts | 7 | // this safety check is robust to where the sandbox-lookup handler lives. | COMMENT |
| MEDIUM | apps/api/src/__tests__/unit-sentry-noise-filter.test.ts | 118 | // Driver code anchor (robust across driver versions). | COMMENT |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | self-host/README.md | 125 | admin_email = "admin@example.com" | CODE |
| LOW | apps/web/translations/zh.json | 500 | "placeholder": "输入你的消息..." | CODE |
| LOW | apps/web/translations/zh.json | 1533 | "line122JsxAttrPlaceholderJaneDoe": "Jane Doe", | CODE |
| LOW | apps/web/translations/zh.json | 4872 | "line254JsxAttrPlaceholderUserExampleCom": "user@example.com", | CODE |
| LOW | apps/web/translations/ja.json | 500 | "placeholder": "メッセージを入力..." | CODE |
| LOW | apps/web/translations/ja.json | 1533 | "line122JsxAttrPlaceholderJaneDoe": "Jane Doe", | CODE |
| LOW | apps/web/translations/ja.json | 4872 | "line254JsxAttrPlaceholderUserExampleCom": "user@example.com", | CODE |
| LOW | apps/web/translations/de.json | 500 | "placeholder": "Gib deine Nachricht ein..." | CODE |
| LOW | apps/web/translations/de.json | 1533 | "line122JsxAttrPlaceholderJaneDoe": "Jane Doe", | CODE |
| LOW | apps/web/translations/de.json | 4872 | "line254JsxAttrPlaceholderUserExampleCom": "user@example.com", | CODE |
| LOW | apps/web/translations/pt.json | 500 | "placeholder": "Digite tua mensagem..." | CODE |
| LOW | apps/web/translations/pt.json | 1533 | "line122JsxAttrPlaceholderJaneDoe": "Jane Doe", | CODE |
| LOW | apps/web/translations/pt.json | 4872 | "line254JsxAttrPlaceholderUserExampleCom": "user@example.com", | CODE |
| LOW | apps/web/translations/en.json | 500 | "placeholder": "Type your message..." | CODE |
| LOW | apps/web/translations/en.json | 1533 | "line122JsxAttrPlaceholderJaneDoe": "Jane Doe", | CODE |
| LOW | apps/web/translations/en.json | 4936 | "line254JsxAttrPlaceholderUserExampleCom": "user@example.com", | CODE |
| LOW | apps/web/translations/it.json | 500 | "placeholder": "Digita il tuo messaggio..." | CODE |
| LOW | apps/web/translations/it.json | 1533 | "line122JsxAttrPlaceholderJaneDoe": "Jane Doe", | CODE |
| LOW | apps/web/translations/it.json | 4872 | "line254JsxAttrPlaceholderUserExampleCom": "user@example.com", | CODE |
| LOW | apps/web/translations/fr.json | 500 | "placeholder": "Tape ton message..." | CODE |
| LOW | apps/web/translations/fr.json | 1533 | "line122JsxAttrPlaceholderJaneDoe": "Jane Doe", | CODE |
| LOW | apps/web/translations/fr.json | 4872 | "line254JsxAttrPlaceholderUserExampleCom": "user@example.com", | CODE |
| LOW | apps/web/translations/es.json | 500 | "placeholder": "Escribe tu mensaje..." | CODE |
| LOW | apps/web/translations/es.json | 1533 | "line122JsxAttrPlaceholderJaneDoe": "Jane Doe", | CODE |
| LOW | apps/web/translations/es.json | 4872 | "line254JsxAttrPlaceholderUserExampleCom": "user@example.com", | CODE |
| LOW | …s/workspace/customize/sections/teams-channel-panel.tsx | 228 | placeholder="Acme Corp" | CODE |
| LOW | …rc/features/session/composer/editor/suggestion.test.ts | 58 | expect(matchFor('@', key, 'user@example.com')).toBeNull(); | CODE |
| LOW | apps/cli/src/__tests__/host-notice.test.ts | 146 | user_email: 'user@example.com', | CODE |
| LOW | apps/mobile/locales/zh.json | 268 | "placeholder": "给 Kortix 一个任务...", | CODE |
| LOW | apps/mobile/locales/zh.json | 958 | "placeholder": "定义你的员工应该如何行为......", | CODE |
| LOW | apps/mobile/locales/ja.json | 268 | "placeholder": "Kortixにタスクを...", | CODE |
| LOW | apps/mobile/locales/ja.json | 958 | "placeholder": "従業員がどのように行動すべきかを定義します...", | CODE |
| LOW | apps/mobile/locales/de.json | 268 | "placeholder": "Gib Kortix eine Aufgabe...", | CODE |
| LOW | apps/mobile/locales/de.json | 958 | "placeholder": "Definieren Sie, wie sich Ihr Mitarbeiter verhalten soll...", | CODE |
| LOW | apps/mobile/locales/pt.json | 268 | "placeholder": "Dê uma tarefa para o Kortix...", | CODE |
| LOW | apps/mobile/locales/pt.json | 958 | "placeholder": "Defina como seu funcionário deve se comportar...", | CODE |
| LOW | apps/mobile/locales/en.json | 268 | "placeholder": "Give Kortix a task...", | CODE |
| LOW | apps/mobile/locales/en.json | 1005 | "placeholder": "Define how your worker should behave...", | CODE |
| LOW | apps/mobile/locales/it.json | 268 | "placeholder": "Dai a Kortix un compito...", | CODE |
| LOW | apps/mobile/locales/it.json | 958 | "placeholder": "Definisci come dovrebbe comportarsi il tuo lavoratore...", | CODE |
| LOW | apps/mobile/locales/fr.json | 268 | "placeholder": "Donne une tâche à Kortix...", | CODE |
| LOW | apps/mobile/locales/fr.json | 964 | "placeholder": "Définissez comment votre travailleur doit se comporter...", | CODE |
| LOW | apps/mobile/locales/es.json | 268 | "placeholder": "Dale a Kortix una tarea...", | CODE |
| LOW | apps/mobile/locales/es.json | 964 | "placeholder": "Define cómo debe comportarse tu trabajador...", | CODE |
| LOW | apps/mobile/components/ui/search-list-header.tsx | 23 | inputProps?: Omit<TextInputProps, 'value' | 'onChangeText' | 'placeholder' | 'placeholderTextColor' | 'style'>; | CODE |
| LOW | apps/api/src/connectors/policy-conditions.test.ts | 39 | expect(resolve({ to: 'admin@example.com' }).action).toBe('require_approval'); | CODE |
| LOW | apps/api/src/connectors/policy-conditions.test.ts | 65 | expect(resolve({ to: ['owner@example.com', 'admin@example.com'] }).action).toBe( | CODE |
| LOW | apps/api/src/projects/routes/r2-glyph-wiring.test.ts | 166 | github_token: 'fake-user-pat', | CODE |
| LOW | apps/api/src/projects/routes/r2-icon-wiring.test.ts | 175 | github_token: 'fake-user-pat', | CODE |
| LOW | apps/api/src/projects/routes/r2-icon-wiring.test.ts | 191 | github_token: 'fake-user-pat', | CODE |
| LOW | apps/api/src/shared/cost-csv.test.ts | 43 | expect(toCsv(['name'], [['Acme Corp']])).toBe('name\r\nAcme Corp'); | CODE |
| LOW | apps/api/src/__tests__/unit-email-channel.test.ts | 528 | message: { ...event.message, from: 'vip-12@example.org' }, | CODE |
| LOW | apps/api/src/__tests__/unit-teams-commands.test.ts | 18 | expect(parseTeamsCommand('/use Acme Corp')).toEqual({ verb: 'use', arg: 'Acme Corp' }); | CODE |
| LOW | …s/api/src/__tests__/unit-account-display-names.test.ts | 60 | expect(properAccountName('Acme Corp')).toBe('Acme Corp'); | CODE |
| LOW | …s/api/src/__tests__/unit-account-display-names.test.ts | 73 | [{ accountId: 'a1', name: 'Acme Corp' }], | CODE |
| LOW | …s/api/src/__tests__/unit-account-display-names.test.ts | 76 | expect(names.get('a1')).toBe('Acme Corp'); | CODE |
| LOW | …s/api/src/__tests__/unit-account-display-names.test.ts | 136 | { accountId: 'a1', name: 'Acme Corp' }, | CODE |
| LOW | …s/api/src/__tests__/unit-account-display-names.test.ts | 141 | expect(names.get('a1')).toBe('Acme Corp'); | CODE |
| LOW⚡ | …api/src/__tests__/billing/customers-repository.test.ts | 117 | { accountId: 'acc_3', id: 'cus_old', email: 'user@example.com', provider: 'stripe', active: true }, | CODE |
| LOW⚡ | …api/src/__tests__/billing/customers-repository.test.ts | 123 | email: 'user@example.com', | CODE |
| 1 more matches not shown… | ||||
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | infra/terraform/scripts/audit-nacl-admin-ports.py | 106 | except Exception as exc: # noqa: BLE001 - surfaced verbatim to the operator | CODE |
| LOW | infra/terraform/scripts/audit-nacl-admin-ports.py | 115 | except Exception as exc: # noqa: BLE001 | CODE |
| LOW | …encode/skills/domain-research/scripts/domain-lookup.py | 85 | except Exception: | CODE |
| LOW | …encode/skills/domain-research/scripts/domain-lookup.py | 96 | except Exception: | CODE |
| LOW | …encode/skills/domain-research/scripts/domain-lookup.py | 117 | except Exception: | CODE |
| LOW | …encode/skills/domain-research/scripts/domain-lookup.py | 202 | except Exception: | CODE |
| LOW | …encode/skills/domain-research/scripts/domain-lookup.py | 225 | except Exception: | CODE |
| LOW | …encode/skills/domain-research/scripts/domain-lookup.py | 381 | except Exception: | CODE |
| LOW | …encode/skills/domain-research/scripts/domain-lookup.py | 638 | except Exception: | CODE |
| LOW | …x/opencode/skills/legal-writer/scripts/verify-legal.py | 469 | except Exception as e: | CODE |
| LOW | …-worker/.kortix/opencode/skills/xlsx/scripts/recalc.py | 61 | except Exception: | CODE |
| LOW | …-worker/.kortix/opencode/skills/xlsx/scripts/recalc.py | 95 | except Exception: | CODE |
| LOW | …-worker/.kortix/opencode/skills/xlsx/scripts/recalc.py | 141 | except Exception: | CODE |
| LOW | …-worker/.kortix/opencode/skills/xlsx/scripts/recalc.py | 154 | except Exception: | CODE |
| LOW | …-worker/.kortix/opencode/skills/xlsx/scripts/recalc.py | 175 | except Exception as e: | CODE |
| LOW | …er/.kortix/opencode/skills/xlsx/scripts/pivot_table.py | 92 | except Exception: | CODE |
| LOW | …er/.kortix/opencode/skills/xlsx/scripts/pivot_table.py | 105 | except Exception: | CODE |
| LOW | …er/.kortix/opencode/skills/xlsx/scripts/pivot_table.py | 314 | except Exception as e: | CODE |
| MEDIUM | …kortix/opencode/skills/presentations/scripts/repair.py | 23 | print(f"Error: {src} not found", file=sys.stderr) | CODE |
| LOW | …kortix/opencode/skills/presentations/scripts/repair.py | 64 | except Exception: | CODE |
| LOW | …/.kortix/opencode/skills/presentations/scripts/pack.py | 64 | except Exception as exc: | CODE |
| LOW | …x/opencode/skills/presentations/scripts/convert_pdf.py | 87 | except Exception as e: | STRING |
| LOW | …x/opencode/skills/presentations/scripts/convert_pdf.py | 104 | except Exception: | STRING |
| LOW⚡ | …/opencode/skills/presentations/scripts/convert_pptx.py | 278 | except Exception: | CODE |
| LOW⚡ | …/opencode/skills/presentations/scripts/convert_pptx.py | 286 | except Exception: | CODE |
| LOW⚡ | …/opencode/skills/presentations/scripts/convert_pptx.py | 295 | except Exception: | CODE |
| LOW | …/opencode/skills/presentations/scripts/convert_pptx.py | 341 | except Exception: | CODE |
| LOW | …/opencode/skills/presentations/scripts/convert_pptx.py | 393 | except Exception: | CODE |
| LOW | …/opencode/skills/presentations/scripts/convert_pptx.py | 445 | except Exception: | CODE |
| LOW | …/opencode/skills/presentations/scripts/convert_pptx.py | 464 | except Exception as e: | CODE |
| LOW | …/opencode/skills/presentations/scripts/convert_pptx.py | 491 | except Exception: | CODE |
| LOW | …kortix/opencode/skills/presentations/scripts/unpack.py | 71 | except Exception: | CODE |
| LOW | …kortix/opencode/skills/presentations/scripts/unpack.py | 82 | except Exception: | CODE |
| MEDIUM | …kortix/opencode/skills/presentations/scripts/slides.py | 315 | print(f"Error: {layout_path} not found", file=sys.stderr) | CODE |
| MEDIUM | …kortix/opencode/skills/presentations/scripts/slides.py | 343 | print(f"Error: {source_path} not found", file=sys.stderr) | CODE |
| LOW | …kortix/opencode/skills/presentations/scripts/slides.py | 474 | except Exception: | CODE |
| MEDIUM | …kortix/opencode/skills/presentations/scripts/slides.py | 511 | print("Error: No slides found", file=sys.stderr) | CODE |
| MEDIUM⚡ | …kortix/opencode/skills/presentations/scripts/slides.py | 543 | print(f"Error: {unpacked} not found", file=sys.stderr) | CODE |
| MEDIUM⚡ | …kortix/opencode/skills/presentations/scripts/slides.py | 557 | print(f"Error: {unpacked} not found", file=sys.stderr) | CODE |
| MEDIUM⚡ | …kortix/opencode/skills/presentations/scripts/slides.py | 565 | print(f"Error: Invalid PowerPoint file: {args.input}", file=sys.stderr) | CODE |
| LOW⚡ | …kortix/opencode/skills/presentations/scripts/slides.py | 575 | except Exception as e: | CODE |
| MEDIUM⚡ | …kortix/opencode/skills/presentations/scripts/slides.py | 576 | print(f"Error: {e}", file=sys.stderr) | CODE |
| LOW | …ge-worker/.kortix/opencode/skills/docx/scripts/pack.py | 69 | except Exception as e: | CODE |
| LOW | …-worker/.kortix/opencode/skills/docx/scripts/unpack.py | 103 | except Exception: | CODE |
| LOW⚡ | …-worker/.kortix/opencode/skills/docx/scripts/unpack.py | 116 | except Exception: | CODE |
| LOW | apps/cli/scripts/e2e-cloud.sh | 175 | except Exception: | CODE |
| LOW | apps/api/scripts/_prompt_e2e.sh | 36 | except Exception as e: print('')") | CODE |
| LOW⚡ | apps/api/src/scripts/dump-opencode-schema.ts | 18 | except Exception as e: print(f"{n}: ERR {e}") | CODE |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | …tplace/.kortix/opencode/skills/draft-outreach/SKILL.md | 125 | ### Step 1: Parse Request | COMMENT |
| LOW | …tplace/.kortix/opencode/skills/draft-outreach/SKILL.md | 135 | ### Step 2: Research First (Always) | COMMENT |
| LOW | …tplace/.kortix/opencode/skills/draft-outreach/SKILL.md | 150 | ### Step 3: Identify Hook | COMMENT |
| LOW | …tplace/.kortix/opencode/skills/draft-outreach/SKILL.md | 161 | ### Step 4: Draft Message | COMMENT |
| LOW | …tplace/.kortix/opencode/skills/draft-outreach/SKILL.md | 193 | ### Step 5: Create Email Draft | COMMENT |
| LOW | …lace/.kortix/opencode/skills/account-research/SKILL.md | 181 | ### Step 1: Parse Request | COMMENT |
| LOW | …lace/.kortix/opencode/skills/account-research/SKILL.md | 191 | ### Step 2: Web Search (Always) | COMMENT |
| LOW | …lace/.kortix/opencode/skills/account-research/SKILL.md | 212 | ### Step 3: Enrichment (If Connected) | COMMENT |
| LOW | …lace/.kortix/opencode/skills/account-research/SKILL.md | 229 | ### Step 4: CRM Check (If Connected) | COMMENT |
| LOW | …lace/.kortix/opencode/skills/account-research/SKILL.md | 245 | ### Step 5: Synthesize | COMMENT |
| LOW | …rker/.kortix/opencode/skills/website-building/SKILL.md | 79 | ### Step 0: Load ALL mandatory files (do this FIRST, in parallel) | COMMENT |
| LOW⚡ | …rker/.kortix/opencode/skills/website-building/SKILL.md | 92 | ### Step 1: Generate unique palette | COMMENT |
| LOW⚡ | …rker/.kortix/opencode/skills/website-building/SKILL.md | 100 | ### Step 2: Design & Build | COMMENT |
| LOW⚡ | …rker/.kortix/opencode/skills/website-building/SKILL.md | 104 | ### Step 3: Preview | COMMENT |
| LOW | …rker/.kortix/opencode/skills/website-building/SKILL.md | 166 | ## Step 1: Art Direction — Infer Before You Ask, Ask Before You Default | COMMENT |
| LOW | …rker/.kortix/opencode/skills/website-building/SKILL.md | 192 | ## Step 2: Publish | COMMENT |
| LOW⚡ | …pencode/skills/website-building/shared/09-technical.md | 30 | ### Step 1: Design Direction | COMMENT |
| LOW⚡ | …pencode/skills/website-building/shared/09-technical.md | 33 | ### Step 2: Build | COMMENT |
| LOW⚡ | …pencode/skills/website-building/shared/09-technical.md | 36 | ### Step 3: Preview Locally | COMMENT |
| LOW | …pencode/skills/website-building/shared/09-technical.md | 50 | ### Step 4: Verify | COMMENT |
| LOW | …pencode/skills/website-building/shared/09-technical.md | 53 | ### Step 5: Deliver | COMMENT |
| LOW⚡ | …ps/web/src/app/(auth)/auth/phone-verification/page.tsx | 123 | // Step 1: Enroll the phone number | COMMENT |
| LOW⚡ | …ps/web/src/app/(auth)/auth/phone-verification/page.tsx | 129 | // Step 2: Create a challenge (sends SMS) | COMMENT |
| LOW⚡ | apps/mobile/components/pages/ChannelsPage.tsx | 1143 | // Step 1: Configure | COMMENT |
| LOW⚡ | apps/mobile/components/pages/ChannelsPage.tsx | 1148 | // Step 2: Manifest | COMMENT |
| LOW⚡ | apps/mobile/components/pages/ChannelsPage.tsx | 1152 | // Step 3: Credentials | COMMENT |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| HIGH | …tomize/sections/view/gateway/gateway-api-reference.tsx | 89 | print(response.choices[0].message.content)`; | CODE |
| HIGH | …tomize/sections/view/gateway/gateway-api-reference.tsx | 101 | print(chunk.choices[0].delta.content or "", end="")`; | CODE |
| HIGH | …tomize/sections/view/gateway/gateway-api-reference.tsx | 126 | print(message.content)`; | CODE |
| HIGH | …tomize/sections/view/gateway/gateway-api-reference.tsx | 138 | print(text, end="")`; | CODE |
| HIGH | apps/api/src/connectors/oauth2.ts | 57 | return None(); | CODE |
| HIGH⚡ | apps/api/src/scripts/dump-opencode-schema.ts | 14 | print(sql + ";\n") | CODE |
| HIGH⚡ | apps/api/src/scripts/dump-opencode-schema.ts | 15 | print("=== TABLE ROW COUNTS ===") | CODE |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | infra/terraform/scripts/audit-nacl-admin-ports.py | 62 | CODE | |
| LOW | …encode/skills/document-review/scripts/annotate_pptx.py | 212 | CODE | |
| LOW | …encode/skills/document-review/scripts/annotate_xlsx.py | 68 | CODE | |
| LOW | …encode/skills/domain-research/scripts/domain-lookup.py | 77 | CODE | |
| LOW | …encode/skills/domain-research/scripts/domain-lookup.py | 100 | CODE | |
| LOW | …encode/skills/domain-research/scripts/domain-lookup.py | 410 | CODE | |
| LOW | …encode/skills/domain-research/scripts/domain-lookup.py | 513 | CODE | |
| LOW | …encode/skills/domain-research/scripts/domain-lookup.py | 607 | CODE | |
| LOW | …encode/skills/domain-research/scripts/domain-lookup.py | 707 | CODE | |
| LOW | …x/opencode/skills/legal-writer/scripts/verify-legal.py | 52 | CODE | |
| LOW | …/opencode/skills/legal-writer/scripts/courtlistener.py | 182 | CODE | |
| LOW | …/opencode/skills/legal-writer/scripts/courtlistener.py | 235 | CODE | |
| LOW | …ix/opencode/skills/legal-writer/scripts/ecfr_lookup.py | 45 | CODE | |
| LOW | …ix/opencode/skills/legal-writer/scripts/ecfr_lookup.py | 241 | CODE | |
| LOW | …-worker/.kortix/opencode/skills/xlsx/scripts/recalc.py | 65 | CODE | |
| LOW | …-worker/.kortix/opencode/skills/xlsx/scripts/recalc.py | 82 | CODE | |
| LOW | …-worker/.kortix/opencode/skills/xlsx/scripts/recalc.py | 102 | CODE | |
| LOW | …-worker/.kortix/opencode/skills/xlsx/scripts/recalc.py | 117 | CODE | |
| LOW | …er/.kortix/opencode/skills/xlsx/scripts/pivot_table.py | 109 | CODE | |
| LOW | …knowledge-worker/.kortix/opencode/skills/pdf/layout.py | 158 | CODE | |
| LOW | …owledge-worker/.kortix/opencode/skills/pdf/formfill.py | 143 | CODE | |
| LOW | …owledge-worker/.kortix/opencode/skills/pdf/formfill.py | 300 | CODE | |
| LOW | …kortix/opencode/skills/presentations/scripts/repair.py | 20 | CODE | |
| LOW | …/.kortix/opencode/skills/presentations/scripts/pack.py | 22 | CODE | |
| LOW | …/.kortix/opencode/skills/presentations/scripts/pack.py | 47 | CODE | |
| LOW | …x/opencode/skills/presentations/scripts/convert_pdf.py | 40 | CODE | |
| LOW | …/opencode/skills/presentations/scripts/convert_pptx.py | 348 | CODE | |
| LOW | …kortix/opencode/skills/presentations/scripts/slides.py | 138 | CODE | |
| LOW | …ge-worker/.kortix/opencode/skills/docx/scripts/pack.py | 22 | CODE | |
| LOW | …ge-worker/.kortix/opencode/skills/docx/scripts/pack.py | 47 | CODE | |
| LOW | …worker/.kortix/opencode/skills/docx/scripts/comment.py | 182 | CODE | |
| LOW | …worker/.kortix/opencode/skills/docx/scripts/comment.py | 199 | CODE | |
| LOW | …-worker/.kortix/opencode/skills/docx/scripts/unpack.py | 160 | CODE | |
| LOW | …-worker/.kortix/opencode/skills/docx/scripts/unpack.py | 198 | CODE | |
| LOW | …-worker/.kortix/opencode/skills/docx/scripts/unpack.py | 253 | CODE |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| HIGH | …x/opencode/skills/presentations/scripts/convert_pdf.py | 0 | auto-detect chromium executable path for the current platform. | STRING |
| HIGH | …pencode/skills/presentations/scripts/validate_slide.py | 0 | auto-detect chromium executable path for the current platform. | STRING |
| HIGH | …/opencode/skills/presentations/scripts/convert_pptx.py | 0 | auto-detect chromium executable path for the current platform. | STRING |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | …modules/selfhost-ec2/scripts/check-data-volume-safe.sh | 13 | # Usage: | COMMENT |
| LOW | infra/scripts/ecs-deploy.sh | 11 | # Usage: | COMMENT |
| LOW⚡ | scripts/setup-env.sh | 7 | # Usage: | COMMENT |
| LOW⚡ | scripts/nuke-local.sh | 13 | # Usage: | COMMENT |
| LOW | apps/cli/scripts/e2e-cloud.sh | 23 | # Usage: | COMMENT |
| LOW | apps/cli/scripts/e2e-cr.sh | 9 | # Usage: | COMMENT |
| LOW | …/src/self-host/assets/supabase/docker-compose.logs.yml | 5 | # Usage: | COMMENT |
| LOW | apps/api/scripts/e2e-change-requests.sh | 19 | # Usage: | COMMENT |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW⚡ | …ps/web/src/app/(auth)/auth/phone-verification/page.tsx | 123 | // Step 1: Enroll the phone number | COMMENT |
| LOW⚡ | …ps/web/src/app/(auth)/auth/phone-verification/page.tsx | 129 | // Step 2: Create a challenge (sends SMS) | COMMENT |
| LOW⚡ | apps/mobile/components/pages/ChannelsPage.tsx | 1143 | // Step 1: Configure | COMMENT |
| LOW⚡ | apps/mobile/components/pages/ChannelsPage.tsx | 1148 | // Step 2: Manifest | COMMENT |
| LOW⚡ | apps/mobile/components/pages/ChannelsPage.tsx | 1152 | // Step 3: Credentials | COMMENT |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | …encode/skills/domain-research/scripts/domain-lookup.py | 271 | # Check if we only got TLD-level info with no domain data | COMMENT |
| LOW | …x/opencode/skills/legal-writer/scripts/verify-legal.py | 150 | # Check if the term appears outside its definition | COMMENT |
| LOW | …x/opencode/skills/legal-writer/scripts/verify-legal.py | 183 | # Check if it might be a top-level section | COMMENT |
| LOW | apps/mobile/scripts/start-android.sh | 20 | # Check if emulator is already running | COMMENT |
| LOW | apps/mobile/scripts/start-android.sh | 26 | # Check if AVD exists | COMMENT |
| LOW | apps/mobile/scripts/start-android.sh | 48 | # Check if dev client is installed | COMMENT |
| LOW | apps/mobile/scripts/setup-android.sh | 16 | # Check if running on macOS | COMMENT |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| CRITICAL | …ce/customize/sections/view/gateway/gateway-routing.tsx | 697 | const inherited = routing.data.effective.defaultFallback.models.filter( | CODE |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | …ompliance-monitoring/functions/alb_alarm_reconciler.py | 3 | CODE | |
| LOW | …iance-monitoring/functions/ec2_cpu_alarm_reconciler.py | 3 | CODE | |
| LOW | infra/terraform/scripts/test_audit_nacl_admin_ports.py | 11 | CODE | |
| LOW | infra/terraform/scripts/audit-nacl-admin-ports.py | 21 | CODE | |
| LOW | scripts/secrets-sm-parity.py | 17 | CODE | |
| LOW | …encode/skills/domain-research/scripts/domain-lookup.py | 28 | CODE |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| MEDIUM | infra/terraform/scripts/bootstrap-state.sh | 2 | # Create the S3 bucket + DynamoDB lock table that hold Terraform remote state. | COMMENT |
| MEDIUM | …features/workspace/customize/sections/gateway-view.tsx | 52 | * ## This module is also the dialog | COMMENT |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | apps/web/src/components/ui/modal.tsx | 375 | // TODO: implement passing props directly to ModalContent | COMMENT |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | …/opencode/skills/legal-writer/scripts/courtlistener.py | 158 | CODE |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | apps/kortix-sandbox-agent-server/src/static-web.ts | 424 | function handleRequest(req: Request, port: number): Response { | CODE |