Keep passwords and other sensitive information out of your chat logs and inboxes.
This report presents the forensic synthetic code analysis of onetimesecret/onetimesecret, a Ruby project with 2,866 GitHub stars. SynthScan v2.0 examined 1,156,595 lines of code across 4896 source files, recording 8507 pattern matches distributed across 18 syntactic categories. The overall adjusted score of 15.0 places this repository in the Moderate AI signal 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 8507 distinct pattern matches across 18 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 | docker/bake.hcl | 23 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM | docker/bake.hcl | 25 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM | docker/bake.hcl | 71 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM | docker/bake.hcl | 73 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM | docker/bake.hcl | 102 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM | docker/bake.hcl | 104 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM | docker/bake.hcl | 118 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM | docker/bake.hcl | 120 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM | locales/tests/conftest.py | 76 | # ============================================================================ | COMMENT |
| MEDIUM | locales/tests/conftest.py | 78 | # ============================================================================ | COMMENT |
| MEDIUM⚡ | locales/scripts/review-locale-branches.sh | 20 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM⚡ | locales/scripts/review-locale-branches.sh | 22 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM⚡ | locales/scripts/review-locale-branches.sh | 40 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM⚡ | locales/scripts/review-locale-branches.sh | 42 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM⚡ | locales/scripts/review-locale-branches.sh | 49 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM⚡ | locales/scripts/review-locale-branches.sh | 51 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM⚡ | locales/scripts/review-locale-branches.sh | 58 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM⚡ | locales/scripts/review-locale-branches.sh | 63 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM | locales/scripts/review-locale-branches.sh | 131 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM | locales/scripts/review-locale-branches.sh | 135 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM | locales/scripts/review-locale-branches.sh | 162 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM | locales/scripts/review-locale-branches.sh | 164 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM⚡ | locales/scripts/pr-per-locale.sh | 453 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM⚡ | locales/scripts/pr-per-locale.sh | 455 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM⚡ | locales/scripts/pr-per-locale.sh | 463 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM⚡ | locales/scripts/pr-per-locale.sh | 465 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM | locales/scripts/pr-per-locale.sh | 65 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM | locales/scripts/pr-per-locale.sh | 67 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM | locales/scripts/pr-per-locale.sh | 119 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM | locales/scripts/pr-per-locale.sh | 121 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM | locales/scripts/pr-per-locale.sh | 155 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM | locales/scripts/pr-per-locale.sh | 158 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM | locales/scripts/pr-per-locale.sh | 190 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM | locales/scripts/pr-per-locale.sh | 194 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM | locales/scripts/pr-per-locale.sh | 211 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM | locales/scripts/pr-per-locale.sh | 214 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM | locales/scripts/pr-per-locale.sh | 247 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM | locales/scripts/pr-per-locale.sh | 250 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM⚡ | locales/scripts/i18n/commands/tasks.py | 863 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM⚡ | locales/scripts/i18n/commands/tasks.py | 865 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM⚡ | locales/scripts/i18n/commands/tasks.py | 1058 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM⚡ | locales/scripts/i18n/commands/tasks.py | 1060 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM | locales/scripts/i18n/commands/tasks.py | 37 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM | locales/scripts/i18n/commands/tasks.py | 39 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM | locales/scripts/i18n/commands/tasks.py | 599 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM | locales/scripts/i18n/commands/tasks.py | 601 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM | locales/scripts/i18n/commands/tasks.py | 249 | # --------------------------------------------------------------------------- | STRING |
| MEDIUM | locales/scripts/i18n/commands/tasks.py | 251 | # --------------------------------------------------------------------------- | STRING |
| MEDIUM⚡ | locales/scripts/i18n/commands/validate.py | 596 | # =========================================================================== | COMMENT |
| MEDIUM⚡ | locales/scripts/i18n/commands/validate.py | 598 | # =========================================================================== | COMMENT |
| MEDIUM | locales/scripts/i18n/commands/validate.py | 35 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM | locales/scripts/i18n/commands/validate.py | 37 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM | locales/scripts/i18n/commands/validate.py | 76 | # =========================================================================== | COMMENT |
| MEDIUM | locales/scripts/i18n/commands/validate.py | 78 | # =========================================================================== | COMMENT |
| MEDIUM | locales/scripts/i18n/commands/validate.py | 972 | # =========================================================================== | COMMENT |
| MEDIUM | locales/scripts/i18n/commands/validate.py | 974 | # =========================================================================== | COMMENT |
| MEDIUM | locales/scripts/i18n/commands/validate.py | 1148 | # =========================================================================== | COMMENT |
| MEDIUM | locales/scripts/i18n/commands/validate.py | 1150 | # =========================================================================== | COMMENT |
| MEDIUM | locales/scripts/i18n/commands/validate.py | 1203 | # =========================================================================== | COMMENT |
| MEDIUM | locales/scripts/i18n/commands/validate.py | 1205 | # =========================================================================== | COMMENT |
| 3599 more matches not shown… | ||||
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | .pre-commit-config.yaml | 1 | ## | COMMENT |
| LOW | .pre-commit-config.yaml | 21 | # $ pre-commit autoupdate | COMMENT |
| LOW | .pre-push-config.yaml | 1 | ## | COMMENT |
| LOW | .pre-push-config.yaml | 21 | # | COMMENT |
| LOW | eslint.config.ts | 481 | COMMENT | |
| LOW | eslint.config.ts | 501 | // tags/whitelist/removeDuplicates) were dropped; `attributes` now | COMMENT |
| LOW | compose.test.yml | 1 | # compose.test.yml — service dependencies for the test lanes. | COMMENT |
| LOW | .rubocop.yml | 1 | inherit_from: .rubocop_todo.yml | COMMENT |
| LOW | tsconfig.json | 1 | // TypeScript Project Configuration | COMMENT |
| LOW | docker-compose.yml | 1 | ## | COMMENT |
| LOW | vite.config.ts | 181 | COMMENT | |
| LOW | vite.config.ts | 201 | // - Advanced composition functions beyond t() | COMMENT |
| LOW | vite.config.ts | 281 | // Single Bundle Strategy | COMMENT |
| LOW | vitest.config.ts | 1 | // vitest.config.ts | COMMENT |
| LOW | docker/bake.hcl | 1 | ## | COMMENT |
| LOW | docker/compose/docker-compose.simple.yml | 1 | ## | COMMENT |
| LOW | docker/compose/docker-compose.mailpit.yml | 1 | ## | COMMENT |
| LOW | docker/compose/docker-compose.mailpit.yml | 21 | # SMTP: mailpit:1025 (from within the app container) | COMMENT |
| LOW | docker/compose/docker-compose.full.yml | 1 | ## | COMMENT |
| LOW | docker/s6/build.sh | 1 | #!/bin/bash | COMMENT |
| LOW | docker/entrypoints/entrypoint.sh | 1 | #!/bin/bash | COMMENT |
| LOW | docker/entrypoints/entrypoint.sh | 21 | # | COMMENT |
| LOW | docker/entrypoints/healthcheck.sh | 1 | #!/bin/bash | COMMENT |
| LOW | locales/scripts/derive-governance.sh | 1 | #!/usr/bin/env bash | COMMENT |
| LOW | locales/scripts/derive-governance.sh | 41 | # The canonical data pin is the human-readable TRANSLATION_RULES_REF value (a | COMMENT |
| LOW | locales/scripts/export-and-commit.sh | 1 | #!/usr/bin/env bash | COMMENT |
| LOW | locales/scripts/export-all.sh | 1 | #!/usr/bin/env bash | COMMENT |
| LOW | locales/scripts/review-locale-branches.sh | 1 | #!/usr/bin/env bash | COMMENT |
| LOW | locales/scripts/pr-per-locale.sh | 1 | #!/usr/bin/env bash | COMMENT |
| LOW | locales/scripts/pr-per-locale.sh | 21 | # instincts. | COMMENT |
| LOW | locales/scripts/pr-per-locale.sh | 41 | # that materializes each branch and writes per-locale | COMMENT |
| LOW | locales/scripts/branch-per-locale.sh | 1 | #!/usr/bin/env bash | COMMENT |
| LOW | locales/scripts/create-all.sh | 1 | #!/usr/bin/env bash | COMMENT |
| LOW | locales/scripts/i18n/db.py | 41 | agents tolerate lock contention without caller-side retry logic. | COMMENT |
| LOW | locales/scripts/i18n/db.py | 61 | conn.execute("PRAGMA journal_mode=WAL") | COMMENT |
| LOW | etc/defaults/config.defaults.yaml | 1 | # etc/defaults/config.defaults.yaml | COMMENT |
| LOW | etc/defaults/config.defaults.yaml | 21 | # API and UI Configuration | COMMENT |
| LOW | etc/defaults/config.defaults.yaml | 41 | # 2. mode_header - Fallback if no CIDR match (requires header value = mode) | COMMENT |
| LOW | etc/defaults/config.defaults.yaml | 61 | # Proxy Configuration: | COMMENT |
| LOW | etc/defaults/config.defaults.yaml | 81 | # the affordance is hidden in the disabled-homepage view. | COMMENT |
| LOW | etc/defaults/config.defaults.yaml | 101 | # Control switch to enable/disable header customization | COMMENT |
| LOW | etc/defaults/config.defaults.yaml | 221 | # Default to 4 chars to prevent trivially guessable passphrases while | COMMENT |
| LOW | etc/defaults/config.defaults.yaml | 241 | # Character sets to include in generated passwords | COMMENT |
| LOW | etc/defaults/config.defaults.yaml | 261 | signup: <%= ENV['AUTH_SIGNUP'] != 'false' %> | COMMENT |
| LOW | etc/defaults/config.defaults.yaml | 281 | # bin/ots customers role list | COMMENT |
| LOW | etc/defaults/config.defaults.yaml | 301 | # Session lifetime in seconds (default: 24 hours) | COMMENT |
| LOW | etc/defaults/config.defaults.yaml | 321 | # ENV: MIDDLEWARE_UTF8_SANITIZER (default: true) | COMMENT |
| LOW | etc/defaults/config.defaults.yaml | 341 | # ENV: MIDDLEWARE_PATH_TRAVERSAL (default: false) | COMMENT |
| LOW | etc/defaults/config.defaults.yaml | 361 | # - Development mode: Less restrictive headers to allow hot reloading | COMMENT |
| LOW | etc/defaults/config.defaults.yaml | 381 | # "Your Current IP" display. | COMMENT |
| LOW | etc/defaults/config.defaults.yaml | 401 | # 'depth': Position-based counting. Skip exactly N rightmost hops. | COMMENT |
| LOW | etc/defaults/config.defaults.yaml | 421 | # Filter mode only: Additional CIDR ranges to trust as proxies | COMMENT |
| LOW | etc/defaults/config.defaults.yaml | 441 | # (role=colonel at the router + verify_one_of_roles!(colonel:true) in each | COMMENT |
| LOW | etc/defaults/config.defaults.yaml | 461 | # branding: a directory of root-served assets (favicon.ico, icon-*.png, | COMMENT |
| LOW | etc/defaults/config.defaults.yaml | 481 | # Ruby ever sees it. An unset var interpolates to nothing, which YAML reads as | COMMENT |
| LOW | etc/defaults/config.defaults.yaml | 521 | # where ID is the jurisdiction identifier (e.g., EU, CA, US) | COMMENT |
| LOW | etc/defaults/config.defaults.yaml | 541 | enabled: <%= ENV['INCOMING_ENABLED'] == 'true' || false %> | COMMENT |
| LOW | etc/defaults/config.defaults.yaml | 581 | validation_strategy: <%= ENV['DOMAINS_VALIDATION_STRATEGY'] || 'passthrough' %> | COMMENT |
| LOW | etc/defaults/config.defaults.yaml | 621 | # Redis/Valkey connection URI - Compatible with Redis, Valkey, and other | COMMENT |
| LOW | etc/defaults/config.defaults.yaml | 661 | # Install: brew install mailpit | COMMENT |
| 2765 more matches not shown… | ||||
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| MEDIUM | spec/unit/onetime/boot/initializer_spec.rb | 289 | # Define a new class - should NOT be in registry | COMMENT |
| MEDIUM | spec/unit/onetime/logic/guest_route_gating_spec.rb | 16 | # Create a test class that includes the module | COMMENT |
| MEDIUM | spec/unit/onetime/logic/require_entitlement_spec.rb | 9 | # This method is defined in Onetime::Logic::Base and is used to gate | COMMENT |
| MEDIUM | …/models/organization/chores/standardize_planid_spec.rb | 21 | # Create a mock logger that accepts SemanticLogger's (message, hash) signature | COMMENT |
| MEDIUM | spec/unit/onetime/operations/domains/remove_spec.rb | 190 | # Create a real, fully-persisted canonical domain and register it for cleanup. | COMMENT |
| MEDIUM | …ain_validation/sender_strategies/base_strategy_spec.rb | 9 | # Create a concrete subclass for testing since BaseStrategy has abstract methods | COMMENT |
| MEDIUM | spec/unit/onetime/jobs/trace_propagation_spec.rb | 30 | # Define a minimal Sentry stub for tests that need it. | COMMENT |
| MEDIUM | spec/unit/onetime/jobs/scheduled_job_spec.rb | 121 | # Define a proper subclass | COMMENT |
| MEDIUM | …ec/unit/onetime/initializers/setup_diagnostics_spec.rb | 32 | # Define a minimal Sentry constant if it doesn't exist to satisfy verify_partial_doubles | COMMENT |
| MEDIUM | spec/unit/billing/plan_validator_spec.rb | 7 | # This module implements catalog-first plan_id validation with fail-closed behavior. | COMMENT |
| MEDIUM | spec/integration/full/postgres_infrastructure_spec.rb | 154 | # Create a test account using elevated connection | COMMENT |
| MEDIUM⚡ | spec/integration/full/password_migration_spec.rb | 151 | # Create a Rodauth account WITHOUT password hash | COMMENT |
| MEDIUM | spec/integration/full/admin_interface_spec.rb | 270 | # Create an admin user | COMMENT |
| MEDIUM | spec/integration/full/admin_interface_spec.rb | 508 | # Create a secret as a regular user | COMMENT |
| MEDIUM | spec/integration/full/admin_interface_spec.rb | 524 | # Create a secret | COMMENT |
| MEDIUM | …ec/integration/full/database_triggers/postgres_spec.rb | 497 | # Create an active session | COMMENT |
| MEDIUM | spec/integration/all/lazy_organization_creation_spec.rb | 152 | # Create a new customer | COMMENT |
| MEDIUM | spec/integration/all/entitlement_preview_spec.rb | 30 | # Create a mock colonel customer | COMMENT |
| MEDIUM | spec/integration/all/entitlement_preview_spec.rb | 41 | # Create a mock organization | COMMENT |
| MEDIUM | spec/integration/all/config/after_load_spec.rb | 507 | # Define a let block for a base configuration object. | COMMENT |
| MEDIUM | spec/integration/all/jobs/rabbitmq_publishing_spec.rb | 72 | # Create a real connection pool for tests | COMMENT |
| MEDIUM | spec/integration/all/jobs/rabbitmq_publishing_spec.rb | 247 | # Create a pool that will fail | COMMENT |
| MEDIUM | spec/integration/all/jobs/workers/base_worker_spec.rb | 44 | # Create a test worker class that includes both Sneakers::Worker and BaseWorker | COMMENT |
| MEDIUM | …/integration/all/jobs/workers/sneakers_harness_spec.rb | 194 | # Create a test worker class for isolated testing | COMMENT |
| MEDIUM | spec/cli/worker_command_spec.rb | 337 | # Create a mock worker class for testing | COMMENT |
| MEDIUM | spec/cli/cli_spec_helper.rb | 212 | # Create a migration class with methods that can be mocked | COMMENT |
| MEDIUM | spec/support/factories/auth_account_factory.rb | 51 | # Create a verified account with password | COMMENT |
| MEDIUM | spec/support/factories/auth_account_factory.rb | 81 | # Create an unverified account (pending email verification) | COMMENT |
| MEDIUM | spec/support/factories/auth_account_factory.rb | 152 | # Create an active session for an account | COMMENT |
| MEDIUM | spec/support/helpers/migration_test_helpers.rb | 30 | # Create a fresh database connection for testing migrations | COMMENT |
| MEDIUM⚡ | spec/support/helpers/migration_test_helpers.rb | 108 | # Create a database with partial migration state (migrated to specific version) | COMMENT |
| MEDIUM | spec/api/v2/entitlement_enforcement_spec.rb | 137 | # Create a test secret | COMMENT |
| MEDIUM | spec/api/account/get_permissions_spec.rb | 64 | # Create a custom domain for the organization | COMMENT |
| MEDIUM | scripts/api-validation/bin/v1-capture.sh | 331 | # Create a secret, then retrieve it | COMMENT |
| MEDIUM | scripts/api-validation/bin/v1-capture.sh | 408 | # Create a secret to burn | COMMENT |
| MEDIUM | scripts/api-validation/bin/v2-capture.sh | 209 | # Create a secret, then retrieve/reveal it | COMMENT |
| MEDIUM | scripts/api-validation/bin/v2-capture.sh | 300 | # Create a secret for receipt update test | COMMENT |
| MEDIUM | scripts/api-validation/bin/v2-capture.sh | 321 | # Create a secret to burn via /receipt/ path | COMMENT |
| MEDIUM | try/unit/error_handler_try.rb | 90 | # Create a new test key for this test | COMMENT |
| MEDIUM | try/unit/v3_feedback_try.rb | 30 | # Create a customer with anonymous role for testing | COMMENT |
| MEDIUM | try/unit/signup_validation_try.rb | 58 | ## Create a SignupConfig and verify it persists | COMMENT |
| MEDIUM | try/unit/boot/setup_i18n_security_try.rb | 57 | # Create a test class that includes JsonBackend for isolated testing | COMMENT |
| MEDIUM | try/unit/boot/setup_i18n_security_try.rb | 65 | # Create a valid test locale file | COMMENT |
| MEDIUM | …unit/config/config_serializer_tenant_resolution_try.rb | 87 | # Create a test CustomDomain + CustomDomain::SsoConfig for tenant resolution tests. | COMMENT |
| MEDIUM | try/unit/config/passphrase_validation_try.rb | 11 | # Create a mock secret action for testing | COMMENT |
| MEDIUM | try/unit/security/invite_token_validation_try.rb | 40 | # Create a valid pending invitation | COMMENT |
| MEDIUM⚡ | try/unit/auth/organization_header_try.rb | 44 | # Create a third organization the owner is NOT a member of | COMMENT |
| MEDIUM | try/unit/auth/organization_loader_readonly_try.rb | 38 | # Create a second customer WITH an organization (for contrast tests) | COMMENT |
| MEDIUM | try/unit/auth/organization_loader_fallthrough_try.rb | 28 | # Create a custom domain and register it in the display_domain_index index | COMMENT |
| MEDIUM | try/unit/auth/organization_loader_fallthrough_try.rb | 31 | # Create a domain-scoped member who can only access a *different* domain | COMMENT |
| MEDIUM | …/unit/auth/operations/accept_invitation_logging_try.rb | 39 | # Create a capture array at module level | COMMENT |
| MEDIUM | try/unit/logic/base_try.rb | 29 | # Create a concrete test class since Base is abstract | COMMENT |
| MEDIUM | try/unit/logic/guest_route_gating_try.rb | 43 | # Create a mutable copy of the config | COMMENT |
| MEDIUM | try/unit/logic/guest_route_gating_behavior_try.rb | 46 | # Create a mutable copy of the config | COMMENT |
| MEDIUM | try/unit/logic/secrets/reveal_secret_try.rb | 24 | # Define a lambda to create and return a new receipt instance | COMMENT |
| MEDIUM | try/unit/logic/secrets/generate_secret_try.rb | 64 | ## Create a secret for viewing tests | COMMENT |
| MEDIUM | try/unit/logic/secrets/show_receipt_try.rb | 24 | # Define a lambda to create and return a new receipt instance | COMMENT |
| MEDIUM | try/unit/logic/secrets/show_secret_try.rb | 24 | # Define a lambda to create and return a new receipt instance | COMMENT |
| MEDIUM | try/unit/logic/secrets/show_secret_try.rb | 235 | # Create an unverified owner for verification flow | COMMENT |
| MEDIUM | try/unit/logic/secrets/show_secret_try.rb | 240 | # Create a verification secret | COMMENT |
| 146 more matches not shown… | ||||
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | docker/entrypoints/entrypoint.sh | 35 | # Set PORT to the existing value or default to 3000 | COMMENT |
| LOW | docker/entrypoints/entrypoint.sh | 79 | # Check if BUNDLE_INSTALL is set to "true" (case-insensitive) | COMMENT |
| LOW | docker/entrypoints/entrypoint.sh | 130 | # Check if no arguments were provided to the script | COMMENT |
| LOW | locales/scripts/export-and-commit.sh | 74 | # Check if there are actual changes | COMMENT |
| LOW | locales/scripts/branch-per-locale.sh | 80 | # Check if branch already exists | COMMENT |
| LOW | locales/scripts/i18n/commands/store.py | 318 | # Check if this is a SELECT query | STRING |
| LOW⚡ | locales/scripts/i18n/commands/validate.py | 586 | # Print results | COMMENT |
| LOW | locales/scripts/i18n/commands/validate.py | 400 | # Check if English file exists | COMMENT |
| LOW | locales/scripts/i18n/commands/validate.py | 956 | # Output results | COMMENT |
| LOW | spec/integration/full/advanced_auth_mode_spec.rb | 290 | # Check if session cookie is set | COMMENT |
| LOW | spec/integration/full/password_migration_spec.rb | 166 | # Check if password hash exists for account | COMMENT |
| LOW | spec/integration/full/pending_federation_spec.rb | 198 | # Set subscription_period_end to past (expired) | COMMENT |
| LOW | spec/integration/full/hooks/account_deletion_spec.rb | 149 | # Check if we have active sessions (may not always be created) | COMMENT |
| LOW | spec/integration/all/jobs/rabbitmq_publishing_spec.rb | 45 | # Check if RabbitMQ is available before running tests | COMMENT |
| LOW | spec/support/auth_mode_helpers.rb | 278 | # Check if a mock is currently installed | COMMENT |
| LOW | spec/support/postgres_mode_suite_database.rb | 59 | # Check if PostgreSQL is available for testing | COMMENT |
| LOW | spec/support/postgres_mode_suite_database.rb | 88 | # Check if PostgreSQL is available - return early if not (specs will be skipped) | COMMENT |
| LOW | spec/support/postgres_mode_suite_database.rb | 287 | # Check if we need elevated privileges for migrations | COMMENT |
| LOW⚡ | spec/support/helpers/migration_test_helpers.rb | 99 | # Check if a table exists in the database | COMMENT |
| LOW | spec/support/helpers/migration_test_helpers.rb | 338 | # Check if PostgreSQL functions exist (migration 003) | COMMENT |
| LOW | spec/support/helpers/migration_test_helpers.rb | 351 | # Check if PostgreSQL triggers exist (migration 004) | COMMENT |
| LOW | spec/support/helpers/migration_test_helpers.rb | 364 | # Check if PostgreSQL views exist (migration 005) | COMMENT |
| LOW | scripts/corporate-branch-report.sh | 98 | # Check if merge base matches a branch tip (like develop) | COMMENT |
| LOW | scripts/corporate-branch-report.sh | 142 | # Check if we have any branches to show | COMMENT |
| LOW | scripts/corporate-branch-report.sh | 176 | # Check if b1's commits are a prefix of b2's commits (b1 is subsumed by b2) | COMMENT |
| LOW | scripts/validate_display_domain_index.rb | 102 | # Check if domain object exists | COMMENT |
| LOW | scripts/validate_display_domain_index.rb | 145 | # Check if this domain has a corresponding index entry | COMMENT |
| LOW | scripts/validate_org_domain_membership.rb | 108 | # Check if domain hash exists at all | COMMENT |
| LOW | scripts/validate_org_domain_membership.rb | 155 | # Check if the referenced organization actually exists | COMMENT |
| LOW | scripts/validate_org_domain_membership.rb | 162 | # Check if domain is in the org's ZSET | COMMENT |
| LOW | scripts/build-and-deploy.py | 546 | # Check if this revision has a build config | COMMENT |
| LOW | scripts/corporate-branch-report.py | 151 | # Check if any branch points to this commit | COMMENT |
| LOW | scripts/check-migration-status.sh | 34 | # Check if config directory is writable (for migrations that modify config) | COMMENT |
| LOW | scripts/check-migration-status.sh | 47 | # Check if a specific migration is needed | COMMENT |
| LOW | scripts/check-migration-status.sh | 68 | # Check if any migration is needed | COMMENT |
| LOW | scripts/tests/verify-sentry-build.sh | 59 | # Check if we're in the project root | COMMENT |
| LOW | scripts/upgrades/v0.24.5/dump_keys.rb | 147 | # Close files and print stats | COMMENT |
| LOW | …pts/upgrades/v0.24.5/validate_display_domains_index.rb | 51 | # Check if two values match, accounting for JSON encoding differences. | COMMENT |
| LOW | …ipts/upgrades/v0.24.5/repair_display_domain_indexes.rb | 94 | # Check if two values match, accounting for JSON encoding differences. | COMMENT |
| LOW | scripts/upgrades/v0.24.5/04-receipt/transform.rb | 421 | # Set owner_id to nil to indicate lookup failure | COMMENT |
| LOW | scripts/upgrades/v0.24.5/01-customer/create_indexes.rb | 132 | # Set source to 'generated' if no existing index found | COMMENT |
| LOW | scripts/upgrades/v0.24.5/05-secret/transform.rb | 412 | # Set owner_id to nil to indicate lookup failure | COMMENT |
| LOW | .github/workflows/debug-oci.yml | 127 | # Check if container is still running | COMMENT |
| LOW | .github/scripts/detect-ci-flags.sh | 40 | # Output results | COMMENT |
| LOW | .github/scripts/update-version.sh | 88 | # Check if jq is available | COMMENT |
| LOW | .github/scripts/compute-path-filter-outputs.sh | 56 | # Output results | COMMENT |
| LOW | .github/actions/wait-for-http-service/action.yml | 135 | # Check if status matches expectation | COMMENT |
| LOW | try/unit/error_handler_try.rb | 67 | @redis.expire(@test_key, 1000) # Set TTL to 1000 seconds | CODE |
| LOW | try/unit/config/passphrase_validation_try.rb | 43 | # Check if passphrase is required | COMMENT |
| LOW | try/unit/config/passphrase_options_try.rb | 12 | ## Check if site config exists | COMMENT |
| LOW | try/unit/config/passphrase_options_try.rb | 20 | ## Check if passphrase config exists | COMMENT |
| LOW | try/unit/mail/templates_trial_expiring_try.rb | 18 | # Check if billing is enabled - tests require it | COMMENT |
| LOW | try/unit/mail/templates_subscription_changed_try.rb | 18 | # Check if billing is enabled - tests require it | COMMENT |
| LOW⚡ | try/unit/models/organization_member_debug_try.rb | 32 | ## Check if customer was added to org.members | COMMENT |
| LOW⚡ | try/unit/models/organization_member_debug_try.rb | 36 | ## Check if customer.objid is in org.members (using wrapper that handles serialization) | COMMENT |
| LOW⚡ | try/unit/models/organization_member_debug_try.rb | 40 | ## Check if org has add_members_instance method | COMMENT |
| LOW | try/integration/check_jobqueue_live_try.rb | 25 | # Check if RabbitMQ is available | COMMENT |
| LOW | try/integration/auth/internal_request_hook_proof_try.rb | 43 | # Check if account was created in SQL | COMMENT |
| LOW | try/integration/auth/internal_request_hook_proof_try.rb | 53 | # Check if Customer was created in Redis (by the hook) | COMMENT |
| LOW | try/integration/api/invite/show_invite_enriched_try.rb | 164 | # Set invited_at to 8 days ago to trigger expiration (default TTL is 7 days) | COMMENT |
| 296 more matches not shown… | ||||
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | locales/tests/test_utils.py | 36 | def test_skips_non_string_values(self): | CODE |
| LOW⚡ | locales/tests/test_utils.py | 55 | def test_preserves_existing_structure(self): | CODE |
| LOW⚡ | locales/tests/test_utils.py | 60 | def test_strict_mode_raises_on_conflict(self): | CODE |
| LOW⚡ | locales/tests/test_utils.py | 66 | def test_non_strict_mode_overwrites(self): | CODE |
| LOW | locales/tests/test_utils.py | 81 | def test_returns_empty_for_missing_file(self, tmp_path): | CODE |
| LOW | locales/tests/test_utils.py | 85 | def test_returns_empty_for_invalid_json(self, tmp_path, capsys): | CODE |
| LOW | locales/tests/test_utils.py | 97 | def test_saves_json_with_formatting(self, tmp_path): | CODE |
| LOW | locales/tests/test_utils.py | 103 | def test_creates_parent_directories(self, tmp_path): | CODE |
| LOW | locales/tests/test_db.py | 12 | def test_creates_database_file(self, tmp_db_path: Path, schema_sql: str): | CODE |
| LOW | locales/tests/test_db.py | 22 | def test_executes_schema_creates_table(self, tmp_db_path: Path, schema_sql: str): | CODE |
| LOW | locales/tests/test_db.py | 36 | def test_schema_is_idempotent(self, tmp_db_path: Path, schema_sql: str): | CODE |
| LOW | locales/tests/test_db.py | 60 | def test_error_on_invalid_sql(self, tmp_db_path: Path): | CODE |
| LOW | locales/tests/test_db.py | 73 | def test_dump_produces_valid_sql(self, hydrated_db_with_data: Path): | CODE |
| LOW | locales/tests/test_db.py | 92 | def test_roundtrip_preserves_data(self, hydrated_db_with_data: Path): | CODE |
| LOW | locales/tests/test_db.py | 173 | def test_unique_constraint_on_locale_file_key(self, db_connection): | CODE |
| LOW | locales/tests/test_db.py | 186 | def test_default_status_is_pending(self, db_connection): | CODE |
| LOW | locales/tests/test_db.py | 200 | def test_created_at_has_default(self, db_connection): | CODE |
| LOW | locales/tests/test_db.py | 214 | def test_required_columns_not_null(self, db_connection): | CODE |
| LOW | locales/tests/test_db.py | 231 | def test_optional_columns_can_be_null(self, db_connection): | CODE |
| LOW | locales/tests/test_generate_tasks.py | 27 | def test_walks_nested_json_keys(self): | CODE |
| LOW | locales/tests/test_generate_tasks.py | 70 | def test_handles_empty_objects(self): | CODE |
| LOW | locales/tests/test_generate_tasks.py | 78 | def test_handles_nested_empty_objects(self): | CODE |
| LOW | locales/tests/test_generate_tasks.py | 93 | def test_skips_non_string_values(self): | CODE |
| LOW | locales/tests/test_generate_tasks.py | 112 | def test_detects_missing_file(self, tmp_path: Path): | CODE |
| LOW | locales/tests/test_generate_tasks.py | 131 | def test_detects_missing_keys(self, tmp_path: Path): | CODE |
| LOW | locales/tests/test_generate_tasks.py | 163 | def test_detects_empty_translations(self, tmp_path: Path): | CODE |
| LOW | locales/tests/test_generate_tasks.py | 183 | def test_ignores_existing_translations(self, tmp_path: Path): | CODE |
| LOW | locales/tests/test_generate_tasks.py | 220 | def test_export_generates_correct_insert_sql(self, hydrated_db: Path): | CODE |
| LOW | locales/tests/test_generate_tasks.py | 248 | def test_export_escapes_single_quotes_via_sqlite_quote(self, hydrated_db: Path): | CODE |
| LOW | locales/tests/test_generate_tasks.py | 269 | def test_batch_defaults_to_today(self, mock_src_locales: Path, tmp_path: Path): | CODE |
| LOW | locales/tests/test_generate_tasks.py | 332 | def test_exported_sql_is_executable(self, hydrated_db: Path): | CODE |
| LOW | locales/tests/test_generate_tasks.py | 369 | def test_dry_run_does_not_write(self, mock_src_locales: Path, tmp_path: Path): | CODE |
| LOW | locales/tests/test_generate_tasks.py | 403 | def test_dry_run_shows_task_count(self, mock_src_locales: Path, tmp_path: Path, capsys): | CODE |
| LOW | locales/tests/test_generate_tasks.py | 440 | def test_returns_empty_dict_for_missing_file(self, tmp_path: Path): | CODE |
| LOW | locales/tests/test_generate_tasks.py | 446 | def test_returns_empty_dict_for_invalid_json(self, tmp_path: Path): | CODE |
| LOW | locales/tests/test_generate_tasks.py | 496 | def test_creates_file_if_not_exists(self, tmp_path: Path): | CODE |
| LOW | locales/scripts/tests/test_derive_governance.py | 62 | def test_each_gate_declares_a_shape_valid_pin(self) -> None: | CODE |
| LOW | locales/scripts/tests/test_derive_governance.py | 75 | def test_single_canonical_pin_across_gates(self) -> None: | CODE |
| LOW | locales/scripts/tests/test_derive_governance.py | 85 | def test_field_re_skips_comments_and_accepts_uppercase(self) -> None: | CODE |
| LOW | locales/scripts/tests/test_derive_governance.py | 98 | def test_script_reads_the_gate_pin(self) -> None: | CODE |
| LOW | locales/scripts/tests/test_derive_governance.py | 117 | def test_rules_ref_override_is_honored(self) -> None: | CODE |
| LOW | locales/scripts/tests/test_derive_governance.py | 131 | def test_malformed_rules_ref_is_rejected(self) -> None: | CODE |
| LOW | locales/scripts/tests/test_i18n_cli.py | 119 | def test_overrides_redirect_every_surface(self) -> None: | CODE |
| LOW | locales/scripts/tests/test_i18n_cli.py | 152 | def test_compile_is_deterministic(self) -> None: | CODE |
| LOW | locales/scripts/tests/test_i18n_cli.py | 165 | def test_compile_output_is_valid_nonempty_json(self) -> None: | CODE |
| LOW | locales/scripts/tests/test_i18n_cli.py | 180 | def test_source_roundtrip_is_lossless(self) -> None: | CODE |
| LOW | locales/scripts/tests/test_i18n_cli.py | 196 | def test_fallback_routes_via_source_layout(self) -> None: | CODE |
| LOW | locales/scripts/tests/test_i18n_cli.py | 221 | def test_hashes_adds_then_is_idempotent(self) -> None: | CODE |
| LOW | locales/scripts/tests/test_i18n_cli.py | 263 | def test_export_import_roundtrip(self) -> None: | CODE |
| LOW | locales/scripts/tests/test_i18n_cli.py | 293 | def test_session_add_list_export_roundtrip(self) -> None: | CODE |
| LOW | locales/scripts/tests/test_i18n_cli.py | 323 | def test_session_add_rejects_bad_date(self) -> None: | CODE |
| LOW | locales/scripts/tests/test_i18n_cli.py | 330 | def test_import_rejects_checksum_mismatch(self) -> None: | CODE |
| LOW | locales/scripts/tests/test_i18n_cli.py | 360 | def test_create_next_update_export_roundtrip(self) -> None: | CODE |
| LOW | locales/scripts/tests/test_i18n_cli.py | 386 | def test_create_missing_only_enqueues_only_untranslated(self) -> None: | CODE |
| LOW | locales/scripts/tests/test_i18n_cli.py | 434 | def test_export_skips_empty_translation_preserving_skip(self) -> None: | CODE |
| LOW | locales/scripts/tests/test_i18n_cli.py | 483 | def test_next_human_header_uses_locale_not_hardcoded(self) -> None: | CODE |
| LOW | locales/scripts/tests/test_i18n_cli.py | 539 | def test_missing_only_enqueues_missing_and_stale_not_current(self) -> None: | CODE |
| LOW | locales/scripts/tests/test_i18n_cli.py | 551 | def test_snapshot_is_stored_per_leaf(self) -> None: | CODE |
| LOW | locales/scripts/tests/test_i18n_cli.py | 567 | def test_export_stamps_and_advances_source_hash(self) -> None: | CODE |
| LOW | locales/scripts/tests/test_i18n_cli.py | 586 | def test_stats_coverage_reports_stale(self) -> None: | CODE |
| 415 more matches not shown… | ||||
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW⚡ | locales/analysis/feature-incoming.analysis.md | 77 | "placeholder": "Brief description (e.g., Password reset request)", | CODE |
| LOW⚡ | locales/analysis/feature-incoming.analysis.md | 82 | "placeholder": "Select a recipient", | CODE |
| LOW⚡ | locales/analysis/feature-incoming.analysis.md | 89 | "placeholder": "Paste sensitive information here (passwords, keys, etc.)", | CODE |
| LOW | locales/analysis/feature-organizations.analysis.md | 92 | "placeholder": "e.g. Acme Corporation" | CODE |
| LOW | locales/analysis/feature-organizations.analysis.md | 96 | "placeholder": "What is this organization for?" | CODE |
| LOW | locales/db/schema.sql | 84 | 'placeholder', -- Variable/placeholder problems | CODE |
| LOW | spec/unit/onetime/mail/mailer_spec.rb | 100 | to_email: { to: 'user@example.com', from: global_from, subject: 'Test', text_body: 'body' }, | CODE |
| LOW | spec/unit/onetime/mail/mailer_spec.rb | 122 | described_class.deliver(:secret_link, { recipient: 'user@example.com' }, sender_config: mock_sender_config) | CODE |
| LOW | spec/unit/onetime/mail/mailer_spec.rb | 128 | described_class.deliver(:secret_link, { recipient: 'user@example.com' }) | CODE |
| LOW | spec/unit/onetime/mail/mailer_spec.rb | 144 | { to: 'user@example.com', from: from, subject: 'Test', text_body: 'body' } | CODE |
| LOW | spec/unit/onetime/mail/mailer_spec.rb | 155 | { to: 'user@example.com', from: from, subject: 'Test', text_body: 'body' } | CODE |
| LOW | spec/unit/onetime/mail/mailer_spec.rb | 166 | { to: 'user@example.com', from: from, subject: 'Test', text_body: 'body' } | CODE |
| LOW | spec/unit/onetime/mail/mailer_spec.rb | 191 | { to: 'user@example.com', from: from, subject: 'Test', text_body: 'body' } | CODE |
| LOW | spec/unit/onetime/mail/mailer_spec.rb | 216 | { to: 'user@example.com', from: from, subject: 'Test', text_body: 'body' } | CODE |
| LOW | spec/unit/onetime/mail/templates_i18n_spec.rb | 84 | recipient: 'user@example.com', | CODE |
| LOW | spec/unit/onetime/mail/templates_i18n_spec.rb | 121 | let(:data) { { recipient: 'user@example.com' } } | CODE |
| LOW | spec/unit/onetime/mail/templates_i18n_spec.rb | 207 | expect(context.recipient).to eq('user@example.com') | CODE |
| LOW | spec/unit/onetime/mail/templates_i18n_spec.rb | 379 | email_address: 'user@example.com', | CODE |
| LOW⚡ | spec/unit/onetime/mail/feedback_spec.rb | 114 | { 'value' => 'user@example.com', 'reason' => 'hard_bounce' }, | CODE |
| LOW⚡ | spec/unit/onetime/mail/feedback_spec.rb | 116 | { 'value' => '@example.org', 'reason' => 'manual' }, # extension-ish, has @ | CODE |
| LOW⚡ | spec/unit/onetime/mail/feedback_spec.rb | 123 | expect(emails).to include('user@example.com') | CODE |
| LOW | …main/chores/migrate_incoming_secrets_to_config_spec.rb | 206 | { 'email' => 'admin@example.com', 'name' => 'Admin' }, | CODE |
| LOW | spec/unit/onetime/operations/domains/remove_spec.rb | 52 | let(:org) { double('Organization', display_name: 'Acme Inc', remove_domain: nil) } | CODE |
| LOW | spec/unit/onetime/operations/domains/remove_spec.rb | 81 | expect(result.org_name).to eq('Acme Inc') | CODE |
| LOW | …ain_validation/sender_strategies/base_strategy_spec.rb | 910 | config = double('mailer_config', from_address: 'user@example.com', domain_id: 'cd:1') | CODE |
| LOW | spec/unit/onetime/jobs/publisher_spec.rb | 483 | raw_email = { to: 'user@example.com', from: 'noreply@example.com', subject: 'Test', body: 'Body' } | CODE |
| LOW⚡ | spec/unit/onetime/jobs/publisher_spec.rb | 545 | raw_email = { to: 'user@example.com', from: 'noreply@example.com', subject: 'Test', body: 'Body' } | CODE |
| LOW | spec/integration/full/admin_interface_spec.rb | 50 | email: "user@example.com", | CODE |
| LOW | spec/integration/full/admin_interface_spec.rb | 272 | email: "admin@example.com", | CODE |
| LOW | spec/integration/all/entitlement_preview_spec.rb | 299 | custid: 'user@example.com', | CODE |
| LOW | spec/integration/all/authentication_security_spec.rb | 280 | { login: 'user@example.com', password: nil }, | CODE |
| LOW⚡ | spec/integration/all/mail/template_rendering_spec.rb | 923 | organization_name: 'Acme Inc', | CODE |
| LOW⚡ | spec/integration/all/mail/template_rendering_spec.rb | 929 | organization_name: 'Acme Inc', | CODE |
| LOW⚡ | spec/integration/all/mail/template_rendering_spec.rb | 930 | removed_by: 'admin@example.com', | CODE |
| LOW⚡ | spec/integration/all/mail/template_rendering_spec.rb | 934 | organization_name: 'Acme Inc', | CODE |
| LOW⚡ | spec/integration/all/mail/template_rendering_spec.rb | 935 | deleted_by: 'admin@example.com', | CODE |
| LOW | …tegration/all/operations/dispatch_notification_spec.rb | 66 | email: 'user@example.com', | CODE |
| LOW | …tegration/all/operations/dispatch_notification_spec.rb | 124 | addressee: { email: 'user@example.com' }, | CODE |
| LOW | …tegration/all/operations/dispatch_notification_spec.rb | 155 | to: 'user@example.com', | CODE |
| LOW | …tegration/all/operations/dispatch_notification_spec.rb | 251 | addressee: { custid: custid, email: 'user@example.com' }, | CODE |
| LOW | spec/integration/all/jobs/rabbitmq_publishing_spec.rb | 221 | to: 'user@example.com', | CODE |
| LOW | spec/integration/all/jobs/rabbitmq_publishing_spec.rb | 238 | expect(received[:email][:to]).to eq('user@example.com') | CODE |
| LOW | spec/integration/all/jobs/workers/email_worker_spec.rb | 120 | recipient: 'user@example.com', | CODE |
| LOW | spec/integration/all/jobs/workers/email_worker_spec.rb | 134 | recipient: 'user@example.com', | CODE |
| LOW | spec/integration/all/jobs/workers/email_worker_spec.rb | 148 | recipient: 'user@example.com', | CODE |
| LOW | spec/integration/all/jobs/workers/email_worker_spec.rb | 161 | recipient: 'user@example.com', | CODE |
| LOW | spec/integration/all/jobs/workers/email_worker_spec.rb | 187 | to: 'user@example.com', | CODE |
| LOW | spec/integration/all/jobs/workers/email_worker_spec.rb | 200 | to: 'user@example.com', | CODE |
| LOW | spec/integration/all/jobs/workers/email_worker_spec.rb | 356 | recipient: 'user@example.com', | CODE |
| LOW | spec/integration/all/jobs/workers/email_worker_spec.rb | 378 | recipient: 'user@example.com', | CODE |
| LOW | spec/integration/all/jobs/workers/email_worker_spec.rb | 413 | to: 'user@example.com', | CODE |
| LOW | spec/integration/all/jobs/workers/email_worker_spec.rb | 433 | to: 'user@example.com', | CODE |
| LOW | spec/integration/all/jobs/workers/email_worker_spec.rb | 449 | recipient: 'user@example.com', | CODE |
| LOW | spec/integration/all/jobs/workers/email_worker_spec.rb | 482 | recipient: 'user@example.com', | CODE |
| LOW | spec/integration/all/jobs/workers/email_worker_spec.rb | 520 | recipient: 'user@example.com', | CODE |
| LOW | …tegration/all/jobs/workers/notification_worker_spec.rb | 112 | email: 'user@example.com' | CODE |
| LOW | …tegration/all/jobs/workers/notification_worker_spec.rb | 370 | addressee: { custid: custid, email: 'user@example.com', webhook_url: 'https://example.com/hook' }, | CODE |
| LOW | spec/cli/email_validate_command_spec.rb | 18 | email: 'user@example.com', | CODE |
| LOW | spec/cli/email_validate_command_spec.rb | 106 | email: 'user@example.com', | CODE |
| LOW | spec/cli/email_validate_command_spec.rb | 117 | .with('user@example.com', with: :regex) | CODE |
| 327 more matches not shown… | ||||
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | .pre-commit-config.yaml | 13 | # Usage: | COMMENT |
| LOW | .pre-push-config.yaml | 15 | # Usage: | COMMENT |
| LOW | docker/bake.hcl | 4 | # Usage: | COMMENT |
| LOW | docker/s6/build.sh | 5 | # Usage: | COMMENT |
| LOW | docker/entrypoints/entrypoint.sh | 6 | # Usage: | COMMENT |
| LOW | locales/scripts/derive-governance.sh | 16 | # Usage: | COMMENT |
| LOW | locales/scripts/export-and-commit.sh | 8 | # Usage: | COMMENT |
| LOW | locales/scripts/export-all.sh | 10 | # Usage: | COMMENT |
| LOW⚡ | locales/scripts/review-locale-branches.sh | 12 | # Usage: | COMMENT |
| LOW | locales/scripts/pr-per-locale.sh | 23 | # Usage: | COMMENT |
| LOW | locales/scripts/branch-per-locale.sh | 6 | # Usage: | COMMENT |
| LOW | locales/scripts/create-all.sh | 20 | # Usage: | COMMENT |
| LOW | spec/integration/integration_spec_helper.rb | 88 | # Usage: | COMMENT |
| LOW | spec/support/postgres_setup_check.rb | 10 | # Usage: | COMMENT |
| LOW | spec/support/postgres_mode_suite_database.rb | 27 | # Usage: | COMMENT |
| LOW | spec/support/full_mode_suite_database.rb | 21 | # Usage: | COMMENT |
| LOW | spec/support/amqp_stubs.rb | 11 | # Usage: | COMMENT |
| LOW | spec/support/shared_contexts/rack_test_context.rb | 8 | # Usage: | COMMENT |
| LOW | spec/support/shared_contexts/clean_auth_state.rb | 24 | # Usage: | COMMENT |
| LOW | spec/support/shared_contexts/auth_rack_test_context.rb | 10 | # Usage: | COMMENT |
| LOW | spec/support/shared_contexts/view_test_context.rb | 8 | # Usage: | COMMENT |
| LOW | spec/support/factories/auth_account_factory.rb | 13 | # Usage: | COMMENT |
| LOW | spec/support/helpers/migration_test_helpers.rb | 18 | # Usage: | COMMENT |
| LOW | spec/support/shared_examples/auth_routes_examples.rb | 7 | # Usage: | COMMENT |
| LOW | spec/support/puma_integration/server_helper.rb | 8 | # Usage: | COMMENT |
| LOW | scripts/validate_display_domain_index.rb | 18 | # Usage: | COMMENT |
| LOW | scripts/validate_org_domain_membership.rb | 19 | # Usage: | COMMENT |
| LOW | scripts/api_validation.rb | 17 | # Usage: | COMMENT |
| LOW | scripts/update-file-headers.rb | 8 | # Usage: | COMMENT |
| LOW | scripts/favicon_gen.rb | 12 | # Usage: | COMMENT |
| LOW | scripts/detect_phantom_receipts.rb | 26 | # Usage: | COMMENT |
| LOW | scripts/check-migration-status.sh | 12 | # Usage: | COMMENT |
| LOW | scripts/validate_orphan_domain_zset_leaks.rb | 17 | # Usage: | COMMENT |
| LOW⚡ | scripts/init-test-lanes.sh | 203 | # Usage: | COMMENT |
| LOW | scripts/tests/verify-sentry-build.sh | 13 | # Usage: | COMMENT |
| LOW | scripts/test-install/proof-of-life.sh | 26 | # Usage: | COMMENT |
| LOW | scripts/test-install/run.sh | 23 | # Usage: | COMMENT |
| LOW | scripts/test-install/secret-rotation.sh | 24 | # Usage: | COMMENT |
| LOW | scripts/test-install/baremetal-boot.sh | 31 | # Usage: | COMMENT |
| LOW | scripts/upgrades/v0.24.5/copy_customer_receipts_zset.rb | 43 | # Usage: | COMMENT |
| LOW | …s/upgrades/v0.24.5/validate_instances_owners_parity.rb | 11 | # Usage: | COMMENT |
| LOW | scripts/upgrades/v0.24.5/check_original_keys.rb | 6 | # Usage: | COMMENT |
| LOW | …ts/upgrades/v0.24.5/validate_domain_org_exclusivity.rb | 12 | # Usage: | COMMENT |
| LOW | scripts/upgrades/v0.24.5/build_score_index.rb | 12 | # Usage: | COMMENT |
| LOW | scripts/upgrades/v0.24.5/info.sh | 9 | # Usage: | COMMENT |
| LOW | scripts/upgrades/v0.24.5/dump_keys.rb | 35 | # Usage: | COMMENT |
| LOW | …ripts/upgrades/v0.24.5/repair_instance_index_scores.rb | 18 | # Usage: | COMMENT |
| LOW | scripts/upgrades/v0.24.5/enrich_with_original_record.rb | 26 | # Usage: | COMMENT |
| LOW | …pts/upgrades/v0.24.5/validate_display_domains_index.rb | 12 | # Usage: | COMMENT |
| LOW | scripts/upgrades/v0.24.5/validate_owners_from_org_id.rb | 12 | # Usage: | COMMENT |
| LOW | scripts/upgrades/v0.24.5/enrich_with_identifiers.rb | 10 | # Usage: | COMMENT |
| LOW | …ipts/upgrades/v0.24.5/repair_display_domain_indexes.rb | 20 | # Usage: | COMMENT |
| LOW | scripts/upgrades/v0.24.5/load_keys.rb | 32 | # Usage: | COMMENT |
| LOW | scripts/upgrades/v0.24.5/validate_post_migration.rb | 35 | # Usage: | COMMENT |
| LOW | scripts/upgrades/v0.24.5/reset.sh | 17 | # Usage: | COMMENT |
| LOW | …ts/upgrades/v0.24.5/validate_customer_receipts_copy.rb | 37 | # Usage: | COMMENT |
| LOW | scripts/upgrades/v0.24.5/upgrade.sh | 14 | # Usage: | COMMENT |
| LOW | …ipts/upgrades/v0.24.5/validate_owners_objects_exist.rb | 11 | # Usage: | COMMENT |
| LOW | …ipts/upgrades/v0.24.5/rebuild_custom_domain_indexes.rb | 12 | # Usage: | COMMENT |
| LOW | scripts/upgrades/v0.24.5/03-customdomain/transform.rb | 14 | # Usage: | COMMENT |
| 156 more matches not shown… | ||||
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW⚡ | spec/integration/full/password_migration_spec.rb | 189 | # Step 2: Create Rodauth account WITHOUT password hash | COMMENT |
| LOW⚡ | spec/integration/full/password_migration_spec.rb | 198 | # Step 3: POST to /auth/login with Redis password | COMMENT |
| LOW⚡ | spec/integration/full/password_migration_spec.rb | 204 | # Step 4: Verify login succeeds (200 or 3xx redirect) | COMMENT |
| LOW⚡ | spec/integration/full/password_migration_spec.rb | 208 | # Step 5: Verify password hash now exists in account_password_hashes | COMMENT |
| LOW⚡ | spec/integration/all/csrf_enforcement_spec.rb | 442 | # Step 1: GET the signin page to establish a session and receive HTML | COMMENT |
| LOW⚡ | spec/integration/all/csrf_enforcement_spec.rb | 451 | # Step 2: Parse the HTML to extract shrimp from __BOOTSTRAP_ME__ | COMMENT |
| LOW⚡ | spec/integration/all/csrf_enforcement_spec.rb | 461 | # Step 3: POST /signin with session cookie + extracted shrimp | COMMENT |
| LOW⚡ | spec/integration/all/csrf_enforcement_spec.rb | 471 | # Step 4: Assert NOT 403 -- the token from the page must be accepted | COMMENT |
| LOW⚡ | docs/runbooks/duplicate-plans-on-plans-page.md | 43 | ### Step 1: Verify Stripe product metadata | COMMENT |
| LOW⚡ | docs/runbooks/duplicate-plans-on-plans-page.md | 50 | ### Step 2: Re-sync with --clear | COMMENT |
| LOW⚡ | docs/runbooks/duplicate-plans-on-plans-page.md | 58 | ### Step 3: Verify | COMMENT |
| LOW | docs/runbooks/raw-email-field-serialization.md | 49 | ### Step 1: Repair the 10 records | COMMENT |
| LOW | docs/runbooks/raw-email-field-serialization.md | 57 | ### Step 2: Verify | COMMENT |
| LOW⚡ | scripts/validate_orphan_domain_zset_leaks.rb | 57 | # Step 1: Find all domains with nil/empty org_id | COMMENT |
| LOW⚡ | scripts/validate_orphan_domain_zset_leaks.rb | 60 | # Step 2: Scan all org domain ZSETs for leaked orphans | COMMENT |
| LOW⚡ | try/unit/logic/account/email_change_try.rb | 346 | # Step 1: Request email change | COMMENT |
| LOW⚡ | try/unit/logic/account/email_change_try.rb | 352 | # Step 2: Retrieve the token from pending_email_change | COMMENT |
| LOW⚡ | try/unit/logic/account/email_change_try.rb | 355 | # Step 3: Confirm email change | COMMENT |
| LOW⚡ | try/unit/logic/account/email_change_try.rb | 482 | # Step 1: request phase in simple mode (no Rodauth dependency) | COMMENT |
| LOW⚡ | try/unit/logic/account/email_change_try.rb | 489 | # Step 2: confirm phase with full mode + stubbed SQLite DB | COMMENT |
| LOW⚡ | try/api/v1/receipt_hsh_state_translation_try.rb | 133 | # Step 1: initial state after creation (new) | COMMENT |
| LOW⚡ | try/api/v1/receipt_hsh_state_translation_try.rb | 135 | # Step 2: after revealed! transition | COMMENT |
| LOW⚡ | lib/onetime/session.rb | 445 | # Step 1: Serialize session data to JSON | COMMENT |
| LOW⚡ | lib/onetime/session.rb | 455 | # Step 2: Encrypt with AES-256-GCM | COMMENT |
| LOW⚡ | lib/onetime/session.rb | 465 | # Step 3: Base64 encode (for safe storage of binary encrypted data) | COMMENT |
| LOW⚡ | lib/onetime/session.rb | 474 | # Step 3: Compute HMAC signature for integrity verification | COMMENT |
| LOW⚡ | lib/onetime/session.rb | 487 | # Step 4: Get or create StringKey for this session | COMMENT |
| LOW⚡ | lib/onetime/session.rb | 490 | # Step 5: Save to Redis | COMMENT |
| LOW | lib/onetime/session.rb | 501 | # Step 6: Update expiration if configured | COMMENT |
| LOW | …e/mail/sender_strategies/lettermint_sender_strategy.rb | 379 | # WARNING: This implementation does not handle pagination. If the account | COMMENT |
| LOW⚡ | lib/onetime/cli/queue/init_command.rb | 82 | # Step 1: Create vhost via Management API | COMMENT |
| LOW⚡ | lib/onetime/cli/queue/init_command.rb | 85 | # Step 2: Set permissions | COMMENT |
| LOW⚡ | lib/onetime/cli/queue/init_command.rb | 88 | # Step 3: Declare exchanges and queues via AMQP | COMMENT |
| LOW⚡ | lib/onetime/cli/queue/init_command.rb | 91 | # Step 4: Apply DLQ policies via Management API | COMMENT |
| LOW⚡ | lib/onetime/operations/provision_sender_domain.rb | 90 | # Step 2: Verify provider supports provisioning | COMMENT |
| LOW⚡ | lib/onetime/operations/provision_sender_domain.rb | 98 | # Step 3: Load platform credentials | COMMENT |
| LOW⚡ | lib/onetime/operations/provision_sender_domain.rb | 102 | # Step 4: Select strategy | COMMENT |
| LOW⚡ | lib/onetime/operations/provision_sender_domain.rb | 105 | # Step 5: Call strategy.provision_dns_records | COMMENT |
| LOW⚡ | lib/onetime/operations/provision_sender_domain.rb | 125 | # Step 6: Handle strategy result | COMMENT |
| LOW⚡ | lib/onetime/operations/provision_sender_domain.rb | 134 | # Step 7: Extract and normalize DNS records | COMMENT |
| LOW⚡ | lib/onetime/operations/provision_sender_domain.rb | 138 | # Step 8: Store result in mailer_config and save if persist enabled | COMMENT |
| LOW | lib/onetime/operations/provision_sender_domain.rb | 77 | # Step 1: Validate mailer_config has required fields | COMMENT |
| LOW | …me/jobs/scheduled/maintenance/instances_rebuild_job.rb | 78 | # Step 1: Collect all existing hash keys for this prefix. | COMMENT |
| LOW⚡ | …me/jobs/scheduled/maintenance/instances_rebuild_job.rb | 90 | # Step 2: Collect all current instances members | COMMENT |
| LOW⚡ | …me/jobs/scheduled/maintenance/instances_rebuild_job.rb | 96 | # Step 3: Compute diff | COMMENT |
| LOW | e2e/full/domains-store-org-cache.spec.ts | 267 | // Step 1: Navigate to Default Workspace dashboard | COMMENT |
| LOW | e2e/full/domains-store-org-cache.spec.ts | 281 | // Step 2: Navigate to A Second Organization's page via URL | COMMENT |
| LOW | e2e/full/domains-store-org-cache.spec.ts | 312 | // Step 3: Navigate back to Default Workspace dashboard | COMMENT |
| LOW | e2e/full/domains-store-org-cache.spec.ts | 370 | // Step 1: Navigate to Default Workspace's organization page (domains tab is default) | COMMENT |
| LOW | e2e/full/domains-store-org-cache.spec.ts | 389 | // Step 2: Navigate directly to A Second Organization's page via URL (domains tab is default) | COMMENT |
| LOW | e2e/full/domains-store-org-cache.spec.ts | 477 | // Step 1: Navigate to Default Workspace dashboard | COMMENT |
| LOW | e2e/full/domains-store-org-cache.spec.ts | 493 | // Step 2: Navigate to A Second Organization | COMMENT |
| LOW⚡ | e2e/full/domain-sso-multi-provider.spec.ts | 372 | // Step 1: Open SSO modal for domain A and configure Entra ID | COMMENT |
| LOW⚡ | e2e/full/domain-sso-multi-provider.spec.ts | 378 | // Step 2: Open SSO modal for domain B and configure Google | COMMENT |
| LOW⚡ | e2e/full/domain-sso-multi-provider.spec.ts | 384 | // Step 3: Verify both domains appear in org SSO hub | COMMENT |
| LOW⚡ | e2e/full/cross-org-domain-isolation.spec.ts | 379 | // Step 1: Navigate to OrgA (domains tab is default) | COMMENT |
| LOW⚡ | e2e/full/cross-org-domain-isolation.spec.ts | 389 | // Step 2: Navigate to OrgB via URL (domains tab is default) | COMMENT |
| LOW | e2e/full/cross-org-domain-isolation.spec.ts | 407 | // Step 3: Navigate back to OrgA (domains tab is default) | COMMENT |
| LOW⚡ | e2e/full/domain-sso-config.spec.ts | 901 | // Step 1: Open SSO modal for domain A | COMMENT |
| LOW⚡ | e2e/full/domain-sso-config.spec.ts | 904 | // Step 2: Configure Entra ID for domain A | COMMENT |
| 57 more matches not shown… | ||||
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW⚡ | spec/integration/full/password_migration_spec.rb | 189 | # Step 2: Create Rodauth account WITHOUT password hash | COMMENT |
| LOW⚡ | spec/integration/full/password_migration_spec.rb | 198 | # Step 3: POST to /auth/login with Redis password | COMMENT |
| LOW⚡ | spec/integration/full/password_migration_spec.rb | 204 | # Step 4: Verify login succeeds (200 or 3xx redirect) | COMMENT |
| LOW⚡ | spec/integration/full/password_migration_spec.rb | 208 | # Step 5: Verify password hash now exists in account_password_hashes | COMMENT |
| LOW⚡ | spec/integration/all/csrf_enforcement_spec.rb | 442 | # Step 1: GET the signin page to establish a session and receive HTML | COMMENT |
| LOW⚡ | spec/integration/all/csrf_enforcement_spec.rb | 451 | # Step 2: Parse the HTML to extract shrimp from __BOOTSTRAP_ME__ | COMMENT |
| LOW⚡ | spec/integration/all/csrf_enforcement_spec.rb | 461 | # Step 3: POST /signin with session cookie + extracted shrimp | COMMENT |
| LOW⚡ | spec/integration/all/csrf_enforcement_spec.rb | 471 | # Step 4: Assert NOT 403 -- the token from the page must be accepted | COMMENT |
| LOW⚡ | scripts/validate_orphan_domain_zset_leaks.rb | 57 | # Step 1: Find all domains with nil/empty org_id | COMMENT |
| LOW⚡ | scripts/validate_orphan_domain_zset_leaks.rb | 60 | # Step 2: Scan all org domain ZSETs for leaked orphans | COMMENT |
| LOW⚡ | try/unit/logic/account/email_change_try.rb | 346 | # Step 1: Request email change | COMMENT |
| LOW⚡ | try/unit/logic/account/email_change_try.rb | 352 | # Step 2: Retrieve the token from pending_email_change | COMMENT |
| LOW⚡ | try/unit/logic/account/email_change_try.rb | 355 | # Step 3: Confirm email change | COMMENT |
| LOW⚡ | try/unit/logic/account/email_change_try.rb | 482 | # Step 1: request phase in simple mode (no Rodauth dependency) | COMMENT |
| LOW⚡ | try/unit/logic/account/email_change_try.rb | 489 | # Step 2: confirm phase with full mode + stubbed SQLite DB | COMMENT |
| LOW⚡ | try/api/v1/receipt_hsh_state_translation_try.rb | 133 | # Step 1: initial state after creation (new) | COMMENT |
| LOW⚡ | try/api/v1/receipt_hsh_state_translation_try.rb | 135 | # Step 2: after revealed! transition | COMMENT |
| LOW⚡ | lib/onetime/session.rb | 445 | # Step 1: Serialize session data to JSON | COMMENT |
| LOW⚡ | lib/onetime/session.rb | 455 | # Step 2: Encrypt with AES-256-GCM | COMMENT |
| LOW⚡ | lib/onetime/session.rb | 465 | # Step 3: Base64 encode (for safe storage of binary encrypted data) | COMMENT |
| LOW⚡ | lib/onetime/session.rb | 474 | # Step 3: Compute HMAC signature for integrity verification | COMMENT |
| LOW⚡ | lib/onetime/session.rb | 487 | # Step 4: Get or create StringKey for this session | COMMENT |
| LOW⚡ | lib/onetime/session.rb | 490 | # Step 5: Save to Redis | COMMENT |
| LOW | lib/onetime/session.rb | 501 | # Step 6: Update expiration if configured | COMMENT |
| LOW⚡ | lib/onetime/cli/queue/init_command.rb | 82 | # Step 1: Create vhost via Management API | COMMENT |
| LOW⚡ | lib/onetime/cli/queue/init_command.rb | 85 | # Step 2: Set permissions | COMMENT |
| LOW⚡ | lib/onetime/cli/queue/init_command.rb | 88 | # Step 3: Declare exchanges and queues via AMQP | COMMENT |
| LOW⚡ | lib/onetime/cli/queue/init_command.rb | 91 | # Step 4: Apply DLQ policies via Management API | COMMENT |
| LOW⚡ | lib/onetime/operations/provision_sender_domain.rb | 90 | # Step 2: Verify provider supports provisioning | COMMENT |
| LOW⚡ | lib/onetime/operations/provision_sender_domain.rb | 98 | # Step 3: Load platform credentials | COMMENT |
| LOW⚡ | lib/onetime/operations/provision_sender_domain.rb | 102 | # Step 4: Select strategy | COMMENT |
| LOW⚡ | lib/onetime/operations/provision_sender_domain.rb | 105 | # Step 5: Call strategy.provision_dns_records | COMMENT |
| LOW⚡ | lib/onetime/operations/provision_sender_domain.rb | 125 | # Step 6: Handle strategy result | COMMENT |
| LOW⚡ | lib/onetime/operations/provision_sender_domain.rb | 134 | # Step 7: Extract and normalize DNS records | COMMENT |
| LOW⚡ | lib/onetime/operations/provision_sender_domain.rb | 138 | # Step 8: Store result in mailer_config and save if persist enabled | COMMENT |
| LOW | lib/onetime/operations/provision_sender_domain.rb | 77 | # Step 1: Validate mailer_config has required fields | COMMENT |
| LOW | …me/jobs/scheduled/maintenance/instances_rebuild_job.rb | 78 | # Step 1: Collect all existing hash keys for this prefix. | COMMENT |
| LOW⚡ | …me/jobs/scheduled/maintenance/instances_rebuild_job.rb | 90 | # Step 2: Collect all current instances members | COMMENT |
| LOW⚡ | …me/jobs/scheduled/maintenance/instances_rebuild_job.rb | 96 | # Step 3: Compute diff | COMMENT |
| LOW | e2e/full/domains-store-org-cache.spec.ts | 267 | // Step 1: Navigate to Default Workspace dashboard | COMMENT |
| LOW | e2e/full/domains-store-org-cache.spec.ts | 281 | // Step 2: Navigate to A Second Organization's page via URL | COMMENT |
| LOW | e2e/full/domains-store-org-cache.spec.ts | 312 | // Step 3: Navigate back to Default Workspace dashboard | COMMENT |
| LOW | e2e/full/domains-store-org-cache.spec.ts | 370 | // Step 1: Navigate to Default Workspace's organization page (domains tab is default) | COMMENT |
| LOW | e2e/full/domains-store-org-cache.spec.ts | 389 | // Step 2: Navigate directly to A Second Organization's page via URL (domains tab is default) | COMMENT |
| LOW | e2e/full/domains-store-org-cache.spec.ts | 477 | // Step 1: Navigate to Default Workspace dashboard | COMMENT |
| LOW | e2e/full/domains-store-org-cache.spec.ts | 493 | // Step 2: Navigate to A Second Organization | COMMENT |
| LOW⚡ | e2e/full/domain-sso-multi-provider.spec.ts | 372 | // Step 1: Open SSO modal for domain A and configure Entra ID | COMMENT |
| LOW⚡ | e2e/full/domain-sso-multi-provider.spec.ts | 378 | // Step 2: Open SSO modal for domain B and configure Google | COMMENT |
| LOW⚡ | e2e/full/domain-sso-multi-provider.spec.ts | 384 | // Step 3: Verify both domains appear in org SSO hub | COMMENT |
| LOW⚡ | e2e/full/cross-org-domain-isolation.spec.ts | 379 | // Step 1: Navigate to OrgA (domains tab is default) | COMMENT |
| LOW⚡ | e2e/full/cross-org-domain-isolation.spec.ts | 389 | // Step 2: Navigate to OrgB via URL (domains tab is default) | COMMENT |
| LOW | e2e/full/cross-org-domain-isolation.spec.ts | 407 | // Step 3: Navigate back to OrgA (domains tab is default) | COMMENT |
| LOW⚡ | e2e/full/domain-sso-config.spec.ts | 901 | // Step 1: Open SSO modal for domain A | COMMENT |
| LOW⚡ | e2e/full/domain-sso-config.spec.ts | 904 | // Step 2: Configure Entra ID for domain A | COMMENT |
| LOW⚡ | e2e/full/domain-sso-config.spec.ts | 913 | // Step 3: Save domain A config (anchor on the mocked save round-trip) | COMMENT |
| LOW⚡ | e2e/full/domain-sso-config.spec.ts | 921 | // Step 4: Open SSO modal for domain B (navigates to domain B's signin page) | COMMENT |
| LOW⚡ | e2e/full/domain-sso-config.spec.ts | 924 | // Step 5: Configure Google for domain B | COMMENT |
| LOW⚡ | e2e/full/domain-sso-config.spec.ts | 932 | // Step 6: Save domain B config (anchor on the mocked save round-trip) | COMMENT |
| LOW⚡ | e2e/full/domain-sso-config.spec.ts | 940 | // Step 7: Return to org settings and verify both show configured status | COMMENT |
| LOW⚡ | e2e/full/invite-token-security.spec.ts | 280 | // Step 1: create a valid invitation (storageState session is the org owner) | COMMENT |
| 46 more matches not shown… | ||||
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| MEDIUM | .pre-commit-config.yaml | 49 | # Use 'system' to leverage existing rbenv/nvm installations from PATH, | COMMENT |
| MEDIUM | spec/spec_helper.rb | 35 | # Test harness for Onetime. | COMMENT |
| MEDIUM | …ime/models/custom_domain/update_display_domain_spec.rb | 11 | # tests are expected to PASS, proving the harness itself is sound. | COMMENT |
| MEDIUM | …ime/models/custom_domain/update_display_domain_spec.rb | 39 | # Sanity checks — expected GREEN (proves the harness works) | COMMENT |
| MEDIUM | spec/integration/integration_spec_helper.rb | 27 | # Parse Redis URI once at configuration time for robust port checking | COMMENT |
| MEDIUM | spec/integration/all/config/after_load_spec.rb | 516 | # `config` object. This helps make tests more robust against | COMMENT |
| MEDIUM | spec/integration/all/initializers/boot_part1_spec.rb | 93 | # If not, ensure test config for :dbs is comprehensive or mock Familia.members. | COMMENT |
| MEDIUM | spec/api/v1/auth_status_header_spec.rb | 19 | # test harness that simulates the controller context. | COMMENT |
| MEDIUM | scripts/test-install/run.sh | 5 | # Tier-1 clean-room harness (install-onboarding testing-strategy §2). Runs a | COMMENT |
| MEDIUM | scripts/test-install/run.sh | 30 | # needs no container); this is the installer-matrix harness. | COMMENT |
| MEDIUM | scripts/test-install/secret-rotation.sh | 5 | # SECRET-rotation harness lane (install-onboarding C10 §5). Proves the | COMMENT |
| MEDIUM⚡ | .github/workflows/installer.yml | 4 | # Runs the Tier-1 clean-room harness (scripts/test-install/run.sh) in CI — the | COMMENT |
| MEDIUM | .github/workflows/installer.yml | 58 | # Docker is preinstalled on ubuntu runners; the harness does the rest | COMMENT |
| MEDIUM | .github/workflows/installer.yml | 126 | # macOS ships bash 3.2. The setup entrypoint and the harness scripts | COMMENT |
| MEDIUM | .github/workflows/claude-code-review.yml | 109 | # 'Please provide a thorough code review focusing on our coding standards and best practices.' }} | COMMENT |
| MEDIUM | .github/actions/run-ruby-tests/action.yml | 50 | # 2.1.0 - Use spec:fast for unit tests; leverage auto-discovery | COMMENT |
| MEDIUM | try/unit/error_handler_try.rb | 6 | # The ErrorHandler provides robust error handling for non-critical operations | COMMENT |
| MEDIUM | try/unit/auth/auth_org_immutability_try.rb | 54 | # A thin harness that includes OrganizationContext the same way | COMMENT |
| MEDIUM | try/unit/auth/organization_loader_fallthrough_try.rb | 16 | # Build a test harness that includes OrganizationLoader so we can call | COMMENT |
| MEDIUM | …models/organization_pending_invitations_cleanup_try.rb | 216 | # If comprehensive cleanup is needed, a separate issue should address cleanup | COMMENT |
| LOW | try/unit/models/custom_domain_migration_setup_try.rb | 5 | # Minimal test - just create customers and orgs, no domains | COMMENT |
| MEDIUM | …tion/middleware/handle_invalid_percent_encoding_try.rb | 32 | # complications. It's just a robust way to keep things DRY. | COMMENT |
| MEDIUM | try/integration/api/domains/put_signin_config_try.rb | 8 | # Uses the same harness pattern as update_domain_brand_validate_try.rb. | COMMENT |
| MEDIUM | try/integration/api/colonel/bfla_colonel_authz_try.rb | 100 | # middleware try to read a nil rack.input (a harness artifact, not an app authz | COMMENT |
| MEDIUM | try/support/test_helpers.rb | 373 | # Print test harness banner showing billing and auth state | COMMENT |
| MEDIUM | lib/onetime/error_handler.rb | 7 | # Provides robust error handling for non-critical operations, particularly | COMMENT |
| MEDIUM | lib/onetime/utils/strings.rb | 88 | # mail gem's Address parser for robust email handling. | COMMENT |
| LOW | lib/onetime/refinements/stripe_refinements.rb | 76 | # on it, otherwise we'll just return the value as-is. | COMMENT |
| LOW | lib/onetime/models/custom_domain.rb | 391 | # we can simply call `fobj.to_s`. In both cases the result is the unqiue | COMMENT |
| LOW | lib/onetime/models/features/required_fields.rb | 27 | # I think it would work since extend doesn't just add methods - it | COMMENT |
| LOW | lib/onetime/models/secret/features/deprecated_fields.rb | 19 | base.field :metadata_key # do not add receipt_key; just use identifier | CODE |
| MEDIUM | lib/onetime/services/redis_key_migrator.rb | 95 | # The migrator includes comprehensive error handling: | COMMENT |
| MEDIUM | apps/web/core/application.rb | 96 | # ruby memory from the get go? It'll need to be more nuanced and robust | COMMENT |
| MEDIUM | apps/web/core/application.rb | 96 | # ruby memory from the get go? It'll need to be more nuanced and robust | COMMENT |
| MEDIUM | apps/web/auth/error_translator.rb | 112 | # iteration order) so the lookup is robust to hash reordering and | COMMENT |
| MEDIUM | apps/web/auth/operations/create_default_workspace.rb | 12 | # plan-based feature flags, but the infrastructure exists for seamless upgrades. | COMMENT |
| LOW | apps/web/auth/operations/customers/list.rb | 78 | # non-matching lookups simply return nothing (a garbage term is rescued). | COMMENT |
| MEDIUM | apps/web/billing/spec/cli/subscriptions_spec.rb | 34 | # stripe-mock returns incomplete objects, so we mock for comprehensive testing | COMMENT |
| MEDIUM | …eb/billing/spec/controllers/billing_controller_spec.rb | 165 | # API locally. Good for comprehensive integration testing. | COMMENT |
| MEDIUM | apps/web/billing/models/stripe_webhook_event.rb | 8 | # Provides comprehensive tracking for Stripe webhook events including: | COMMENT |
| MEDIUM | apps/web/billing/models/plan.rb | 413 | # Extract plan_id using prefix/suffix removal (more robust than split) | COMMENT |
| MEDIUM | apps/web/billing/lib/webhook_validator.rb | 10 | # Provides comprehensive validation for Stripe webhook events: | COMMENT |
| MEDIUM | apps/web/billing/controllers/webhooks.rb | 19 | # Uses WebhookValidator for comprehensive security validation: | COMMENT |
| MEDIUM | apps/web/billing/controllers/plans.rb | 25 | # - Nested JSON Metadata: Grouped debug info per Stripe best practices | COMMENT |
| MEDIUM | apps/api/v1/refinements.rb | 90 | # Based on Familia's FlexibleHashAccess with additional methods for comprehensive | COMMENT |
| MEDIUM | …/domains/spec/logic/sso_config/ssrf_protection_spec.rb | 22 | # Include the module in a test harness so we can call its methods directly | COMMENT |
| LOW | …ins/spec/logic/sender_config/put_sender_config_spec.rb | 65 | # Bypass the (separately tested) authorization step; just set the ivars it | COMMENT |
| LOW | apps/api/v2/spec/support/actor_attribution_helpers.rb | 24 | # reloads the receipt from Redis, so org_id must be saved, not just set. | COMMENT |
| MEDIUM | src/shared/composables/useDismissableBanner.ts | 106 | // though a more robust validation (e.g., with Zod) could be used here. | COMMENT |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| MEDIUM | locales/scripts/interpolate-product-name.py | 162 | print(f"Error: locale directory not found: {locale_dirs[0]}", file=sys.stderr) | CODE |
| MEDIUM⚡ | locales/scripts/i18n/commands/store.py | 170 | print(f"Error: {e}", file=sys.stderr) | STRING |
| MEDIUM⚡ | locales/scripts/i18n/commands/store.py | 173 | print(f"Error: {e}", file=sys.stderr) | STRING |
| MEDIUM⚡ | locales/scripts/i18n/commands/store.py | 182 | print(f"Error: {e}", file=sys.stderr) | STRING |
| MEDIUM⚡ | locales/scripts/i18n/commands/store.py | 185 | print(f"Error: {e}", file=sys.stderr) | STRING |
| MEDIUM⚡ | locales/scripts/i18n/commands/store.py | 194 | print(f"Error: {e}", file=sys.stderr) | STRING |
| MEDIUM⚡ | locales/scripts/i18n/commands/store.py | 197 | print(f"Error: {e}", file=sys.stderr) | STRING |
| MEDIUM⚡ | locales/scripts/i18n/commands/store.py | 206 | print(f"Error: {e}", file=sys.stderr) | STRING |
| MEDIUM⚡ | locales/scripts/i18n/commands/store.py | 209 | print(f"Error: {e}", file=sys.stderr) | STRING |
| MEDIUM⚡ | locales/scripts/i18n/commands/store.py | 218 | print(f"Error: {e}", file=sys.stderr) | STRING |
| MEDIUM⚡ | locales/scripts/i18n/commands/store.py | 221 | print(f"Error: {e}", file=sys.stderr) | STRING |
| MEDIUM | locales/scripts/i18n/commands/store.py | 237 | print(f"Error: {e}", file=sys.stderr) | STRING |
| MEDIUM | locales/scripts/i18n/commands/store.py | 240 | print(f"Error: {e}", file=sys.stderr) | STRING |
| MEDIUM | locales/scripts/i18n/commands/store.py | 252 | print(f"Error: {e}", file=sys.stderr) | STRING |
| MEDIUM | locales/scripts/i18n/commands/store.py | 255 | print(f"Error: {e}", file=sys.stderr) | STRING |
| MEDIUM | locales/scripts/i18n/commands/store.py | 566 | print(f"Error importing {sql_file.name}: {e}", file=sys.stderr) | CODE |
| MEDIUM⚡ | locales/scripts/i18n/commands/tasks.py | 856 | print(f"Error: {e}", file=sys.stderr) | CODE |
| MEDIUM⚡ | locales/scripts/i18n/commands/tasks.py | 1048 | print(f"Error: {e}", file=sys.stderr) | CODE |
| MEDIUM⚡ | locales/scripts/i18n/commands/tasks.py | 1051 | print(f"Error: {e}", file=sys.stderr) | CODE |
| MEDIUM⚡ | locales/scripts/i18n/commands/tasks.py | 1247 | print(f"Error: {e}", file=sys.stderr) | CODE |
| MEDIUM⚡ | locales/scripts/i18n/commands/tasks.py | 1250 | print(f"Error: {e}", file=sys.stderr) | CODE |
| MEDIUM | locales/scripts/i18n/commands/tasks.py | 402 | print(f"Error: English directory not found: {EN_DIR}", file=sys.stderr) | CODE |
| MEDIUM | locales/scripts/i18n/commands/tasks.py | 996 | print(f"Error reading file: {e}", file=sys.stderr) | CODE |
| MEDIUM | locales/scripts/i18n/commands/tasks.py | 1013 | print(f"Error: Task {args.task_id} not found", file=sys.stderr) | CODE |
| MEDIUM | locales/scripts/i18n/commands/tasks.py | 786 | def _next_handler(args) -> int: | CODE |
| LOW⚡ | locales/scripts/i18n/commands/tasks.py | 1249 | except Exception as e: | CODE |
| LOW | locales/scripts/i18n/commands/tasks.py | 995 | except Exception as e: | CODE |
| MEDIUM | locales/scripts/i18n/commands/validate.py | 181 | print(f"Error running git diff: {e}", file=sys.stderr) | CODE |
| MEDIUM | locales/scripts/i18n/commands/validate.py | 928 | print(f"Error: Source locale not found: {source_dir}", file=sys.stderr) | CODE |
| MEDIUM | locales/scripts/i18n/commands/validate.py | 935 | print(f"Error: Locale not found: {args.locale}", file=sys.stderr) | CODE |
| LOW | locales/scripts/i18n/commands/validate.py | 197 | except Exception as e: | CODE |
| LOW | locales/scripts/i18n/commands/validate.py | 421 | except Exception as e: | CODE |
| MEDIUM | locales/scripts/i18n/commands/content.py | 376 | print(f"Error in {locale}: {e}", file=sys.stderr) | CODE |
| LOW | docs/architecture/build-architecture.md | 193 | except Exception: | CODE |
| LOW | scripts/logtide-ship.py | 87 | except Exception: | CODE |
| LOW | scripts/logtide-ship.py | 703 | except Exception as e: | CODE |
| LOW | scripts/logtide-ship.py | 764 | except Exception: | CODE |
| LOW | scripts/logtide-ship.py | 779 | except Exception: | CODE |
| LOW | scripts/logtide-ship.py | 807 | except Exception as e: | CODE |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| MEDIUM | locales/scripts/derive-governance.sh | 8 | # generated/i18n/ — never committed. The translation orchestration reads | COMMENT |
| MEDIUM⚡ | locales/scripts/review-locale-branches.sh | 9 | # The agent orchestration and triage stages live in the slash command | COMMENT |
| MEDIUM | locales/scripts/pr-per-locale.sh | 334 | # Cap the diff so a huge export can't blow up the context window. | COMMENT |
| MEDIUM | etc/defaults/logging.defaults.yaml | 20 | # Workers - RabbitMQ worker message processing and orchestration | COMMENT |
| MEDIUM | etc/defaults/logging.defaults.yaml | 72 | Workers: info # RabbitMQ worker message processing and orchestration | CODE |
| MEDIUM | …els/features/with_plan_entitlements_standalone_spec.rb | 13 | # These tests reuse the FakeSet/FakeHashKey scaffold from | COMMENT |
| MEDIUM | …netime/operations/email/sync_provider_feedback_spec.rb | 8 | # Unit tests for the sync orchestration: provider selection, the fetch -> | COMMENT |
| MEDIUM | …install-onboarding/install-onboarding-problem-space.md | 114 | | Onboarding empty-state dashboard | `DashboardEmpty.vue` (#2088) | CODE |
| MEDIUM | docs/specs/rodauth-admin/10-aggregate-visibility.md | 90 | ### Performance guardrails (200k rows) | COMMENT |
| MEDIUM | scripts/build-and-deploy.py | 359 | # ─── Build orchestration ──────────────────────────────────────────────────── | COMMENT |
| MEDIUM | scripts/upgrades/v0.24.5/run_pipeline.sh | 14 | # The Phase 2 orchestration in upgrade.sh runs this script only when --execute | COMMENT |
| MEDIUM | lib/onetime/mail/feedback/base.rb | 21 | # Fetchers are read-only and provider-specific; the orchestration (which | COMMENT |
| MEDIUM | lib/onetime/cli/worker_command.rb | 32 | # Semantic exit codes for scripting and orchestration | COMMENT |
| MEDIUM | lib/onetime/cli/customers/doctor_command.rb | 27 | # this command owns orchestration (scan-all, output formatting, exit codes). The | COMMENT |
| MEDIUM | lib/onetime/operations/validate_sender_domain.rb | 14 | # This operation orchestrates the verification flow: | COMMENT |
| MEDIUM | apps/web/auth/README-roda.md | 138 | ├── commands/ # Command objects (validation + orchestration) | CODE |
| MEDIUM | apps/web/auth/README-rodauth.md | 78 | ├── config.rb # 150 lines - Core config + orchestration | CODE |
| MEDIUM | apps/web/auth/operations/customers/doctor.rb | 12 | # thin adapter: it owns orchestration (scan-all, output formatting, exit | COMMENT |
| MEDIUM | apps/web/billing/spec/cli/catalog_sync_command_spec.rb | 8 | # These specs verify step orchestration, option forwarding, abort-on-failure, | COMMENT |
| MEDIUM | …/billing/spec/operations/process_webhook_event_spec.rb | 7 | # This file tests orchestration behavior: unhandled events, context options. | COMMENT |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | locales/scripts/interpolate-product-name.py | 90 | CODE | |
| LOW | locales/scripts/i18n/io.py | 18 | CODE | |
| LOW | locales/scripts/i18n/io.py | 103 | CODE | |
| LOW | locales/scripts/i18n/commands/store.py | 338 | CODE | |
| LOW | locales/scripts/i18n/commands/store.py | 495 | CODE | |
| LOW | locales/scripts/i18n/commands/tasks.py | 379 | CODE | |
| LOW | locales/scripts/i18n/commands/tasks.py | 786 | CODE | |
| LOW | locales/scripts/i18n/commands/tasks.py | 977 | CODE | |
| LOW | locales/scripts/i18n/commands/tasks.py | 1090 | CODE | |
| LOW | locales/scripts/i18n/commands/validate.py | 152 | CODE | |
| LOW | locales/scripts/i18n/commands/validate.py | 201 | CODE | |
| LOW | locales/scripts/i18n/commands/validate.py | 465 | CODE | |
| LOW | locales/scripts/i18n/commands/validate.py | 664 | CODE | |
| LOW | locales/scripts/i18n/commands/validate.py | 833 | CODE | |
| LOW | locales/scripts/i18n/commands/validate.py | 878 | CODE | |
| LOW | locales/scripts/i18n/commands/validate.py | 983 | CODE | |
| LOW | locales/scripts/i18n/commands/validate.py | 1036 | CODE | |
| LOW | locales/scripts/i18n/commands/validate.py | 1153 | CODE | |
| LOW | locales/scripts/i18n/commands/content.py | 525 | CODE | |
| LOW | locales/scripts/i18n/commands/content.py | 771 | CODE | |
| LOW | locales/scripts/i18n/commands/content.py | 839 | CODE | |
| LOW | scripts/build-and-deploy.py | 530 | CODE | |
| LOW | scripts/corporate-branch-report.py | 238 | CODE | |
| LOW | scripts/corporate-branch-report.py | 305 | CODE | |
| LOW | scripts/logtide-ship.py | 661 | CODE | |
| LOW | scripts/logtide-ship.py | 720 | CODE |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| HIGH | locales/scripts/interpolate-product-name.py | 346 | print(" cd locales/scripts && python build/compile.py --all --merged --output-dir ../../generated/locales") | CODE |
| HIGH | locales/scripts/i18n/commands/content.py | 216 | # Null value (field present, value is null) | COMMENT |
| HIGH | scripts/build-and-deploy.py | 11 | mkdir -p /opt/builds && chown <hook-user>:<hook-user> /opt/builds | STRING |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | locales/tests/test_generate_tasks.py | 8 | CODE | |
| LOW | locales/tests/test_generate_tasks.py | 13 | CODE | |
| LOW | locales/tests/test_generate_tasks.py | 13 | CODE | |
| LOW | locales/scripts/tests/test_derive_governance.py | 23 | CODE | |
| LOW | locales/scripts/tests/test_i18n_cli.py | 24 | CODE | |
| LOW | locales/scripts/i18n/console.py | 14 | CODE | |
| LOW | locales/scripts/i18n/db.py | 23 | CODE | |
| LOW | locales/scripts/i18n/config.py | 21 | CODE | |
| LOW | locales/scripts/i18n/io.py | 10 | CODE | |
| LOW | locales/scripts/i18n/cli.py | 10 | CODE | |
| LOW | locales/scripts/i18n/commands/store.py | 14 | CODE | |
| LOW | locales/scripts/i18n/commands/tasks.py | 18 | CODE | |
| LOW | locales/scripts/i18n/commands/validate.py | 19 | CODE | |
| LOW | locales/scripts/i18n/commands/content.py | 18 | CODE | |
| LOW | scripts/build-and-deploy.py | 72 | CODE | |
| LOW | scripts/tests/test_logtide_ship.py | 13 | CODE | |
| LOW | scripts/tests/test_logtide_ship.py | 19 | CODE |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | eslint.config.ts | 526 | // uncomment the next line to enable it (don't forget to import it at the | COMMENT |
| MEDIUM | apps/web/billing/cli/webhooks_command.rb | 163 | # This is a basic implementation - in production you'd want a secondary index | COMMENT |
| LOW | apps/web/billing/cli/prices_generate_command.rb | 88 | puts '# Make sure to replace PRODUCT_ID with actual Stripe product ID' | CODE |
| MEDIUM | src/shared/components/ui/MovingGlobules.vue | 11 | [`clipPath`]() value with a transition. Here's how you can modify the code: | CODE |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| HIGH | lib/onetime/models/features/right_to_be_forgotten.rb | 23 | # Marks the customer account as requested for destruction. | COMMENT |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | scripts/tests/test_logtide_ship.py | 64 | def handle_request(self, request): | CODE |