{"version": "2.1.0", "$schema": "https://json.schemastore.org/sarif-2.1.0.json", "runs": [{"tool": {"driver": {"name": "Repobility", "informationUri": "https://repobility.com", "rules": [{"id": "scanner-04ddf5e7c64e40dd", "name": "Possibly dead Python function: should_retry", "shortDescription": {"text": "Possibly dead Python function: should_retry"}, "fullDescription": {"text": "No callers detected by AST scan in this repo. Could be exported for external callers or a framework handler."}, "properties": {"scanner": "scanner-primary", "layer": "software", "severity": "low", "confidence": 1.0}}, {"id": "scanner-1fec2327b609cbd1", "name": "Possibly dead Python function: add_item", "shortDescription": {"text": "Possibly dead Python function: add_item"}, "fullDescription": {"text": "No callers detected by AST scan in this repo. Could be exported for external callers or a framework handler."}, "properties": {"scanner": "scanner-primary", "layer": "software", "severity": "low", "confidence": 1.0}}, {"id": "scanner-e873eceb7e606c23", "name": "Possibly dead Python function: register_instance", "shortDescription": {"text": "Possibly dead Python function: register_instance"}, "fullDescription": {"text": "No callers detected by AST scan in this repo. Could be exported for external callers or a framework handler."}, "properties": {"scanner": "scanner-primary", "layer": "software", "severity": "low", "confidence": 1.0}}, {"id": "scanner-70af9c0f5d328bdf", "name": "Possibly dead Python function: update_instance_status", "shortDescription": {"text": "Possibly dead Python function: update_instance_status"}, "fullDescription": {"text": "No callers detected by AST scan in this repo. Could be exported for external callers or a framework handler."}, "properties": {"scanner": "scanner-primary", "layer": "software", "severity": "low", "confidence": 1.0}}, {"id": "scanner-108f0af2d7fa2d6e", "name": "Possibly dead Python function: update_instance_heartbeat", "shortDescription": {"text": "Possibly dead Python function: update_instance_heartbeat"}, "fullDescription": {"text": "No callers detected by AST scan in this repo. Could be exported for external callers or a framework handler."}, "properties": {"scanner": "scanner-primary", "layer": "software", "severity": "low", "confidence": 1.0}}, {"id": "scanner-0a5372a2255397d0", "name": "Possibly dead Python function: list_instances_by_type", "shortDescription": {"text": "Possibly dead Python function: list_instances_by_type"}, "fullDescription": {"text": "No callers detected by AST scan in this repo. Could be exported for external callers or a framework handler."}, "properties": {"scanner": "scanner-primary", "layer": "software", "severity": "low", "confidence": 1.0}}, {"id": "scanner-9fad76e27bfa42da", "name": "Possibly dead Python function: find_idle_instances", "shortDescription": {"text": "Possibly dead Python function: find_idle_instances"}, "fullDescription": {"text": "No callers detected by AST scan in this repo. Could be exported for external callers or a framework handler."}, "properties": {"scanner": "scanner-primary", "layer": "software", "severity": "low", "confidence": 1.0}}, {"id": "scanner-1973e48839967cea", "name": "Possibly dead Python function: assign_job_to_instance", "shortDescription": {"text": "Possibly dead Python function: assign_job_to_instance"}, "fullDescription": {"text": "No callers detected by AST scan in this repo. Could be exported for external callers or a framework handler."}, "properties": {"scanner": "scanner-primary", "layer": "software", "severity": "low", "confidence": 1.0}}, {"id": "scanner-f76eec29461cdffb", "name": "Possibly dead Python function: update_instance_job_status", "shortDescription": {"text": "Possibly dead Python function: update_instance_job_status"}, "fullDescription": {"text": "No callers detected by AST scan in this repo. Could be exported for external callers or a framework handler."}, "properties": {"scanner": "scanner-primary", "layer": "software", "severity": "low", "confidence": 1.0}}, {"id": "scanner-56fc8d2bb3be43e4", "name": "Possibly dead Python function: list_jobs_for_instance", "shortDescription": {"text": "Possibly dead Python function: list_jobs_for_instance"}, "fullDescription": {"text": "No callers detected by AST scan in this repo. Could be exported for external callers or a framework handler."}, "properties": {"scanner": "scanner-primary", "layer": "software", "severity": "low", "confidence": 1.0}}, {"id": "scanner-47b2cadbb9b9a043", "name": "Possibly dead Python function: create_job", "shortDescription": {"text": "Possibly dead Python function: create_job"}, "fullDescription": {"text": "No callers detected by AST scan in this repo. Could be exported for external callers or a framework handler."}, "properties": {"scanner": "scanner-primary", "layer": "software", "severity": "low", "confidence": 1.0}}, {"id": "scanner-dbc3c08a6aaea857", "name": "Possibly dead Python function: check_job_dependencies", "shortDescription": {"text": "Possibly dead Python function: check_job_dependencies"}, "fullDescription": {"text": "No callers detected by AST scan in this repo. Could be exported for external callers or a framework handler."}, "properties": {"scanner": "scanner-primary", "layer": "software", "severity": "low", "confidence": 1.0}}, {"id": "scanner-a273d9a588698871", "name": "Possibly dead Python function: list_queues_by_user", "shortDescription": {"text": "Possibly dead Python function: list_queues_by_user"}, "fullDescription": {"text": "No callers detected by AST scan in this repo. Could be exported for external callers or a framework handler."}, "properties": {"scanner": "scanner-primary", "layer": "software", "severity": "low", "confidence": 1.0}}, {"id": "scanner-4488814bbadbb6e7", "name": "Possibly dead Python function: update_queue_job", "shortDescription": {"text": "Possibly dead Python function: update_queue_job"}, "fullDescription": {"text": "No callers detected by AST scan in this repo. Could be exported for external callers or a framework handler."}, "properties": {"scanner": "scanner-primary", "layer": "software", "severity": "low", "confidence": 1.0}}, {"id": "scanner-9a3fb4970f49b98c", "name": "Possibly dead Python function: delete_queue_job", "shortDescription": {"text": "Possibly dead Python function: delete_queue_job"}, "fullDescription": {"text": "No callers detected by AST scan in this repo. Could be exported for external callers or a framework handler."}, "properties": {"scanner": "scanner-primary", "layer": "software", "severity": "low", "confidence": 1.0}}, {"id": "scanner-2c68f9b7da1ac0fd", "name": "Possibly dead Python function: list_queues_for_job", "shortDescription": {"text": "Possibly dead Python function: list_queues_for_job"}, "fullDescription": {"text": "No callers detected by AST scan in this repo. Could be exported for external callers or a framework handler."}, "properties": {"scanner": "scanner-primary", "layer": "software", "severity": "low", "confidence": 1.0}}, {"id": "scanner-09123edaa1088681", "name": "Possibly dead Python function: claim_job", "shortDescription": {"text": "Possibly dead Python function: claim_job"}, "fullDescription": {"text": "No callers detected by AST scan in this repo. Could be exported for external callers or a framework handler."}, "properties": {"scanner": "scanner-primary", "layer": "software", "severity": "low", "confidence": 1.0}}, {"id": "scanner-b200e586216a5909", "name": "Possibly dead Python function: mark_job_completed", "shortDescription": {"text": "Possibly dead Python function: mark_job_completed"}, "fullDescription": {"text": "No callers detected by AST scan in this repo. Could be exported for external callers or a framework handler."}, "properties": {"scanner": "scanner-primary", "layer": "software", "severity": "low", "confidence": 1.0}}, {"id": "scanner-aa1ae616b80fc82b", "name": "Possibly dead Python function: release_job", "shortDescription": {"text": "Possibly dead Python function: release_job"}, "fullDescription": {"text": "No callers detected by AST scan in this repo. Could be exported for external callers or a framework handler."}, "properties": {"scanner": "scanner-primary", "layer": "software", "severity": "low", "confidence": 1.0}}, {"id": "scanner-70f0df3a271ec663", "name": "Possibly dead Python function: add_job_checkpoint_with_params", "shortDescription": {"text": "Possibly dead Python function: add_job_checkpoint_with_params"}, "fullDescription": {"text": "No callers detected by AST scan in this repo. Could be exported for external callers or a framework handler."}, "properties": {"scanner": "scanner-primary", "layer": "software", "severity": "low", "confidence": 1.0}}, {"id": "scanner-3b04d41a4646ae33", "name": "Possibly dead Python function: add_job_log_with_params", "shortDescription": {"text": "Possibly dead Python function: add_job_log_with_params"}, "fullDescription": {"text": "No callers detected by AST scan in this repo. Could be exported for external callers or a framework handler."}, "properties": {"scanner": "scanner-primary", "layer": "software", "severity": "low", "confidence": 1.0}}, {"id": "scanner-5e26c5def8dab45e", "name": "Possibly dead Python function: add_job_dependency_with_params", "shortDescription": {"text": "Possibly dead Python function: add_job_dependency_with_params"}, "fullDescription": {"text": "No callers detected by AST scan in this repo. Could be exported for external callers or a framework handler."}, "properties": {"scanner": "scanner-primary", "layer": "software", "severity": "low", "confidence": 1.0}}, {"id": "scanner-7e9b239264272070", "name": "Possibly dead Python function: add_job_metric_with_params", "shortDescription": {"text": "Possibly dead Python function: add_job_metric_with_params"}, "fullDescription": {"text": "No callers detected by AST scan in this repo. Could be exported for external callers or a framework handler."}, "properties": {"scanner": "scanner-primary", "layer": "software", "severity": "low", "confidence": 1.0}}, {"id": "scanner-021cc061eadc5c6b", "name": "Possibly dead Python function: add_job_resource_with_params", "shortDescription": {"text": "Possibly dead Python function: add_job_resource_with_params"}, "fullDescription": {"text": "No callers detected by AST scan in this repo. Could be exported for external callers or a framework handler."}, "properties": {"scanner": "scanner-primary", "layer": "software", "severity": "low", "confidence": 1.0}}, {"id": "scanner-bead75b0f9233e05", "name": "No API endpoints detected", "shortDescription": {"text": "No API endpoints detected"}, "fullDescription": {"text": "The scanner did not find FastAPI/Flask/Express/NestJS/GraphQL/gRPC routes. If this repo exposes APIs, the framework may be unsupported."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "info", "confidence": 1.0}}, {"id": "scanner-57d43f5b5b8ac06c", "name": "Stray `console.log` in TS/JS \u2014 portfolio/monitor-project.js:7", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 portfolio/monitor-project.js:7"}, "fullDescription": {"text": "Replace with the toast helper, an error boundary, or remove. `console.warn` / `console.error` are acceptable.\n\nWhy: Hygiene \u2014 easy to leak debug output.\nRule id: fq.console-leak"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "low", "confidence": 1.0}}, {"id": "scanner-7f61c4103bbc0efa", "name": "Stray `console.log` in TS/JS \u2014 portfolio/__tests__/performance/rendering.perf.test.tsx:46", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 portfolio/__tests__/performance/rendering.perf.test.tsx:46"}, "fullDescription": {"text": "Replace with the toast helper, an error boundary, or remove. `console.warn` / `console.error` are acceptable.\n\nWhy: Hygiene \u2014 easy to leak debug output.\nRule id: fq.console-leak"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "low", "confidence": 1.0}}, {"id": "scanner-e5da71435e0e82af", "name": "Stray `console.log` in TS/JS \u2014 portfolio/tests/bar_receipt.integration.test.ts:92", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 portfolio/tests/bar_receipt.integration.test.ts:92"}, "fullDescription": {"text": "Replace with the toast helper, an error boundary, or remove. `console.warn` / `console.error` are acceptable.\n\nWhy: Hygiene \u2014 easy to leak debug output.\nRule id: fq.console-leak"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "low", "confidence": 1.0}}, {"id": "scanner-ab0e6260c9fbdd76", "name": "Stray `console.log` in TS/JS \u2014 portfolio/scripts/optimize-images.js:28", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 portfolio/scripts/optimize-images.js:28"}, "fullDescription": {"text": "Replace with the toast helper, an error boundary, or remove. `console.warn` / `console.error` are acceptable.\n\nWhy: Hygiene \u2014 easy to leak debug output.\nRule id: fq.console-leak"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "low", "confidence": 1.0}}, {"id": "scanner-e37fa0bbfb15eb1b", "name": "Stray `console.log` in TS/JS \u2014 portfolio/scripts/download-api-data.js:14", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 portfolio/scripts/download-api-data.js:14"}, "fullDescription": {"text": "Replace with the toast helper, an error boundary, or remove. `console.warn` / `console.error` are acceptable.\n\nWhy: Hygiene \u2014 easy to leak debug output.\nRule id: fq.console-leak"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "low", "confidence": 1.0}}, {"id": "scanner-b62d45b95cb8c682", "name": "Stray `console.log` in TS/JS \u2014 portfolio/scripts/analyze-bundle.js:21", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 portfolio/scripts/analyze-bundle.js:21"}, "fullDescription": {"text": "Replace with the toast helper, an error boundary, or remove. `console.warn` / `console.error` are acceptable.\n\nWhy: Hygiene \u2014 easy to leak debug output.\nRule id: fq.console-leak"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "low", "confidence": 1.0}}, {"id": "scanner-8bc5f8180f6a4e99", "name": "TODO/FIXME marker in shipping code \u2014 portfolio/utils/receipt.fixture.test.ts:535", "shortDescription": {"text": "TODO/FIXME marker in shipping code \u2014 portfolio/utils/receipt.fixture.test.ts:535"}, "fullDescription": {"text": "Track in /reviews or /issues, not as a code comment that rots.\n\nWhy: Drift control \u2014 shouldn't be the same as Quality TODO scanner.\nRule id: fq.todo-marker"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "info", "confidence": 1.0}}, {"id": "scanner-4aef8e6e32b372d6", "name": "Stray `console.log` in TS/JS \u2014 portfolio/utils/receipt.fixture.test.ts:215", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 portfolio/utils/receipt.fixture.test.ts:215"}, "fullDescription": {"text": "Replace with the toast helper, an error boundary, or remove. `console.warn` / `console.error` are acceptable.\n\nWhy: Hygiene \u2014 easy to leak debug output.\nRule id: fq.console-leak"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "low", "confidence": 1.0}}, {"id": "scanner-8d33ada7aba3e0af", "name": "Stray `console.log` in TS/JS \u2014 portfolio/utils/performance/api-wrapper.ts:22", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 portfolio/utils/performance/api-wrapper.ts:22"}, "fullDescription": {"text": "Replace with the toast helper, an error boundary, or remove. `console.warn` / `console.error` are acceptable.\n\nWhy: Hygiene \u2014 easy to leak debug output.\nRule id: fq.console-leak"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "low", "confidence": 1.0}}, {"id": "scanner-e4dfdba3eedebcbd", "name": "Stray `console.log` in TS/JS \u2014 portfolio/utils/performance/testing.ts:36", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 portfolio/utils/performance/testing.ts:36"}, "fullDescription": {"text": "Replace with the toast helper, an error boundary, or remove. `console.warn` / `console.error` are acceptable.\n\nWhy: Hygiene \u2014 easy to leak debug output.\nRule id: fq.console-leak"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "low", "confidence": 1.0}}, {"id": "scanner-1da66a139526459a", "name": "Stray `console.log` in TS/JS \u2014 portfolio/utils/performance/monitor.ts:207", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 portfolio/utils/performance/monitor.ts:207"}, "fullDescription": {"text": "Replace with the toast helper, an error boundary, or remove. `console.warn` / `console.error` are acceptable.\n\nWhy: Hygiene \u2014 easy to leak debug output.\nRule id: fq.console-leak"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "low", "confidence": 1.0}}, {"id": "scanner-8356f4a11be2b38e", "name": "Stray `console.log` in TS/JS \u2014 portfolio/utils/performance/logger.ts:67", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 portfolio/utils/performance/logger.ts:67"}, "fullDescription": {"text": "Replace with the toast helper, an error boundary, or remove. `console.warn` / `console.error` are acceptable.\n\nWhy: Hygiene \u2014 easy to leak debug output.\nRule id: fq.console-leak"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "low", "confidence": 1.0}}, {"id": "scanner-be9acc4d655c63bd", "name": "Stray `console.log` in TS/JS \u2014 portfolio/components/ui/animations/AnimatedHullEdgeAlignment.tsx:147", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 portfolio/components/ui/animations/AnimatedHullEdgeAlignment.tsx:147"}, "fullDescription": {"text": "Replace with the toast helper, an error boundary, or remove. `console.warn` / `console.error` are acceptable.\n\nWhy: Hygiene \u2014 easy to leak debug output.\nRule id: fq.console-leak"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "low", "confidence": 1.0}}, {"id": "scanner-4ed1481b30d55fe7", "name": "Stray `console.log` in TS/JS \u2014 portfolio/components/providers/PerformanceProvider.tsx:37", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 portfolio/components/providers/PerformanceProvider.tsx:37"}, "fullDescription": {"text": "Replace with the toast helper, an error boundary, or remove. `console.warn` / `console.error` are acceptable.\n\nWhy: Hygiene \u2014 easy to leak debug output.\nRule id: fq.console-leak"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "low", "confidence": 1.0}}, {"id": "scanner-3849b22351936e55", "name": "Stray `console.log` in TS/JS \u2014 portfolio/pages/_app.tsx:72", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 portfolio/pages/_app.tsx:72"}, "fullDescription": {"text": "Replace with the toast helper, an error boundary, or remove. `console.warn` / `console.error` are acceptable.\n\nWhy: Hygiene \u2014 easy to leak debug output.\nRule id: fq.console-leak"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "low", "confidence": 1.0}}, {"id": "scanner-36020f3194be70ed", "name": "Stray `console.log` in TS/JS \u2014 portfolio/services/api/config.ts:19", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 portfolio/services/api/config.ts:19"}, "fullDescription": {"text": "Replace with the toast helper, an error boundary, or remove. `console.warn` / `console.error` are acceptable.\n\nWhy: Hygiene \u2014 easy to leak debug output.\nRule id: fq.console-leak"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "low", "confidence": 1.0}}, {"id": "scanner-7ee1f0bbddba8c42", "name": "Stray `console.log` in TS/JS \u2014 portfolio/e2e/diagram-performance.perf.spec.ts:225", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 portfolio/e2e/diagram-performance.perf.spec.ts:225"}, "fullDescription": {"text": "Replace with the toast helper, an error boundary, or remove. `console.warn` / `console.error` are acceptable.\n\nWhy: Hygiene \u2014 easy to leak debug output.\nRule id: fq.console-leak"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "low", "confidence": 1.0}}, {"id": "scanner-02fa79f1e54ff088", "name": "Stray `console.log` in TS/JS \u2014 portfolio/e2e/receipt-bounding-box-grid.spec.ts:135", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 portfolio/e2e/receipt-bounding-box-grid.spec.ts:135"}, "fullDescription": {"text": "Replace with the toast helper, an error boundary, or remove. `console.warn` / `console.error` are acceptable.\n\nWhy: Hygiene \u2014 easy to leak debug output.\nRule id: fq.console-leak"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "low", "confidence": 1.0}}, {"id": "scanner-fd345e3cee2e021e", "name": "Stray `console.log` in TS/JS \u2014 portfolio/e2e/skeleton-height-stability.spec.ts:124", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 portfolio/e2e/skeleton-height-stability.spec.ts:124"}, "fullDescription": {"text": "Replace with the toast helper, an error boundary, or remove. `console.warn` / `console.error` are acceptable.\n\nWhy: Hygiene \u2014 easy to leak debug output.\nRule id: fq.console-leak"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "low", "confidence": 1.0}}, {"id": "scanner-5ea995e4c76d002a", "name": "Dockerfile runs as root: infra/chroma/lambdas/Dockerfile", "shortDescription": {"text": "Dockerfile runs as root: infra/chroma/lambdas/Dockerfile"}, "fullDescription": {"text": "No non-root USER set. Containers running as root expand the blast radius of any vulnerability inside the image."}, "properties": {"scanner": "scanner-primary", "layer": "hardware", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-723ea0e3036d47e3", "name": "Docker base image is tag-pinned but not digest-pinned: public.ecr.aws/docker/library/python:3.12-slim", "shortDescription": {"text": "Docker base image is tag-pinned but not digest-pinned: public.ecr.aws/docker/library/python:3.12-slim"}, "fullDescription": {"text": "Container tags can be retagged upstream. Pin production base images to a reviewed digest (`image@sha256:...`) when reproducibility and supply-chain integrity matter."}, "properties": {"scanner": "scanner-primary", "layer": "hardware", "severity": "low", "confidence": 1.0}}, {"id": "scanner-56964ffc75cc84e6", "name": "Dockerfile runs as root: infra/upload_images/container_upload/Dockerfile", "shortDescription": {"text": "Dockerfile runs as root: infra/upload_images/container_upload/Dockerfile"}, "fullDescription": {"text": "No non-root USER set. Containers running as root expand the blast radius of any vulnerability inside the image."}, "properties": {"scanner": "scanner-primary", "layer": "hardware", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-e29c2bc273f7f39d", "name": "Docker base image is tag-pinned but not digest-pinned: public.ecr.aws/lambda/python:3.12", "shortDescription": {"text": "Docker base image is tag-pinned but not digest-pinned: public.ecr.aws/lambda/python:3.12"}, "fullDescription": {"text": "Container tags can be retagged upstream. Pin production base images to a reviewed digest (`image@sha256:...`) when reproducibility and supply-chain integrity matter."}, "properties": {"scanner": "scanner-primary", "layer": "hardware", "severity": "low", "confidence": 1.0}}, {"id": "scanner-f3ed43f00f79696f", "name": "Dockerfile runs as root: infra/upload_images/container_ocr/Dockerfile", "shortDescription": {"text": "Dockerfile runs as root: infra/upload_images/container_ocr/Dockerfile"}, "fullDescription": {"text": "No non-root USER set. Containers running as root expand the blast radius of any vulnerability inside the image."}, "properties": {"scanner": "scanner-primary", "layer": "hardware", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-f520798eb2b67265", "name": "Docker base image is tag-pinned but not digest-pinned: public.ecr.aws/lambda/python:3.12", "shortDescription": {"text": "Docker base image is tag-pinned but not digest-pinned: public.ecr.aws/lambda/python:3.12"}, "fullDescription": {"text": "Container tags can be retagged upstream. Pin production base images to a reviewed digest (`image@sha256:...`) when reproducibility and supply-chain integrity matter."}, "properties": {"scanner": "scanner-primary", "layer": "hardware", "severity": "low", "confidence": 1.0}}, {"id": "scanner-0dfce0186b89ca3c", "name": "Dockerfile runs as root: infra/metadata_harmonizer_step_functions/lambdas/Dockerfile", "shortDescription": {"text": "Dockerfile runs as root: infra/metadata_harmonizer_step_functions/lambdas/Dockerfile"}, "fullDescription": {"text": "No non-root USER set. Containers running as root expand the blast radius of any vulnerability inside the image."}, "properties": {"scanner": "scanner-primary", "layer": "hardware", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-834651f90866271d", "name": "Docker base image is tag-pinned but not digest-pinned: public.ecr.aws/lambda/python:3.12", "shortDescription": {"text": "Docker base image is tag-pinned but not digest-pinned: public.ecr.aws/lambda/python:3.12"}, "fullDescription": {"text": "Container tags can be retagged upstream. Pin production base images to a reviewed digest (`image@sha256:...`) when reproducibility and supply-chain integrity matter."}, "properties": {"scanner": "scanner-primary", "layer": "hardware", "severity": "low", "confidence": 1.0}}, {"id": "scanner-38db40367d836b3c", "name": "Dockerfile runs as root: infra/embedding_step_functions/unified_embedding/Dockerfile", "shortDescription": {"text": "Dockerfile runs as root: infra/embedding_step_functions/unified_embedding/Dockerfile"}, "fullDescription": {"text": "No non-root USER set. Containers running as root expand the blast radius of any vulnerability inside the image."}, "properties": {"scanner": "scanner-primary", "layer": "hardware", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-8a794ba3b8fe3d14", "name": "Docker base image is tag-pinned but not digest-pinned: public.ecr.aws/lambda/python:3.12", "shortDescription": {"text": "Docker base image is tag-pinned but not digest-pinned: public.ecr.aws/lambda/python:3.12"}, "fullDescription": {"text": "Container tags can be retagged upstream. Pin production base images to a reviewed digest (`image@sha256:...`) when reproducibility and supply-chain integrity matter."}, "properties": {"scanner": "scanner-primary", "layer": "hardware", "severity": "low", "confidence": 1.0}}, {"id": "scanner-73749f324f5aa2ae", "name": "Dockerfile runs as root: infra/combine_receipts_step_functions/lambdas/Dockerfile", "shortDescription": {"text": "Dockerfile runs as root: infra/combine_receipts_step_functions/lambdas/Dockerfile"}, "fullDescription": {"text": "No non-root USER set. Containers running as root expand the blast radius of any vulnerability inside the image."}, "properties": {"scanner": "scanner-primary", "layer": "hardware", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-13d1be698c93b4fd", "name": "Docker base image is tag-pinned but not digest-pinned: public.ecr.aws/lambda/python:3.12", "shortDescription": {"text": "Docker base image is tag-pinned but not digest-pinned: public.ecr.aws/lambda/python:3.12"}, "fullDescription": {"text": "Container tags can be retagged upstream. Pin production base images to a reviewed digest (`image@sha256:...`) when reproducibility and supply-chain integrity matter."}, "properties": {"scanner": "scanner-primary", "layer": "hardware", "severity": "low", "confidence": 1.0}}, {"id": "scanner-a9ec67cf82b0daec", "name": "Dockerfile runs as root: infra/routes/address_similarity_cache_generator/lambdas/Dockerfile", "shortDescription": {"text": "Dockerfile runs as root: infra/routes/address_similarity_cache_generator/lambdas/Dockerfile"}, "fullDescription": {"text": "No non-root USER set. Containers running as root expand the blast radius of any vulnerability inside the image."}, "properties": {"scanner": "scanner-primary", "layer": "hardware", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-b8f376b2b93d1486", "name": "Docker base image is tag-pinned but not digest-pinned: public.ecr.aws/lambda/python:3.12", "shortDescription": {"text": "Docker base image is tag-pinned but not digest-pinned: public.ecr.aws/lambda/python:3.12"}, "fullDescription": {"text": "Container tags can be retagged upstream. Pin production base images to a reviewed digest (`image@sha256:...`) when reproducibility and supply-chain integrity matter."}, "properties": {"scanner": "scanner-primary", "layer": "hardware", "severity": "low", "confidence": 1.0}}, {"id": "scanner-824836b48333ee39", "name": "Dockerfile runs as root: infra/routes/word_similarity_cache_generator/lambdas/Dockerfile", "shortDescription": {"text": "Dockerfile runs as root: infra/routes/word_similarity_cache_generator/lambdas/Dockerfile"}, "fullDescription": {"text": "No non-root USER set. Containers running as root expand the blast radius of any vulnerability inside the image."}, "properties": {"scanner": "scanner-primary", "layer": "hardware", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-2ba59d14e156ea02", "name": "Docker base image is tag-pinned but not digest-pinned: public.ecr.aws/lambda/python:3.12", "shortDescription": {"text": "Docker base image is tag-pinned but not digest-pinned: public.ecr.aws/lambda/python:3.12"}, "fullDescription": {"text": "Container tags can be retagged upstream. Pin production base images to a reviewed digest (`image@sha256:...`) when reproducibility and supply-chain integrity matter."}, "properties": {"scanner": "scanner-primary", "layer": "hardware", "severity": "low", "confidence": 1.0}}, {"id": "scanner-0ad09f0e102fef1d", "name": "Dockerfile runs as root: infra/routes/layoutlm_inference_cache_generator/lambdas/Dockerfile", "shortDescription": {"text": "Dockerfile runs as root: infra/routes/layoutlm_inference_cache_generator/lambdas/Dockerfile"}, "fullDescription": {"text": "No non-root USER set. Containers running as root expand the blast radius of any vulnerability inside the image."}, "properties": {"scanner": "scanner-primary", "layer": "hardware", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-72be166c34694d57", "name": "Docker base image is tag-pinned but not digest-pinned: public.ecr.aws/lambda/python:3.12", "shortDescription": {"text": "Docker base image is tag-pinned but not digest-pinned: public.ecr.aws/lambda/python:3.12"}, "fullDescription": {"text": "Container tags can be retagged upstream. Pin production base images to a reviewed digest (`image@sha256:...`) when reproducibility and supply-chain integrity matter."}, "properties": {"scanner": "scanner-primary", "layer": "hardware", "severity": "low", "confidence": 1.0}}, {"id": "scanner-31e1a71a34c4bb75", "name": "Dockerfile runs as root: infra/qa_agent_step_functions/lambdas/Dockerfile", "shortDescription": {"text": "Dockerfile runs as root: infra/qa_agent_step_functions/lambdas/Dockerfile"}, "fullDescription": {"text": "No non-root USER set. Containers running as root expand the blast radius of any vulnerability inside the image."}, "properties": {"scanner": "scanner-primary", "layer": "hardware", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-edafa3e03790cae7", "name": "Docker base image is tag-pinned but not digest-pinned: public.ecr.aws/lambda/python:3.12", "shortDescription": {"text": "Docker base image is tag-pinned but not digest-pinned: public.ecr.aws/lambda/python:3.12"}, "fullDescription": {"text": "Container tags can be retagged upstream. Pin production base images to a reviewed digest (`image@sha256:...`) when reproducibility and supply-chain integrity matter."}, "properties": {"scanner": "scanner-primary", "layer": "hardware", "severity": "low", "confidence": 1.0}}, {"id": "scanner-80129616b1f64b19", "name": "Dockerfile runs as root: infra/trigger_reocr_lambda/lambdas/Dockerfile", "shortDescription": {"text": "Dockerfile runs as root: infra/trigger_reocr_lambda/lambdas/Dockerfile"}, "fullDescription": {"text": "No non-root USER set. Containers running as root expand the blast radius of any vulnerability inside the image."}, "properties": {"scanner": "scanner-primary", "layer": "hardware", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-7d34b84511619a9a", "name": "Docker base image is tag-pinned but not digest-pinned: public.ecr.aws/lambda/python:3.12", "shortDescription": {"text": "Docker base image is tag-pinned but not digest-pinned: public.ecr.aws/lambda/python:3.12"}, "fullDescription": {"text": "Container tags can be retagged upstream. Pin production base images to a reviewed digest (`image@sha256:...`) when reproducibility and supply-chain integrity matter."}, "properties": {"scanner": "scanner-primary", "layer": "hardware", "severity": "low", "confidence": 1.0}}, {"id": "scanner-79618fa96ac99b26", "name": "Dockerfile runs as root: infra/chromadb_compaction/lambdas/Dockerfile", "shortDescription": {"text": "Dockerfile runs as root: infra/chromadb_compaction/lambdas/Dockerfile"}, "fullDescription": {"text": "No non-root USER set. Containers running as root expand the blast radius of any vulnerability inside the image."}, "properties": {"scanner": "scanner-primary", "layer": "hardware", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-0c53735f2def69ac", "name": "Docker base image is tag-pinned but not digest-pinned: public.ecr.aws/lambda/python:3.12", "shortDescription": {"text": "Docker base image is tag-pinned but not digest-pinned: public.ecr.aws/lambda/python:3.12"}, "fullDescription": {"text": "Container tags can be retagged upstream. Pin production base images to a reviewed digest (`image@sha256:...`) when reproducibility and supply-chain integrity matter."}, "properties": {"scanner": "scanner-primary", "layer": "hardware", "severity": "low", "confidence": 1.0}}, {"id": "scanner-fad03d48398af75a", "name": "Dockerfile runs as root: infra/sagemaker_training/Dockerfile", "shortDescription": {"text": "Dockerfile runs as root: infra/sagemaker_training/Dockerfile"}, "fullDescription": {"text": "No non-root USER set. Containers running as root expand the blast radius of any vulnerability inside the image."}, "properties": {"scanner": "scanner-primary", "layer": "hardware", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-a194e12b7e0f20a6", "name": "Docker base image is tag-pinned but not digest-pinned: pytorch/pytorch:2.6.0-cuda12.4-cudnn9-runtime", "shortDescription": {"text": "Docker base image is tag-pinned but not digest-pinned: pytorch/pytorch:2.6.0-cuda12.4-cudnn9-runtime"}, "fullDescription": {"text": "Container tags can be retagged upstream. Pin production base images to a reviewed digest (`image@sha256:...`) when reproducibility and supply-chain integrity matter."}, "properties": {"scanner": "scanner-primary", "layer": "hardware", "severity": "low", "confidence": 1.0}}, {"id": "scanner-827852404499d77e", "name": "Docker base image uses a mutable or implicit tag: transformers", "shortDescription": {"text": "Docker base image uses a mutable or implicit tag: transformers"}, "fullDescription": {"text": "Container tags can be retagged upstream. Pin production base images to a reviewed digest (`image@sha256:...`) when reproducibility and supply-chain integrity matter."}, "properties": {"scanner": "scanner-primary", "layer": "hardware", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-00b024a898245327", "name": "Dockerfile runs as root: infra/fix_place_lambda/lambdas/Dockerfile", "shortDescription": {"text": "Dockerfile runs as root: infra/fix_place_lambda/lambdas/Dockerfile"}, "fullDescription": {"text": "No non-root USER set. Containers running as root expand the blast radius of any vulnerability inside the image."}, "properties": {"scanner": "scanner-primary", "layer": "hardware", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-e05e1fef454702d7", "name": "Docker base image is tag-pinned but not digest-pinned: public.ecr.aws/lambda/python:3.12", "shortDescription": {"text": "Docker base image is tag-pinned but not digest-pinned: public.ecr.aws/lambda/python:3.12"}, "fullDescription": {"text": "Container tags can be retagged upstream. Pin production base images to a reviewed digest (`image@sha256:...`) when reproducibility and supply-chain integrity matter."}, "properties": {"scanner": "scanner-primary", "layer": "hardware", "severity": "low", "confidence": 1.0}}, {"id": "scanner-017565737cbe37ec", "name": "Dockerfile runs as root: infra/merge_receipt_lambda/lambdas/Dockerfile", "shortDescription": {"text": "Dockerfile runs as root: infra/merge_receipt_lambda/lambdas/Dockerfile"}, "fullDescription": {"text": "No non-root USER set. Containers running as root expand the blast radius of any vulnerability inside the image."}, "properties": {"scanner": "scanner-primary", "layer": "hardware", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-f120f00a096ede91", "name": "Docker base image is tag-pinned but not digest-pinned: public.ecr.aws/lambda/python:3.12", "shortDescription": {"text": "Docker base image is tag-pinned but not digest-pinned: public.ecr.aws/lambda/python:3.12"}, "fullDescription": {"text": "Container tags can be retagged upstream. Pin production base images to a reviewed digest (`image@sha256:...`) when reproducibility and supply-chain integrity matter."}, "properties": {"scanner": "scanner-primary", "layer": "hardware", "severity": "low", "confidence": 1.0}}, {"id": "scanner-280ac28984832780", "name": "Dockerfile runs as root: infra/mcp_server_lambda/lambdas/Dockerfile", "shortDescription": {"text": "Dockerfile runs as root: infra/mcp_server_lambda/lambdas/Dockerfile"}, "fullDescription": {"text": "No non-root USER set. Containers running as root expand the blast radius of any vulnerability inside the image."}, "properties": {"scanner": "scanner-primary", "layer": "hardware", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-cb715057460375fc", "name": "Docker base image is tag-pinned but not digest-pinned: public.ecr.aws/lambda/python:3.12", "shortDescription": {"text": "Docker base image is tag-pinned but not digest-pinned: public.ecr.aws/lambda/python:3.12"}, "fullDescription": {"text": "Container tags can be retagged upstream. Pin production base images to a reviewed digest (`image@sha256:...`) when reproducibility and supply-chain integrity matter."}, "properties": {"scanner": "scanner-primary", "layer": "hardware", "severity": "low", "confidence": 1.0}}, {"id": "scanner-e4408df213237c47", "name": "Dockerfile runs as root: infra/label_refresh_lambda/lambdas/Dockerfile", "shortDescription": {"text": "Dockerfile runs as root: infra/label_refresh_lambda/lambdas/Dockerfile"}, "fullDescription": {"text": "No non-root USER set. Containers running as root expand the blast radius of any vulnerability inside the image."}, "properties": {"scanner": "scanner-primary", "layer": "hardware", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-a299471418bbfff2", "name": "Docker base image is tag-pinned but not digest-pinned: public.ecr.aws/lambda/python:3.12", "shortDescription": {"text": "Docker base image is tag-pinned but not digest-pinned: public.ecr.aws/lambda/python:3.12"}, "fullDescription": {"text": "Container tags can be retagged upstream. Pin production base images to a reviewed digest (`image@sha256:...`) when reproducibility and supply-chain integrity matter."}, "properties": {"scanner": "scanner-primary", "layer": "hardware", "severity": "low", "confidence": 1.0}}, {"id": "scanner-aa5acaa49eb8315b", "name": "Containers defined but no K8s/orchestration manifest found", "shortDescription": {"text": "Containers defined but no K8s/orchestration manifest found"}, "fullDescription": {"text": "Repo has Dockerfiles/compose but no Kubernetes/Nomad manifests. If the target deployment is K8s, the manifests may live in a separate ops repo."}, "properties": {"scanner": "scanner-primary", "layer": "hardware", "severity": "low", "confidence": 1.0}}, {"id": "scanner-145bd868b8ccf490", "name": "Insecure pattern 'subprocess_shell_true' in scripts/maintenance/analyze_phase4_violations.py:31", "shortDescription": {"text": "Insecure pattern 'subprocess_shell_true' in scripts/maintenance/analyze_phase4_violations.py:31"}, "fullDescription": {"text": "Found a known-risky pattern (subprocess_shell_true). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-c3533c23758a89da", "name": "Insecure pattern 'node_child_process' in portfolio/monitor-project.js:2", "shortDescription": {"text": "Insecure pattern 'node_child_process' in portfolio/monitor-project.js:2"}, "fullDescription": {"text": "Found a known-risky pattern (node_child_process). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-c1e4a0a780f2bc71", "name": "Insecure pattern 'node_child_process' in portfolio/mcp-server.js:11", "shortDescription": {"text": "Insecure pattern 'node_child_process' in portfolio/mcp-server.js:11"}, "fullDescription": {"text": "Found a known-risky pattern (node_child_process). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-34c159cc22983501", "name": "Insecure pattern 'node_child_process' in portfolio/scripts/optimize-images.js:10", "shortDescription": {"text": "Insecure pattern 'node_child_process' in portfolio/scripts/optimize-images.js:10"}, "fullDescription": {"text": "Found a known-risky pattern (node_child_process). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-0548052b6c453b22", "name": "Insecure pattern 'node_child_process' in portfolio/scripts/analyze-bundle.js:5", "shortDescription": {"text": "Insecure pattern 'node_child_process' in portfolio/scripts/analyze-bundle.js:5"}, "fullDescription": {"text": "Found a known-risky pattern (node_child_process). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-ee09e51800b08951", "name": "Insecure pattern 'direct_innerhtml_assignment' in portfolio/components/ui/Figures/LockingSwimlane.tsx:389", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in portfolio/components/ui/Figures/LockingSwimlane.tsx:389"}, "fullDescription": {"text": "Found a known-risky pattern (direct_innerhtml_assignment). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-a2b2e6a5e6270816", "name": "Possible secret in receipt_places/README.md", "shortDescription": {"text": "Possible secret in receipt_places/README.md"}, "fullDescription": {"text": "Detected pattern matching generic_api_key. Rotate the credential and move to a secret manager."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "critical", "confidence": 1.0}}, {"id": "scanner-00824116070e037e", "name": "Insecure pattern 'cors_wildcard' in infra/routes/job_training_metrics/handler/index.py:326", "shortDescription": {"text": "Insecure pattern 'cors_wildcard' in infra/routes/job_training_metrics/handler/index.py:326"}, "fullDescription": {"text": "Found a known-risky pattern (cors_wildcard). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-3c1dae4b9781e0b6", "name": "Insecure pattern 'cors_wildcard' in infra/routes/label_validation_timeline/handler/index.py:54", "shortDescription": {"text": "Insecure pattern 'cors_wildcard' in infra/routes/label_validation_timeline/handler/index.py:54"}, "fullDescription": {"text": "Found a known-risky pattern (cors_wildcard). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-5aa4f131bcc2acc7", "name": "Insecure pattern 'cors_wildcard' in infra/routes/qa_viz_cache/lambdas/index.py:50", "shortDescription": {"text": "Insecure pattern 'cors_wildcard' in infra/routes/qa_viz_cache/lambdas/index.py:50"}, "fullDescription": {"text": "Found a known-risky pattern (cors_wildcard). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-35d76d3f642a8d84", "name": "Insecure pattern 'cors_wildcard' in infra/routes/label_validation_viz_cache/lambdas/index.py:190", "shortDescription": {"text": "Insecure pattern 'cors_wildcard' in infra/routes/label_validation_viz_cache/lambdas/index.py:190"}, "fullDescription": {"text": "Found a known-risky pattern (cors_wildcard). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-458d81464980be10", "name": "Insecure pattern 'cors_wildcard' in infra/routes/layoutlm_inference/handler/index.py:203", "shortDescription": {"text": "Insecure pattern 'cors_wildcard' in infra/routes/layoutlm_inference/handler/index.py:203"}, "fullDescription": {"text": "Found a known-risky pattern (cors_wildcard). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-0eda6fee23248fa5", "name": "Insecure pattern 'cors_wildcard' in infra/routes/label_evaluator_viz_cache/lambdas/index.py:169", "shortDescription": {"text": "Insecure pattern 'cors_wildcard' in infra/routes/label_evaluator_viz_cache/lambdas/index.py:169"}, "fullDescription": {"text": "Found a known-risky pattern (cors_wildcard). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-4ea1f61300f21299", "name": "Insecure pattern 'cors_wildcard' in infra/routes/merchant_counts/handler/index.py:76", "shortDescription": {"text": "Insecure pattern 'cors_wildcard' in infra/routes/merchant_counts/handler/index.py:76"}, "fullDescription": {"text": "Found a known-risky pattern (cors_wildcard). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-fc3a59f53a259fa0", "name": "Insecure pattern 'cors_wildcard' in infra/routes/ai_usage/handler/index.py:93", "shortDescription": {"text": "Insecure pattern 'cors_wildcard' in infra/routes/ai_usage/handler/index.py:93"}, "fullDescription": {"text": "Found a known-risky pattern (cors_wildcard). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-880e407150e37e23", "name": "Insecure pattern 'cors_wildcard' in infra/routes/address_similarity/handler/index.py:40", "shortDescription": {"text": "Insecure pattern 'cors_wildcard' in infra/routes/address_similarity/handler/index.py:40"}, "fullDescription": {"text": "Found a known-risky pattern (cors_wildcard). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-62e12e1658eef680", "name": "Insecure pattern 'cors_wildcard' in infra/routes/image_details_cache/handler/index.py:39", "shortDescription": {"text": "Insecure pattern 'cors_wildcard' in infra/routes/image_details_cache/handler/index.py:39"}, "fullDescription": {"text": "Found a known-risky pattern (cors_wildcard). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-d318c63f2416ff65", "name": "Insecure pattern 'cors_wildcard' in infra/routes/word_similarity/handler/index.py:40", "shortDescription": {"text": "Insecure pattern 'cors_wildcard' in infra/routes/word_similarity/handler/index.py:40"}, "fullDescription": {"text": "Found a known-risky pattern (cors_wildcard). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-6372cebde0220094", "name": "No auth library detected", "shortDescription": {"text": "No auth library detected"}, "fullDescription": {"text": "The scanner did not find any standard auth library (JWT, OAuth, NextAuth, Auth0, etc.). The repo has auth/admin/session surface indicators, so auth may live in custom code, in a separate service, or be missing."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-e605218285162e21", "name": "GitHub Action is tag-pinned rather than SHA-pinned", "shortDescription": {"text": "GitHub Action is tag-pinned rather than SHA-pinned"}, "fullDescription": {"text": "actions/setup-node@v4 can move without a code change in this repo. Pin third-party actions to a reviewed 40-character commit SHA."}, "properties": {"scanner": "scanner-primary", "layer": "cicd", "severity": "low", "confidence": 1.0}}, {"id": "scanner-dacb6159af7af022", "name": "GitHub Action is tag-pinned rather than SHA-pinned", "shortDescription": {"text": "GitHub Action is tag-pinned rather than SHA-pinned"}, "fullDescription": {"text": "swift-actions/setup-swift@v3 can move without a code change in this repo. Pin third-party actions to a reviewed 40-character commit SHA."}, "properties": {"scanner": "scanner-primary", "layer": "cicd", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-1d7e834080dbebed", "name": "GitHub Action is tag-pinned rather than SHA-pinned", "shortDescription": {"text": "GitHub Action is tag-pinned rather than SHA-pinned"}, "fullDescription": {"text": "actions/upload-artifact@v7 can move without a code change in this repo. Pin third-party actions to a reviewed 40-character commit SHA."}, "properties": {"scanner": "scanner-primary", "layer": "cicd", "severity": "low", "confidence": 1.0}}, {"id": "scanner-299e5e0d9ac9f81f", "name": "GitHub Actions workflow grants broad write permissions", "shortDescription": {"text": "GitHub Actions workflow grants broad write permissions"}, "fullDescription": {"text": "CI tokens with write permissions increase blast radius when an action, dependency, or PR workflow is compromised. Prefer job-level least-privilege permissions."}, "properties": {"scanner": "scanner-primary", "layer": "cicd", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-bd66c7cb7f9012c1", "name": "Very large file: receipt_dynamo/tests/integration/test__receipt_validation_category.py (1584 lines)", "shortDescription": {"text": "Very large file: receipt_dynamo/tests/integration/test__receipt_validation_category.py (1584 lines)"}, "fullDescription": {"text": "Files with >800 lines often hide complexity hotspots and discourage tests."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "low", "confidence": 1.0}}, {"id": "scanner-7f611c39a78be3b3", "name": "Very large file: receipt_dynamo/tests/integration/test__receipt_chatgpt_validation.py (2221 lines)", "shortDescription": {"text": "Very large file: receipt_dynamo/tests/integration/test__receipt_chatgpt_validation.py (2221 lines)"}, "fullDescription": {"text": "Files with >800 lines often hide complexity hotspots and discourage tests."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "low", "confidence": 1.0}}, {"id": "scanner-ea4b9d8127e69869", "name": "Very large file: receipt_dynamo/tests/integration/test__receipt_line_item_analysis.py (2048 lines)", "shortDescription": {"text": "Very large file: receipt_dynamo/tests/integration/test__receipt_line_item_analysis.py (2048 lines)"}, "fullDescription": {"text": "Files with >800 lines often hide complexity hotspots and discourage tests."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "low", "confidence": 1.0}}, {"id": "scanner-09188d557c81caa7", "name": "Very large file: receipt_dynamo/tests/integration/test__receipt_field.py (2309 lines)", "shortDescription": {"text": "Very large file: receipt_dynamo/tests/integration/test__receipt_field.py (2309 lines)"}, "fullDescription": {"text": "Files with >800 lines often hide complexity hotspots and discourage tests."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "low", "confidence": 1.0}}, {"id": "scanner-dcfc247cff20deea", "name": "Very large file: receipt_dynamo/tests/integration/test__receipt_validation_result.py (2120 lines)", "shortDescription": {"text": "Very large file: receipt_dynamo/tests/integration/test__receipt_validation_result.py (2120 lines)"}, "fullDescription": {"text": "Files with >800 lines often hide complexity hotspots and discourage tests."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "low", "confidence": 1.0}}, {"id": "scanner-16b56911f7cb946e", "name": "Very large file: receipt_dynamo/tests/integration/test__receipt_label_analysis.py (1869 lines)", "shortDescription": {"text": "Very large file: receipt_dynamo/tests/integration/test__receipt_label_analysis.py (1869 lines)"}, "fullDescription": {"text": "Files with >800 lines often hide complexity hotspots and discourage tests."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "low", "confidence": 1.0}}, {"id": "scanner-181a8a420adbc380", "name": "Very large file: receipt_dynamo/tests/unit/test_line.py (1634 lines)", "shortDescription": {"text": "Very large file: receipt_dynamo/tests/unit/test_line.py (1634 lines)"}, "fullDescription": {"text": "Files with >800 lines often hide complexity hotspots and discourage tests."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "low", "confidence": 1.0}}, {"id": "scanner-6d6f079fa8a46da1", "name": "Very large file: receipt_dynamo/tests/unit/test_letter.py (1342 lines)", "shortDescription": {"text": "Very large file: receipt_dynamo/tests/unit/test_letter.py (1342 lines)"}, "fullDescription": {"text": "Files with >800 lines often hide complexity hotspots and discourage tests."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "low", "confidence": 1.0}}, {"id": "scanner-4f0c4d2bc7efbc08", "name": "Very large file: scripts/receipt_mcp_server.py (2966 lines)", "shortDescription": {"text": "Very large file: scripts/receipt_mcp_server.py (2966 lines)"}, "fullDescription": {"text": "Files with >800 lines often hide complexity hotspots and discourage tests."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "low", "confidence": 1.0}}, {"id": "scanner-80b5b6e84a5c6924", "name": "Very large file: scripts/visualize_final_clusters_cropped.py (1215 lines)", "shortDescription": {"text": "Very large file: scripts/visualize_final_clusters_cropped.py (1215 lines)"}, "fullDescription": {"text": "Files with >800 lines often hide complexity hotspots and discourage tests."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "low", "confidence": 1.0}}, {"id": "scanner-71bfda026e5e186b", "name": "Very large file: receipt_agent/receipt_agent/utils/chroma_helpers.py (2193 lines)", "shortDescription": {"text": "Very large file: receipt_agent/receipt_agent/utils/chroma_helpers.py (2193 lines)"}, "fullDescription": {"text": "Files with >800 lines often hide complexity hotspots and discourage tests."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "low", "confidence": 1.0}}, {"id": "scanner-ff325f7878093429", "name": "Very large file: receipt_agent/receipt_agent/agents/place_id_finder/tools/place_id_finder.py (1352 lines)", "shortDescription": {"text": "Very large file: receipt_agent/receipt_agent/agents/place_id_finder/tools/place_id_finder.py (1352 lines)"}, "fullDescription": {"text": "Files with >800 lines often hide complexity hotspots and discourage tests."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "low", "confidence": 1.0}}, {"id": "scanner-72f97b24328df331", "name": "Very large file: receipt_agent/receipt_agent/agents/question_answering/tools/search.py (1354 lines)", "shortDescription": {"text": "Very large file: receipt_agent/receipt_agent/agents/question_answering/tools/search.py (1354 lines)"}, "fullDescription": {"text": "Files with >800 lines often hide complexity hotspots and discourage tests."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "low", "confidence": 1.0}}, {"id": "scanner-cd0058d0db71a642", "name": "Very large file: receipt_agent/receipt_agent/agents/harmonizer/graph.py (2128 lines)", "shortDescription": {"text": "Very large file: receipt_agent/receipt_agent/agents/harmonizer/graph.py (2128 lines)"}, "fullDescription": {"text": "Files with >800 lines often hide complexity hotspots and discourage tests."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "low", "confidence": 1.0}}, {"id": "scanner-78817fc4d10a28e5", "name": "Very large file: receipt_agent/receipt_agent/agents/label_evaluator/financial_subagent.py (3176 lines)", "shortDescription": {"text": "Very large file: receipt_agent/receipt_agent/agents/label_evaluator/financial_subagent.py (3176 lines)"}, "fullDescription": {"text": "Files with >800 lines often hide complexity hotspots and discourage tests."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "low", "confidence": 1.0}}, {"id": "scanner-ceb64d615d66f018", "name": "Very large file: receipt_layoutlm/receipt_layoutlm/trainer.py (1852 lines)", "shortDescription": {"text": "Very large file: receipt_layoutlm/receipt_layoutlm/trainer.py (1852 lines)"}, "fullDescription": {"text": "Files with >800 lines often hide complexity hotspots and discourage tests."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "low", "confidence": 1.0}}, {"id": "scanner-9ab928606e1961bc", "name": "Very large file: receipt_upload/receipt_upload/merchant_resolution/embedding_processor.py (1859 lines)", "shortDescription": {"text": "Very large file: receipt_upload/receipt_upload/merchant_resolution/embedding_processor.py (1859 lines)"}, "fullDescription": {"text": "Files with >800 lines often hide complexity hotspots and discourage tests."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "low", "confidence": 1.0}}, {"id": "scanner-1e1525de5f6c2d49", "name": "Very large file: portfolio/components/ui/Figures/LabelEvaluatorVisualization/index.tsx (1435 lines)", "shortDescription": {"text": "Very large file: portfolio/components/ui/Figures/LabelEvaluatorVisualization/index.tsx (1435 lines)"}, "fullDescription": {"text": "Files with >800 lines often hide complexity hotspots and discourage tests."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "low", "confidence": 1.0}}, {"id": "scanner-f1908fc1368b07b6", "name": "Very large file: infra/__main__.py (1713 lines)", "shortDescription": {"text": "Very large file: infra/__main__.py (1713 lines)"}, "fullDescription": {"text": "Files with >800 lines often hide complexity hotspots and discourage tests."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "low", "confidence": 1.0}}, {"id": "scanner-7fbd8228ece67532", "name": "Very large file: infra/upload_images/container_ocr/handler/ocr_processor.py (1855 lines)", "shortDescription": {"text": "Very large file: infra/upload_images/container_ocr/handler/ocr_processor.py (1855 lines)"}, "fullDescription": {"text": "Files with >800 lines often hide complexity hotspots and discourage tests."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "low", "confidence": 1.0}}, {"id": "scanner-2d6761b8717d577e", "name": "Very large file: infra/upload_images/container_ocr/handler/tests/test_overlay.py (1404 lines)", "shortDescription": {"text": "Very large file: infra/upload_images/container_ocr/handler/tests/test_overlay.py (1404 lines)"}, "fullDescription": {"text": "Files with >800 lines often hide complexity hotspots and discourage tests."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "low", "confidence": 1.0}}, {"id": "scanner-f30a69b5c71efdc0", "name": "Very large file: infra/components/lambda_layer.py (1462 lines)", "shortDescription": {"text": "Very large file: infra/components/lambda_layer.py (1462 lines)"}, "fullDescription": {"text": "Files with >800 lines often hide complexity hotspots and discourage tests."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "low", "confidence": 1.0}}, {"id": "scanner-e05c00ba81f12e0f", "name": "Very large file: infra/label_evaluator_step_functions/lambdas/unified_receipt_evaluator.py (1415 lines)", "shortDescription": {"text": "Very large file: infra/label_evaluator_step_functions/lambdas/unified_receipt_evaluator.py (1415 lines)"}, "fullDescription": {"text": "Files with >800 lines often hide complexity hotspots and discourage tests."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "low", "confidence": 1.0}}, {"id": "scanner-028695de60b66919", "name": "Very large file: infra/label_evaluator_step_functions/lambdas/utils/tracing.py (1757 lines)", "shortDescription": {"text": "Very large file: infra/label_evaluator_step_functions/lambdas/utils/tracing.py (1757 lines)"}, "fullDescription": {"text": "Files with >800 lines often hide complexity hotspots and discourage tests."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "low", "confidence": 1.0}}, {"id": "scanner-eee3a62d36febcc3", "name": "Very large file: infra/embedding_step_functions/unified_embedding/handlers/word_polling.py (1526 lines)", "shortDescription": {"text": "Very large file: infra/embedding_step_functions/unified_embedding/handlers/word_polling.py (1526 lines)"}, "fullDescription": {"text": "Files with >800 lines often hide complexity hotspots and discourage tests."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "low", "confidence": 1.0}}, {"id": "scanner-6a976bc6a2c98824", "name": "Very large file: infra/embedding_step_functions/unified_embedding/handlers/line_polling.py (1458 lines)", "shortDescription": {"text": "Very large file: infra/embedding_step_functions/unified_embedding/handlers/line_polling.py (1458 lines)"}, "fullDescription": {"text": "Files with >800 lines often hide complexity hotspots and discourage tests."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "low", "confidence": 1.0}}, {"id": "scanner-91f0f53118e17b36", "name": "Very large file: infra/embedding_step_functions/unified_embedding/handlers/compaction.py (3391 lines)", "shortDescription": {"text": "Very large file: infra/embedding_step_functions/unified_embedding/handlers/compaction.py (3391 lines)"}, "fullDescription": {"text": "Files with >800 lines often hide complexity hotspots and discourage tests."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "low", "confidence": 1.0}}, {"id": "scanner-5f81094bbc079857", "name": "Very large file: infra/mcp_server_lambda/lambdas/receipt_mcp_server_server.py (2980 lines)", "shortDescription": {"text": "Very large file: infra/mcp_server_lambda/lambdas/receipt_mcp_server_server.py (2980 lines)"}, "fullDescription": {"text": "Files with >800 lines often hide complexity hotspots and discourage tests."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "low", "confidence": 1.0}}, {"id": "scanner-d53e6fc6e96b42a4", "name": "43 TODO/FIXME markers", "shortDescription": {"text": "43 TODO/FIXME markers"}, "fullDescription": {"text": "High count of TODO/FIXME/HACK markers \u2014 track them as issues so they're not forgotten."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "low", "confidence": 1.0}}, {"id": "scanner-3ab5d313dda8e5f9", "name": "Debug logging residue appears in source files", "shortDescription": {"text": "Debug logging residue appears in source files"}, "fullDescription": {"text": "Found 2106 console/debugger/print-style debug statements in non-test source. This is a common fast-generation residue before production cleanup."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "low", "confidence": 1.0}}, {"id": "scanner-72b2a6250083a784", "name": "Placeholder or mock-heavy implementation detected", "shortDescription": {"text": "Placeholder or mock-heavy implementation detected"}, "fullDescription": {"text": "Found 66 placeholder/mock markers across 38 source files. This often means the repo looks complete while core flows still use generated scaffolding or fake data."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-2d0c7b7ab8f8aacf", "name": "Critical user flow still appears backed by mock or placeholder data", "shortDescription": {"text": "Critical user flow still appears backed by mock or placeholder data"}, "fullDescription": {"text": "A payment/auth/admin/order/billing-style flow contains mock, fake, TODO, dummy, or placeholder markers in runtime source. In the Fable corpus this is a high-leverage completeness smell: the app can look finished while the money, identity, or tenant flow is still scaffolded."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-ea8f3013f588db25", "name": "Shallow git history limits provenance confidence", "shortDescription": {"text": "Shallow git history limits provenance confidence"}, "fullDescription": {"text": "The repository is a shallow clone. Origin/evolution analysis cannot distinguish fresh generation, imported legacy code, or long-lived human code with high confidence."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "low", "confidence": 1.0}}, {"id": "scanner-8424db9c75e04ba4", "name": "Very short observed git history", "shortDescription": {"text": "Very short observed git history"}, "fullDescription": {"text": "The repo has multiple source files but two or fewer visible commits. This is not a failure by itself, but it lowers confidence in evolution-based diagnosis."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-17d866d91a7c451e", "name": "Agent instruction/config may expose a secret: CLAUDE.md", "shortDescription": {"text": "Agent instruction/config may expose a secret: CLAUDE.md"}, "fullDescription": {"text": "Agent-facing files are routinely pasted into LLM/tool contexts. Move literal tokens, keys, and passwords into a secret manager or document them as placeholders only."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "high", "confidence": 1.0}}, {"id": "scanner-4f3a709692bcb5b0", "name": "Legacy-named symbol `list_objects_v2` in receipt_dynamo/tests/export_table_to_json.py:44", "shortDescription": {"text": "Legacy-named symbol `list_objects_v2` in receipt_dynamo/tests/export_table_to_json.py:44"}, "fullDescription": {"text": "Names with suffixes like `_old`, `_v1`, `_deprecated` usually indicate replaced-but-not-removed code (typical AI-coder leftover). Confirm and delete, or rename if it's the active version."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "low", "confidence": 1.0}}, {"id": "scanner-752b560be9ed0e1d", "name": "Commented-code block (6 lines) in receipt_dynamo/tests/unit/test_util_validation.py:341", "shortDescription": {"text": "Commented-code block (6 lines) in receipt_dynamo/tests/unit/test_util_validation.py:341"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-ebda44f0a647d22d", "name": "Legacy-named symbol `x_old` in receipt_dynamo/tests/unit/test_line.py:1007", "shortDescription": {"text": "Legacy-named symbol `x_old` in receipt_dynamo/tests/unit/test_line.py:1007"}, "fullDescription": {"text": "Names with suffixes like `_old`, `_v1`, `_deprecated` usually indicate replaced-but-not-removed code (typical AI-coder leftover). Confirm and delete, or rename if it's the active version."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "low", "confidence": 1.0}}, {"id": "scanner-791f946429594483", "name": "Commented-code block (6 lines) in receipt_dynamo/tests/unit/test_line.py:925", "shortDescription": {"text": "Commented-code block (6 lines) in receipt_dynamo/tests/unit/test_line.py:925"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-e3e1fb5b67818c2c", "name": "Commented-code block (6 lines) in receipt_dynamo/tests/unit/test_letter.py:880", "shortDescription": {"text": "Commented-code block (6 lines) in receipt_dynamo/tests/unit/test_letter.py:880"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-9306cbe735b3cba7", "name": "Legacy-named symbol `A_copy` in receipt_dynamo/receipt_dynamo/utils/transformations.py:254", "shortDescription": {"text": "Legacy-named symbol `A_copy` in receipt_dynamo/receipt_dynamo/utils/transformations.py:254"}, "fullDescription": {"text": "Names with suffixes like `_old`, `_v1`, `_deprecated` usually indicate replaced-but-not-removed code (typical AI-coder leftover). Confirm and delete, or rename if it's the active version."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "low", "confidence": 1.0}}, {"id": "scanner-4a83ea69de3df521", "name": "Commented-code block (6 lines) in receipt_dynamo/receipt_dynamo/services/instance_service.py:350", "shortDescription": {"text": "Commented-code block (6 lines) in receipt_dynamo/receipt_dynamo/services/instance_service.py:350"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-e82e94c0f05bf7ae", "name": "Commented-code block (5 lines) in receipt_dynamo/receipt_dynamo/services/queue_service.py:318", "shortDescription": {"text": "Commented-code block (5 lines) in receipt_dynamo/receipt_dynamo/services/queue_service.py:318"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-1608cca60f310bb6", "name": "Commented-code block (7 lines) in receipt_dynamo/receipt_dynamo/entities/receipt_validation_result.py:59", "shortDescription": {"text": "Commented-code block (7 lines) in receipt_dynamo/receipt_dynamo/entities/receipt_validation_result.py:59"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-bad35014637ad192", "name": "Commented-code block (5 lines) in receipt_dynamo/receipt_dynamo/entities/entity_mixins.py:123", "shortDescription": {"text": "Commented-code block (5 lines) in receipt_dynamo/receipt_dynamo/entities/entity_mixins.py:123"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-011cfa8b6afb6dbf", "name": "Network/subprocess call without timeout or try/except \u2014 receipt_dynamo/scripts/run_tests.py:10", "shortDescription": {"text": "Network/subprocess call without timeout or try/except \u2014 receipt_dynamo/scripts/run_tests.py:10"}, "fullDescription": {"text": "`subprocess.run(...)` here lacks both a `timeout=` arg and an enclosing try/except. This is exactly the class of bug that took down our git-clone earlier (HTTP/2 stream cancel surfaced as a fatal). Add a `timeout=` and wrap in try/except, or use a wrapper that retries."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-0491754719e9e0aa", "name": "Commented-code block (5 lines) in scripts/normalize_merchant_names.py:182", "shortDescription": {"text": "Commented-code block (5 lines) in scripts/normalize_merchant_names.py:182"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-809e71439bd1e04c", "name": "Legacy-named symbol `list_objects_v2` in scripts/reset_embedding_status.py:319", "shortDescription": {"text": "Legacy-named symbol `list_objects_v2` in scripts/reset_embedding_status.py:319"}, "fullDescription": {"text": "Names with suffixes like `_old`, `_v1`, `_deprecated` usually indicate replaced-but-not-removed code (typical AI-coder leftover). Confirm and delete, or rename if it's the active version."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "low", "confidence": 1.0}}, {"id": "scanner-3655ac3313d81735", "name": "Legacy-named symbol `list_objects_v2` in scripts/copy_images_dev_to_prod.py:83", "shortDescription": {"text": "Legacy-named symbol `list_objects_v2` in scripts/copy_images_dev_to_prod.py:83"}, "fullDescription": {"text": "Names with suffixes like `_old`, `_v1`, `_deprecated` usually indicate replaced-but-not-removed code (typical AI-coder leftover). Confirm and delete, or rename if it's the active version."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "low", "confidence": 1.0}}, {"id": "scanner-82413474c7d745cc", "name": "Legacy-named symbol `types_v1` in scripts/verify_deployment_readiness.py:135", "shortDescription": {"text": "Legacy-named symbol `types_v1` in scripts/verify_deployment_readiness.py:135"}, "fullDescription": {"text": "Names with suffixes like `_old`, `_v1`, `_deprecated` usually indicate replaced-but-not-removed code (typical AI-coder leftover). Confirm and delete, or rename if it's the active version."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "low", "confidence": 1.0}}, {"id": "scanner-34a74b86a9eae466", "name": "Legacy-named symbol `list_objects_v2` in scripts/verify_label_evaluator_cdn.py:61", "shortDescription": {"text": "Legacy-named symbol `list_objects_v2` in scripts/verify_label_evaluator_cdn.py:61"}, "fullDescription": {"text": "Names with suffixes like `_old`, `_v1`, `_deprecated` usually indicate replaced-but-not-removed code (typical AI-coder leftover). Confirm and delete, or rename if it's the active version."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "low", "confidence": 1.0}}, {"id": "scanner-567c94511d70a674", "name": "Legacy-named symbol `rollback_prod_labels_from_backup` in scripts/Receipt_matching_dev_with_prod.py:445", "shortDescription": {"text": "Legacy-named symbol `rollback_prod_labels_from_backup` in scripts/Receipt_matching_dev_with_prod.py:445"}, "fullDescription": {"text": "Names with suffixes like `_old`, `_v1`, `_deprecated` usually indicate replaced-but-not-removed code (typical AI-coder leftover). Confirm and delete, or rename if it's the active version."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "low", "confidence": 1.0}}, {"id": "scanner-46dd0e8a5f75d6f3", "name": "Legacy-named symbol `list_objects_v2` in scripts/sync_ocr_jobs_dev_to_prod.py:112", "shortDescription": {"text": "Legacy-named symbol `list_objects_v2` in scripts/sync_ocr_jobs_dev_to_prod.py:112"}, "fullDescription": {"text": "Names with suffixes like `_old`, `_v1`, `_deprecated` usually indicate replaced-but-not-removed code (typical AI-coder leftover). Confirm and delete, or rename if it's the active version."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "low", "confidence": 1.0}}, {"id": "scanner-d769d7de51718271", "name": "Network/subprocess call without timeout or try/except \u2014 scripts/dev_label_evaluator.py:194", "shortDescription": {"text": "Network/subprocess call without timeout or try/except \u2014 scripts/dev_label_evaluator.py:194"}, "fullDescription": {"text": "`subprocess.run(...)` here lacks both a `timeout=` arg and an enclosing try/except. This is exactly the class of bug that took down our git-clone earlier (HTTP/2 stream cancel surfaced as a fatal). Add a `timeout=` and wrap in try/except, or use a wrapper that retries."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-572386edce8ae9a3", "name": "Legacy-named symbol `list_objects_v2` in scripts/copy_layoutlm_model_dev_to_prod.py:127", "shortDescription": {"text": "Legacy-named symbol `list_objects_v2` in scripts/copy_layoutlm_model_dev_to_prod.py:127"}, "fullDescription": {"text": "Names with suffixes like `_old`, `_v1`, `_deprecated` usually indicate replaced-but-not-removed code (typical AI-coder leftover). Confirm and delete, or rename if it's the active version."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "low", "confidence": 1.0}}, {"id": "scanner-7b14c7edbd237f09", "name": "Legacy-named symbol `entity_copy` in scripts/visualize_final_clusters_cropped.py:128", "shortDescription": {"text": "Legacy-named symbol `entity_copy` in scripts/visualize_final_clusters_cropped.py:128"}, "fullDescription": {"text": "Names with suffixes like `_old`, `_v1`, `_deprecated` usually indicate replaced-but-not-removed code (typical AI-coder leftover). Confirm and delete, or rename if it's the active version."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "low", "confidence": 1.0}}, {"id": "scanner-81fde38f8f6615f5", "name": "Commented-code block (8 lines) in scripts/visualize_final_clusters_cropped.py:659", "shortDescription": {"text": "Commented-code block (8 lines) in scripts/visualize_final_clusters_cropped.py:659"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-4889f51bdd8ec708", "name": "Network/subprocess call without timeout or try/except \u2014 scripts/smart_test_runner.py:278", "shortDescription": {"text": "Network/subprocess call without timeout or try/except \u2014 scripts/smart_test_runner.py:278"}, "fullDescription": {"text": "`subprocess.run(...)` here lacks both a `timeout=` arg and an enclosing try/except. This is exactly the class of bug that took down our git-clone earlier (HTTP/2 stream cancel surfaced as a fatal). Add a `timeout=` and wrap in try/except, or use a wrapper that retries."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-01df6d88c4c750de", "name": "Commented-code block (5 lines) in receipt_dynamo_stream/receipt_dynamo_stream/message_builder.py:58", "shortDescription": {"text": "Commented-code block (5 lines) in receipt_dynamo_stream/receipt_dynamo_stream/message_builder.py:58"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-11b8a72ac5250f15", "name": "Commented-code block (6 lines) in receipt_agent/receipt_agent/constants.py:40", "shortDescription": {"text": "Commented-code block (6 lines) in receipt_agent/receipt_agent/constants.py:40"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-1ca01b80ecdb1edc", "name": "Legacy-named symbol `line_copy` in receipt_agent/receipt_agent/utils/receipt_coordinates.py:141", "shortDescription": {"text": "Legacy-named symbol `line_copy` in receipt_agent/receipt_agent/utils/receipt_coordinates.py:141"}, "fullDescription": {"text": "Names with suffixes like `_old`, `_v1`, `_deprecated` usually indicate replaced-but-not-removed code (typical AI-coder leftover). Confirm and delete, or rename if it's the active version."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "low", "confidence": 1.0}}, {"id": "scanner-2fe12a19c3fc5c86", "name": "Commented-code block (6 lines) in receipt_agent/receipt_agent/utils/receipt_coordinates.py:69", "shortDescription": {"text": "Commented-code block (6 lines) in receipt_agent/receipt_agent/utils/receipt_coordinates.py:69"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-0d547e29f6194ea2", "name": "Commented-code block (5 lines) in receipt_agent/receipt_agent/lifecycle/receipt_manager.py:201", "shortDescription": {"text": "Commented-code block (5 lines) in receipt_agent/receipt_agent/lifecycle/receipt_manager.py:201"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-a423b6f057782596", "name": "Commented-code block (7 lines) in receipt_agent/receipt_agent/agents/label_evaluator/issue_detection.py:594", "shortDescription": {"text": "Commented-code block (7 lines) in receipt_agent/receipt_agent/agents/label_evaluator/issue_detection.py:594"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-81f00dfcfbb50507", "name": "Commented-code block (7 lines) in receipt_agent/receipt_agent/agents/label_evaluator/financial_subagent.py:449", "shortDescription": {"text": "Commented-code block (7 lines) in receipt_agent/receipt_agent/agents/label_evaluator/financial_subagent.py:449"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-f6d32dc166dea29f", "name": "Commented-code block (6 lines) in receipt_agent/receipt_agent/agents/label_evaluator/graph.py:89", "shortDescription": {"text": "Commented-code block (6 lines) in receipt_agent/receipt_agent/agents/label_evaluator/graph.py:89"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-fde30a0e274fbe3e", "name": "Commented-code block (5 lines) in receipt_agent/receipt_agent/agents/label_evaluator/patterns.py:888", "shortDescription": {"text": "Commented-code block (5 lines) in receipt_agent/receipt_agent/agents/label_evaluator/patterns.py:888"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-711b4eb9703fd437", "name": "Commented-code block (5 lines) in receipt_agent/receipt_agent/agents/label_evaluator/state.py:230", "shortDescription": {"text": "Commented-code block (5 lines) in receipt_agent/receipt_agent/agents/label_evaluator/state.py:230"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-cffbed9f6dc9818c", "name": "Commented-code block (5 lines) in receipt_agent/receipt_agent/subagents/cove_text_consistency/graph.py:658", "shortDescription": {"text": "Commented-code block (5 lines) in receipt_agent/receipt_agent/subagents/cove_text_consistency/graph.py:658"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-f1632d8595e7619b", "name": "Legacy-named symbol `place_v1` in receipt_agent/receipt_agent/subagents/place_finder/backfill_receipt_place.py:275", "shortDescription": {"text": "Legacy-named symbol `place_v1` in receipt_agent/receipt_agent/subagents/place_finder/backfill_receipt_place.py:275"}, "fullDescription": {"text": "Names with suffixes like `_old`, `_v1`, `_deprecated` usually indicate replaced-but-not-removed code (typical AI-coder leftover). Confirm and delete, or rename if it's the active version."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "low", "confidence": 1.0}}, {"id": "scanner-be6eba05d2892605", "name": "Legacy-named symbol `place_v1` in receipt_agent/receipt_agent/subagents/place_finder/tools/receipt_place_finder.py:925", "shortDescription": {"text": "Legacy-named symbol `place_v1` in receipt_agent/receipt_agent/subagents/place_finder/tools/receipt_place_finder.py:925"}, "fullDescription": {"text": "Names with suffixes like `_old`, `_v1`, `_deprecated` usually indicate replaced-but-not-removed code (typical AI-coder leftover). Confirm and delete, or rename if it's the active version."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "low", "confidence": 1.0}}, {"id": "scanner-43e1a8e2fe91455f", "name": "Legacy-named symbol `list_objects_v2` in receipt_layoutlm/tests/end_to_end/test_inference_end_to_end.py:69", "shortDescription": {"text": "Legacy-named symbol `list_objects_v2` in receipt_layoutlm/tests/end_to_end/test_inference_end_to_end.py:69"}, "fullDescription": {"text": "Names with suffixes like `_old`, `_v1`, `_deprecated` usually indicate replaced-but-not-removed code (typical AI-coder leftover). Confirm and delete, or rename if it's the active version."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "low", "confidence": 1.0}}, {"id": "scanner-80e60835dadfd206", "name": "Commented-code block (5 lines) in receipt_layoutlm/tests/end_to_end/test_inference_end_to_end.py:115", "shortDescription": {"text": "Commented-code block (5 lines) in receipt_layoutlm/tests/end_to_end/test_inference_end_to_end.py:115"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-5a65324db0a9f9ec", "name": "Legacy-named symbol `list_objects_v2` in receipt_layoutlm/receipt_layoutlm/export_coreml.py:457", "shortDescription": {"text": "Legacy-named symbol `list_objects_v2` in receipt_layoutlm/receipt_layoutlm/export_coreml.py:457"}, "fullDescription": {"text": "Names with suffixes like `_old`, `_v1`, `_deprecated` usually indicate replaced-but-not-removed code (typical AI-coder leftover). Confirm and delete, or rename if it's the active version."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "low", "confidence": 1.0}}, {"id": "scanner-56dc70acc097c329", "name": "Commented-code block (5 lines) in receipt_layoutlm/receipt_layoutlm/export_coreml.py:299", "shortDescription": {"text": "Commented-code block (5 lines) in receipt_layoutlm/receipt_layoutlm/export_coreml.py:299"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-3247b1adc350305e", "name": "Legacy-named symbol `list_objects_v2` in receipt_layoutlm/receipt_layoutlm/inference.py:199", "shortDescription": {"text": "Legacy-named symbol `list_objects_v2` in receipt_layoutlm/receipt_layoutlm/inference.py:199"}, "fullDescription": {"text": "Names with suffixes like `_old`, `_v1`, `_deprecated` usually indicate replaced-but-not-removed code (typical AI-coder leftover). Confirm and delete, or rename if it's the active version."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "low", "confidence": 1.0}}, {"id": "scanner-142e73cb99a582c7", "name": "Legacy-named symbol `list_objects_v2` in receipt_layoutlm/receipt_layoutlm/export_worker.py:51", "shortDescription": {"text": "Legacy-named symbol `list_objects_v2` in receipt_layoutlm/receipt_layoutlm/export_worker.py:51"}, "fullDescription": {"text": "Names with suffixes like `_old`, `_v1`, `_deprecated` usually indicate replaced-but-not-removed code (typical AI-coder leftover). Confirm and delete, or rename if it's the active version."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "low", "confidence": 1.0}}, {"id": "scanner-9b2a2b17ab880b93", "name": "Legacy-named symbol `list_objects_v2` in receipt_layoutlm/receipt_layoutlm/resume.py:83", "shortDescription": {"text": "Legacy-named symbol `list_objects_v2` in receipt_layoutlm/receipt_layoutlm/resume.py:83"}, "fullDescription": {"text": "Names with suffixes like `_old`, `_v1`, `_deprecated` usually indicate replaced-but-not-removed code (typical AI-coder leftover). Confirm and delete, or rename if it's the active version."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "low", "confidence": 1.0}}, {"id": "scanner-77d717e10a0f5990", "name": "Commented-code block (5 lines) in receipt_layoutlm/receipt_layoutlm/trainer.py:137", "shortDescription": {"text": "Commented-code block (5 lines) in receipt_layoutlm/receipt_layoutlm/trainer.py:137"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-3491a669127d8141", "name": "Network/subprocess call without timeout or try/except \u2014 receipt_layoutlm/receipt_layoutlm/trainer.py:825", "shortDescription": {"text": "Network/subprocess call without timeout or try/except \u2014 receipt_layoutlm/receipt_layoutlm/trainer.py:825"}, "fullDescription": {"text": "`subprocess.run(...)` here lacks both a `timeout=` arg and an enclosing try/except. This is exactly the class of bug that took down our git-clone earlier (HTTP/2 stream cancel surfaced as a fatal). Add a `timeout=` and wrap in try/except, or use a wrapper that retries."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-19acb19f89329cb9", "name": "Commented-code block (5 lines) in receipt_upload/test/test_geometry.py:161", "shortDescription": {"text": "Commented-code block (5 lines) in receipt_upload/test/test_geometry.py:161"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-9a19fd05454b403c", "name": "Commented-code block (6 lines) in receipt_upload/receipt_upload/utils.py:494", "shortDescription": {"text": "Commented-code block (6 lines) in receipt_upload/receipt_upload/utils.py:494"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-d43856fcea32acf2", "name": "Commented-code block (5 lines) in receipt_upload/receipt_upload/merchant_resolution/embedding_processor.py:1270", "shortDescription": {"text": "Commented-code block (5 lines) in receipt_upload/receipt_upload/merchant_resolution/embedding_processor.py:1270"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-e1f4edd498d5dd24", "name": "Commented-code block (9 lines) in receipt_upload/receipt_upload/merchant_resolution/resolver.py:383", "shortDescription": {"text": "Commented-code block (9 lines) in receipt_upload/receipt_upload/merchant_resolution/resolver.py:383"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-6a8639fb0c82627e", "name": "Legacy-named symbol `word_copy` in receipt_upload/receipt_upload/combine/records_builder.py:108", "shortDescription": {"text": "Legacy-named symbol `word_copy` in receipt_upload/receipt_upload/combine/records_builder.py:108"}, "fullDescription": {"text": "Names with suffixes like `_old`, `_v1`, `_deprecated` usually indicate replaced-but-not-removed code (typical AI-coder leftover). Confirm and delete, or rename if it's the active version."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "low", "confidence": 1.0}}, {"id": "scanner-30689202eaa11f1b", "name": "Commented-code block (6 lines) in receipt_upload/receipt_upload/combine/records_builder.py:604", "shortDescription": {"text": "Commented-code block (6 lines) in receipt_upload/receipt_upload/combine/records_builder.py:604"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-8129ad2094ab12bb", "name": "Commented-code block (7 lines) in receipt_upload/receipt_upload/label_validation/llm_validator.py:47", "shortDescription": {"text": "Commented-code block (7 lines) in receipt_upload/receipt_upload/label_validation/llm_validator.py:47"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-64ead083bdae6f40", "name": "Legacy-named symbol `_tracing_v2` in receipt_upload/receipt_upload/label_validation/langsmith_logging.py:34", "shortDescription": {"text": "Legacy-named symbol `_tracing_v2` in receipt_upload/receipt_upload/label_validation/langsmith_logging.py:34"}, "fullDescription": {"text": "Names with suffixes like `_old`, `_v1`, `_deprecated` usually indicate replaced-but-not-removed code (typical AI-coder leftover). Confirm and delete, or rename if it's the active version."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "low", "confidence": 1.0}}, {"id": "scanner-e6ef68c498efe587", "name": "Commented-code block (5 lines) in receipt_upload/receipt_upload/geometry/receipt_box.py:256", "shortDescription": {"text": "Commented-code block (5 lines) in receipt_upload/receipt_upload/geometry/receipt_box.py:256"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-2f01ccf3f5f21ae4", "name": "Legacy-named symbol `A_copy` in receipt_upload/receipt_upload/geometry/transformations.py:263", "shortDescription": {"text": "Legacy-named symbol `A_copy` in receipt_upload/receipt_upload/geometry/transformations.py:263"}, "fullDescription": {"text": "Names with suffixes like `_old`, `_v1`, `_deprecated` usually indicate replaced-but-not-removed code (typical AI-coder leftover). Confirm and delete, or rename if it's the active version."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "low", "confidence": 1.0}}, {"id": "scanner-f23896f17a8e7737", "name": "Legacy-named symbol `list_objects_v2` in receipt_chroma/tests/integration/test_chroma_client.py:339", "shortDescription": {"text": "Legacy-named symbol `list_objects_v2` in receipt_chroma/tests/integration/test_chroma_client.py:339"}, "fullDescription": {"text": "Names with suffixes like `_old`, `_v1`, `_deprecated` usually indicate replaced-but-not-removed code (typical AI-coder leftover). Confirm and delete, or rename if it's the active version."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "low", "confidence": 1.0}}, {"id": "scanner-7aa3d2524e02374b", "name": "Legacy-named symbol `list_objects_v2` in receipt_chroma/tests/integration/test_s3_snapshot.py:151", "shortDescription": {"text": "Legacy-named symbol `list_objects_v2` in receipt_chroma/tests/integration/test_s3_snapshot.py:151"}, "fullDescription": {"text": "Names with suffixes like `_old`, `_v1`, `_deprecated` usually indicate replaced-but-not-removed code (typical AI-coder leftover). Confirm and delete, or rename if it's the active version."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "low", "confidence": 1.0}}, {"id": "scanner-5641ea7184cd3261", "name": "Legacy-named symbol `list_objects_v2` in receipt_chroma/tests/integration/test_chroma_client_coverage.py:346", "shortDescription": {"text": "Legacy-named symbol `list_objects_v2` in receipt_chroma/tests/integration/test_chroma_client_coverage.py:346"}, "fullDescription": {"text": "Names with suffixes like `_old`, `_v1`, `_deprecated` usually indicate replaced-but-not-removed code (typical AI-coder leftover). Confirm and delete, or rename if it's the active version."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "low", "confidence": 1.0}}, {"id": "scanner-a1efb1da1e94501f", "name": "Commented-code block (6 lines) in receipt_chroma/tests/integration/test_chroma_client_coverage.py:494", "shortDescription": {"text": "Commented-code block (6 lines) in receipt_chroma/tests/integration/test_chroma_client_coverage.py:494"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-fd30852778615ca6", "name": "Legacy-named symbol `list_objects_v2` in receipt_chroma/tests/integration/test_s3_helpers.py:150", "shortDescription": {"text": "Legacy-named symbol `list_objects_v2` in receipt_chroma/tests/integration/test_s3_helpers.py:150"}, "fullDescription": {"text": "Names with suffixes like `_old`, `_v1`, `_deprecated` usually indicate replaced-but-not-removed code (typical AI-coder leftover). Confirm and delete, or rename if it's the active version."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "low", "confidence": 1.0}}, {"id": "scanner-7dc316bbe1046176", "name": "Legacy-named symbol `list_objects_v2` in receipt_chroma/tests/integration/test_delta_producer.py:68", "shortDescription": {"text": "Legacy-named symbol `list_objects_v2` in receipt_chroma/tests/integration/test_delta_producer.py:68"}, "fullDescription": {"text": "Names with suffixes like `_old`, `_v1`, `_deprecated` usually indicate replaced-but-not-removed code (typical AI-coder leftover). Confirm and delete, or rename if it's the active version."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "low", "confidence": 1.0}}, {"id": "scanner-9c61d3904c6325fe", "name": "Commented-code block (5 lines) in receipt_chroma/tests/unit/test_dual_write.py:402", "shortDescription": {"text": "Commented-code block (5 lines) in receipt_chroma/tests/unit/test_dual_write.py:402"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-34ed8ba5d8072913", "name": "Legacy-named symbol `model_v1` in receipt_chroma/tests/unit/test_embedding_records.py:294", "shortDescription": {"text": "Legacy-named symbol `model_v1` in receipt_chroma/tests/unit/test_embedding_records.py:294"}, "fullDescription": {"text": "Names with suffixes like `_old`, `_v1`, `_deprecated` usually indicate replaced-but-not-removed code (typical AI-coder leftover). Confirm and delete, or rename if it's the active version."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "low", "confidence": 1.0}}, {"id": "scanner-92cbd646b55a54e3", "name": "Legacy-named symbol `list_objects_v2` in receipt_chroma/receipt_chroma/compaction/deltas.py:403", "shortDescription": {"text": "Legacy-named symbol `list_objects_v2` in receipt_chroma/receipt_chroma/compaction/deltas.py:403"}, "fullDescription": {"text": "Names with suffixes like `_old`, `_v1`, `_deprecated` usually indicate replaced-but-not-removed code (typical AI-coder leftover). Confirm and delete, or rename if it's the active version."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "low", "confidence": 1.0}}, {"id": "scanner-cbe7f10b6bd9fd47", "name": "Legacy-named symbol `list_objects_v2` in receipt_chroma/receipt_chroma/s3/helpers.py:319", "shortDescription": {"text": "Legacy-named symbol `list_objects_v2` in receipt_chroma/receipt_chroma/s3/helpers.py:319"}, "fullDescription": {"text": "Names with suffixes like `_old`, `_v1`, `_deprecated` usually indicate replaced-but-not-removed code (typical AI-coder leftover). Confirm and delete, or rename if it's the active version."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "low", "confidence": 1.0}}, {"id": "scanner-11bfdd531fad0f43", "name": "Legacy-named symbol `list_objects_v2` in receipt_langsmith/receipt_langsmith/parsers/parquet.py:101", "shortDescription": {"text": "Legacy-named symbol `list_objects_v2` in receipt_langsmith/receipt_langsmith/parsers/parquet.py:101"}, "fullDescription": {"text": "Names with suffixes like `_old`, `_v1`, `_deprecated` usually indicate replaced-but-not-removed code (typical AI-coder leftover). Confirm and delete, or rename if it's the active version."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "low", "confidence": 1.0}}, {"id": "scanner-32d4c021e8f6f557", "name": "Legacy-named symbol `list_objects_v2` in receipt_langsmith/receipt_langsmith/spark/merged_job.py:1131", "shortDescription": {"text": "Legacy-named symbol `list_objects_v2` in receipt_langsmith/receipt_langsmith/spark/merged_job.py:1131"}, "fullDescription": {"text": "Names with suffixes like `_old`, `_v1`, `_deprecated` usually indicate replaced-but-not-removed code (typical AI-coder leftover). Confirm and delete, or rename if it's the active version."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "low", "confidence": 1.0}}, {"id": "scanner-a72cc662242b7b13", "name": "Commented-code block (6 lines) in receipt_langsmith/receipt_langsmith/spark/merged_job.py:904", "shortDescription": {"text": "Commented-code block (6 lines) in receipt_langsmith/receipt_langsmith/spark/merged_job.py:904"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-849e418e87f623fc", "name": "Legacy-named symbol `from_legacy` in receipt_langsmith/receipt_langsmith/spark/qa_viz_cache_job.py:107", "shortDescription": {"text": "Legacy-named symbol `from_legacy` in receipt_langsmith/receipt_langsmith/spark/qa_viz_cache_job.py:107"}, "fullDescription": {"text": "Names with suffixes like `_old`, `_v1`, `_deprecated` usually indicate replaced-but-not-removed code (typical AI-coder leftover). Confirm and delete, or rename if it's the active version."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "low", "confidence": 1.0}}, {"id": "scanner-05dfcb52127e7a7b", "name": "Legacy-named symbol `list_objects_v2` in receipt_langsmith/receipt_langsmith/spark/evaluator_patterns_viz_cache.py:364", "shortDescription": {"text": "Legacy-named symbol `list_objects_v2` in receipt_langsmith/receipt_langsmith/spark/evaluator_patterns_viz_cache.py:364"}, "fullDescription": {"text": "Names with suffixes like `_old`, `_v1`, `_deprecated` usually indicate replaced-but-not-removed code (typical AI-coder leftover). Confirm and delete, or rename if it's the active version."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "low", "confidence": 1.0}}, {"id": "scanner-ddfd27e10be65e59", "name": "Legacy-named symbol `from_legacy` in receipt_langsmith/receipt_langsmith/spark/qa_viz_cache_helpers.py:90", "shortDescription": {"text": "Legacy-named symbol `from_legacy` in receipt_langsmith/receipt_langsmith/spark/qa_viz_cache_helpers.py:90"}, "fullDescription": {"text": "Names with suffixes like `_old`, `_v1`, `_deprecated` usually indicate replaced-but-not-removed code (typical AI-coder leftover). Confirm and delete, or rename if it's the active version."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "low", "confidence": 1.0}}, {"id": "scanner-045f9e62ccd1b3ef", "name": "Legacy-named symbol `list_objects_v2` in portfolio/scripts/investigate_receipt_files.py:48", "shortDescription": {"text": "Legacy-named symbol `list_objects_v2` in portfolio/scripts/investigate_receipt_files.py:48"}, "fullDescription": {"text": "Names with suffixes like `_old`, `_v1`, `_deprecated` usually indicate replaced-but-not-removed code (typical AI-coder leftover). Confirm and delete, or rename if it's the active version."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "low", "confidence": 1.0}}, {"id": "scanner-6ee526f9fe287c74", "name": "Legacy-named symbol `entities_to_copy` in portfolio/scripts/check_corrupted_entities.py:97", "shortDescription": {"text": "Legacy-named symbol `entities_to_copy` in portfolio/scripts/check_corrupted_entities.py:97"}, "fullDescription": {"text": "Names with suffixes like `_old`, `_v1`, `_deprecated` usually indicate replaced-but-not-removed code (typical AI-coder leftover). Confirm and delete, or rename if it's the active version."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "low", "confidence": 1.0}}, {"id": "scanner-d3d91d0720664812", "name": "Legacy-named symbol `list_objects_v2` in portfolio/scripts/analyze_receipt_patterns.py:30", "shortDescription": {"text": "Legacy-named symbol `list_objects_v2` in portfolio/scripts/analyze_receipt_patterns.py:30"}, "fullDescription": {"text": "Names with suffixes like `_old`, `_v1`, `_deprecated` usually indicate replaced-but-not-removed code (typical AI-coder leftover). Confirm and delete, or rename if it's the active version."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "low", "confidence": 1.0}}, {"id": "scanner-8c3144d86a7a3169", "name": "Legacy-named symbol `list_objects_v2` in portfolio/scripts/comprehensive_image_check.py:140", "shortDescription": {"text": "Legacy-named symbol `list_objects_v2` in portfolio/scripts/comprehensive_image_check.py:140"}, "fullDescription": {"text": "Names with suffixes like `_old`, `_v1`, `_deprecated` usually indicate replaced-but-not-removed code (typical AI-coder leftover). Confirm and delete, or rename if it's the active version."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "low", "confidence": 1.0}}, {"id": "scanner-c165dc6ab534b6fb", "name": "`fetch()` without try/.catch or AbortSignal \u2014 portfolio/scripts/download-api-data.js:6", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 portfolio/scripts/download-api-data.js:6"}, "fullDescription": {"text": "Bare `fetch(...)` will throw an unhandled rejection on network failure. Wrap in try/catch, attach a `.catch(...)`, or pass an AbortSignal with a timeout."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-337e5de4f13cec41", "name": "Legacy-named symbol `list_objects_v2` in portfolio/scripts/analyze_prod_cdn_structure.py:72", "shortDescription": {"text": "Legacy-named symbol `list_objects_v2` in portfolio/scripts/analyze_prod_cdn_structure.py:72"}, "fullDescription": {"text": "Names with suffixes like `_old`, `_v1`, `_deprecated` usually indicate replaced-but-not-removed code (typical AI-coder leftover). Confirm and delete, or rename if it's the active version."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "low", "confidence": 1.0}}, {"id": "scanner-5195709f464da7c7", "name": "Legacy-named symbol `list_objects_v2` in portfolio/scripts/simple_s3_investigation.py:25", "shortDescription": {"text": "Legacy-named symbol `list_objects_v2` in portfolio/scripts/simple_s3_investigation.py:25"}, "fullDescription": {"text": "Names with suffixes like `_old`, `_v1`, `_deprecated` usually indicate replaced-but-not-removed code (typical AI-coder leftover). Confirm and delete, or rename if it's the active version."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "low", "confidence": 1.0}}, {"id": "scanner-112b4287d0d03968", "name": "Legacy-named symbol `list_objects_v2` in portfolio/scripts/find_receipts_with_cdn_images.py:167", "shortDescription": {"text": "Legacy-named symbol `list_objects_v2` in portfolio/scripts/find_receipts_with_cdn_images.py:167"}, "fullDescription": {"text": "Names with suffixes like `_old`, `_v1`, `_deprecated` usually indicate replaced-but-not-removed code (typical AI-coder leftover). Confirm and delete, or rename if it's the active version."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "low", "confidence": 1.0}}, {"id": "scanner-cba1291a204688a9", "name": "Legacy-named symbol `list_objects_v2` in portfolio/scripts/find_dev_cdn_records.py:84", "shortDescription": {"text": "Legacy-named symbol `list_objects_v2` in portfolio/scripts/find_dev_cdn_records.py:84"}, "fullDescription": {"text": "Names with suffixes like `_old`, `_v1`, `_deprecated` usually indicate replaced-but-not-removed code (typical AI-coder leftover). Confirm and delete, or rename if it's the active version."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "low", "confidence": 1.0}}, {"id": "scanner-16c5db9b1bd7ffb7", "name": "Legacy-named symbol `list_objects_v2` in portfolio/scripts/analyze_receipt_cdn_mapping.py:35", "shortDescription": {"text": "Legacy-named symbol `list_objects_v2` in portfolio/scripts/analyze_receipt_cdn_mapping.py:35"}, "fullDescription": {"text": "Names with suffixes like `_old`, `_v1`, `_deprecated` usually indicate replaced-but-not-removed code (typical AI-coder leftover). Confirm and delete, or rename if it's the active version."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "low", "confidence": 1.0}}, {"id": "scanner-75eb9ebebbdae158", "name": "Legacy-named symbol `list_objects_v2` in portfolio/scripts/check_image_cdn_mapping.py:37", "shortDescription": {"text": "Legacy-named symbol `list_objects_v2` in portfolio/scripts/check_image_cdn_mapping.py:37"}, "fullDescription": {"text": "Names with suffixes like `_old`, `_v1`, `_deprecated` usually indicate replaced-but-not-removed code (typical AI-coder leftover). Confirm and delete, or rename if it's the active version."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "low", "confidence": 1.0}}, {"id": "scanner-63f7e5fa5111db34", "name": "Legacy-named symbol `list_objects_v2` in portfolio/scripts/comprehensive_cdn_analysis.py:67", "shortDescription": {"text": "Legacy-named symbol `list_objects_v2` in portfolio/scripts/comprehensive_cdn_analysis.py:67"}, "fullDescription": {"text": "Names with suffixes like `_old`, `_v1`, `_deprecated` usually indicate replaced-but-not-removed code (typical AI-coder leftover). Confirm and delete, or rename if it's the active version."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "low", "confidence": 1.0}}, {"id": "scanner-6f4762e5ae86f1aa", "name": "Legacy-named symbol `list_objects_v2` in portfolio/scripts/analyze_cdn_mapping.py:35", "shortDescription": {"text": "Legacy-named symbol `list_objects_v2` in portfolio/scripts/analyze_cdn_mapping.py:35"}, "fullDescription": {"text": "Names with suffixes like `_old`, `_v1`, `_deprecated` usually indicate replaced-but-not-removed code (typical AI-coder leftover). Confirm and delete, or rename if it's the active version."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "low", "confidence": 1.0}}, {"id": "scanner-8562c6f1112893a1", "name": "Commented-code block (8 lines) in portfolio/components/ui/AnimatedInView.tsx:37", "shortDescription": {"text": "Commented-code block (8 lines) in portfolio/components/ui/AnimatedInView.tsx:37"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-5460e467fe87c5bf", "name": "Commented-code block (6 lines) in portfolio/components/ui/Figures/CICDLoop.tsx:590", "shortDescription": {"text": "Commented-code block (6 lines) in portfolio/components/ui/Figures/CICDLoop.tsx:590"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-0725cde05d825885", "name": "Commented-code block (6 lines) in portfolio/components/ui/Figures/ReceiptStack.tsx:213", "shortDescription": {"text": "Commented-code block (6 lines) in portfolio/components/ui/Figures/ReceiptStack.tsx:213"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-690e7a8b1f66c867", "name": "Commented-code block (5 lines) in portfolio/components/ui/Figures/TrainingMetricsAnimation/index.tsx:88", "shortDescription": {"text": "Commented-code block (5 lines) in portfolio/components/ui/Figures/TrainingMetricsAnimation/index.tsx:88"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-e95bfe9c62786a5e", "name": "Commented-code block (9 lines) in portfolio/pages/receipt.tsx:138", "shortDescription": {"text": "Commented-code block (9 lines) in portfolio/pages/receipt.tsx:138"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-4e01fee878c6f889", "name": "`fetch()` without try/.catch or AbortSignal \u2014 portfolio/hooks/useQAQueue.ts:7", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 portfolio/hooks/useQAQueue.ts:7"}, "fullDescription": {"text": "Bare `fetch(...)` will throw an unhandled rejection on network failure. Wrap in try/catch, attach a `.catch(...)`, or pass an AbortSignal with a timeout."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-f9c80e24219ca9a5", "name": "`fetch()` without try/.catch or AbortSignal \u2014 portfolio/hooks/useUploadProgress.ts:148", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 portfolio/hooks/useUploadProgress.ts:148"}, "fullDescription": {"text": "Bare `fetch(...)` will throw an unhandled rejection on network failure. Wrap in try/catch, attach a `.catch(...)`, or pass an AbortSignal with a timeout."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-1f5cab0d5713bb8f", "name": "`fetch()` without try/.catch or AbortSignal \u2014 portfolio/services/api/index.ts:35", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 portfolio/services/api/index.ts:35"}, "fullDescription": {"text": "Bare `fetch(...)` will throw an unhandled rejection on network failure. Wrap in try/catch, attach a `.catch(...)`, or pass an AbortSignal with a timeout."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-c69e31f2a10ba17f", "name": "Commented-code block (5 lines) in portfolio/e2e/qa-agent-flow.spec.ts:273", "shortDescription": {"text": "Commented-code block (5 lines) in portfolio/e2e/qa-agent-flow.spec.ts:273"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-17c17138d04171a4", "name": "Legacy-named symbol `api_calls_legacy` in receipt_places/monitoring.py:36", "shortDescription": {"text": "Legacy-named symbol `api_calls_legacy` in receipt_places/monitoring.py:36"}, "fullDescription": {"text": "Names with suffixes like `_old`, `_v1`, `_deprecated` usually indicate replaced-but-not-removed code (typical AI-coder leftover). Confirm and delete, or rename if it's the active version."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "low", "confidence": 1.0}}, {"id": "scanner-b71e23db6ce03ad9", "name": "Legacy-named symbol `adapt_v1_geometry_to_legacy` in receipt_places/tests/test_adapter.py:11", "shortDescription": {"text": "Legacy-named symbol `adapt_v1_geometry_to_legacy` in receipt_places/tests/test_adapter.py:11"}, "fullDescription": {"text": "Names with suffixes like `_old`, `_v1`, `_deprecated` usually indicate replaced-but-not-removed code (typical AI-coder leftover). Confirm and delete, or rename if it's the active version."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "low", "confidence": 1.0}}, {"id": "scanner-0fd14602b9b7e8de", "name": "Legacy-named symbol `client_v1` in receipt_places/receipt_places/client.py:689", "shortDescription": {"text": "Legacy-named symbol `client_v1` in receipt_places/receipt_places/client.py:689"}, "fullDescription": {"text": "Names with suffixes like `_old`, `_v1`, `_deprecated` usually indicate replaced-but-not-removed code (typical AI-coder leftover). Confirm and delete, or rename if it's the active version."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "low", "confidence": 1.0}}, {"id": "scanner-1ce1b300e375bd13", "name": "Legacy-named symbol `adapt_v1_to_legacy` in receipt_places/receipt_places/client_v1.py:28", "shortDescription": {"text": "Legacy-named symbol `adapt_v1_to_legacy` in receipt_places/receipt_places/client_v1.py:28"}, "fullDescription": {"text": "Names with suffixes like `_old`, `_v1`, `_deprecated` usually indicate replaced-but-not-removed code (typical AI-coder leftover). Confirm and delete, or rename if it's the active version."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "low", "confidence": 1.0}}, {"id": "scanner-4dd8e2b6954a90ee", "name": "Legacy-named symbol `types_v1` in receipt_places/receipt_places/adapter.py:26", "shortDescription": {"text": "Legacy-named symbol `types_v1` in receipt_places/receipt_places/adapter.py:26"}, "fullDescription": {"text": "Names with suffixes like `_old`, `_v1`, `_deprecated` usually indicate replaced-but-not-removed code (typical AI-coder leftover). Confirm and delete, or rename if it's the active version."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "low", "confidence": 1.0}}, {"id": "scanner-dec04e2b0d802e1f", "name": "Commented-code block (10 lines) in infra/instance_registry.py:194", "shortDescription": {"text": "Commented-code block (10 lines) in infra/instance_registry.py:194"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-f1903f19d790562d", "name": "Commented-code block (6 lines) in infra/__main__.py:65", "shortDescription": {"text": "Commented-code block (6 lines) in infra/__main__.py:65"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-7db2a99844057c00", "name": "Legacy-named symbol `list_objects_v2` in infra/chroma/lambdas/entrypoint.py:36", "shortDescription": {"text": "Legacy-named symbol `list_objects_v2` in infra/chroma/lambdas/entrypoint.py:36"}, "fullDescription": {"text": "Names with suffixes like `_old`, `_v1`, `_deprecated` usually indicate replaced-but-not-removed code (typical AI-coder leftover). Confirm and delete, or rename if it's the active version."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "low", "confidence": 1.0}}, {"id": "scanner-c77a414746b67efa", "name": "Commented-code block (19 lines) in infra/upload_images/infra.py:750", "shortDescription": {"text": "Commented-code block (19 lines) in infra/upload_images/infra.py:750"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-ead6f0efbaea0dff", "name": "Commented-code block (6 lines) in infra/upload_images/container_ocr/handler/ocr_processor.py:668", "shortDescription": {"text": "Commented-code block (6 lines) in infra/upload_images/container_ocr/handler/ocr_processor.py:668"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-b06de24ee1131b03", "name": "Commented-code block (8 lines) in infra/upload_images/container_ocr/handler/handler.py:228", "shortDescription": {"text": "Commented-code block (8 lines) in infra/upload_images/container_ocr/handler/handler.py:228"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-10e5a49fb76425db", "name": "Legacy-named symbol `list_objects_v2` in infra/upload_images/container_ocr/handler/efs_snapshot_manager.py:178", "shortDescription": {"text": "Legacy-named symbol `list_objects_v2` in infra/upload_images/container_ocr/handler/efs_snapshot_manager.py:178"}, "fullDescription": {"text": "Names with suffixes like `_old`, `_v1`, `_deprecated` usually indicate replaced-but-not-removed code (typical AI-coder leftover). Confirm and delete, or rename if it's the active version."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "low", "confidence": 1.0}}, {"id": "scanner-a29d143027e1cd9f", "name": "Network/subprocess call without timeout or try/except \u2014 infra/scripts/query_langsmith_traces.py:20", "shortDescription": {"text": "Network/subprocess call without timeout or try/except \u2014 infra/scripts/query_langsmith_traces.py:20"}, "fullDescription": {"text": "`subprocess.run(...)` here lacks both a `timeout=` arg and an enclosing try/except. This is exactly the class of bug that took down our git-clone earlier (HTTP/2 stream cancel surfaced as a fatal). Add a `timeout=` and wrap in try/except, or use a wrapper that retries."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-4629f845c7685302", "name": "Legacy-named symbol `list_objects_v2` in infra/components/langsmith_bulk_export/lambdas/setup.py:182", "shortDescription": {"text": "Legacy-named symbol `list_objects_v2` in infra/components/langsmith_bulk_export/lambdas/setup.py:182"}, "fullDescription": {"text": "Names with suffixes like `_old`, `_v1`, `_deprecated` usually indicate replaced-but-not-removed code (typical AI-coder leftover). Confirm and delete, or rename if it's the active version."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "low", "confidence": 1.0}}, {"id": "scanner-ddc5a5bd99531403", "name": "Commented-code block (5 lines) in infra/metadata_harmonizer_step_functions/lambdas/harmonize_metadata.py:184", "shortDescription": {"text": "Commented-code block (5 lines) in infra/metadata_harmonizer_step_functions/lambdas/harmonize_metadata.py:184"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-d663b27d6c8d603b", "name": "Legacy-named symbol `list_objects_v2` in infra/label_evaluator_step_functions/lambdas/build_viz_cache.py:71", "shortDescription": {"text": "Legacy-named symbol `list_objects_v2` in infra/label_evaluator_step_functions/lambdas/build_viz_cache.py:71"}, "fullDescription": {"text": "Names with suffixes like `_old`, `_v1`, `_deprecated` usually indicate replaced-but-not-removed code (typical AI-coder leftover). Confirm and delete, or rename if it's the active version."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "low", "confidence": 1.0}}, {"id": "scanner-94c1b8aca3b02ccc", "name": "Legacy-named symbol `list_objects_v2` in infra/embedding_step_functions/unified_embedding/handlers/compaction.py:3115", "shortDescription": {"text": "Legacy-named symbol `list_objects_v2` in infra/embedding_step_functions/unified_embedding/handlers/compaction.py:3115"}, "fullDescription": {"text": "Names with suffixes like `_old`, `_v1`, `_deprecated` usually indicate replaced-but-not-removed code (typical AI-coder leftover). Confirm and delete, or rename if it's the active version."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "low", "confidence": 1.0}}, {"id": "scanner-d6f7c9eb43a2f092", "name": "Network/subprocess call without timeout or try/except \u2014 infra/embedding_step_functions/components/docker_image.py:49", "shortDescription": {"text": "Network/subprocess call without timeout or try/except \u2014 infra/embedding_step_functions/components/docker_image.py:49"}, "fullDescription": {"text": "`subprocess.check_output(...)` here lacks both a `timeout=` arg and an enclosing try/except. This is exactly the class of bug that took down our git-clone earlier (HTTP/2 stream cancel surfaced as a fatal). Add a `timeout=` and wrap in try/except, or use a wrapper that retries."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-8c5956c27554e7a6", "name": "Legacy-named symbol `word_copy` in infra/combine_receipts_step_functions/lambdas/records_builder.py:105", "shortDescription": {"text": "Legacy-named symbol `word_copy` in infra/combine_receipts_step_functions/lambdas/records_builder.py:105"}, "fullDescription": {"text": "Names with suffixes like `_old`, `_v1`, `_deprecated` usually indicate replaced-but-not-removed code (typical AI-coder leftover). Confirm and delete, or rename if it's the active version."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "low", "confidence": 1.0}}, {"id": "scanner-1638c9165e9e20ef", "name": "Commented-code block (6 lines) in infra/combine_receipts_step_functions/lambdas/records_builder.py:608", "shortDescription": {"text": "Commented-code block (6 lines) in infra/combine_receipts_step_functions/lambdas/records_builder.py:608"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-609cb70664c6832b", "name": "Commented-code block (6 lines) in infra/routes/job_training_metrics/handler/index.py:23", "shortDescription": {"text": "Commented-code block (6 lines) in infra/routes/job_training_metrics/handler/index.py:23"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-6de1b19bb5f15038", "name": "Commented-code block (9 lines) in infra/routes/label_validation_count/infra.py:109", "shortDescription": {"text": "Commented-code block (9 lines) in infra/routes/label_validation_count/infra.py:109"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-faf50ac134e294da", "name": "Legacy-named symbol `list_objects_v2` in infra/routes/qa_viz_cache/lambdas/index.py:109", "shortDescription": {"text": "Legacy-named symbol `list_objects_v2` in infra/routes/qa_viz_cache/lambdas/index.py:109"}, "fullDescription": {"text": "Names with suffixes like `_old`, `_v1`, `_deprecated` usually indicate replaced-but-not-removed code (typical AI-coder leftover). Confirm and delete, or rename if it's the active version."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "low", "confidence": 1.0}}, {"id": "scanner-7b84d44ccab324c0", "name": "Legacy-named symbol `list_objects_v2` in infra/routes/label_validation_viz_cache/lambdas/index.py:47", "shortDescription": {"text": "Legacy-named symbol `list_objects_v2` in infra/routes/label_validation_viz_cache/lambdas/index.py:47"}, "fullDescription": {"text": "Names with suffixes like `_old`, `_v1`, `_deprecated` usually indicate replaced-but-not-removed code (typical AI-coder leftover). Confirm and delete, or rename if it's the active version."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "low", "confidence": 1.0}}, {"id": "scanner-0e903080017ed4af", "name": "Legacy-named symbol `list_objects_v2` in infra/routes/layoutlm_inference/handler/index.py:41", "shortDescription": {"text": "Legacy-named symbol `list_objects_v2` in infra/routes/layoutlm_inference/handler/index.py:41"}, "fullDescription": {"text": "Names with suffixes like `_old`, `_v1`, `_deprecated` usually indicate replaced-but-not-removed code (typical AI-coder leftover). Confirm and delete, or rename if it's the active version."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "low", "confidence": 1.0}}, {"id": "scanner-81d320c49afad919", "name": "Commented-code block (6 lines) in infra/routes/word_similarity_cache_generator/lambdas/index.py:672", "shortDescription": {"text": "Commented-code block (6 lines) in infra/routes/word_similarity_cache_generator/lambdas/index.py:672"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-168ae176e3dddd24", "name": "Legacy-named symbol `list_objects_v2` in infra/routes/label_evaluator_viz_cache/lambdas/index.py:55", "shortDescription": {"text": "Legacy-named symbol `list_objects_v2` in infra/routes/label_evaluator_viz_cache/lambdas/index.py:55"}, "fullDescription": {"text": "Names with suffixes like `_old`, `_v1`, `_deprecated` usually indicate replaced-but-not-removed code (typical AI-coder leftover). Confirm and delete, or rename if it's the active version."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "low", "confidence": 1.0}}, {"id": "scanner-11af6af29a5eae76", "name": "Commented-code block (5 lines) in infra/routes/layoutlm_inference_cache_generator/lambdas/index.py:341", "shortDescription": {"text": "Commented-code block (5 lines) in infra/routes/layoutlm_inference_cache_generator/lambdas/index.py:341"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-3dab564bd5c6adde", "name": "Commented-code block (5 lines) in infra/chromadb_compaction/tests/test_enhanced_compaction_unit.py:261", "shortDescription": {"text": "Commented-code block (5 lines) in infra/chromadb_compaction/tests/test_enhanced_compaction_unit.py:261"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-1b8a4c4af0c62646", "name": "Legacy-named symbol `list_objects_v2` in infra/chromadb_compaction/tests/integration/test_aws_service_integration.py:170", "shortDescription": {"text": "Legacy-named symbol `list_objects_v2` in infra/chromadb_compaction/tests/integration/test_aws_service_integration.py:170"}, "fullDescription": {"text": "Names with suffixes like `_old`, `_v1`, `_deprecated` usually indicate replaced-but-not-removed code (typical AI-coder leftover). Confirm and delete, or rename if it's the active version."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "low", "confidence": 1.0}}, {"id": "scanner-d9a9de74c60ad4f5", "name": "Network/subprocess call without timeout or try/except \u2014 infra/chromadb_compaction/components/docker_image.py:49", "shortDescription": {"text": "Network/subprocess call without timeout or try/except \u2014 infra/chromadb_compaction/components/docker_image.py:49"}, "fullDescription": {"text": "`subprocess.check_output(...)` here lacks both a `timeout=` arg and an enclosing try/except. This is exactly the class of bug that took down our git-clone earlier (HTTP/2 stream cancel surfaced as a fatal). Add a `timeout=` and wrap in try/except, or use a wrapper that retries."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-4d040b796c5690ad", "name": "Commented-code block (10 lines) in infra/chromadb_compaction/components/lambda_functions.py:172", "shortDescription": {"text": "Commented-code block (10 lines) in infra/chromadb_compaction/components/lambda_functions.py:172"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-32e45bd7e0260494", "name": "Commented-code block (6 lines) in infra/chromadb_compaction/lambdas/enhanced_compaction_handler.py:32", "shortDescription": {"text": "Commented-code block (6 lines) in infra/chromadb_compaction/lambdas/enhanced_compaction_handler.py:32"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-3d02ba7a1d4679fb", "name": "Commented-code block (5 lines) in infra/chromadb_compaction/lambdas/stream_processor.py:27", "shortDescription": {"text": "Commented-code block (5 lines) in infra/chromadb_compaction/lambdas/stream_processor.py:27"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-3e1e8bca320de5cf", "name": "Commented-code block (5 lines) in infra/chromadb_compaction/lambdas/processor/message_builder.py:48", "shortDescription": {"text": "Commented-code block (5 lines) in infra/chromadb_compaction/lambdas/processor/message_builder.py:48"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-303e77ec64a09940", "name": "Network/subprocess call without timeout or try/except \u2014 infra/sagemaker_training/train.py:206", "shortDescription": {"text": "Network/subprocess call without timeout or try/except \u2014 infra/sagemaker_training/train.py:206"}, "fullDescription": {"text": "`subprocess.run(...)` here lacks both a `timeout=` arg and an enclosing try/except. This is exactly the class of bug that took down our git-clone earlier (HTTP/2 stream cancel surfaced as a fatal). Add a `timeout=` and wrap in try/except, or use a wrapper that retries."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-01bf36be6cbab832", "name": "Commented-code block (5 lines) in infra/fix_place_lambda/lambdas/fix_place.py:198", "shortDescription": {"text": "Commented-code block (5 lines) in infra/fix_place_lambda/lambdas/fix_place.py:198"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-52a6d36c3e012b00", "name": "Commented-code block (6 lines) in infra/label_refresh_lambda/infrastructure.py:232", "shortDescription": {"text": "Commented-code block (6 lines) in infra/label_refresh_lambda/infrastructure.py:232"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-b1c3f1723ea47646", "name": "Commented-code block (7 lines) in infra/label_refresh_lambda/lambdas/label_refresh.py:337", "shortDescription": {"text": "Commented-code block (7 lines) in infra/label_refresh_lambda/lambdas/label_refresh.py:337"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-7feefe3992aeb0cb", "name": "Network/subprocess call without timeout or try/except \u2014 .github/pr-reviews/scripts/fetch-pr-reviews-paginated.py:25", "shortDescription": {"text": "Network/subprocess call without timeout or try/except \u2014 .github/pr-reviews/scripts/fetch-pr-reviews-paginated.py:25"}, "fullDescription": {"text": "`subprocess.run(...)` here lacks both a `timeout=` arg and an enclosing try/except. This is exactly the class of bug that took down our git-clone earlier (HTTP/2 stream cancel surfaced as a fatal). Add a `timeout=` and wrap in try/except, or use a wrapper that retries."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-2c04133e54348533", "name": "Near-duplicate function bodies in 2 places", "shortDescription": {"text": "Near-duplicate function bodies in 2 places"}, "fullDescription": {"text": "Functions with the same first-5-line body hash:\nreceipt_dynamo/receipt_dynamo/utils/transformations.py:find_perspective_coeffs, receipt_upload/receipt_upload/geometry/transformations.py:find_perspective_coeffs\n\nThis is *the* AI-coder failure mode (4\u00d7 more duplication in vibe-coded repos \u2014 see https://jw.hn/ai-code-hygiene). Consolidate or document why they're separate."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "low", "confidence": 1.0}}, {"id": "scanner-be46ea126aa5d8dc", "name": "Near-duplicate function bodies in 3 places", "shortDescription": {"text": "Near-duplicate function bodies in 3 places"}, "fullDescription": {"text": "Functions with the same first-5-line body hash:\nreceipt_dynamo/receipt_dynamo/entities/receipt_word_label.py:gsi4_key, receipt_dynamo/receipt_dynamo/entities/receipt_word.py:gsi4_key, receipt_dynamo/receipt_dynamo/entities/receipt_line.py:gsi4_key\n\nThis is *the* AI-coder failure mode (4\u00d7 more duplication in vibe-coded repos \u2014 see https://jw.hn/ai-code-hygiene). Consolidate or document why they're separate."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "low", "confidence": 1.0}}, {"id": "scanner-02525d39071dd2c7", "name": "Near-duplicate function bodies in 5 places", "shortDescription": {"text": "Near-duplicate function bodies in 5 places"}, "fullDescription": {"text": "Functions with the same first-5-line body hash:\nreceipt_dynamo/receipt_dynamo/entities/value_objects.py:to_dynamodb, receipt_dynamo/receipt_dynamo/entities/value_objects.py:to_dynamodb, receipt_dynamo/receipt_dynamo/entities/value_objects.py:to_dynamodb, receipt_dynamo/receipt_dynamo/entities/value_objects.py:to_dynamodb\n\nThis is *the* AI-coder failure mode (4\u00d7 more duplication in vibe-coded repos \u2014 see https://jw.hn/ai-code-hygiene). Consolidate or document why they're separate."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "low", "confidence": 1.0}}]}}, "automationDetails": {"id": "repobility/21429"}, "properties": {"repository": "tnorlund/Portfolio", "repoUrl": "https://github.com/tnorlund/Portfolio", "branch": "main"}, "results": [{"ruleId": "scanner-04ddf5e7c64e40dd", "level": "note", "message": {"text": "Possibly dead Python function: should_retry"}, "properties": {"repobilityId": "b461f213cfde7bd8", "scanner": "scanner-primary", "fingerprint": "04ddf5e7c64e40dd", "layer": "software", "severity": "low", "confidence": 1.0, "tags": ["dead-code"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "receipt_dynamo/receipt_dynamo/utils/retry_with_backoff.py:144"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-1fec2327b609cbd1", "level": "note", "message": {"text": "Possibly dead Python function: add_item"}, "properties": {"repobilityId": "db07febd69ee14d6", "scanner": "scanner-primary", "fingerprint": "1fec2327b609cbd1", "layer": "software", "severity": "low", "confidence": 1.0, "tags": ["dead-code"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "receipt_dynamo/receipt_dynamo/utils/batch_queue.py:73"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-e873eceb7e606c23", "level": "note", "message": {"text": "Possibly dead Python function: register_instance"}, "properties": {"repobilityId": "674f2e8d890b8e80", "scanner": "scanner-primary", "fingerprint": "e873eceb7e606c23", "layer": "software", "severity": "low", "confidence": 1.0, "tags": ["dead-code"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "receipt_dynamo/receipt_dynamo/services/instance_service.py:38"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-70af9c0f5d328bdf", "level": "note", "message": {"text": "Possibly dead Python function: update_instance_status"}, "properties": {"repobilityId": "2606faa3cb1ed68a", "scanner": "scanner-primary", "fingerprint": "70af9c0f5d328bdf", "layer": "software", "severity": "low", "confidence": 1.0, "tags": ["dead-code"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "receipt_dynamo/receipt_dynamo/services/instance_service.py:112"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-108f0af2d7fa2d6e", "level": "note", "message": {"text": "Possibly dead Python function: update_instance_heartbeat"}, "properties": {"repobilityId": "46cf60748de0060c", "scanner": "scanner-primary", "fingerprint": "108f0af2d7fa2d6e", "layer": "software", "severity": "low", "confidence": 1.0, "tags": ["dead-code"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "receipt_dynamo/receipt_dynamo/services/instance_service.py:135"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-0a5372a2255397d0", "level": "note", "message": {"text": "Possibly dead Python function: list_instances_by_type"}, "properties": {"repobilityId": "ea21ef6b211b2322", "scanner": "scanner-primary", "fingerprint": "0a5372a2255397d0", "layer": "software", "severity": "low", "confidence": 1.0, "tags": ["dead-code"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "receipt_dynamo/receipt_dynamo/services/instance_service.py:206"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-9fad76e27bfa42da", "level": "note", "message": {"text": "Possibly dead Python function: find_idle_instances"}, "properties": {"repobilityId": "9ca9660afd0fecad", "scanner": "scanner-primary", "fingerprint": "9fad76e27bfa42da", "layer": "software", "severity": "low", "confidence": 1.0, "tags": ["dead-code"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "receipt_dynamo/receipt_dynamo/services/instance_service.py:232"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-1973e48839967cea", "level": "note", "message": {"text": "Possibly dead Python function: assign_job_to_instance"}, "properties": {"repobilityId": "f4342ff953708df0", "scanner": "scanner-primary", "fingerprint": "1973e48839967cea", "layer": "software", "severity": "low", "confidence": 1.0, "tags": ["dead-code"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "receipt_dynamo/receipt_dynamo/services/instance_service.py:266"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-f76eec29461cdffb", "level": "note", "message": {"text": "Possibly dead Python function: update_instance_job_status"}, "properties": {"repobilityId": "55ae7188fd6148f1", "scanner": "scanner-primary", "fingerprint": "f76eec29461cdffb", "layer": "software", "severity": "low", "confidence": 1.0, "tags": ["dead-code"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "receipt_dynamo/receipt_dynamo/services/instance_service.py:325"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-56fc8d2bb3be43e4", "level": "note", "message": {"text": "Possibly dead Python function: list_jobs_for_instance"}, "properties": {"repobilityId": "87933940a71508f2", "scanner": "scanner-primary", "fingerprint": "56fc8d2bb3be43e4", "layer": "software", "severity": "low", "confidence": 1.0, "tags": ["dead-code"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "receipt_dynamo/receipt_dynamo/services/instance_service.py:372"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-47b2cadbb9b9a043", "level": "note", "message": {"text": "Possibly dead Python function: create_job"}, "properties": {"repobilityId": "581331143113ee12", "scanner": "scanner-primary", "fingerprint": "47b2cadbb9b9a043", "layer": "software", "severity": "low", "confidence": 1.0, "tags": ["dead-code"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "receipt_dynamo/receipt_dynamo/services/job_service.py:43"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-dbc3c08a6aaea857", "level": "note", "message": {"text": "Possibly dead Python function: check_job_dependencies"}, "properties": {"repobilityId": "03ad916ee4d6655f", "scanner": "scanner-primary", "fingerprint": "dbc3c08a6aaea857", "layer": "software", "severity": "low", "confidence": 1.0, "tags": ["dead-code"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "receipt_dynamo/receipt_dynamo/services/job_service.py:132"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-a273d9a588698871", "level": "note", "message": {"text": "Possibly dead Python function: list_queues_by_user"}, "properties": {"repobilityId": "16fa4bdb6373594d", "scanner": "scanner-primary", "fingerprint": "a273d9a588698871", "layer": "software", "severity": "low", "confidence": 1.0, "tags": ["dead-code"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "receipt_dynamo/receipt_dynamo/services/queue_service.py:131"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-4488814bbadbb6e7", "level": "note", "message": {"text": "Possibly dead Python function: update_queue_job"}, "properties": {"repobilityId": "0785d9013eebfa34", "scanner": "scanner-primary", "fingerprint": "4488814bbadbb6e7", "layer": "software", "severity": "low", "confidence": 1.0, "tags": ["dead-code"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "receipt_dynamo/receipt_dynamo/services/queue_service.py:206"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-9a3fb4970f49b98c", "level": "note", "message": {"text": "Possibly dead Python function: delete_queue_job"}, "properties": {"repobilityId": "aeb122089f1b7342", "scanner": "scanner-primary", "fingerprint": "9a3fb4970f49b98c", "layer": "software", "severity": "low", "confidence": 1.0, "tags": ["dead-code"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "receipt_dynamo/receipt_dynamo/services/queue_service.py:221"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-2c68f9b7da1ac0fd", "level": "note", "message": {"text": "Possibly dead Python function: list_queues_for_job"}, "properties": {"repobilityId": "c04a9b8ab9a99f19", "scanner": "scanner-primary", "fingerprint": "2c68f9b7da1ac0fd", "layer": "software", "severity": "low", "confidence": 1.0, "tags": ["dead-code"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "receipt_dynamo/receipt_dynamo/services/queue_service.py:255"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-09123edaa1088681", "level": "note", "message": {"text": "Possibly dead Python function: claim_job"}, "properties": {"repobilityId": "7c2405573c4239af", "scanner": "scanner-primary", "fingerprint": "09123edaa1088681", "layer": "software", "severity": "low", "confidence": 1.0, "tags": ["dead-code"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "receipt_dynamo/receipt_dynamo/services/queue_service.py:303"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-b200e586216a5909", "level": "note", "message": {"text": "Possibly dead Python function: mark_job_completed"}, "properties": {"repobilityId": "c60190700e7531e4", "scanner": "scanner-primary", "fingerprint": "b200e586216a5909", "layer": "software", "severity": "low", "confidence": 1.0, "tags": ["dead-code"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "receipt_dynamo/receipt_dynamo/services/queue_service.py:326"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-aa1ae616b80fc82b", "level": "note", "message": {"text": "Possibly dead Python function: release_job"}, "properties": {"repobilityId": "cd1528c87ffd4250", "scanner": "scanner-primary", "fingerprint": "aa1ae616b80fc82b", "layer": "software", "severity": "low", "confidence": 1.0, "tags": ["dead-code"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "receipt_dynamo/receipt_dynamo/services/queue_service.py:349"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-70f0df3a271ec663", "level": "note", "message": {"text": "Possibly dead Python function: add_job_checkpoint_with_params"}, "properties": {"repobilityId": "124b5d3fac869f27", "scanner": "scanner-primary", "fingerprint": "70f0df3a271ec663", "layer": "software", "severity": "low", "confidence": 1.0, "tags": ["dead-code"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "receipt_dynamo/receipt_dynamo/services/job_operations/checkpoint_operations.py:13"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-3b04d41a4646ae33", "level": "note", "message": {"text": "Possibly dead Python function: add_job_log_with_params"}, "properties": {"repobilityId": "60da1006febbb594", "scanner": "scanner-primary", "fingerprint": "3b04d41a4646ae33", "layer": "software", "severity": "low", "confidence": 1.0, "tags": ["dead-code"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "receipt_dynamo/receipt_dynamo/services/job_operations/status_operations.py:50"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-5e26c5def8dab45e", "level": "note", "message": {"text": "Possibly dead Python function: add_job_dependency_with_params"}, "properties": {"repobilityId": "80770723509c33eb", "scanner": "scanner-primary", "fingerprint": "5e26c5def8dab45e", "layer": "software", "severity": "low", "confidence": 1.0, "tags": ["dead-code"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "receipt_dynamo/receipt_dynamo/services/job_operations/dependency_operations.py:14"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-7e9b239264272070", "level": "note", "message": {"text": "Possibly dead Python function: add_job_metric_with_params"}, "properties": {"repobilityId": "a0a554c5b43d81da", "scanner": "scanner-primary", "fingerprint": "7e9b239264272070", "layer": "software", "severity": "low", "confidence": 1.0, "tags": ["dead-code"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "receipt_dynamo/receipt_dynamo/services/job_operations/metric_operations.py:13"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-021cc061eadc5c6b", "level": "note", "message": {"text": "Possibly dead Python function: add_job_resource_with_params"}, "properties": {"repobilityId": "606337c1d8852426", "scanner": "scanner-primary", "fingerprint": "021cc061eadc5c6b", "layer": "software", "severity": "low", "confidence": 1.0, "tags": ["dead-code"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "receipt_dynamo/receipt_dynamo/services/job_operations/resource_operations.py:14"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-bead75b0f9233e05", "level": "none", "message": {"text": "No API endpoints detected"}, "properties": {"repobilityId": "0f8bb852027c38f8", "scanner": "scanner-primary", "fingerprint": "bead75b0f9233e05", "layer": "api", "severity": "info", "confidence": 1.0, "tags": ["coverage"]}}, {"ruleId": "scanner-57d43f5b5b8ac06c", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 portfolio/monitor-project.js:7"}, "properties": {"repobilityId": "267643397f53fdb5", "scanner": "scanner-primary", "fingerprint": "57d43f5b5b8ac06c", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-7f61c4103bbc0efa", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 portfolio/__tests__/performance/rendering.perf.test.tsx:46"}, "properties": {"repobilityId": "b8ea3bedac063229", "scanner": "scanner-primary", "fingerprint": "7f61c4103bbc0efa", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-e5da71435e0e82af", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 portfolio/tests/bar_receipt.integration.test.ts:92"}, "properties": {"repobilityId": "3f262f4f259a78b7", "scanner": "scanner-primary", "fingerprint": "e5da71435e0e82af", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-ab0e6260c9fbdd76", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 portfolio/scripts/optimize-images.js:28"}, "properties": {"repobilityId": "e3861d71f1d473b5", "scanner": "scanner-primary", "fingerprint": "ab0e6260c9fbdd76", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-e37fa0bbfb15eb1b", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 portfolio/scripts/download-api-data.js:14"}, "properties": {"repobilityId": "3d1f00ba18b2c3b8", "scanner": "scanner-primary", "fingerprint": "e37fa0bbfb15eb1b", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-b62d45b95cb8c682", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 portfolio/scripts/analyze-bundle.js:21"}, "properties": {"repobilityId": "184d665fe4ffd199", "scanner": "scanner-primary", "fingerprint": "b62d45b95cb8c682", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-8bc5f8180f6a4e99", "level": "none", "message": {"text": "TODO/FIXME marker in shipping code \u2014 portfolio/utils/receipt.fixture.test.ts:535"}, "properties": {"repobilityId": "1d861fbbd5753295", "scanner": "scanner-primary", "fingerprint": "8bc5f8180f6a4e99", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.todo-marker"]}}, {"ruleId": "scanner-4aef8e6e32b372d6", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 portfolio/utils/receipt.fixture.test.ts:215"}, "properties": {"repobilityId": "99b263dfbab561d9", "scanner": "scanner-primary", "fingerprint": "4aef8e6e32b372d6", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-8d33ada7aba3e0af", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 portfolio/utils/performance/api-wrapper.ts:22"}, "properties": {"repobilityId": "49c3f3358f52af6a", "scanner": "scanner-primary", "fingerprint": "8d33ada7aba3e0af", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-e4dfdba3eedebcbd", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 portfolio/utils/performance/testing.ts:36"}, "properties": {"repobilityId": "47434e993fc13352", "scanner": "scanner-primary", "fingerprint": "e4dfdba3eedebcbd", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-1da66a139526459a", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 portfolio/utils/performance/monitor.ts:207"}, "properties": {"repobilityId": "c2793b491233adf9", "scanner": "scanner-primary", "fingerprint": "1da66a139526459a", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-8356f4a11be2b38e", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 portfolio/utils/performance/logger.ts:67"}, "properties": {"repobilityId": "43c9ba84229e9527", "scanner": "scanner-primary", "fingerprint": "8356f4a11be2b38e", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-be9acc4d655c63bd", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 portfolio/components/ui/animations/AnimatedHullEdgeAlignment.tsx:147"}, "properties": {"repobilityId": "c4a1e95853da2fa3", "scanner": "scanner-primary", "fingerprint": "be9acc4d655c63bd", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-4ed1481b30d55fe7", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 portfolio/components/providers/PerformanceProvider.tsx:37"}, "properties": {"repobilityId": "05879f15da91e7a0", "scanner": "scanner-primary", "fingerprint": "4ed1481b30d55fe7", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-3849b22351936e55", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 portfolio/pages/_app.tsx:72"}, "properties": {"repobilityId": "c82eec492e98334a", "scanner": "scanner-primary", "fingerprint": "3849b22351936e55", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-36020f3194be70ed", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 portfolio/services/api/config.ts:19"}, "properties": {"repobilityId": "24fa249b6470ede4", "scanner": "scanner-primary", "fingerprint": "36020f3194be70ed", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-7ee1f0bbddba8c42", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 portfolio/e2e/diagram-performance.perf.spec.ts:225"}, "properties": {"repobilityId": "0ce15652ef4de769", "scanner": "scanner-primary", "fingerprint": "7ee1f0bbddba8c42", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-02fa79f1e54ff088", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 portfolio/e2e/receipt-bounding-box-grid.spec.ts:135"}, "properties": {"repobilityId": "cda02f3ec34e2475", "scanner": "scanner-primary", "fingerprint": "02fa79f1e54ff088", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-fd345e3cee2e021e", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 portfolio/e2e/skeleton-height-stability.spec.ts:124"}, "properties": {"repobilityId": "56dda2e6c2c77956", "scanner": "scanner-primary", "fingerprint": "fd345e3cee2e021e", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-5ea995e4c76d002a", "level": "warning", "message": {"text": "Dockerfile runs as root: infra/chroma/lambdas/Dockerfile"}, "properties": {"repobilityId": "58c9ff0314a9eed7", "scanner": "scanner-primary", "fingerprint": "5ea995e4c76d002a", "layer": "hardware", "severity": "medium", "confidence": 1.0, "tags": ["security", "container"]}}, {"ruleId": "scanner-723ea0e3036d47e3", "level": "note", "message": {"text": "Docker base image is tag-pinned but not digest-pinned: public.ecr.aws/docker/library/python:3.12-slim"}, "properties": {"repobilityId": "00935f5180a22048", "scanner": "scanner-primary", "fingerprint": "723ea0e3036d47e3", "layer": "hardware", "severity": "low", "confidence": 1.0, "tags": ["supply-chain", "docker", "pinned-dependencies"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "infra/chroma/lambdas/Dockerfile"}, "region": {"startLine": 6}}}]}, {"ruleId": "scanner-56964ffc75cc84e6", "level": "warning", "message": {"text": "Dockerfile runs as root: infra/upload_images/container_upload/Dockerfile"}, "properties": {"repobilityId": "ee6f568e8b1f8a0c", "scanner": "scanner-primary", "fingerprint": "56964ffc75cc84e6", "layer": "hardware", "severity": "medium", "confidence": 1.0, "tags": ["security", "container"]}}, {"ruleId": "scanner-e29c2bc273f7f39d", "level": "note", "message": {"text": "Docker base image is tag-pinned but not digest-pinned: public.ecr.aws/lambda/python:3.12"}, "properties": {"repobilityId": "361be6f74bb20303", "scanner": "scanner-primary", "fingerprint": "e29c2bc273f7f39d", "layer": "hardware", "severity": "low", "confidence": 1.0, "tags": ["supply-chain", "docker", "pinned-dependencies"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "infra/upload_images/container_upload/Dockerfile"}, "region": {"startLine": 6}}}]}, {"ruleId": "scanner-f3ed43f00f79696f", "level": "warning", "message": {"text": "Dockerfile runs as root: infra/upload_images/container_ocr/Dockerfile"}, "properties": {"repobilityId": "ffd30783325992ae", "scanner": "scanner-primary", "fingerprint": "f3ed43f00f79696f", "layer": "hardware", "severity": "medium", "confidence": 1.0, "tags": ["security", "container"]}}, {"ruleId": "scanner-f520798eb2b67265", "level": "note", "message": {"text": "Docker base image is tag-pinned but not digest-pinned: public.ecr.aws/lambda/python:3.12"}, "properties": {"repobilityId": "fe94c39d89ae0467", "scanner": "scanner-primary", "fingerprint": "f520798eb2b67265", "layer": "hardware", "severity": "low", "confidence": 1.0, "tags": ["supply-chain", "docker", "pinned-dependencies"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "infra/upload_images/container_ocr/Dockerfile"}, "region": {"startLine": 5}}}]}, {"ruleId": "scanner-0dfce0186b89ca3c", "level": "warning", "message": {"text": "Dockerfile runs as root: infra/metadata_harmonizer_step_functions/lambdas/Dockerfile"}, "properties": {"repobilityId": "41f01e684dcbecb7", "scanner": "scanner-primary", "fingerprint": "0dfce0186b89ca3c", "layer": "hardware", "severity": "medium", "confidence": 1.0, "tags": ["security", "container"]}}, {"ruleId": "scanner-834651f90866271d", "level": "note", "message": {"text": "Docker base image is tag-pinned but not digest-pinned: public.ecr.aws/lambda/python:3.12"}, "properties": {"repobilityId": "b00defb54d1fbb2f", "scanner": "scanner-primary", "fingerprint": "834651f90866271d", "layer": "hardware", "severity": "low", "confidence": 1.0, "tags": ["supply-chain", "docker", "pinned-dependencies"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "infra/metadata_harmonizer_step_functions/lambdas/Dockerfile"}, "region": {"startLine": 4}}}]}, {"ruleId": "scanner-38db40367d836b3c", "level": "warning", "message": {"text": "Dockerfile runs as root: infra/embedding_step_functions/unified_embedding/Dockerfile"}, "properties": {"repobilityId": "bd06fa882796168c", "scanner": "scanner-primary", "fingerprint": "38db40367d836b3c", "layer": "hardware", "severity": "medium", "confidence": 1.0, "tags": ["security", "container"]}}, {"ruleId": "scanner-8a794ba3b8fe3d14", "level": "note", "message": {"text": "Docker base image is tag-pinned but not digest-pinned: public.ecr.aws/lambda/python:3.12"}, "properties": {"repobilityId": "384a39fc3c6be3e8", "scanner": "scanner-primary", "fingerprint": "8a794ba3b8fe3d14", "layer": "hardware", "severity": "low", "confidence": 1.0, "tags": ["supply-chain", "docker", "pinned-dependencies"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "infra/embedding_step_functions/unified_embedding/Dockerfile"}, "region": {"startLine": 5}}}]}, {"ruleId": "scanner-73749f324f5aa2ae", "level": "warning", "message": {"text": "Dockerfile runs as root: infra/combine_receipts_step_functions/lambdas/Dockerfile"}, "properties": {"repobilityId": "21b2af2766e7fd67", "scanner": "scanner-primary", "fingerprint": "73749f324f5aa2ae", "layer": "hardware", "severity": "medium", "confidence": 1.0, "tags": ["security", "container"]}}, {"ruleId": "scanner-13d1be698c93b4fd", "level": "note", "message": {"text": "Docker base image is tag-pinned but not digest-pinned: public.ecr.aws/lambda/python:3.12"}, "properties": {"repobilityId": "47c086d386b595b0", "scanner": "scanner-primary", "fingerprint": "13d1be698c93b4fd", "layer": "hardware", "severity": "low", "confidence": 1.0, "tags": ["supply-chain", "docker", "pinned-dependencies"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "infra/combine_receipts_step_functions/lambdas/Dockerfile"}, "region": {"startLine": 4}}}]}, {"ruleId": "scanner-a9ec67cf82b0daec", "level": "warning", "message": {"text": "Dockerfile runs as root: infra/routes/address_similarity_cache_generator/lambdas/Dockerfile"}, "properties": {"repobilityId": "74e1cf2d9b7d2127", "scanner": "scanner-primary", "fingerprint": "a9ec67cf82b0daec", "layer": "hardware", "severity": "medium", "confidence": 1.0, "tags": ["security", "container"]}}, {"ruleId": "scanner-b8f376b2b93d1486", "level": "note", "message": {"text": "Docker base image is tag-pinned but not digest-pinned: public.ecr.aws/lambda/python:3.12"}, "properties": {"repobilityId": "b9e3c92de89cb6e4", "scanner": "scanner-primary", "fingerprint": "b8f376b2b93d1486", "layer": "hardware", "severity": "low", "confidence": 1.0, "tags": ["supply-chain", "docker", "pinned-dependencies"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "infra/routes/address_similarity_cache_generator/lambdas/Dockerfile"}, "region": {"startLine": 5}}}]}, {"ruleId": "scanner-824836b48333ee39", "level": "warning", "message": {"text": "Dockerfile runs as root: infra/routes/word_similarity_cache_generator/lambdas/Dockerfile"}, "properties": {"repobilityId": "317f36ad57645b06", "scanner": "scanner-primary", "fingerprint": "824836b48333ee39", "layer": "hardware", "severity": "medium", "confidence": 1.0, "tags": ["security", "container"]}}, {"ruleId": "scanner-2ba59d14e156ea02", "level": "note", "message": {"text": "Docker base image is tag-pinned but not digest-pinned: public.ecr.aws/lambda/python:3.12"}, "properties": {"repobilityId": "e38430bd89848aa7", "scanner": "scanner-primary", "fingerprint": "2ba59d14e156ea02", "layer": "hardware", "severity": "low", "confidence": 1.0, "tags": ["supply-chain", "docker", "pinned-dependencies"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "infra/routes/word_similarity_cache_generator/lambdas/Dockerfile"}, "region": {"startLine": 5}}}]}, {"ruleId": "scanner-0ad09f0e102fef1d", "level": "warning", "message": {"text": "Dockerfile runs as root: infra/routes/layoutlm_inference_cache_generator/lambdas/Dockerfile"}, "properties": {"repobilityId": "2861ca69a7e7d1e1", "scanner": "scanner-primary", "fingerprint": "0ad09f0e102fef1d", "layer": "hardware", "severity": "medium", "confidence": 1.0, "tags": ["security", "container"]}}, {"ruleId": "scanner-72be166c34694d57", "level": "note", "message": {"text": "Docker base image is tag-pinned but not digest-pinned: public.ecr.aws/lambda/python:3.12"}, "properties": {"repobilityId": "a1111e9ba4b455e5", "scanner": "scanner-primary", "fingerprint": "72be166c34694d57", "layer": "hardware", "severity": "low", "confidence": 1.0, "tags": ["supply-chain", "docker", "pinned-dependencies"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "infra/routes/layoutlm_inference_cache_generator/lambdas/Dockerfile"}, "region": {"startLine": 5}}}]}, {"ruleId": "scanner-31e1a71a34c4bb75", "level": "warning", "message": {"text": "Dockerfile runs as root: infra/qa_agent_step_functions/lambdas/Dockerfile"}, "properties": {"repobilityId": "2501e5b822465272", "scanner": "scanner-primary", "fingerprint": "31e1a71a34c4bb75", "layer": "hardware", "severity": "medium", "confidence": 1.0, "tags": ["security", "container"]}}, {"ruleId": "scanner-edafa3e03790cae7", "level": "note", "message": {"text": "Docker base image is tag-pinned but not digest-pinned: public.ecr.aws/lambda/python:3.12"}, "properties": {"repobilityId": "536f039e27ccb46a", "scanner": "scanner-primary", "fingerprint": "edafa3e03790cae7", "layer": "hardware", "severity": "low", "confidence": 1.0, "tags": ["supply-chain", "docker", "pinned-dependencies"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "infra/qa_agent_step_functions/lambdas/Dockerfile"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-80129616b1f64b19", "level": "warning", "message": {"text": "Dockerfile runs as root: infra/trigger_reocr_lambda/lambdas/Dockerfile"}, "properties": {"repobilityId": "9e3658e8c5c0c09a", "scanner": "scanner-primary", "fingerprint": "80129616b1f64b19", "layer": "hardware", "severity": "medium", "confidence": 1.0, "tags": ["security", "container"]}}, {"ruleId": "scanner-7d34b84511619a9a", "level": "note", "message": {"text": "Docker base image is tag-pinned but not digest-pinned: public.ecr.aws/lambda/python:3.12"}, "properties": {"repobilityId": "0ad45cc69b4b5bc0", "scanner": "scanner-primary", "fingerprint": "7d34b84511619a9a", "layer": "hardware", "severity": "low", "confidence": 1.0, "tags": ["supply-chain", "docker", "pinned-dependencies"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "infra/trigger_reocr_lambda/lambdas/Dockerfile"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-79618fa96ac99b26", "level": "warning", "message": {"text": "Dockerfile runs as root: infra/chromadb_compaction/lambdas/Dockerfile"}, "properties": {"repobilityId": "847dbe75fceb089e", "scanner": "scanner-primary", "fingerprint": "79618fa96ac99b26", "layer": "hardware", "severity": "medium", "confidence": 1.0, "tags": ["security", "container"]}}, {"ruleId": "scanner-0c53735f2def69ac", "level": "note", "message": {"text": "Docker base image is tag-pinned but not digest-pinned: public.ecr.aws/lambda/python:3.12"}, "properties": {"repobilityId": "8f285d8271729a11", "scanner": "scanner-primary", "fingerprint": "0c53735f2def69ac", "layer": "hardware", "severity": "low", "confidence": 1.0, "tags": ["supply-chain", "docker", "pinned-dependencies"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "infra/chromadb_compaction/lambdas/Dockerfile"}, "region": {"startLine": 6}}}]}, {"ruleId": "scanner-fad03d48398af75a", "level": "warning", "message": {"text": "Dockerfile runs as root: infra/sagemaker_training/Dockerfile"}, "properties": {"repobilityId": "389951d6f8507f7d", "scanner": "scanner-primary", "fingerprint": "fad03d48398af75a", "layer": "hardware", "severity": "medium", "confidence": 1.0, "tags": ["security", "container"]}}, {"ruleId": "scanner-a194e12b7e0f20a6", "level": "note", "message": {"text": "Docker base image is tag-pinned but not digest-pinned: pytorch/pytorch:2.6.0-cuda12.4-cudnn9-runtime"}, "properties": {"repobilityId": "e2521d7e51a91431", "scanner": "scanner-primary", "fingerprint": "a194e12b7e0f20a6", "layer": "hardware", "severity": "low", "confidence": 1.0, "tags": ["supply-chain", "docker", "pinned-dependencies"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "infra/sagemaker_training/Dockerfile"}, "region": {"startLine": 17}}}]}, {"ruleId": "scanner-827852404499d77e", "level": "warning", "message": {"text": "Docker base image uses a mutable or implicit tag: transformers"}, "properties": {"repobilityId": "eecd8681e3969822", "scanner": "scanner-primary", "fingerprint": "827852404499d77e", "layer": "hardware", "severity": "medium", "confidence": 1.0, "tags": ["supply-chain", "docker", "pinned-dependencies"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "infra/sagemaker_training/Dockerfile"}, "region": {"startLine": 51}}}]}, {"ruleId": "scanner-827852404499d77e", "level": "warning", "message": {"text": "Docker base image uses a mutable or implicit tag: transformers"}, "properties": {"repobilityId": "8337bc546f983d17", "scanner": "scanner-primary", "fingerprint": "827852404499d77e", "layer": "hardware", "severity": "medium", "confidence": 1.0, "tags": ["supply-chain", "docker", "pinned-dependencies"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "infra/sagemaker_training/Dockerfile"}, "region": {"startLine": 57}}}]}, {"ruleId": "scanner-00b024a898245327", "level": "warning", "message": {"text": "Dockerfile runs as root: infra/fix_place_lambda/lambdas/Dockerfile"}, "properties": {"repobilityId": "09655d768f2a1798", "scanner": "scanner-primary", "fingerprint": "00b024a898245327", "layer": "hardware", "severity": "medium", "confidence": 1.0, "tags": ["security", "container"]}}, {"ruleId": "scanner-e05e1fef454702d7", "level": "note", "message": {"text": "Docker base image is tag-pinned but not digest-pinned: public.ecr.aws/lambda/python:3.12"}, "properties": {"repobilityId": "199df20e2c829e5f", "scanner": "scanner-primary", "fingerprint": "e05e1fef454702d7", "layer": "hardware", "severity": "low", "confidence": 1.0, "tags": ["supply-chain", "docker", "pinned-dependencies"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "infra/fix_place_lambda/lambdas/Dockerfile"}, "region": {"startLine": 5}}}]}, {"ruleId": "scanner-017565737cbe37ec", "level": "warning", "message": {"text": "Dockerfile runs as root: infra/merge_receipt_lambda/lambdas/Dockerfile"}, "properties": {"repobilityId": "858acc805e3ef0ad", "scanner": "scanner-primary", "fingerprint": "017565737cbe37ec", "layer": "hardware", "severity": "medium", "confidence": 1.0, "tags": ["security", "container"]}}, {"ruleId": "scanner-f120f00a096ede91", "level": "note", "message": {"text": "Docker base image is tag-pinned but not digest-pinned: public.ecr.aws/lambda/python:3.12"}, "properties": {"repobilityId": "3cb69a404a13a2a7", "scanner": "scanner-primary", "fingerprint": "f120f00a096ede91", "layer": "hardware", "severity": "low", "confidence": 1.0, "tags": ["supply-chain", "docker", "pinned-dependencies"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "infra/merge_receipt_lambda/lambdas/Dockerfile"}, "region": {"startLine": 5}}}]}, {"ruleId": "scanner-280ac28984832780", "level": "warning", "message": {"text": "Dockerfile runs as root: infra/mcp_server_lambda/lambdas/Dockerfile"}, "properties": {"repobilityId": "e9cadd5de596c8eb", "scanner": "scanner-primary", "fingerprint": "280ac28984832780", "layer": "hardware", "severity": "medium", "confidence": 1.0, "tags": ["security", "container"]}}, {"ruleId": "scanner-cb715057460375fc", "level": "note", "message": {"text": "Docker base image is tag-pinned but not digest-pinned: public.ecr.aws/lambda/python:3.12"}, "properties": {"repobilityId": "3f233d8055b67907", "scanner": "scanner-primary", "fingerprint": "cb715057460375fc", "layer": "hardware", "severity": "low", "confidence": 1.0, "tags": ["supply-chain", "docker", "pinned-dependencies"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "infra/mcp_server_lambda/lambdas/Dockerfile"}, "region": {"startLine": 5}}}]}, {"ruleId": "scanner-e4408df213237c47", "level": "warning", "message": {"text": "Dockerfile runs as root: infra/label_refresh_lambda/lambdas/Dockerfile"}, "properties": {"repobilityId": "51f757aca68b7a87", "scanner": "scanner-primary", "fingerprint": "e4408df213237c47", "layer": "hardware", "severity": "medium", "confidence": 1.0, "tags": ["security", "container"]}}, {"ruleId": "scanner-a299471418bbfff2", "level": "note", "message": {"text": "Docker base image is tag-pinned but not digest-pinned: public.ecr.aws/lambda/python:3.12"}, "properties": {"repobilityId": "4b196714d4fdd7c8", "scanner": "scanner-primary", "fingerprint": "a299471418bbfff2", "layer": "hardware", "severity": "low", "confidence": 1.0, "tags": ["supply-chain", "docker", "pinned-dependencies"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "infra/label_refresh_lambda/lambdas/Dockerfile"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-aa5acaa49eb8315b", "level": "note", "message": {"text": "Containers defined but no K8s/orchestration manifest found"}, "properties": {"repobilityId": "b230ea9b68736081", "scanner": "scanner-primary", "fingerprint": "aa5acaa49eb8315b", "layer": "hardware", "severity": "low", "confidence": 1.0, "tags": ["coverage", "deployment"]}}, {"ruleId": "scanner-145bd868b8ccf490", "level": "warning", "message": {"text": "Insecure pattern 'subprocess_shell_true' in scripts/maintenance/analyze_phase4_violations.py:31"}, "properties": {"repobilityId": "f451d26435f20af9", "scanner": "scanner-primary", "fingerprint": "145bd868b8ccf490", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "subprocess_shell_true"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "scripts/maintenance/analyze_phase4_violations.py"}, "region": {"startLine": 31}}}]}, {"ruleId": "scanner-c3533c23758a89da", "level": "warning", "message": {"text": "Insecure pattern 'node_child_process' in portfolio/monitor-project.js:2"}, "properties": {"repobilityId": "2b265f0b1b9b074b", "scanner": "scanner-primary", "fingerprint": "c3533c23758a89da", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "node_child_process"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "portfolio/monitor-project.js"}, "region": {"startLine": 2}}}]}, {"ruleId": "scanner-c1e4a0a780f2bc71", "level": "warning", "message": {"text": "Insecure pattern 'node_child_process' in portfolio/mcp-server.js:11"}, "properties": {"repobilityId": "2a3aea92dc7f2894", "scanner": "scanner-primary", "fingerprint": "c1e4a0a780f2bc71", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "node_child_process"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "portfolio/mcp-server.js"}, "region": {"startLine": 11}}}]}, {"ruleId": "scanner-34c159cc22983501", "level": "warning", "message": {"text": "Insecure pattern 'node_child_process' in portfolio/scripts/optimize-images.js:10"}, "properties": {"repobilityId": "bbae61591a69080a", "scanner": "scanner-primary", "fingerprint": "34c159cc22983501", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "node_child_process"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "portfolio/scripts/optimize-images.js"}, "region": {"startLine": 10}}}]}, {"ruleId": "scanner-0548052b6c453b22", "level": "warning", "message": {"text": "Insecure pattern 'node_child_process' in portfolio/scripts/analyze-bundle.js:5"}, "properties": {"repobilityId": "bc2ca5ed990434fc", "scanner": "scanner-primary", "fingerprint": "0548052b6c453b22", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "node_child_process"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "portfolio/scripts/analyze-bundle.js"}, "region": {"startLine": 5}}}]}, {"ruleId": "scanner-ee09e51800b08951", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in portfolio/components/ui/Figures/LockingSwimlane.tsx:389"}, "properties": {"repobilityId": "cb79b6bb16110499", "scanner": "scanner-primary", "fingerprint": "ee09e51800b08951", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "portfolio/components/ui/Figures/LockingSwimlane.tsx"}, "region": {"startLine": 389}}}]}, {"ruleId": "scanner-a2b2e6a5e6270816", "level": "error", "message": {"text": "Possible secret in receipt_places/README.md"}, "properties": {"repobilityId": "7eacee9a19155c7d", "scanner": "scanner-primary", "fingerprint": "a2b2e6a5e6270816", "layer": "security", "severity": "critical", "confidence": 1.0, "tags": ["secrets"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "receipt_places/README.md"}, "region": {"startLine": 30}}}]}, {"ruleId": "scanner-00824116070e037e", "level": "warning", "message": {"text": "Insecure pattern 'cors_wildcard' in infra/routes/job_training_metrics/handler/index.py:326"}, "properties": {"repobilityId": "7a1ba5e6fae60ac0", "scanner": "scanner-primary", "fingerprint": "00824116070e037e", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "cors_wildcard"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "infra/routes/job_training_metrics/handler/index.py"}, "region": {"startLine": 326}}}]}, {"ruleId": "scanner-3c1dae4b9781e0b6", "level": "warning", "message": {"text": "Insecure pattern 'cors_wildcard' in infra/routes/label_validation_timeline/handler/index.py:54"}, "properties": {"repobilityId": "e81d8b1568c03343", "scanner": "scanner-primary", "fingerprint": "3c1dae4b9781e0b6", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "cors_wildcard"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "infra/routes/label_validation_timeline/handler/index.py"}, "region": {"startLine": 54}}}]}, {"ruleId": "scanner-5aa4f131bcc2acc7", "level": "warning", "message": {"text": "Insecure pattern 'cors_wildcard' in infra/routes/qa_viz_cache/lambdas/index.py:50"}, "properties": {"repobilityId": "f626aade85f160fc", "scanner": "scanner-primary", "fingerprint": "5aa4f131bcc2acc7", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "cors_wildcard"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "infra/routes/qa_viz_cache/lambdas/index.py"}, "region": {"startLine": 50}}}]}, {"ruleId": "scanner-35d76d3f642a8d84", "level": "warning", "message": {"text": "Insecure pattern 'cors_wildcard' in infra/routes/label_validation_viz_cache/lambdas/index.py:190"}, "properties": {"repobilityId": "b282443558ef2fd6", "scanner": "scanner-primary", "fingerprint": "35d76d3f642a8d84", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "cors_wildcard"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "infra/routes/label_validation_viz_cache/lambdas/index.py"}, "region": {"startLine": 190}}}]}, {"ruleId": "scanner-458d81464980be10", "level": "warning", "message": {"text": "Insecure pattern 'cors_wildcard' in infra/routes/layoutlm_inference/handler/index.py:203"}, "properties": {"repobilityId": "18e7f1741ceb2756", "scanner": "scanner-primary", "fingerprint": "458d81464980be10", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "cors_wildcard"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "infra/routes/layoutlm_inference/handler/index.py"}, "region": {"startLine": 203}}}]}, {"ruleId": "scanner-0eda6fee23248fa5", "level": "warning", "message": {"text": "Insecure pattern 'cors_wildcard' in infra/routes/label_evaluator_viz_cache/lambdas/index.py:169"}, "properties": {"repobilityId": "aac022c5803bcd41", "scanner": "scanner-primary", "fingerprint": "0eda6fee23248fa5", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "cors_wildcard"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "infra/routes/label_evaluator_viz_cache/lambdas/index.py"}, "region": {"startLine": 169}}}]}, {"ruleId": "scanner-4ea1f61300f21299", "level": "warning", "message": {"text": "Insecure pattern 'cors_wildcard' in infra/routes/merchant_counts/handler/index.py:76"}, "properties": {"repobilityId": "99e11e6bc4bcbe52", "scanner": "scanner-primary", "fingerprint": "4ea1f61300f21299", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "cors_wildcard"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "infra/routes/merchant_counts/handler/index.py"}, "region": {"startLine": 76}}}]}, {"ruleId": "scanner-fc3a59f53a259fa0", "level": "warning", "message": {"text": "Insecure pattern 'cors_wildcard' in infra/routes/ai_usage/handler/index.py:93"}, "properties": {"repobilityId": "331d5141eeda8a4c", "scanner": "scanner-primary", "fingerprint": "fc3a59f53a259fa0", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "cors_wildcard"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "infra/routes/ai_usage/handler/index.py"}, "region": {"startLine": 93}}}]}, {"ruleId": "scanner-880e407150e37e23", "level": "warning", "message": {"text": "Insecure pattern 'cors_wildcard' in infra/routes/address_similarity/handler/index.py:40"}, "properties": {"repobilityId": "04e419d62a0be408", "scanner": "scanner-primary", "fingerprint": "880e407150e37e23", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "cors_wildcard"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "infra/routes/address_similarity/handler/index.py"}, "region": {"startLine": 40}}}]}, {"ruleId": "scanner-62e12e1658eef680", "level": "warning", "message": {"text": "Insecure pattern 'cors_wildcard' in infra/routes/image_details_cache/handler/index.py:39"}, "properties": {"repobilityId": "5d6a2224263e5790", "scanner": "scanner-primary", "fingerprint": "62e12e1658eef680", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "cors_wildcard"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "infra/routes/image_details_cache/handler/index.py"}, "region": {"startLine": 39}}}]}, {"ruleId": "scanner-d318c63f2416ff65", "level": "warning", "message": {"text": "Insecure pattern 'cors_wildcard' in infra/routes/word_similarity/handler/index.py:40"}, "properties": {"repobilityId": "a0259700f119ec8c", "scanner": "scanner-primary", "fingerprint": "d318c63f2416ff65", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "cors_wildcard"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "infra/routes/word_similarity/handler/index.py"}, "region": {"startLine": 40}}}]}, {"ruleId": "scanner-6372cebde0220094", "level": "warning", "message": {"text": "No auth library detected"}, "properties": {"repobilityId": "a5b6035a5bbf8054", "scanner": "scanner-primary", "fingerprint": "6372cebde0220094", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["coverage", "auth"]}}, {"ruleId": "scanner-e605218285162e21", "level": "note", "message": {"text": "GitHub Action is tag-pinned rather than SHA-pinned"}, "properties": {"repobilityId": "eba9c7454d11d2f0", "scanner": "scanner-primary", "fingerprint": "e605218285162e21", "layer": "cicd", "severity": "low", "confidence": 1.0, "tags": ["supply-chain", "github-actions", "pinned-dependencies"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "portfolio/.github/workflows/performance.yml"}, "region": {"startLine": 19}}}]}, {"ruleId": "scanner-e605218285162e21", "level": "note", "message": {"text": "GitHub Action is tag-pinned rather than SHA-pinned"}, "properties": {"repobilityId": "a02628e4beffa7ea", "scanner": "scanner-primary", "fingerprint": "e605218285162e21", "layer": "cicd", "severity": "low", "confidence": 1.0, "tags": ["supply-chain", "github-actions", "pinned-dependencies"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "portfolio/.github/workflows/performance.yml"}, "region": {"startLine": 42}}}]}, {"ruleId": "scanner-e605218285162e21", "level": "note", "message": {"text": "GitHub Action is tag-pinned rather than SHA-pinned"}, "properties": {"repobilityId": "eba9c7454d11d2f0", "scanner": "scanner-primary", "fingerprint": "e605218285162e21", "layer": "cicd", "severity": "low", "confidence": 1.0, "tags": ["supply-chain", "github-actions", "pinned-dependencies"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "portfolio/.github/workflows/performance.yml"}, "region": {"startLine": 54}}}]}, {"ruleId": "scanner-e605218285162e21", "level": "note", "message": {"text": "GitHub Action is tag-pinned rather than SHA-pinned"}, "properties": {"repobilityId": "a02628e4beffa7ea", "scanner": "scanner-primary", "fingerprint": "e605218285162e21", "layer": "cicd", "severity": "low", "confidence": 1.0, "tags": ["supply-chain", "github-actions", "pinned-dependencies"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "portfolio/.github/workflows/performance.yml"}, "region": {"startLine": 78}}}]}, {"ruleId": "scanner-e605218285162e21", "level": "note", "message": {"text": "GitHub Action is tag-pinned rather than SHA-pinned"}, "properties": {"repobilityId": "eba9c7454d11d2f0", "scanner": "scanner-primary", "fingerprint": "e605218285162e21", "layer": "cicd", "severity": "low", "confidence": 1.0, "tags": ["supply-chain", "github-actions", "pinned-dependencies"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "portfolio/.github/workflows/performance.yml"}, "region": {"startLine": 92}}}]}, {"ruleId": "scanner-e605218285162e21", "level": "note", "message": {"text": "GitHub Action is tag-pinned rather than SHA-pinned"}, "properties": {"repobilityId": "4b9e48adc4465f7b", "scanner": "scanner-primary", "fingerprint": "e605218285162e21", "layer": "cicd", "severity": "low", "confidence": 1.0, "tags": ["supply-chain", "github-actions", "pinned-dependencies"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "portfolio/.github/workflows/performance.yml"}, "region": {"startLine": 110}}}]}, {"ruleId": "scanner-e605218285162e21", "level": "note", "message": {"text": "GitHub Action is tag-pinned rather than SHA-pinned"}, "properties": {"repobilityId": "53315f1e7ff228d8", "scanner": "scanner-primary", "fingerprint": "e605218285162e21", "layer": "cicd", "severity": "low", "confidence": 1.0, "tags": ["supply-chain", "github-actions", "pinned-dependencies"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "portfolio/.github/workflows/performance.yml"}, "region": {"startLine": 145}}}]}, {"ruleId": "scanner-dacb6159af7af022", "level": "warning", "message": {"text": "GitHub Action is tag-pinned rather than SHA-pinned"}, "properties": {"repobilityId": "41bc654bc24b6536", "scanner": "scanner-primary", "fingerprint": "dacb6159af7af022", "layer": "cicd", "severity": "medium", "confidence": 1.0, "tags": ["supply-chain", "github-actions", "pinned-dependencies"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": ".github/workflows/swift-ci.yml"}, "region": {"startLine": 38}}}]}, {"ruleId": "scanner-dacb6159af7af022", "level": "note", "message": {"text": "GitHub Action is tag-pinned rather than SHA-pinned"}, "properties": {"repobilityId": "1e12e167483e02ef", "scanner": "scanner-primary", "fingerprint": "dacb6159af7af022", "layer": "cicd", "severity": "low", "confidence": 1.0, "tags": ["supply-chain", "github-actions", "pinned-dependencies"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": ".github/workflows/swift-ci.yml"}, "region": {"startLine": 48}}}]}, {"ruleId": "scanner-dacb6159af7af022", "level": "warning", "message": {"text": "GitHub Action is tag-pinned rather than SHA-pinned"}, "properties": {"repobilityId": "41bc654bc24b6536", "scanner": "scanner-primary", "fingerprint": "dacb6159af7af022", "layer": "cicd", "severity": "medium", "confidence": 1.0, "tags": ["supply-chain", "github-actions", "pinned-dependencies"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": ".github/workflows/swift-ci.yml"}, "region": {"startLine": 124}}}]}, {"ruleId": "scanner-dacb6159af7af022", "level": "note", "message": {"text": "GitHub Action is tag-pinned rather than SHA-pinned"}, "properties": {"repobilityId": "bbf84d9e2d11275a", "scanner": "scanner-primary", "fingerprint": "dacb6159af7af022", "layer": "cicd", "severity": "low", "confidence": 1.0, "tags": ["supply-chain", "github-actions", "pinned-dependencies"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": ".github/workflows/swift-ci.yml"}, "region": {"startLine": 134}}}]}, {"ruleId": "scanner-1d7e834080dbebed", "level": "note", "message": {"text": "GitHub Action is tag-pinned rather than SHA-pinned"}, "properties": {"repobilityId": "306b1c8b4e812214", "scanner": "scanner-primary", "fingerprint": "1d7e834080dbebed", "layer": "cicd", "severity": "low", "confidence": 1.0, "tags": ["supply-chain", "github-actions", "pinned-dependencies"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": ".github/workflows/main.yml"}, "region": {"startLine": 123}}}]}, {"ruleId": "scanner-1d7e834080dbebed", "level": "note", "message": {"text": "GitHub Action is tag-pinned rather than SHA-pinned"}, "properties": {"repobilityId": "306b1c8b4e812214", "scanner": "scanner-primary", "fingerprint": "1d7e834080dbebed", "layer": "cicd", "severity": "low", "confidence": 1.0, "tags": ["supply-chain", "github-actions", "pinned-dependencies"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": ".github/workflows/main.yml"}, "region": {"startLine": 148}}}]}, {"ruleId": "scanner-1d7e834080dbebed", "level": "note", "message": {"text": "GitHub Action is tag-pinned rather than SHA-pinned"}, "properties": {"repobilityId": "306b1c8b4e812214", "scanner": "scanner-primary", "fingerprint": "1d7e834080dbebed", "layer": "cicd", "severity": "low", "confidence": 1.0, "tags": ["supply-chain", "github-actions", "pinned-dependencies"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": ".github/workflows/main.yml"}, "region": {"startLine": 186}}}]}, {"ruleId": "scanner-1d7e834080dbebed", "level": "warning", "message": {"text": "GitHub Action is tag-pinned rather than SHA-pinned"}, "properties": {"repobilityId": "6f855a35531f333d", "scanner": "scanner-primary", "fingerprint": "1d7e834080dbebed", "layer": "cicd", "severity": "medium", "confidence": 1.0, "tags": ["supply-chain", "github-actions", "pinned-dependencies"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": ".github/workflows/main.yml"}, "region": {"startLine": 217}}}]}, {"ruleId": "scanner-299e5e0d9ac9f81f", "level": "warning", "message": {"text": "GitHub Actions workflow grants broad write permissions"}, "properties": {"repobilityId": "cb6b9b70fd6463a9", "scanner": "scanner-primary", "fingerprint": "299e5e0d9ac9f81f", "layer": "cicd", "severity": "medium", "confidence": 1.0, "tags": ["supply-chain", "github-actions", "least-privilege"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": ".github/workflows/main.yml"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-bd66c7cb7f9012c1", "level": "note", "message": {"text": "Very large file: receipt_dynamo/tests/integration/test__receipt_validation_category.py (1584 lines)"}, "properties": {"repobilityId": "0128837356c579be", "scanner": "scanner-primary", "fingerprint": "bd66c7cb7f9012c1", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["complexity"]}}, {"ruleId": "scanner-7f611c39a78be3b3", "level": "note", "message": {"text": "Very large file: receipt_dynamo/tests/integration/test__receipt_chatgpt_validation.py (2221 lines)"}, "properties": {"repobilityId": "478deb1c77980ce3", "scanner": "scanner-primary", "fingerprint": "7f611c39a78be3b3", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["complexity"]}}, {"ruleId": "scanner-ea4b9d8127e69869", "level": "note", "message": {"text": "Very large file: receipt_dynamo/tests/integration/test__receipt_line_item_analysis.py (2048 lines)"}, "properties": {"repobilityId": "10daf743b3573e08", "scanner": "scanner-primary", "fingerprint": "ea4b9d8127e69869", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["complexity"]}}, {"ruleId": "scanner-09188d557c81caa7", "level": "note", "message": {"text": "Very large file: receipt_dynamo/tests/integration/test__receipt_field.py (2309 lines)"}, "properties": {"repobilityId": "001991ac3555cc61", "scanner": "scanner-primary", "fingerprint": "09188d557c81caa7", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["complexity"]}}, {"ruleId": "scanner-dcfc247cff20deea", "level": "note", "message": {"text": "Very large file: receipt_dynamo/tests/integration/test__receipt_validation_result.py (2120 lines)"}, "properties": {"repobilityId": "07f49d464d375daa", "scanner": "scanner-primary", "fingerprint": "dcfc247cff20deea", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["complexity"]}}, {"ruleId": "scanner-16b56911f7cb946e", "level": "note", "message": {"text": "Very large file: receipt_dynamo/tests/integration/test__receipt_label_analysis.py (1869 lines)"}, "properties": {"repobilityId": "f6a0cfd3f9fc278e", "scanner": "scanner-primary", "fingerprint": "16b56911f7cb946e", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["complexity"]}}, {"ruleId": "scanner-181a8a420adbc380", "level": "note", "message": {"text": "Very large file: receipt_dynamo/tests/unit/test_line.py (1634 lines)"}, "properties": {"repobilityId": "b6649c8239cfdf6e", "scanner": "scanner-primary", "fingerprint": "181a8a420adbc380", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["complexity"]}}, {"ruleId": "scanner-6d6f079fa8a46da1", "level": "note", "message": {"text": "Very large file: receipt_dynamo/tests/unit/test_letter.py (1342 lines)"}, "properties": {"repobilityId": "0e0271a4d678f99b", "scanner": "scanner-primary", "fingerprint": "6d6f079fa8a46da1", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["complexity"]}}, {"ruleId": "scanner-4f0c4d2bc7efbc08", "level": "note", "message": {"text": "Very large file: scripts/receipt_mcp_server.py (2966 lines)"}, "properties": {"repobilityId": "c95b7d3a9d98a607", "scanner": "scanner-primary", "fingerprint": "4f0c4d2bc7efbc08", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["complexity"]}}, {"ruleId": "scanner-80b5b6e84a5c6924", "level": "note", "message": {"text": "Very large file: scripts/visualize_final_clusters_cropped.py (1215 lines)"}, "properties": {"repobilityId": "df561653d5c0f43f", "scanner": "scanner-primary", "fingerprint": "80b5b6e84a5c6924", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["complexity"]}}, {"ruleId": "scanner-71bfda026e5e186b", "level": "note", "message": {"text": "Very large file: receipt_agent/receipt_agent/utils/chroma_helpers.py (2193 lines)"}, "properties": {"repobilityId": "7987c0125cdc6679", "scanner": "scanner-primary", "fingerprint": "71bfda026e5e186b", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["complexity"]}}, {"ruleId": "scanner-ff325f7878093429", "level": "note", "message": {"text": "Very large file: receipt_agent/receipt_agent/agents/place_id_finder/tools/place_id_finder.py (1352 lines)"}, "properties": {"repobilityId": "c6253cf6616725fd", "scanner": "scanner-primary", "fingerprint": "ff325f7878093429", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["complexity"]}}, {"ruleId": "scanner-72f97b24328df331", "level": "note", "message": {"text": "Very large file: receipt_agent/receipt_agent/agents/question_answering/tools/search.py (1354 lines)"}, "properties": {"repobilityId": "fae8252de43110c1", "scanner": "scanner-primary", "fingerprint": "72f97b24328df331", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["complexity"]}}, {"ruleId": "scanner-cd0058d0db71a642", "level": "note", "message": {"text": "Very large file: receipt_agent/receipt_agent/agents/harmonizer/graph.py (2128 lines)"}, "properties": {"repobilityId": "4ad6bfa557685c0a", "scanner": "scanner-primary", "fingerprint": "cd0058d0db71a642", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["complexity"]}}, {"ruleId": "scanner-78817fc4d10a28e5", "level": "note", "message": {"text": "Very large file: receipt_agent/receipt_agent/agents/label_evaluator/financial_subagent.py (3176 lines)"}, "properties": {"repobilityId": "7e69081e645abbd2", "scanner": "scanner-primary", "fingerprint": "78817fc4d10a28e5", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["complexity"]}}, {"ruleId": "scanner-ceb64d615d66f018", "level": "note", "message": {"text": "Very large file: receipt_layoutlm/receipt_layoutlm/trainer.py (1852 lines)"}, "properties": {"repobilityId": "876c0e4599b3eba6", "scanner": "scanner-primary", "fingerprint": "ceb64d615d66f018", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["complexity"]}}, {"ruleId": "scanner-9ab928606e1961bc", "level": "note", "message": {"text": "Very large file: receipt_upload/receipt_upload/merchant_resolution/embedding_processor.py (1859 lines)"}, "properties": {"repobilityId": "63dff9cbb8a5cace", "scanner": "scanner-primary", "fingerprint": "9ab928606e1961bc", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["complexity"]}}, {"ruleId": "scanner-1e1525de5f6c2d49", "level": "note", "message": {"text": "Very large file: portfolio/components/ui/Figures/LabelEvaluatorVisualization/index.tsx (1435 lines)"}, "properties": {"repobilityId": "54fa5287ef16ad48", "scanner": "scanner-primary", "fingerprint": "1e1525de5f6c2d49", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["complexity"]}}, {"ruleId": "scanner-f1908fc1368b07b6", "level": "note", "message": {"text": "Very large file: infra/__main__.py (1713 lines)"}, "properties": {"repobilityId": "131489167d5ce375", "scanner": "scanner-primary", "fingerprint": "f1908fc1368b07b6", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["complexity"]}}, {"ruleId": "scanner-7fbd8228ece67532", "level": "note", "message": {"text": "Very large file: infra/upload_images/container_ocr/handler/ocr_processor.py (1855 lines)"}, "properties": {"repobilityId": "b3e19b800440e653", "scanner": "scanner-primary", "fingerprint": "7fbd8228ece67532", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["complexity"]}}, {"ruleId": "scanner-2d6761b8717d577e", "level": "note", "message": {"text": "Very large file: infra/upload_images/container_ocr/handler/tests/test_overlay.py (1404 lines)"}, "properties": {"repobilityId": "96aef8a1056b75f0", "scanner": "scanner-primary", "fingerprint": "2d6761b8717d577e", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["complexity"]}}, {"ruleId": "scanner-f30a69b5c71efdc0", "level": "note", "message": {"text": "Very large file: infra/components/lambda_layer.py (1462 lines)"}, "properties": {"repobilityId": "442b661dd9dae4a6", "scanner": "scanner-primary", "fingerprint": "f30a69b5c71efdc0", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["complexity"]}}, {"ruleId": "scanner-e05c00ba81f12e0f", "level": "note", "message": {"text": "Very large file: infra/label_evaluator_step_functions/lambdas/unified_receipt_evaluator.py (1415 lines)"}, "properties": {"repobilityId": "d46c2b64d0f4c4aa", "scanner": "scanner-primary", "fingerprint": "e05c00ba81f12e0f", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["complexity"]}}, {"ruleId": "scanner-028695de60b66919", "level": "note", "message": {"text": "Very large file: infra/label_evaluator_step_functions/lambdas/utils/tracing.py (1757 lines)"}, "properties": {"repobilityId": "41c55f1223cd6f57", "scanner": "scanner-primary", "fingerprint": "028695de60b66919", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["complexity"]}}, {"ruleId": "scanner-eee3a62d36febcc3", "level": "note", "message": {"text": "Very large file: infra/embedding_step_functions/unified_embedding/handlers/word_polling.py (1526 lines)"}, "properties": {"repobilityId": "3a96ac5bb797873f", "scanner": "scanner-primary", "fingerprint": "eee3a62d36febcc3", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["complexity"]}}, {"ruleId": "scanner-6a976bc6a2c98824", "level": "note", "message": {"text": "Very large file: infra/embedding_step_functions/unified_embedding/handlers/line_polling.py (1458 lines)"}, "properties": {"repobilityId": "87fe809485b98622", "scanner": "scanner-primary", "fingerprint": "6a976bc6a2c98824", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["complexity"]}}, {"ruleId": "scanner-91f0f53118e17b36", "level": "note", "message": {"text": "Very large file: infra/embedding_step_functions/unified_embedding/handlers/compaction.py (3391 lines)"}, "properties": {"repobilityId": "9e56f9f838a5e575", "scanner": "scanner-primary", "fingerprint": "91f0f53118e17b36", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["complexity"]}}, {"ruleId": "scanner-5f81094bbc079857", "level": "note", "message": {"text": "Very large file: infra/mcp_server_lambda/lambdas/receipt_mcp_server_server.py (2980 lines)"}, "properties": {"repobilityId": "489d8a380b85d527", "scanner": "scanner-primary", "fingerprint": "5f81094bbc079857", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["complexity"]}}, {"ruleId": "scanner-d53e6fc6e96b42a4", "level": "note", "message": {"text": "43 TODO/FIXME markers"}, "properties": {"repobilityId": "4b38c118003e07d2", "scanner": "scanner-primary", "fingerprint": "d53e6fc6e96b42a4", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["maintenance"]}}, {"ruleId": "scanner-3ab5d313dda8e5f9", "level": "note", "message": {"text": "Debug logging residue appears in source files"}, "properties": {"repobilityId": "b330720a12aca54b", "scanner": "scanner-primary", "fingerprint": "3ab5d313dda8e5f9", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["debug", "cleanup", "repo-hardening", "generated-repo-pattern"]}}, {"ruleId": "scanner-72b2a6250083a784", "level": "warning", "message": {"text": "Placeholder or mock-heavy implementation detected"}, "properties": {"repobilityId": "3c9593816d658e31", "scanner": "scanner-primary", "fingerprint": "72b2a6250083a784", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["placeholder", "mock-data", "incomplete", "generated-repo-pattern"]}}, {"ruleId": "scanner-2d0c7b7ab8f8aacf", "level": "warning", "message": {"text": "Critical user flow still appears backed by mock or placeholder data"}, "properties": {"repobilityId": "72a62a15c70bac6d", "scanner": "scanner-primary", "fingerprint": "2d0c7b7ab8f8aacf", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["placeholder", "mock-data", "critical-flow", "generated-repo-pattern"]}}, {"ruleId": "scanner-ea8f3013f588db25", "level": "note", "message": {"text": "Shallow git history limits provenance confidence"}, "properties": {"repobilityId": "513d6eddf0673b9b", "scanner": "scanner-primary", "fingerprint": "ea8f3013f588db25", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["provenance", "git-history", "generated-repo-pattern"]}}, {"ruleId": "scanner-8424db9c75e04ba4", "level": "none", "message": {"text": "Very short observed git history"}, "properties": {"repobilityId": "42a884a1d92fe184", "scanner": "scanner-primary", "fingerprint": "8424db9c75e04ba4", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["provenance", "git-history", "generated-repo-pattern"]}}, {"ruleId": "scanner-17d866d91a7c451e", "level": "error", "message": {"text": "Agent instruction/config may expose a secret: CLAUDE.md"}, "properties": {"repobilityId": "ccce5984e58a48f0", "scanner": "scanner-primary", "fingerprint": "17d866d91a7c451e", "layer": "security", "severity": "high", "confidence": 1.0, "tags": ["agent-instructions", "secrets", "claude_instruction"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "CLAUDE.md"}, "region": {"startLine": 423}}}]}, {"ruleId": "scanner-4f3a709692bcb5b0", "level": "note", "message": {"text": "Legacy-named symbol `list_objects_v2` in receipt_dynamo/tests/export_table_to_json.py:44"}, "properties": {"repobilityId": "4e1540fa0078a616", "scanner": "scanner-primary", "fingerprint": "4f3a709692bcb5b0", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "legacy-marker", "dead-code"]}}, {"ruleId": "scanner-752b560be9ed0e1d", "level": "none", "message": {"text": "Commented-code block (6 lines) in receipt_dynamo/tests/unit/test_util_validation.py:341"}, "properties": {"repobilityId": "603757bc09768700", "scanner": "scanner-primary", "fingerprint": "752b560be9ed0e1d", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-ebda44f0a647d22d", "level": "note", "message": {"text": "Legacy-named symbol `x_old` in receipt_dynamo/tests/unit/test_line.py:1007"}, "properties": {"repobilityId": "989037b06d228017", "scanner": "scanner-primary", "fingerprint": "ebda44f0a647d22d", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "legacy-marker", "dead-code"]}}, {"ruleId": "scanner-791f946429594483", "level": "none", "message": {"text": "Commented-code block (6 lines) in receipt_dynamo/tests/unit/test_line.py:925"}, "properties": {"repobilityId": "17ce52f831cb4db1", "scanner": "scanner-primary", "fingerprint": "791f946429594483", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-e3e1fb5b67818c2c", "level": "none", "message": {"text": "Commented-code block (6 lines) in receipt_dynamo/tests/unit/test_letter.py:880"}, "properties": {"repobilityId": "032ad8098228475d", "scanner": "scanner-primary", "fingerprint": "e3e1fb5b67818c2c", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-9306cbe735b3cba7", "level": "note", "message": {"text": "Legacy-named symbol `A_copy` in receipt_dynamo/receipt_dynamo/utils/transformations.py:254"}, "properties": {"repobilityId": "986f00bb3f9166d9", "scanner": "scanner-primary", "fingerprint": "9306cbe735b3cba7", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "legacy-marker", "dead-code"]}}, {"ruleId": "scanner-4a83ea69de3df521", "level": "none", "message": {"text": "Commented-code block (6 lines) in receipt_dynamo/receipt_dynamo/services/instance_service.py:350"}, "properties": {"repobilityId": "6bd6d3c5b75aeb34", "scanner": "scanner-primary", "fingerprint": "4a83ea69de3df521", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-e82e94c0f05bf7ae", "level": "none", "message": {"text": "Commented-code block (5 lines) in receipt_dynamo/receipt_dynamo/services/queue_service.py:318"}, "properties": {"repobilityId": "f2e2707a8ac81cf8", "scanner": "scanner-primary", "fingerprint": "e82e94c0f05bf7ae", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-1608cca60f310bb6", "level": "none", "message": {"text": "Commented-code block (7 lines) in receipt_dynamo/receipt_dynamo/entities/receipt_validation_result.py:59"}, "properties": {"repobilityId": "8e88ac98ebee46a7", "scanner": "scanner-primary", "fingerprint": "1608cca60f310bb6", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-bad35014637ad192", "level": "none", "message": {"text": "Commented-code block (5 lines) in receipt_dynamo/receipt_dynamo/entities/entity_mixins.py:123"}, "properties": {"repobilityId": "62d5ee7fed7c200d", "scanner": "scanner-primary", "fingerprint": "bad35014637ad192", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-011cfa8b6afb6dbf", "level": "warning", "message": {"text": "Network/subprocess call without timeout or try/except \u2014 receipt_dynamo/scripts/run_tests.py:10"}, "properties": {"repobilityId": "7f253f4decb4b08b", "scanner": "scanner-primary", "fingerprint": "011cfa8b6afb6dbf", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-0491754719e9e0aa", "level": "none", "message": {"text": "Commented-code block (5 lines) in scripts/normalize_merchant_names.py:182"}, "properties": {"repobilityId": "cb47029bbfc09caa", "scanner": "scanner-primary", "fingerprint": "0491754719e9e0aa", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-809e71439bd1e04c", "level": "note", "message": {"text": "Legacy-named symbol `list_objects_v2` in scripts/reset_embedding_status.py:319"}, "properties": {"repobilityId": "764412f406a01533", "scanner": "scanner-primary", "fingerprint": "809e71439bd1e04c", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "legacy-marker", "dead-code"]}}, {"ruleId": "scanner-3655ac3313d81735", "level": "note", "message": {"text": "Legacy-named symbol `list_objects_v2` in scripts/copy_images_dev_to_prod.py:83"}, "properties": {"repobilityId": "460e70f84aa610c6", "scanner": "scanner-primary", "fingerprint": "3655ac3313d81735", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "legacy-marker", "dead-code"]}}, {"ruleId": "scanner-82413474c7d745cc", "level": "note", "message": {"text": "Legacy-named symbol `types_v1` in scripts/verify_deployment_readiness.py:135"}, "properties": {"repobilityId": "811a51988b2679a6", "scanner": "scanner-primary", "fingerprint": "82413474c7d745cc", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "legacy-marker", "dead-code"]}}, {"ruleId": "scanner-34a74b86a9eae466", "level": "note", "message": {"text": "Legacy-named symbol `list_objects_v2` in scripts/verify_label_evaluator_cdn.py:61"}, "properties": {"repobilityId": "7e0d05943fddcc01", "scanner": "scanner-primary", "fingerprint": "34a74b86a9eae466", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "legacy-marker", "dead-code"]}}, {"ruleId": "scanner-567c94511d70a674", "level": "note", "message": {"text": "Legacy-named symbol `rollback_prod_labels_from_backup` in scripts/Receipt_matching_dev_with_prod.py:445"}, "properties": {"repobilityId": "f47c41c5a0ea6e50", "scanner": "scanner-primary", "fingerprint": "567c94511d70a674", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "legacy-marker", "dead-code"]}}, {"ruleId": "scanner-46dd0e8a5f75d6f3", "level": "note", "message": {"text": "Legacy-named symbol `list_objects_v2` in scripts/sync_ocr_jobs_dev_to_prod.py:112"}, "properties": {"repobilityId": "97d15f3445c53dc0", "scanner": "scanner-primary", "fingerprint": "46dd0e8a5f75d6f3", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "legacy-marker", "dead-code"]}}, {"ruleId": "scanner-d769d7de51718271", "level": "warning", "message": {"text": "Network/subprocess call without timeout or try/except \u2014 scripts/dev_label_evaluator.py:194"}, "properties": {"repobilityId": "b25e91606a580a1a", "scanner": "scanner-primary", "fingerprint": "d769d7de51718271", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-572386edce8ae9a3", "level": "note", "message": {"text": "Legacy-named symbol `list_objects_v2` in scripts/copy_layoutlm_model_dev_to_prod.py:127"}, "properties": {"repobilityId": "5aebd1a74bade43a", "scanner": "scanner-primary", "fingerprint": "572386edce8ae9a3", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "legacy-marker", "dead-code"]}}, {"ruleId": "scanner-7b14c7edbd237f09", "level": "note", "message": {"text": "Legacy-named symbol `entity_copy` in scripts/visualize_final_clusters_cropped.py:128"}, "properties": {"repobilityId": "c1c4c140b2d2c5c6", "scanner": "scanner-primary", "fingerprint": "7b14c7edbd237f09", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "legacy-marker", "dead-code"]}}, {"ruleId": "scanner-81fde38f8f6615f5", "level": "none", "message": {"text": "Commented-code block (8 lines) in scripts/visualize_final_clusters_cropped.py:659"}, "properties": {"repobilityId": "800d3633123d772c", "scanner": "scanner-primary", "fingerprint": "81fde38f8f6615f5", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-4889f51bdd8ec708", "level": "warning", "message": {"text": "Network/subprocess call without timeout or try/except \u2014 scripts/smart_test_runner.py:278"}, "properties": {"repobilityId": "a22067138a974bbc", "scanner": "scanner-primary", "fingerprint": "4889f51bdd8ec708", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-01df6d88c4c750de", "level": "none", "message": {"text": "Commented-code block (5 lines) in receipt_dynamo_stream/receipt_dynamo_stream/message_builder.py:58"}, "properties": {"repobilityId": "1272ce5bb156fe25", "scanner": "scanner-primary", "fingerprint": "01df6d88c4c750de", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-11b8a72ac5250f15", "level": "none", "message": {"text": "Commented-code block (6 lines) in receipt_agent/receipt_agent/constants.py:40"}, "properties": {"repobilityId": "55930e8e9980a238", "scanner": "scanner-primary", "fingerprint": "11b8a72ac5250f15", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-1ca01b80ecdb1edc", "level": "note", "message": {"text": "Legacy-named symbol `line_copy` in receipt_agent/receipt_agent/utils/receipt_coordinates.py:141"}, "properties": {"repobilityId": "1b9b342fc2761ef2", "scanner": "scanner-primary", "fingerprint": "1ca01b80ecdb1edc", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "legacy-marker", "dead-code"]}}, {"ruleId": "scanner-2fe12a19c3fc5c86", "level": "none", "message": {"text": "Commented-code block (6 lines) in receipt_agent/receipt_agent/utils/receipt_coordinates.py:69"}, "properties": {"repobilityId": "d6343a7e33d3ba31", "scanner": "scanner-primary", "fingerprint": "2fe12a19c3fc5c86", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-0d547e29f6194ea2", "level": "none", "message": {"text": "Commented-code block (5 lines) in receipt_agent/receipt_agent/lifecycle/receipt_manager.py:201"}, "properties": {"repobilityId": "7820372719d2b694", "scanner": "scanner-primary", "fingerprint": "0d547e29f6194ea2", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-a423b6f057782596", "level": "none", "message": {"text": "Commented-code block (7 lines) in receipt_agent/receipt_agent/agents/label_evaluator/issue_detection.py:594"}, "properties": {"repobilityId": "9d1ef6725bacdeda", "scanner": "scanner-primary", "fingerprint": "a423b6f057782596", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-81f00dfcfbb50507", "level": "none", "message": {"text": "Commented-code block (7 lines) in receipt_agent/receipt_agent/agents/label_evaluator/financial_subagent.py:449"}, "properties": {"repobilityId": "4de1b670e7efd14c", "scanner": "scanner-primary", "fingerprint": "81f00dfcfbb50507", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-f6d32dc166dea29f", "level": "none", "message": {"text": "Commented-code block (6 lines) in receipt_agent/receipt_agent/agents/label_evaluator/graph.py:89"}, "properties": {"repobilityId": "75d2fae625657e2e", "scanner": "scanner-primary", "fingerprint": "f6d32dc166dea29f", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-fde30a0e274fbe3e", "level": "none", "message": {"text": "Commented-code block (5 lines) in receipt_agent/receipt_agent/agents/label_evaluator/patterns.py:888"}, "properties": {"repobilityId": "e5e374d00e9f2e40", "scanner": "scanner-primary", "fingerprint": "fde30a0e274fbe3e", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-711b4eb9703fd437", "level": "none", "message": {"text": "Commented-code block (5 lines) in receipt_agent/receipt_agent/agents/label_evaluator/state.py:230"}, "properties": {"repobilityId": "affe5e778f45561d", "scanner": "scanner-primary", "fingerprint": "711b4eb9703fd437", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-cffbed9f6dc9818c", "level": "none", "message": {"text": "Commented-code block (5 lines) in receipt_agent/receipt_agent/subagents/cove_text_consistency/graph.py:658"}, "properties": {"repobilityId": "c729cc9fa45e3597", "scanner": "scanner-primary", "fingerprint": "cffbed9f6dc9818c", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-f1632d8595e7619b", "level": "note", "message": {"text": "Legacy-named symbol `place_v1` in receipt_agent/receipt_agent/subagents/place_finder/backfill_receipt_place.py:275"}, "properties": {"repobilityId": "ea2b479ae5965569", "scanner": "scanner-primary", "fingerprint": "f1632d8595e7619b", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "legacy-marker", "dead-code"]}}, {"ruleId": "scanner-be6eba05d2892605", "level": "note", "message": {"text": "Legacy-named symbol `place_v1` in receipt_agent/receipt_agent/subagents/place_finder/tools/receipt_place_finder.py:925"}, "properties": {"repobilityId": "2fcda03ff2d06ceb", "scanner": "scanner-primary", "fingerprint": "be6eba05d2892605", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "legacy-marker", "dead-code"]}}, {"ruleId": "scanner-43e1a8e2fe91455f", "level": "note", "message": {"text": "Legacy-named symbol `list_objects_v2` in receipt_layoutlm/tests/end_to_end/test_inference_end_to_end.py:69"}, "properties": {"repobilityId": "4c1cf542e33f2b58", "scanner": "scanner-primary", "fingerprint": "43e1a8e2fe91455f", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "legacy-marker", "dead-code"]}}, {"ruleId": "scanner-80e60835dadfd206", "level": "none", "message": {"text": "Commented-code block (5 lines) in receipt_layoutlm/tests/end_to_end/test_inference_end_to_end.py:115"}, "properties": {"repobilityId": "9d7595abaa899fe4", "scanner": "scanner-primary", "fingerprint": "80e60835dadfd206", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-5a65324db0a9f9ec", "level": "note", "message": {"text": "Legacy-named symbol `list_objects_v2` in receipt_layoutlm/receipt_layoutlm/export_coreml.py:457"}, "properties": {"repobilityId": "741409a6c1184c6c", "scanner": "scanner-primary", "fingerprint": "5a65324db0a9f9ec", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "legacy-marker", "dead-code"]}}, {"ruleId": "scanner-56dc70acc097c329", "level": "none", "message": {"text": "Commented-code block (5 lines) in receipt_layoutlm/receipt_layoutlm/export_coreml.py:299"}, "properties": {"repobilityId": "99cc91c6af4e5079", "scanner": "scanner-primary", "fingerprint": "56dc70acc097c329", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-3247b1adc350305e", "level": "note", "message": {"text": "Legacy-named symbol `list_objects_v2` in receipt_layoutlm/receipt_layoutlm/inference.py:199"}, "properties": {"repobilityId": "6c3490847b606d73", "scanner": "scanner-primary", "fingerprint": "3247b1adc350305e", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "legacy-marker", "dead-code"]}}, {"ruleId": "scanner-142e73cb99a582c7", "level": "note", "message": {"text": "Legacy-named symbol `list_objects_v2` in receipt_layoutlm/receipt_layoutlm/export_worker.py:51"}, "properties": {"repobilityId": "8fa66ad0f3493518", "scanner": "scanner-primary", "fingerprint": "142e73cb99a582c7", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "legacy-marker", "dead-code"]}}, {"ruleId": "scanner-9b2a2b17ab880b93", "level": "note", "message": {"text": "Legacy-named symbol `list_objects_v2` in receipt_layoutlm/receipt_layoutlm/resume.py:83"}, "properties": {"repobilityId": "e236cb45ff9360f1", "scanner": "scanner-primary", "fingerprint": "9b2a2b17ab880b93", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "legacy-marker", "dead-code"]}}, {"ruleId": "scanner-77d717e10a0f5990", "level": "none", "message": {"text": "Commented-code block (5 lines) in receipt_layoutlm/receipt_layoutlm/trainer.py:137"}, "properties": {"repobilityId": "ad223fa2d8359968", "scanner": "scanner-primary", "fingerprint": "77d717e10a0f5990", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-3491a669127d8141", "level": "warning", "message": {"text": "Network/subprocess call without timeout or try/except \u2014 receipt_layoutlm/receipt_layoutlm/trainer.py:825"}, "properties": {"repobilityId": "d3dc1a76c01b2bd5", "scanner": "scanner-primary", "fingerprint": "3491a669127d8141", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-19acb19f89329cb9", "level": "none", "message": {"text": "Commented-code block (5 lines) in receipt_upload/test/test_geometry.py:161"}, "properties": {"repobilityId": "c764a13b1c37f487", "scanner": "scanner-primary", "fingerprint": "19acb19f89329cb9", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-9a19fd05454b403c", "level": "none", "message": {"text": "Commented-code block (6 lines) in receipt_upload/receipt_upload/utils.py:494"}, "properties": {"repobilityId": "432f04486c28a2bf", "scanner": "scanner-primary", "fingerprint": "9a19fd05454b403c", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-d43856fcea32acf2", "level": "none", "message": {"text": "Commented-code block (5 lines) in receipt_upload/receipt_upload/merchant_resolution/embedding_processor.py:1270"}, "properties": {"repobilityId": "915a3fab5e7eb6f6", "scanner": "scanner-primary", "fingerprint": "d43856fcea32acf2", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-e1f4edd498d5dd24", "level": "none", "message": {"text": "Commented-code block (9 lines) in receipt_upload/receipt_upload/merchant_resolution/resolver.py:383"}, "properties": {"repobilityId": "b3d595e21b4ce1b3", "scanner": "scanner-primary", "fingerprint": "e1f4edd498d5dd24", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-6a8639fb0c82627e", "level": "note", "message": {"text": "Legacy-named symbol `word_copy` in receipt_upload/receipt_upload/combine/records_builder.py:108"}, "properties": {"repobilityId": "5d0637ce8f77aa66", "scanner": "scanner-primary", "fingerprint": "6a8639fb0c82627e", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "legacy-marker", "dead-code"]}}, {"ruleId": "scanner-30689202eaa11f1b", "level": "none", "message": {"text": "Commented-code block (6 lines) in receipt_upload/receipt_upload/combine/records_builder.py:604"}, "properties": {"repobilityId": "f3c3451075112910", "scanner": "scanner-primary", "fingerprint": "30689202eaa11f1b", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-8129ad2094ab12bb", "level": "none", "message": {"text": "Commented-code block (7 lines) in receipt_upload/receipt_upload/label_validation/llm_validator.py:47"}, "properties": {"repobilityId": "9ce86b1028d01910", "scanner": "scanner-primary", "fingerprint": "8129ad2094ab12bb", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-64ead083bdae6f40", "level": "note", "message": {"text": "Legacy-named symbol `_tracing_v2` in receipt_upload/receipt_upload/label_validation/langsmith_logging.py:34"}, "properties": {"repobilityId": "902e32e405faa2d4", "scanner": "scanner-primary", "fingerprint": "64ead083bdae6f40", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "legacy-marker", "dead-code"]}}, {"ruleId": "scanner-e6ef68c498efe587", "level": "none", "message": {"text": "Commented-code block (5 lines) in receipt_upload/receipt_upload/geometry/receipt_box.py:256"}, "properties": {"repobilityId": "ab1ead86338847c2", "scanner": "scanner-primary", "fingerprint": "e6ef68c498efe587", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-2f01ccf3f5f21ae4", "level": "note", "message": {"text": "Legacy-named symbol `A_copy` in receipt_upload/receipt_upload/geometry/transformations.py:263"}, "properties": {"repobilityId": "45aa05e9a590e166", "scanner": "scanner-primary", "fingerprint": "2f01ccf3f5f21ae4", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "legacy-marker", "dead-code"]}}, {"ruleId": "scanner-f23896f17a8e7737", "level": "note", "message": {"text": "Legacy-named symbol `list_objects_v2` in receipt_chroma/tests/integration/test_chroma_client.py:339"}, "properties": {"repobilityId": "9e9b1e496a9aedd3", "scanner": "scanner-primary", "fingerprint": "f23896f17a8e7737", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "legacy-marker", "dead-code"]}}, {"ruleId": "scanner-7aa3d2524e02374b", "level": "note", "message": {"text": "Legacy-named symbol `list_objects_v2` in receipt_chroma/tests/integration/test_s3_snapshot.py:151"}, "properties": {"repobilityId": "6d6aa78b8790e5db", "scanner": "scanner-primary", "fingerprint": "7aa3d2524e02374b", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "legacy-marker", "dead-code"]}}, {"ruleId": "scanner-5641ea7184cd3261", "level": "note", "message": {"text": "Legacy-named symbol `list_objects_v2` in receipt_chroma/tests/integration/test_chroma_client_coverage.py:346"}, "properties": {"repobilityId": "eeee6118d2d0d794", "scanner": "scanner-primary", "fingerprint": "5641ea7184cd3261", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "legacy-marker", "dead-code"]}}, {"ruleId": "scanner-a1efb1da1e94501f", "level": "none", "message": {"text": "Commented-code block (6 lines) in receipt_chroma/tests/integration/test_chroma_client_coverage.py:494"}, "properties": {"repobilityId": "e429b0d4db798932", "scanner": "scanner-primary", "fingerprint": "a1efb1da1e94501f", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-fd30852778615ca6", "level": "note", "message": {"text": "Legacy-named symbol `list_objects_v2` in receipt_chroma/tests/integration/test_s3_helpers.py:150"}, "properties": {"repobilityId": "65a9475682dd2484", "scanner": "scanner-primary", "fingerprint": "fd30852778615ca6", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "legacy-marker", "dead-code"]}}, {"ruleId": "scanner-7dc316bbe1046176", "level": "note", "message": {"text": "Legacy-named symbol `list_objects_v2` in receipt_chroma/tests/integration/test_delta_producer.py:68"}, "properties": {"repobilityId": "9e02b8b03180e735", "scanner": "scanner-primary", "fingerprint": "7dc316bbe1046176", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "legacy-marker", "dead-code"]}}, {"ruleId": "scanner-9c61d3904c6325fe", "level": "none", "message": {"text": "Commented-code block (5 lines) in receipt_chroma/tests/unit/test_dual_write.py:402"}, "properties": {"repobilityId": "f0f972342ff18035", "scanner": "scanner-primary", "fingerprint": "9c61d3904c6325fe", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-34ed8ba5d8072913", "level": "note", "message": {"text": "Legacy-named symbol `model_v1` in receipt_chroma/tests/unit/test_embedding_records.py:294"}, "properties": {"repobilityId": "54c29cd46107d695", "scanner": "scanner-primary", "fingerprint": "34ed8ba5d8072913", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "legacy-marker", "dead-code"]}}, {"ruleId": "scanner-92cbd646b55a54e3", "level": "note", "message": {"text": "Legacy-named symbol `list_objects_v2` in receipt_chroma/receipt_chroma/compaction/deltas.py:403"}, "properties": {"repobilityId": "57451b4ef50f602c", "scanner": "scanner-primary", "fingerprint": "92cbd646b55a54e3", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "legacy-marker", "dead-code"]}}, {"ruleId": "scanner-cbe7f10b6bd9fd47", "level": "note", "message": {"text": "Legacy-named symbol `list_objects_v2` in receipt_chroma/receipt_chroma/s3/helpers.py:319"}, "properties": {"repobilityId": "8698b460e3c9ec63", "scanner": "scanner-primary", "fingerprint": "cbe7f10b6bd9fd47", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "legacy-marker", "dead-code"]}}, {"ruleId": "scanner-11bfdd531fad0f43", "level": "note", "message": {"text": "Legacy-named symbol `list_objects_v2` in receipt_langsmith/receipt_langsmith/parsers/parquet.py:101"}, "properties": {"repobilityId": "24e20d40c562dd38", "scanner": "scanner-primary", "fingerprint": "11bfdd531fad0f43", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "legacy-marker", "dead-code"]}}, {"ruleId": "scanner-32d4c021e8f6f557", "level": "note", "message": {"text": "Legacy-named symbol `list_objects_v2` in receipt_langsmith/receipt_langsmith/spark/merged_job.py:1131"}, "properties": {"repobilityId": "abc58653634ace11", "scanner": "scanner-primary", "fingerprint": "32d4c021e8f6f557", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "legacy-marker", "dead-code"]}}, {"ruleId": "scanner-a72cc662242b7b13", "level": "none", "message": {"text": "Commented-code block (6 lines) in receipt_langsmith/receipt_langsmith/spark/merged_job.py:904"}, "properties": {"repobilityId": "7d998b0dcb3038fd", "scanner": "scanner-primary", "fingerprint": "a72cc662242b7b13", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-849e418e87f623fc", "level": "note", "message": {"text": "Legacy-named symbol `from_legacy` in receipt_langsmith/receipt_langsmith/spark/qa_viz_cache_job.py:107"}, "properties": {"repobilityId": "56b3474b834dee74", "scanner": "scanner-primary", "fingerprint": "849e418e87f623fc", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "legacy-marker", "dead-code"]}}, {"ruleId": "scanner-05dfcb52127e7a7b", "level": "note", "message": {"text": "Legacy-named symbol `list_objects_v2` in receipt_langsmith/receipt_langsmith/spark/evaluator_patterns_viz_cache.py:364"}, "properties": {"repobilityId": "d51125b8af8b114f", "scanner": "scanner-primary", "fingerprint": "05dfcb52127e7a7b", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "legacy-marker", "dead-code"]}}, {"ruleId": "scanner-ddfd27e10be65e59", "level": "note", "message": {"text": "Legacy-named symbol `from_legacy` in receipt_langsmith/receipt_langsmith/spark/qa_viz_cache_helpers.py:90"}, "properties": {"repobilityId": "40c61e7617b7d857", "scanner": "scanner-primary", "fingerprint": "ddfd27e10be65e59", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "legacy-marker", "dead-code"]}}, {"ruleId": "scanner-045f9e62ccd1b3ef", "level": "note", "message": {"text": "Legacy-named symbol `list_objects_v2` in portfolio/scripts/investigate_receipt_files.py:48"}, "properties": {"repobilityId": "3f9bc5596b006a8a", "scanner": "scanner-primary", "fingerprint": "045f9e62ccd1b3ef", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "legacy-marker", "dead-code"]}}, {"ruleId": "scanner-6ee526f9fe287c74", "level": "note", "message": {"text": "Legacy-named symbol `entities_to_copy` in portfolio/scripts/check_corrupted_entities.py:97"}, "properties": {"repobilityId": "45f31c96d5cd370c", "scanner": "scanner-primary", "fingerprint": "6ee526f9fe287c74", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "legacy-marker", "dead-code"]}}, {"ruleId": "scanner-d3d91d0720664812", "level": "note", "message": {"text": "Legacy-named symbol `list_objects_v2` in portfolio/scripts/analyze_receipt_patterns.py:30"}, "properties": {"repobilityId": "299b79e32f940939", "scanner": "scanner-primary", "fingerprint": "d3d91d0720664812", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "legacy-marker", "dead-code"]}}, {"ruleId": "scanner-8c3144d86a7a3169", "level": "note", "message": {"text": "Legacy-named symbol `list_objects_v2` in portfolio/scripts/comprehensive_image_check.py:140"}, "properties": {"repobilityId": "2bf0d6bed73a1d78", "scanner": "scanner-primary", "fingerprint": "8c3144d86a7a3169", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "legacy-marker", "dead-code"]}}, {"ruleId": "scanner-c165dc6ab534b6fb", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 portfolio/scripts/download-api-data.js:6"}, "properties": {"repobilityId": "1fa5b1385eacb971", "scanner": "scanner-primary", "fingerprint": "c165dc6ab534b6fb", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-337e5de4f13cec41", "level": "note", "message": {"text": "Legacy-named symbol `list_objects_v2` in portfolio/scripts/analyze_prod_cdn_structure.py:72"}, "properties": {"repobilityId": "04be50e2fe837d3d", "scanner": "scanner-primary", "fingerprint": "337e5de4f13cec41", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "legacy-marker", "dead-code"]}}, {"ruleId": "scanner-5195709f464da7c7", "level": "note", "message": {"text": "Legacy-named symbol `list_objects_v2` in portfolio/scripts/simple_s3_investigation.py:25"}, "properties": {"repobilityId": "563135e4e9a81d49", "scanner": "scanner-primary", "fingerprint": "5195709f464da7c7", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "legacy-marker", "dead-code"]}}, {"ruleId": "scanner-112b4287d0d03968", "level": "note", "message": {"text": "Legacy-named symbol `list_objects_v2` in portfolio/scripts/find_receipts_with_cdn_images.py:167"}, "properties": {"repobilityId": "2d507bac266b34f3", "scanner": "scanner-primary", "fingerprint": "112b4287d0d03968", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "legacy-marker", "dead-code"]}}, {"ruleId": "scanner-cba1291a204688a9", "level": "note", "message": {"text": "Legacy-named symbol `list_objects_v2` in portfolio/scripts/find_dev_cdn_records.py:84"}, "properties": {"repobilityId": "c6332a6089c3c382", "scanner": "scanner-primary", "fingerprint": "cba1291a204688a9", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "legacy-marker", "dead-code"]}}, {"ruleId": "scanner-16c5db9b1bd7ffb7", "level": "note", "message": {"text": "Legacy-named symbol `list_objects_v2` in portfolio/scripts/analyze_receipt_cdn_mapping.py:35"}, "properties": {"repobilityId": "afb39239693780c2", "scanner": "scanner-primary", "fingerprint": "16c5db9b1bd7ffb7", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "legacy-marker", "dead-code"]}}, {"ruleId": "scanner-75eb9ebebbdae158", "level": "note", "message": {"text": "Legacy-named symbol `list_objects_v2` in portfolio/scripts/check_image_cdn_mapping.py:37"}, "properties": {"repobilityId": "407b01192673c377", "scanner": "scanner-primary", "fingerprint": "75eb9ebebbdae158", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "legacy-marker", "dead-code"]}}, {"ruleId": "scanner-63f7e5fa5111db34", "level": "note", "message": {"text": "Legacy-named symbol `list_objects_v2` in portfolio/scripts/comprehensive_cdn_analysis.py:67"}, "properties": {"repobilityId": "f8c558a0281c938d", "scanner": "scanner-primary", "fingerprint": "63f7e5fa5111db34", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "legacy-marker", "dead-code"]}}, {"ruleId": "scanner-6f4762e5ae86f1aa", "level": "note", "message": {"text": "Legacy-named symbol `list_objects_v2` in portfolio/scripts/analyze_cdn_mapping.py:35"}, "properties": {"repobilityId": "e6af38cf9abc0e5d", "scanner": "scanner-primary", "fingerprint": "6f4762e5ae86f1aa", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "legacy-marker", "dead-code"]}}, {"ruleId": "scanner-8562c6f1112893a1", "level": "none", "message": {"text": "Commented-code block (8 lines) in portfolio/components/ui/AnimatedInView.tsx:37"}, "properties": {"repobilityId": "2cc96abef844ce36", "scanner": "scanner-primary", "fingerprint": "8562c6f1112893a1", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-5460e467fe87c5bf", "level": "none", "message": {"text": "Commented-code block (6 lines) in portfolio/components/ui/Figures/CICDLoop.tsx:590"}, "properties": {"repobilityId": "bf675226e76fe4bb", "scanner": "scanner-primary", "fingerprint": "5460e467fe87c5bf", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-0725cde05d825885", "level": "none", "message": {"text": "Commented-code block (6 lines) in portfolio/components/ui/Figures/ReceiptStack.tsx:213"}, "properties": {"repobilityId": "04c412761b61bf39", "scanner": "scanner-primary", "fingerprint": "0725cde05d825885", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-690e7a8b1f66c867", "level": "none", "message": {"text": "Commented-code block (5 lines) in portfolio/components/ui/Figures/TrainingMetricsAnimation/index.tsx:88"}, "properties": {"repobilityId": "749e7c1299175f96", "scanner": "scanner-primary", "fingerprint": "690e7a8b1f66c867", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-e95bfe9c62786a5e", "level": "none", "message": {"text": "Commented-code block (9 lines) in portfolio/pages/receipt.tsx:138"}, "properties": {"repobilityId": "283e3a4e30e5fb2e", "scanner": "scanner-primary", "fingerprint": "e95bfe9c62786a5e", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-4e01fee878c6f889", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 portfolio/hooks/useQAQueue.ts:7"}, "properties": {"repobilityId": "d43fbf72ff33e64d", "scanner": "scanner-primary", "fingerprint": "4e01fee878c6f889", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-f9c80e24219ca9a5", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 portfolio/hooks/useUploadProgress.ts:148"}, "properties": {"repobilityId": "a7d7e827ec5e3729", "scanner": "scanner-primary", "fingerprint": "f9c80e24219ca9a5", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-1f5cab0d5713bb8f", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 portfolio/services/api/index.ts:35"}, "properties": {"repobilityId": "b4267e8304fc995d", "scanner": "scanner-primary", "fingerprint": "1f5cab0d5713bb8f", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-c69e31f2a10ba17f", "level": "none", "message": {"text": "Commented-code block (5 lines) in portfolio/e2e/qa-agent-flow.spec.ts:273"}, "properties": {"repobilityId": "144da2d9b007d9f8", "scanner": "scanner-primary", "fingerprint": "c69e31f2a10ba17f", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-17c17138d04171a4", "level": "note", "message": {"text": "Legacy-named symbol `api_calls_legacy` in receipt_places/monitoring.py:36"}, "properties": {"repobilityId": "1a65c9dadaa967e3", "scanner": "scanner-primary", "fingerprint": "17c17138d04171a4", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "legacy-marker", "dead-code"]}}, {"ruleId": "scanner-b71e23db6ce03ad9", "level": "note", "message": {"text": "Legacy-named symbol `adapt_v1_geometry_to_legacy` in receipt_places/tests/test_adapter.py:11"}, "properties": {"repobilityId": "bccbead390f6ed15", "scanner": "scanner-primary", "fingerprint": "b71e23db6ce03ad9", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "legacy-marker", "dead-code"]}}, {"ruleId": "scanner-0fd14602b9b7e8de", "level": "note", "message": {"text": "Legacy-named symbol `client_v1` in receipt_places/receipt_places/client.py:689"}, "properties": {"repobilityId": "dd8be8909383b5b2", "scanner": "scanner-primary", "fingerprint": "0fd14602b9b7e8de", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "legacy-marker", "dead-code"]}}, {"ruleId": "scanner-1ce1b300e375bd13", "level": "note", "message": {"text": "Legacy-named symbol `adapt_v1_to_legacy` in receipt_places/receipt_places/client_v1.py:28"}, "properties": {"repobilityId": "7e82aa10a440ac91", "scanner": "scanner-primary", "fingerprint": "1ce1b300e375bd13", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "legacy-marker", "dead-code"]}}, {"ruleId": "scanner-4dd8e2b6954a90ee", "level": "note", "message": {"text": "Legacy-named symbol `types_v1` in receipt_places/receipt_places/adapter.py:26"}, "properties": {"repobilityId": "078ce54ef7df1ddd", "scanner": "scanner-primary", "fingerprint": "4dd8e2b6954a90ee", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "legacy-marker", "dead-code"]}}, {"ruleId": "scanner-dec04e2b0d802e1f", "level": "none", "message": {"text": "Commented-code block (10 lines) in infra/instance_registry.py:194"}, "properties": {"repobilityId": "265f5b045c50efb5", "scanner": "scanner-primary", "fingerprint": "dec04e2b0d802e1f", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-f1903f19d790562d", "level": "none", "message": {"text": "Commented-code block (6 lines) in infra/__main__.py:65"}, "properties": {"repobilityId": "d37849037f1021f2", "scanner": "scanner-primary", "fingerprint": "f1903f19d790562d", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-7db2a99844057c00", "level": "note", "message": {"text": "Legacy-named symbol `list_objects_v2` in infra/chroma/lambdas/entrypoint.py:36"}, "properties": {"repobilityId": "c6aa74309c2ee795", "scanner": "scanner-primary", "fingerprint": "7db2a99844057c00", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "legacy-marker", "dead-code"]}}, {"ruleId": "scanner-c77a414746b67efa", "level": "none", "message": {"text": "Commented-code block (19 lines) in infra/upload_images/infra.py:750"}, "properties": {"repobilityId": "08837f2cbcb09d82", "scanner": "scanner-primary", "fingerprint": "c77a414746b67efa", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-ead6f0efbaea0dff", "level": "none", "message": {"text": "Commented-code block (6 lines) in infra/upload_images/container_ocr/handler/ocr_processor.py:668"}, "properties": {"repobilityId": "5ab1052474a2507d", "scanner": "scanner-primary", "fingerprint": "ead6f0efbaea0dff", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-b06de24ee1131b03", "level": "none", "message": {"text": "Commented-code block (8 lines) in infra/upload_images/container_ocr/handler/handler.py:228"}, "properties": {"repobilityId": "e6d628c829829968", "scanner": "scanner-primary", "fingerprint": "b06de24ee1131b03", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-10e5a49fb76425db", "level": "note", "message": {"text": "Legacy-named symbol `list_objects_v2` in infra/upload_images/container_ocr/handler/efs_snapshot_manager.py:178"}, "properties": {"repobilityId": "17758c04f8068719", "scanner": "scanner-primary", "fingerprint": "10e5a49fb76425db", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "legacy-marker", "dead-code"]}}, {"ruleId": "scanner-a29d143027e1cd9f", "level": "warning", "message": {"text": "Network/subprocess call without timeout or try/except \u2014 infra/scripts/query_langsmith_traces.py:20"}, "properties": {"repobilityId": "40bddface44d3bef", "scanner": "scanner-primary", "fingerprint": "a29d143027e1cd9f", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-4629f845c7685302", "level": "note", "message": {"text": "Legacy-named symbol `list_objects_v2` in infra/components/langsmith_bulk_export/lambdas/setup.py:182"}, "properties": {"repobilityId": "06023d697484195d", "scanner": "scanner-primary", "fingerprint": "4629f845c7685302", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "legacy-marker", "dead-code"]}}, {"ruleId": "scanner-ddc5a5bd99531403", "level": "none", "message": {"text": "Commented-code block (5 lines) in infra/metadata_harmonizer_step_functions/lambdas/harmonize_metadata.py:184"}, "properties": {"repobilityId": "71ac87a4c5a10132", "scanner": "scanner-primary", "fingerprint": "ddc5a5bd99531403", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-d663b27d6c8d603b", "level": "note", "message": {"text": "Legacy-named symbol `list_objects_v2` in infra/label_evaluator_step_functions/lambdas/build_viz_cache.py:71"}, "properties": {"repobilityId": "f04e110774769d2f", "scanner": "scanner-primary", "fingerprint": "d663b27d6c8d603b", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "legacy-marker", "dead-code"]}}, {"ruleId": "scanner-94c1b8aca3b02ccc", "level": "note", "message": {"text": "Legacy-named symbol `list_objects_v2` in infra/embedding_step_functions/unified_embedding/handlers/compaction.py:3115"}, "properties": {"repobilityId": "38645f3a127cd40a", "scanner": "scanner-primary", "fingerprint": "94c1b8aca3b02ccc", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "legacy-marker", "dead-code"]}}, {"ruleId": "scanner-d6f7c9eb43a2f092", "level": "warning", "message": {"text": "Network/subprocess call without timeout or try/except \u2014 infra/embedding_step_functions/components/docker_image.py:49"}, "properties": {"repobilityId": "ddb50e265ce51137", "scanner": "scanner-primary", "fingerprint": "d6f7c9eb43a2f092", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-8c5956c27554e7a6", "level": "note", "message": {"text": "Legacy-named symbol `word_copy` in infra/combine_receipts_step_functions/lambdas/records_builder.py:105"}, "properties": {"repobilityId": "9261c367de5acb7a", "scanner": "scanner-primary", "fingerprint": "8c5956c27554e7a6", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "legacy-marker", "dead-code"]}}, {"ruleId": "scanner-1638c9165e9e20ef", "level": "none", "message": {"text": "Commented-code block (6 lines) in infra/combine_receipts_step_functions/lambdas/records_builder.py:608"}, "properties": {"repobilityId": "32b3406246f3a72c", "scanner": "scanner-primary", "fingerprint": "1638c9165e9e20ef", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-609cb70664c6832b", "level": "none", "message": {"text": "Commented-code block (6 lines) in infra/routes/job_training_metrics/handler/index.py:23"}, "properties": {"repobilityId": "fb902b86ec3cec18", "scanner": "scanner-primary", "fingerprint": "609cb70664c6832b", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-6de1b19bb5f15038", "level": "none", "message": {"text": "Commented-code block (9 lines) in infra/routes/label_validation_count/infra.py:109"}, "properties": {"repobilityId": "49c77cb352711b76", "scanner": "scanner-primary", "fingerprint": "6de1b19bb5f15038", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-faf50ac134e294da", "level": "note", "message": {"text": "Legacy-named symbol `list_objects_v2` in infra/routes/qa_viz_cache/lambdas/index.py:109"}, "properties": {"repobilityId": "9a15f1f1f12d61a6", "scanner": "scanner-primary", "fingerprint": "faf50ac134e294da", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "legacy-marker", "dead-code"]}}, {"ruleId": "scanner-7b84d44ccab324c0", "level": "note", "message": {"text": "Legacy-named symbol `list_objects_v2` in infra/routes/label_validation_viz_cache/lambdas/index.py:47"}, "properties": {"repobilityId": "e7fa0b430f60e397", "scanner": "scanner-primary", "fingerprint": "7b84d44ccab324c0", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "legacy-marker", "dead-code"]}}, {"ruleId": "scanner-0e903080017ed4af", "level": "note", "message": {"text": "Legacy-named symbol `list_objects_v2` in infra/routes/layoutlm_inference/handler/index.py:41"}, "properties": {"repobilityId": "d581c2e5f128f6ae", "scanner": "scanner-primary", "fingerprint": "0e903080017ed4af", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "legacy-marker", "dead-code"]}}, {"ruleId": "scanner-81d320c49afad919", "level": "none", "message": {"text": "Commented-code block (6 lines) in infra/routes/word_similarity_cache_generator/lambdas/index.py:672"}, "properties": {"repobilityId": "fb8a943701bb316a", "scanner": "scanner-primary", "fingerprint": "81d320c49afad919", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-168ae176e3dddd24", "level": "note", "message": {"text": "Legacy-named symbol `list_objects_v2` in infra/routes/label_evaluator_viz_cache/lambdas/index.py:55"}, "properties": {"repobilityId": "9675e4dfde3d335f", "scanner": "scanner-primary", "fingerprint": "168ae176e3dddd24", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "legacy-marker", "dead-code"]}}, {"ruleId": "scanner-11af6af29a5eae76", "level": "none", "message": {"text": "Commented-code block (5 lines) in infra/routes/layoutlm_inference_cache_generator/lambdas/index.py:341"}, "properties": {"repobilityId": "290c489338d3f88e", "scanner": "scanner-primary", "fingerprint": "11af6af29a5eae76", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-3dab564bd5c6adde", "level": "none", "message": {"text": "Commented-code block (5 lines) in infra/chromadb_compaction/tests/test_enhanced_compaction_unit.py:261"}, "properties": {"repobilityId": "d82e6308f7c3c636", "scanner": "scanner-primary", "fingerprint": "3dab564bd5c6adde", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-1b8a4c4af0c62646", "level": "note", "message": {"text": "Legacy-named symbol `list_objects_v2` in infra/chromadb_compaction/tests/integration/test_aws_service_integration.py:170"}, "properties": {"repobilityId": "8dc93b3a0d102cd0", "scanner": "scanner-primary", "fingerprint": "1b8a4c4af0c62646", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "legacy-marker", "dead-code"]}}, {"ruleId": "scanner-d9a9de74c60ad4f5", "level": "warning", "message": {"text": "Network/subprocess call without timeout or try/except \u2014 infra/chromadb_compaction/components/docker_image.py:49"}, "properties": {"repobilityId": "de248b8aa8f5a85c", "scanner": "scanner-primary", "fingerprint": "d9a9de74c60ad4f5", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-4d040b796c5690ad", "level": "none", "message": {"text": "Commented-code block (10 lines) in infra/chromadb_compaction/components/lambda_functions.py:172"}, "properties": {"repobilityId": "b5d89f71fe3ec9e2", "scanner": "scanner-primary", "fingerprint": "4d040b796c5690ad", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-32e45bd7e0260494", "level": "none", "message": {"text": "Commented-code block (6 lines) in infra/chromadb_compaction/lambdas/enhanced_compaction_handler.py:32"}, "properties": {"repobilityId": "cc6a745fe4fef39b", "scanner": "scanner-primary", "fingerprint": "32e45bd7e0260494", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-3d02ba7a1d4679fb", "level": "none", "message": {"text": "Commented-code block (5 lines) in infra/chromadb_compaction/lambdas/stream_processor.py:27"}, "properties": {"repobilityId": "ca3f442b2d0fe685", "scanner": "scanner-primary", "fingerprint": "3d02ba7a1d4679fb", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-3e1e8bca320de5cf", "level": "none", "message": {"text": "Commented-code block (5 lines) in infra/chromadb_compaction/lambdas/processor/message_builder.py:48"}, "properties": {"repobilityId": "eda008874ff6fdbb", "scanner": "scanner-primary", "fingerprint": "3e1e8bca320de5cf", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-303e77ec64a09940", "level": "warning", "message": {"text": "Network/subprocess call without timeout or try/except \u2014 infra/sagemaker_training/train.py:206"}, "properties": {"repobilityId": "04f1fe2409b9c09e", "scanner": "scanner-primary", "fingerprint": "303e77ec64a09940", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-01bf36be6cbab832", "level": "none", "message": {"text": "Commented-code block (5 lines) in infra/fix_place_lambda/lambdas/fix_place.py:198"}, "properties": {"repobilityId": "a8266154ee185acf", "scanner": "scanner-primary", "fingerprint": "01bf36be6cbab832", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-52a6d36c3e012b00", "level": "none", "message": {"text": "Commented-code block (6 lines) in infra/label_refresh_lambda/infrastructure.py:232"}, "properties": {"repobilityId": "028a3d50447681b6", "scanner": "scanner-primary", "fingerprint": "52a6d36c3e012b00", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-b1c3f1723ea47646", "level": "none", "message": {"text": "Commented-code block (7 lines) in infra/label_refresh_lambda/lambdas/label_refresh.py:337"}, "properties": {"repobilityId": "0e2c3fc4aeead2cf", "scanner": "scanner-primary", "fingerprint": "b1c3f1723ea47646", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-7feefe3992aeb0cb", "level": "warning", "message": {"text": "Network/subprocess call without timeout or try/except \u2014 .github/pr-reviews/scripts/fetch-pr-reviews-paginated.py:25"}, "properties": {"repobilityId": "d181ad8c340c7458", "scanner": "scanner-primary", "fingerprint": "7feefe3992aeb0cb", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-2c04133e54348533", "level": "note", "message": {"text": "Near-duplicate function bodies in 2 places"}, "properties": {"repobilityId": "3347fc6f38c0657b", "scanner": "scanner-primary", "fingerprint": "2c04133e54348533", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "duplicate", "dry"]}}, {"ruleId": "scanner-be46ea126aa5d8dc", "level": "note", "message": {"text": "Near-duplicate function bodies in 3 places"}, "properties": {"repobilityId": "1c82383d6e66cbdd", "scanner": "scanner-primary", "fingerprint": "be46ea126aa5d8dc", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "duplicate", "dry"]}}, {"ruleId": "scanner-be46ea126aa5d8dc", "level": "note", "message": {"text": "Near-duplicate function bodies in 3 places"}, "properties": {"repobilityId": "423c8f58947a2c8e", "scanner": "scanner-primary", "fingerprint": "be46ea126aa5d8dc", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "duplicate", "dry"]}}, {"ruleId": "scanner-2c04133e54348533", "level": "note", "message": {"text": "Near-duplicate function bodies in 2 places"}, "properties": {"repobilityId": "5b5793dd7ebda568", "scanner": "scanner-primary", "fingerprint": "2c04133e54348533", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "duplicate", "dry"]}}, {"ruleId": "scanner-2c04133e54348533", "level": "note", "message": {"text": "Near-duplicate function bodies in 2 places"}, "properties": {"repobilityId": "adfcf803696d8747", "scanner": "scanner-primary", "fingerprint": "2c04133e54348533", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "duplicate", "dry"]}}, {"ruleId": "scanner-2c04133e54348533", "level": "note", "message": {"text": "Near-duplicate function bodies in 2 places"}, "properties": {"repobilityId": "7762502fb457029c", "scanner": "scanner-primary", "fingerprint": "2c04133e54348533", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "duplicate", "dry"]}}, {"ruleId": "scanner-2c04133e54348533", "level": "note", "message": {"text": "Near-duplicate function bodies in 2 places"}, "properties": {"repobilityId": "648f3f662547c00e", "scanner": "scanner-primary", "fingerprint": "2c04133e54348533", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "duplicate", "dry"]}}, {"ruleId": "scanner-2c04133e54348533", "level": "note", "message": {"text": "Near-duplicate function bodies in 2 places"}, "properties": {"repobilityId": "60018ee51e066049", "scanner": "scanner-primary", "fingerprint": "2c04133e54348533", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "duplicate", "dry"]}}, {"ruleId": "scanner-2c04133e54348533", "level": "note", "message": {"text": "Near-duplicate function bodies in 2 places"}, "properties": {"repobilityId": "61856f1ef5f310aa", "scanner": "scanner-primary", "fingerprint": "2c04133e54348533", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "duplicate", "dry"]}}, {"ruleId": "scanner-2c04133e54348533", "level": "note", "message": {"text": "Near-duplicate function bodies in 2 places"}, "properties": {"repobilityId": "3c3d8b0f34348b04", "scanner": "scanner-primary", "fingerprint": "2c04133e54348533", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "duplicate", "dry"]}}, {"ruleId": "scanner-2c04133e54348533", "level": "note", "message": {"text": "Near-duplicate function bodies in 2 places"}, "properties": {"repobilityId": "89adbace29e22f98", "scanner": "scanner-primary", "fingerprint": "2c04133e54348533", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "duplicate", "dry"]}}, {"ruleId": "scanner-be46ea126aa5d8dc", "level": "note", "message": {"text": "Near-duplicate function bodies in 3 places"}, "properties": {"repobilityId": "a848b11fb2ad554d", "scanner": "scanner-primary", "fingerprint": "be46ea126aa5d8dc", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "duplicate", "dry"]}}, {"ruleId": "scanner-02525d39071dd2c7", "level": "note", "message": {"text": "Near-duplicate function bodies in 5 places"}, "properties": {"repobilityId": "28b9bc5a98a6d7cc", "scanner": "scanner-primary", "fingerprint": "02525d39071dd2c7", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "duplicate", "dry"]}}, {"ruleId": "scanner-2c04133e54348533", "level": "note", "message": {"text": "Near-duplicate function bodies in 2 places"}, "properties": {"repobilityId": "db62f4074531bc12", "scanner": "scanner-primary", "fingerprint": "2c04133e54348533", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "duplicate", "dry"]}}, {"ruleId": "scanner-02525d39071dd2c7", "level": "note", "message": {"text": "Near-duplicate function bodies in 5 places"}, "properties": {"repobilityId": "ef2bfc66914043e7", "scanner": "scanner-primary", "fingerprint": "02525d39071dd2c7", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "duplicate", "dry"]}}, {"ruleId": "scanner-2c04133e54348533", "level": "note", "message": {"text": "Near-duplicate function bodies in 2 places"}, "properties": {"repobilityId": "35ce183236b991b8", "scanner": "scanner-primary", "fingerprint": "2c04133e54348533", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "duplicate", "dry"]}}, {"ruleId": "scanner-2c04133e54348533", "level": "note", "message": {"text": "Near-duplicate function bodies in 2 places"}, "properties": {"repobilityId": "b5a512505c284162", "scanner": "scanner-primary", "fingerprint": "2c04133e54348533", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "duplicate", "dry"]}}, {"ruleId": "scanner-2c04133e54348533", "level": "note", "message": {"text": "Near-duplicate function bodies in 2 places"}, "properties": {"repobilityId": "8fc56e2cf1e27213", "scanner": "scanner-primary", "fingerprint": "2c04133e54348533", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "duplicate", "dry"]}}, {"ruleId": "scanner-be46ea126aa5d8dc", "level": "note", "message": {"text": "Near-duplicate function bodies in 3 places"}, "properties": {"repobilityId": "3f71a6376ff5fe53", "scanner": "scanner-primary", "fingerprint": "be46ea126aa5d8dc", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "duplicate", "dry"]}}, {"ruleId": "scanner-be46ea126aa5d8dc", "level": "note", "message": {"text": "Near-duplicate function bodies in 3 places"}, "properties": {"repobilityId": "43ae59fddc5663c7", "scanner": "scanner-primary", "fingerprint": "be46ea126aa5d8dc", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "duplicate", "dry"]}}]}]}