{"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-5da7bbe80944ecd6", "name": "Possibly dead Python function: repl", "shortDescription": {"text": "Possibly dead Python function: repl"}, "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-e11949063b9551e5", "name": "Possibly dead Python function: send_reset_link_for_employee", "shortDescription": {"text": "Possibly dead Python function: send_reset_link_for_employee"}, "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-c13d6021b9b0a0a2", "name": "Possibly dead Python function: ensure_schema", "shortDescription": {"text": "Possibly dead Python function: ensure_schema"}, "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-1b34e599946b9425", "name": "Possibly dead Python function: payroll_visible", "shortDescription": {"text": "Possibly dead Python function: payroll_visible"}, "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-3bc99bd08eb5924c", "name": "Possibly dead Python function: mask_rows", "shortDescription": {"text": "Possibly dead Python function: mask_rows"}, "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-ab33b6bf453b6b2b", "name": "Possibly dead Python function: count_active_owners", "shortDescription": {"text": "Possibly dead Python function: count_active_owners"}, "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-73098c09c802db75", "name": "Possibly dead Python function: classify_file", "shortDescription": {"text": "Possibly dead Python function: classify_file"}, "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-79010de56bd14a66", "name": "Possibly dead Python function: run_account_ingest", "shortDescription": {"text": "Possibly dead Python function: run_account_ingest"}, "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-eebfdc0cb4ecab55", "name": "Possibly dead Python function: send_with_request_id", "shortDescription": {"text": "Possibly dead Python function: send_with_request_id"}, "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-3bc61d1edd86f228", "name": "Possibly dead Python function: render_substitute_receipt", "shortDescription": {"text": "Possibly dead Python function: render_substitute_receipt"}, "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-d02ee3939fbe8732", "name": "Possibly dead Python function: render_wht_cert", "shortDescription": {"text": "Possibly dead Python function: render_wht_cert"}, "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-ae18a49684473588", "name": "Possibly dead Python function: create_rich_menu", "shortDescription": {"text": "Possibly dead Python function: create_rich_menu"}, "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-12c274fd7619734b", "name": "Possibly dead Python function: image_to_pdf_bytes", "shortDescription": {"text": "Possibly dead Python function: image_to_pdf_bytes"}, "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-e81469ebad5f844f", "name": "Stray `console.log` in TS/JS \u2014 tests/visual/test_design_fidelity.spec.js:675", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 tests/visual/test_design_fidelity.spec.js:675"}, "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-c40008ad62bca809", "name": "Stray `console.log` in TS/JS \u2014 static/erp-mrerp-connect.js:1304", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 static/erp-mrerp-connect.js:1304"}, "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-45b30b2a8ad764c0", "name": "Icon-only button without accessible name \u2014 static/admin/admin.js:1472", "shortDescription": {"text": "Icon-only button without accessible name \u2014 static/admin/admin.js:1472"}, "fullDescription": {"text": "A `<button>` whose only child is a single glyph or symbol needs `title=` or `aria-label=` so screen readers (and tooltips on hover) work.\n\nWhy: P3 in CHECKLIST.md \u2014 icon-only buttons skipped a title.\nRule id: fq.button.no-label"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "low", "confidence": 1.0}}, {"id": "scanner-3891529f0b05229b", "name": "Icon-only button without accessible name \u2014 static/pos/pos-cashier.js:189", "shortDescription": {"text": "Icon-only button without accessible name \u2014 static/pos/pos-cashier.js:189"}, "fullDescription": {"text": "A `<button>` whose only child is a single glyph or symbol needs `title=` or `aria-label=` so screen readers (and tooltips on hover) work.\n\nWhy: P3 in CHECKLIST.md \u2014 icon-only buttons skipped a title.\nRule id: fq.button.no-label"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "low", "confidence": 1.0}}, {"id": "scanner-4a67aa619fdba639", "name": "Icon-only button without accessible name \u2014 static/pos/pos-ops.js:86", "shortDescription": {"text": "Icon-only button without accessible name \u2014 static/pos/pos-ops.js:86"}, "fullDescription": {"text": "A `<button>` whose only child is a single glyph or symbol needs `title=` or `aria-label=` so screen readers (and tooltips on hover) work.\n\nWhy: P3 in CHECKLIST.md \u2014 icon-only buttons skipped a title.\nRule id: fq.button.no-label"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "low", "confidence": 1.0}}, {"id": "scanner-56f645cf94a6a68f", "name": "Icon-only button without accessible name \u2014 static/pos/pos-restaurant.js:406", "shortDescription": {"text": "Icon-only button without accessible name \u2014 static/pos/pos-restaurant.js:406"}, "fullDescription": {"text": "A `<button>` whose only child is a single glyph or symbol needs `title=` or `aria-label=` so screen readers (and tooltips on hover) work.\n\nWhy: P3 in CHECKLIST.md \u2014 icon-only buttons skipped a title.\nRule id: fq.button.no-label"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "low", "confidence": 1.0}}, {"id": "scanner-e15462c53405ae7f", "name": "Icon-only button without accessible name \u2014 src/home/bank-recon-queue.ts:121", "shortDescription": {"text": "Icon-only button without accessible name \u2014 src/home/bank-recon-queue.ts:121"}, "fullDescription": {"text": "A `<button>` whose only child is a single glyph or symbol needs `title=` or `aria-label=` so screen readers (and tooltips on hover) work.\n\nWhy: P3 in CHECKLIST.md \u2014 icon-only buttons skipped a title.\nRule id: fq.button.no-label"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "low", "confidence": 1.0}}, {"id": "scanner-6976ca789986ab79", "name": "Icon-only button without accessible name \u2014 src/home/erp-log-detail.ts:264", "shortDescription": {"text": "Icon-only button without accessible name \u2014 src/home/erp-log-detail.ts:264"}, "fullDescription": {"text": "A `<button>` whose only child is a single glyph or symbol needs `title=` or `aria-label=` so screen readers (and tooltips on hover) work.\n\nWhy: P3 in CHECKLIST.md \u2014 icon-only buttons skipped a title.\nRule id: fq.button.no-label"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "low", "confidence": 1.0}}, {"id": "scanner-87f9ef82d8b588ad", "name": "Icon-only button without accessible name \u2014 src/home/sales-wizard-steps.ts:150", "shortDescription": {"text": "Icon-only button without accessible name \u2014 src/home/sales-wizard-steps.ts:150"}, "fullDescription": {"text": "A `<button>` whose only child is a single glyph or symbol needs `title=` or `aria-label=` so screen readers (and tooltips on hover) work.\n\nWhy: P3 in CHECKLIST.md \u2014 icon-only buttons skipped a title.\nRule id: fq.button.no-label"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "low", "confidence": 1.0}}, {"id": "scanner-def4f9e569f2ef11", "name": "Icon-only button without accessible name \u2014 src/home/recon-drawer.ts:155", "shortDescription": {"text": "Icon-only button without accessible name \u2014 src/home/recon-drawer.ts:155"}, "fullDescription": {"text": "A `<button>` whose only child is a single glyph or symbol needs `title=` or `aria-label=` so screen readers (and tooltips on hover) work.\n\nWhy: P3 in CHECKLIST.md \u2014 icon-only buttons skipped a title.\nRule id: fq.button.no-label"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "low", "confidence": 1.0}}, {"id": "scanner-d63da3583b14afc0", "name": "Dockerfile runs as root: Dockerfile", "shortDescription": {"text": "Dockerfile runs as root: 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-e066691601852931", "name": "Docker base image is tag-pinned but not digest-pinned: python:3.11-slim", "shortDescription": {"text": "Docker base image is tag-pinned but not digest-pinned: python:3.11-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-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-9710c8d059e53154", "name": "No frontend routes/components detected", "shortDescription": {"text": "No frontend routes/components detected"}, "fullDescription": {"text": "No React/Vue/Next routes were found. This is fine for backend-only repos."}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "info", "confidence": 1.0}}, {"id": "scanner-bb73b8ab05529d94", "name": "Insecure pattern 'direct_innerhtml_assignment' in static/recon-review.js:250", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in static/recon-review.js:250"}, "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-fd4d7b19f08f72bf", "name": "Insecure pattern 'direct_innerhtml_assignment' in static/erp-mrerp-connect.js:779", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in static/erp-mrerp-connect.js:779"}, "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-7e33830a4e48c698", "name": "Insecure pattern 'direct_innerhtml_assignment' in static/recon-mapping.js:214", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in static/recon-mapping.js:214"}, "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-73f969bb6aa8dbdf", "name": "Insecure pattern 'direct_innerhtml_assignment' in static/admin/admin.js:38", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in static/admin/admin.js:38"}, "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-470a3bb58fab728d", "name": "Possible secret in static/landing/landing-i18n.js", "shortDescription": {"text": "Possible secret in static/landing/landing-i18n.js"}, "fullDescription": {"text": "Detected pattern matching password_literal. Rotate the credential and move to a secret manager."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "critical", "confidence": 1.0}}, {"id": "scanner-d4f52c560a72c495", "name": "Insecure pattern 'direct_innerhtml_assignment' in static/landing/landing-i18n.js:379", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in static/landing/landing-i18n.js:379"}, "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-281420c391e757d0", "name": "Possible secret in static/landing/landing.js", "shortDescription": {"text": "Possible secret in static/landing/landing.js"}, "fullDescription": {"text": "Detected pattern matching password_literal. Rotate the credential and move to a secret manager."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "critical", "confidence": 1.0}}, {"id": "scanner-9d2e79b0d89bde5b", "name": "Insecure pattern 'direct_innerhtml_assignment' in static/landing/landing.js:50", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in static/landing/landing.js:50"}, "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-ed6b942325e32412", "name": "Insecure pattern 'local_storage_auth_token' in static/landing/landing.js:266", "shortDescription": {"text": "Insecure pattern 'local_storage_auth_token' in static/landing/landing.js:266"}, "fullDescription": {"text": "Found a known-risky pattern (local_storage_auth_token). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-91f771d7c5eb5ea5", "name": "Insecure pattern 'direct_innerhtml_assignment' in static/pos/pos.js:121", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in static/pos/pos.js:121"}, "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-6c5a210212429e3a", "name": "Insecure pattern 'document_write' in static/pos/pos-cashier.js:459", "shortDescription": {"text": "Insecure pattern 'document_write' in static/pos/pos-cashier.js:459"}, "fullDescription": {"text": "Found a known-risky pattern (document_write). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "low", "confidence": 1.0}}, {"id": "scanner-9b3c642aba276ed7", "name": "Insecure pattern 'direct_innerhtml_assignment' in static/pos/pos-cashier.js:44", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in static/pos/pos-cashier.js:44"}, "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-3d9e916af233ce38", "name": "Insecure pattern 'direct_innerhtml_assignment' in static/pos/pos-ops.js:32", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in static/pos/pos-ops.js:32"}, "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-0b800c2e83d58343", "name": "Insecure pattern 'direct_innerhtml_assignment' in static/pos/pos-restaurant.js:90", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in static/pos/pos-restaurant.js:90"}, "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-f95b20b075074f5b", "name": "Insecure pattern 'direct_innerhtml_assignment' in static/pos/pos-restaurant-ops.js:61", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in static/pos/pos-restaurant-ops.js:61"}, "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-116c7ea83cc7acab", "name": "Possible secret in static/console/invite.js", "shortDescription": {"text": "Possible secret in static/console/invite.js"}, "fullDescription": {"text": "Detected pattern matching password_literal. Rotate the credential and move to a secret manager."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "critical", "confidence": 1.0}}, {"id": "scanner-169925ced56564d3", "name": "Insecure pattern 'direct_innerhtml_assignment' in static/console/invite.js:106", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in static/console/invite.js:106"}, "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-ce49a10b08864603", "name": "Insecure pattern 'direct_innerhtml_assignment' in static/console/console.js:293", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in static/console/console.js:293"}, "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-444046361649be5b", "name": "Insecure pattern 'local_storage_auth_token' in scripts/_acct_shot.cjs:136", "shortDescription": {"text": "Insecure pattern 'local_storage_auth_token' in scripts/_acct_shot.cjs:136"}, "fullDescription": {"text": "Found a known-risky pattern (local_storage_auth_token). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-70072e9b5b29eb5e", "name": "Insecure pattern 'local_storage_auth_token' in scripts/_rcx_test.cjs:42", "shortDescription": {"text": "Insecure pattern 'local_storage_auth_token' in scripts/_rcx_test.cjs:42"}, "fullDescription": {"text": "Found a known-risky pattern (local_storage_auth_token). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-2ebf777163e8e0ed", "name": "Insecure pattern 'direct_innerhtml_assignment' in design-preview/pearnly-ui.html:615", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in design-preview/pearnly-ui.html:615"}, "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-c323501afd735ab4", "name": "Possible secret in services/erp/erp_mrerp_listing.py", "shortDescription": {"text": "Possible secret in services/erp/erp_mrerp_listing.py"}, "fullDescription": {"text": "Detected pattern matching password_literal. Rotate the credential and move to a secret manager."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "critical", "confidence": 1.0}}, {"id": "scanner-46a96f490fba73b8", "name": "Insecure pattern 'direct_innerhtml_assignment' in src/home/recon-subtab-settings.ts:43", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in src/home/recon-subtab-settings.ts:43"}, "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-f721026f0dd4903b", "name": "Insecure pattern 'direct_innerhtml_assignment' in src/home/email-ingest.ts:226", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in src/home/email-ingest.ts:226"}, "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-e7de8af66decf7c0", "name": "Insecure pattern 'direct_innerhtml_assignment' in src/home/workspace-switcher.ts:179", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in src/home/workspace-switcher.ts:179"}, "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-aa2c52d6f3d8457a", "name": "Insecure pattern 'direct_outerhtml_assignment' in src/home/workspace-switcher.ts:236", "shortDescription": {"text": "Insecure pattern 'direct_outerhtml_assignment' in src/home/workspace-switcher.ts:236"}, "fullDescription": {"text": "Found a known-risky pattern (direct_outerhtml_assignment). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-2dd83f3b5c79efa2", "name": "Insecure pattern 'direct_innerhtml_assignment' in src/home/settings-core.ts:90", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in src/home/settings-core.ts:90"}, "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-9ef72dd980d937ce", "name": "Insecure pattern 'direct_innerhtml_assignment' in src/home/acct-review.ts:106", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in src/home/acct-review.ts:106"}, "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-fbe6f8d51ae8934c", "name": "Insecure pattern 'direct_innerhtml_assignment' in src/home/purchase-form-lines.ts:190", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in src/home/purchase-form-lines.ts:190"}, "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-93a900d75c1d0aa4", "name": "Insecure pattern 'direct_innerhtml_assignment' in src/home/tax-center.ts:167", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in src/home/tax-center.ts:167"}, "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-32256102b06aad01", "name": "Insecure pattern 'direct_innerhtml_assignment' in src/home/ocr-results.ts:34", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in src/home/ocr-results.ts:34"}, "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-d978732c0b726481", "name": "Insecure pattern 'direct_innerhtml_assignment' in src/home/archive-settings.ts:109", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in src/home/archive-settings.ts:109"}, "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-2443c8d67eedbb5a", "name": "Insecure pattern 'direct_innerhtml_assignment' in src/home/acct-modals.ts:58", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in src/home/acct-modals.ts:58"}, "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-3272f60df3d765e5", "name": "Insecure pattern 'direct_innerhtml_assignment' in src/home/page-exceptions.ts:16", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in src/home/page-exceptions.ts:16"}, "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-6f482bb1f78a7814", "name": "Insecure pattern 'direct_innerhtml_assignment' in src/home/acct-bank.ts:236", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in src/home/acct-bank.ts:236"}, "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-5fdbd9fc6f3641bb", "name": "Insecure pattern 'direct_innerhtml_assignment' in src/home/purchase-form.ts:164", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in src/home/purchase-form.ts:164"}, "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-d961366018f84ec9", "name": "Insecure pattern 'direct_outerhtml_assignment' in src/home/erp-xero.ts:201", "shortDescription": {"text": "Insecure pattern 'direct_outerhtml_assignment' in src/home/erp-xero.ts:201"}, "fullDescription": {"text": "Found a known-risky pattern (direct_outerhtml_assignment). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-556186b09f6c7e66", "name": "Insecure pattern 'insert_adjacent_html' in src/home/erp-xero.ts:203", "shortDescription": {"text": "Insecure pattern 'insert_adjacent_html' in src/home/erp-xero.ts:203"}, "fullDescription": {"text": "Found a known-risky pattern (insert_adjacent_html). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-8e7ca0732db67b09", "name": "Insecure pattern 'direct_innerhtml_assignment' in src/home/pos-onboarding.ts:69", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in src/home/pos-onboarding.ts:69"}, "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-8bddfea1b7a04d52", "name": "Insecure pattern 'direct_innerhtml_assignment' in src/home/welcome-wizard.ts:54", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in src/home/welcome-wizard.ts:54"}, "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-520e2883933c092a", "name": "Insecure pattern 'direct_innerhtml_assignment' in src/home/sales-detail.ts:40", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in src/home/sales-detail.ts:40"}, "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-279ea27a93afddf5", "name": "Insecure pattern 'direct_innerhtml_assignment' in src/home/modal-archive-rule.ts:13", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in src/home/modal-archive-rule.ts:13"}, "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-47f0e0a5127440ac", "name": "Insecure pattern 'direct_innerhtml_assignment' in src/home/workspace-gate.ts:124", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in src/home/workspace-gate.ts:124"}, "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-b2a991b9503b6a17", "name": "Insecure pattern 'direct_innerhtml_assignment' in src/home/acct-settings.ts:253", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in src/home/acct-settings.ts:253"}, "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-3680f4b6b13c6aec", "name": "Insecure pattern 'direct_innerhtml_assignment' in src/home/client-assign.ts:88", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in src/home/client-assign.ts:88"}, "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-63c418e61431b285", "name": "Insecure pattern 'direct_innerhtml_assignment' in src/home/acct-list.ts:209", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in src/home/acct-list.ts:209"}, "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-c72e1025bd7f50b3", "name": "Insecure pattern 'direct_innerhtml_assignment' in src/home/big-batch-progress.ts:54", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in src/home/big-batch-progress.ts:54"}, "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-ee7b76be5e4e08de", "name": "Insecure pattern 'direct_innerhtml_assignment' in src/home/pos-cashiers.ts:180", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in src/home/pos-cashiers.ts:180"}, "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-593d9d100932a511", "name": "Insecure pattern 'direct_innerhtml_assignment' in src/home/dashboard.ts:108", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in src/home/dashboard.ts:108"}, "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-5503cd0931aaf843", "name": "Insecure pattern 'direct_innerhtml_assignment' in src/home/knowledge-ask.ts:58", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in src/home/knowledge-ask.ts:58"}, "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-6574f983d23589a7", "name": "Insecure pattern 'direct_innerhtml_assignment' in src/home/tax-pp30.ts:94", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in src/home/tax-pp30.ts:94"}, "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-610afd9c6ba9a1dc", "name": "Insecure pattern 'direct_innerhtml_assignment' in src/home/recon-center-x-render.ts:61", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in src/home/recon-center-x-render.ts:61"}, "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-cdf1307f8550ceda", "name": "Insecure pattern 'direct_innerhtml_assignment' in src/home/erp-mappings.ts:95", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in src/home/erp-mappings.ts:95"}, "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-e21822a365c3f2e2", "name": "Insecure pattern 'direct_innerhtml_assignment' in src/home/sales-workbench.ts:124", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in src/home/sales-workbench.ts:124"}, "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-bb6a8ebeae4927da", "name": "Insecure pattern 'direct_innerhtml_assignment' in src/home/page-placeholders.ts:82", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in src/home/page-placeholders.ts:82"}, "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-c49d2c914665c4cc", "name": "Insecure pattern 'direct_innerhtml_assignment' in src/home/erp-integration.ts:59", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in src/home/erp-integration.ts:59"}, "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-08161b1cb539f65e", "name": "Insecure pattern 'direct_innerhtml_assignment' in src/home/knowledge-sources.ts:84", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in src/home/knowledge-sources.ts:84"}, "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-fb58103c4eb93248", "name": "Insecure pattern 'direct_innerhtml_assignment' in src/home/page-reconcile.ts:18", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in src/home/page-reconcile.ts:18"}, "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-3b2838a1844b0e0c", "name": "Insecure pattern 'direct_innerhtml_assignment' in src/home/billing.ts:80", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in src/home/billing.ts:80"}, "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-6b799c9f76c7cf28", "name": "Insecure pattern 'direct_innerhtml_assignment' in src/home/clients-buyer.ts:56", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in src/home/clients-buyer.ts:56"}, "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-a318fbfd105e7d81", "name": "Insecure pattern 'direct_innerhtml_assignment' in src/home/bank-recon-sessions.ts:60", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in src/home/bank-recon-sessions.ts:60"}, "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-41bb743dbe2657f9", "name": "Insecure pattern 'direct_innerhtml_assignment' in src/home/page-dashboard.ts:16", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in src/home/page-dashboard.ts:16"}, "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-f42166758f587974", "name": "Insecure pattern 'direct_innerhtml_assignment' in src/home/pos-payment-settings.ts:92", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in src/home/pos-payment-settings.ts:92"}, "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-c6c545c9de6726e7", "name": "Insecure pattern 'direct_innerhtml_assignment' in src/home/page-settings.ts:18", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in src/home/page-settings.ts:18"}, "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-28fccdfeb5292fe7", "name": "Insecure pattern 'direct_innerhtml_assignment' in src/home/history-list.ts:163", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in src/home/history-list.ts:163"}, "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-25cc6f40d9579bed", "name": "Insecure pattern 'direct_innerhtml_assignment' in src/home/purchase-liff.ts:37", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in src/home/purchase-liff.ts:37"}, "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-3c85a242d7e1086a", "name": "Insecure pattern 'local_storage_auth_token' in src/home/purchase-liff.ts:98", "shortDescription": {"text": "Insecure pattern 'local_storage_auth_token' in src/home/purchase-liff.ts:98"}, "fullDescription": {"text": "Found a known-risky pattern (local_storage_auth_token). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-9318c0c07ce132f3", "name": "Insecure pattern 'direct_innerhtml_assignment' in src/home/settings-panels.ts:21", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in src/home/settings-panels.ts:21"}, "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-c7c8965d4a456ff4", "name": "Insecure pattern 'direct_innerhtml_assignment' in src/home/purchase-detail.ts:252", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in src/home/purchase-detail.ts:252"}, "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-5ff16963eac02565", "name": "Insecure pattern 'direct_innerhtml_assignment' in src/home/page-automation.ts:19", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in src/home/page-automation.ts:19"}, "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-2c1afbdac6b6acdb", "name": "Insecure pattern 'direct_innerhtml_assignment' in src/home/notifications.ts:56", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in src/home/notifications.ts:56"}, "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-7a911a929d1281b9", "name": "Insecure pattern 'direct_innerhtml_assignment' in src/home/purchase-suppliers.ts:111", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in src/home/purchase-suppliers.ts:111"}, "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-4624f314fdb9f3ae", "name": "Insecure pattern 'direct_innerhtml_assignment' in src/home/pos-tables.ts:136", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in src/home/pos-tables.ts:136"}, "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-710feef0a1dddaab", "name": "Insecure pattern 'direct_innerhtml_assignment' in src/home/knowledge-documents.ts:90", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in src/home/knowledge-documents.ts:90"}, "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-1e4e569f15c3c19f", "name": "Insecure pattern 'direct_innerhtml_assignment' in src/home/purchase-modals.ts:66", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in src/home/purchase-modals.ts:66"}, "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-9636f552714bb609", "name": "Insecure pattern 'direct_innerhtml_assignment' in src/home/folder-watcher.ts:106", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in src/home/folder-watcher.ts:106"}, "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-8458539f3970e0b9", "name": "Insecure pattern 'direct_innerhtml_assignment' in src/home/dms-intake.ts:45", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in src/home/dms-intake.ts:45"}, "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-5b9f2f0f98b24b50", "name": "Insecure pattern 'direct_innerhtml_assignment' in src/home/recon-center-x-results.ts:309", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in src/home/recon-center-x-results.ts:309"}, "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-65ff50b3b9328760", "name": "Insecure pattern 'direct_innerhtml_assignment' in src/home/change-password.ts:202", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in src/home/change-password.ts:202"}, "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-157ea8f233a612ea", "name": "Insecure pattern 'direct_innerhtml_assignment' in src/home/purchase-capture.ts:78", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in src/home/purchase-capture.ts:78"}, "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-4698dac4643192d7", "name": "Insecure pattern 'direct_innerhtml_assignment' in src/home/page-integrations.ts:14", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in src/home/page-integrations.ts:14"}, "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-12aba9e8b0629d36", "name": "Insecure pattern 'direct_innerhtml_assignment' in src/home/topbar-avatar.ts:84", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in src/home/topbar-avatar.ts:84"}, "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-2abca0413ad31255", "name": "Insecure pattern 'direct_innerhtml_assignment' in src/home/bank-recon-queue.ts:76", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in src/home/bank-recon-queue.ts:76"}, "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-7863c1bcf5059c21", "name": "Insecure pattern 'direct_innerhtml_assignment' in src/home/ocr-push.ts:59", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in src/home/ocr-push.ts:59"}, "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-d6a17d5935d0e6b8", "name": "Insecure pattern 'direct_innerhtml_assignment' in src/home/dms-intake-invoice-submit.ts:65", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in src/home/dms-intake-invoice-submit.ts:65"}, "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-26457fdca39dfd32", "name": "Insecure pattern 'direct_innerhtml_assignment' in src/home/exceptions-list.ts:94", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in src/home/exceptions-list.ts:94"}, "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-3a76f592bf54c4bc", "name": "Insecure pattern 'direct_innerhtml_assignment' in src/home/purchase-inbox.ts:141", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in src/home/purchase-inbox.ts:141"}, "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-b600291431b557d0", "name": "Insecure pattern 'direct_innerhtml_assignment' in src/home/page-history.ts:15", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in src/home/page-history.ts:15"}, "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-5d7cfc3f0ff1901f", "name": "Insecure pattern 'direct_innerhtml_assignment' in src/home/exceptions-learned.ts:17", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in src/home/exceptions-learned.ts:17"}, "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-9912bcfd0c2bc081", "name": "Insecure pattern 'direct_innerhtml_assignment' in src/home/purchase-settings.ts:148", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in src/home/purchase-settings.ts:148"}, "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-f986e52bb9dab449", "name": "Insecure pattern 'direct_innerhtml_assignment' in src/home/sales-products.ts:54", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in src/home/sales-products.ts:54"}, "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-4c0f24ce291bdcca", "name": "Insecure pattern 'direct_innerhtml_assignment' in src/home/history-drawer.ts:95", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in src/home/history-drawer.ts:95"}, "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-4314606f38922583", "name": "Insecure pattern 'direct_innerhtml_assignment' in src/home/purchase-google.ts:43", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in src/home/purchase-google.ts:43"}, "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-b1244f5d69a59b0e", "name": "Insecure pattern 'direct_innerhtml_assignment' in src/home/knowledge-info.ts:73", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in src/home/knowledge-info.ts:73"}, "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-e85de7de6589020a", "name": "Insecure pattern 'direct_innerhtml_assignment' in src/home/page-knowledge.ts:35", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in src/home/page-knowledge.ts:35"}, "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-9516e6e11908ea4c", "name": "Insecure pattern 'direct_innerhtml_assignment' in src/home/bank-recon-picker.ts:102", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in src/home/bank-recon-picker.ts:102"}, "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-7d16e34aec7f50f0", "name": "Insecure pattern 'direct_innerhtml_assignment' in src/home/line-email-modal.ts:23", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in src/home/line-email-modal.ts:23"}, "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-9440769734217223", "name": "Insecure pattern 'local_storage_auth_token' in src/home/line-email-modal.ts:66", "shortDescription": {"text": "Insecure pattern 'local_storage_auth_token' in src/home/line-email-modal.ts:66"}, "fullDescription": {"text": "Found a known-risky pattern (local_storage_auth_token). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-2c84c029f48a2e7e", "name": "Insecure pattern 'direct_innerhtml_assignment' in src/home/clients-seller.ts:87", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in src/home/clients-seller.ts:87"}, "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-ed8940f9490f1e3c", "name": "Insecure pattern 'direct_innerhtml_assignment' in src/home/module-settings.ts:116", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in src/home/module-settings.ts:116"}, "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-661076b99d642e89", "name": "Insecure pattern 'direct_innerhtml_assignment' in src/home/email-ingest-form.ts:16", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in src/home/email-ingest-form.ts:16"}, "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-d3c185ba628061d1", "name": "Insecure pattern 'direct_innerhtml_assignment' in src/home/erp-exceptions-edit.ts:85", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in src/home/erp-exceptions-edit.ts:85"}, "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-bdcbac705fbc4665", "name": "Insecure pattern 'direct_innerhtml_assignment' in src/home/settings-general.ts:67", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in src/home/settings-general.ts:67"}, "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-50caae7586f19672", "name": "Insecure pattern 'direct_innerhtml_assignment' in src/home/onboarding-flow.ts:215", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in src/home/onboarding-flow.ts:215"}, "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-c5a724805f2893cc", "name": "Insecure pattern 'direct_innerhtml_assignment' in src/home/page-clients.ts:15", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in src/home/page-clients.ts:15"}, "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-09ef27b8b08360a2", "name": "Insecure pattern 'direct_innerhtml_assignment' in src/home/core.ts:184", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in src/home/core.ts:184"}, "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-c9d5b17b8d1036a0", "name": "Insecure pattern 'direct_innerhtml_assignment' in src/home/sales-settings.ts:45", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in src/home/sales-settings.ts:45"}, "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-e09854069eb3c0fc", "name": "Insecure pattern 'direct_innerhtml_assignment' in src/home/boot-ui-extras.ts:73", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in src/home/boot-ui-extras.ts:73"}, "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-1376863ba5b1501f", "name": "Insecure pattern 'direct_innerhtml_assignment' in src/home/sales-wizard.ts:66", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in src/home/sales-wizard.ts:66"}, "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-b0bd113fdf38224f", "name": "Insecure pattern 'direct_innerhtml_assignment' in src/home/access-log.ts:32", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in src/home/access-log.ts:32"}, "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-e3307f3b6a9c5e65", "name": "Insecure pattern 'direct_innerhtml_assignment' in src/home/dms-intake-confirm.ts:60", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in src/home/dms-intake-confirm.ts:60"}, "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-a6c3b760c7166b85", "name": "Insecure pattern 'direct_innerhtml_assignment' in src/home/acct-accounts.ts:104", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in src/home/acct-accounts.ts:104"}, "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-f80831a900a0dc91", "name": "Insecure pattern 'direct_innerhtml_assignment' in src/home/purchase-export.ts:59", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in src/home/purchase-export.ts:59"}, "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-9d26b282f4017950", "name": "Insecure pattern 'direct_innerhtml_assignment' in src/home/tax-settings.ts:126", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in src/home/tax-settings.ts:126"}, "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-c3064d2ac5f07110", "name": "Insecure pattern 'direct_innerhtml_assignment' in src/home/bank-recon-drawer.ts:24", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in src/home/bank-recon-drawer.ts:24"}, "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-30d4595b8cc1a534", "name": "Insecure pattern 'direct_innerhtml_assignment' in src/home/acct-common.ts:256", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in src/home/acct-common.ts:256"}, "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-1ec8b896e6032202", "name": "Insecure pattern 'direct_innerhtml_assignment' in src/home/exceptions-drawer-render.ts:194", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in src/home/exceptions-drawer-render.ts:194"}, "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-8bcc5a5982e68ea0", "name": "Insecure pattern 'direct_innerhtml_assignment' in src/home/sales-account.ts:119", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in src/home/sales-account.ts:119"}, "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-ed801ba0aa289277", "name": "Insecure pattern 'direct_innerhtml_assignment' in src/home/knowledge-api.ts:77", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in src/home/knowledge-api.ts:77"}, "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-e8cde42d96206379", "name": "Insecure pattern 'direct_innerhtml_assignment' in src/home/knowledge-fab.ts:68", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in src/home/knowledge-fab.ts:68"}, "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-886d4904ddd0e75f", "name": "Insecure pattern 'direct_innerhtml_assignment' in src/home/sales-report.ts:183", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in src/home/sales-report.ts:183"}, "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-0cdd159c84e7baec", "name": "Insecure pattern 'direct_innerhtml_assignment' in src/home/layout.ts:84", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in src/home/layout.ts:84"}, "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-c3eb3e84736e07c4", "name": "Insecure pattern 'direct_innerhtml_assignment' in src/home/line-panel.ts:137", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in src/home/line-panel.ts:137"}, "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-c1d41f56415b317a", "name": "Insecure pattern 'direct_innerhtml_assignment' in src/home/onboarding-business.ts:47", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in src/home/onboarding-business.ts:47"}, "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-5ca9a7e688dfcfc6", "name": "Insecure pattern 'direct_innerhtml_assignment' in src/home/modal-help.ts:51", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in src/home/modal-help.ts:51"}, "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-be5dfe992015f81e", "name": "Insecure pattern 'direct_innerhtml_assignment' in src/home/erp-log-detail.ts:39", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in src/home/erp-log-detail.ts:39"}, "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-e9ba49b685c29bb7", "name": "Insecure pattern 'direct_innerhtml_assignment' in src/home/clients.ts:34", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in src/home/clients.ts:34"}, "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-e4cce8d5e40d1cd9", "name": "Insecure pattern 'direct_innerhtml_assignment' in src/home/inventory-modals.ts:101", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in src/home/inventory-modals.ts:101"}, "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-ba2df9ca1ba34e77", "name": "Insecure pattern 'insert_adjacent_html' in src/home/inventory-modals.ts:110", "shortDescription": {"text": "Insecure pattern 'insert_adjacent_html' in src/home/inventory-modals.ts:110"}, "fullDescription": {"text": "Found a known-risky pattern (insert_adjacent_html). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-59f0981c80c30d2b", "name": "Insecure pattern 'direct_innerhtml_assignment' in src/home/bank-recon-detail.ts:56", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in src/home/bank-recon-detail.ts:56"}, "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-7153ded51c3d5b30", "name": "Insecure pattern 'direct_innerhtml_assignment' in src/home/workspace-gate-boot.js:35", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in src/home/workspace-gate-boot.js:35"}, "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-e1da8e9e7c091cb4", "name": "Insecure pattern 'direct_innerhtml_assignment' in src/home/erp-xero-push.ts:50", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in src/home/erp-xero-push.ts:50"}, "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-6b50d671af64e6b2", "name": "Insecure pattern 'direct_innerhtml_assignment' in src/home/unified-push.ts:49", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in src/home/unified-push.ts:49"}, "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-0cd1c0b3406aea13", "name": "Insecure pattern 'direct_innerhtml_assignment' in src/home/recon-center-x-history.ts:86", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in src/home/recon-center-x-history.ts:86"}, "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-3ae57c5c86380550", "name": "Insecure pattern 'direct_innerhtml_assignment' in src/home/confirm-modal.ts:52", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in src/home/confirm-modal.ts:52"}, "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-5712f6fcb23e076c", "name": "Insecure pattern 'direct_innerhtml_assignment' in src/home/acct-books.ts:240", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in src/home/acct-books.ts:240"}, "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-b037341e2dedb9d4", "name": "Insecure pattern 'direct_innerhtml_assignment' in src/home/erp-exceptions.ts:100", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in src/home/erp-exceptions.ts:100"}, "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-9ddd2a21e4f1eabc", "name": "Insecure pattern 'direct_innerhtml_assignment' in src/home/knowledge-center.ts:20", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in src/home/knowledge-center.ts:20"}, "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-5581f75680dc7386", "name": "Insecure pattern 'direct_innerhtml_assignment' in src/home/company-profile.ts:122", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in src/home/company-profile.ts:122"}, "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-b9395c064645144b", "name": "Insecure pattern 'direct_innerhtml_assignment' in src/home/erp-mrerp-dms-connect.ts:114", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in src/home/erp-mrerp-dms-connect.ts:114"}, "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-513f70a79265ab9a", "name": "Insecure pattern 'direct_innerhtml_assignment' in src/home/tax-pnd.ts:115", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in src/home/tax-pnd.ts:115"}, "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-2fcb343d897b04c5", "name": "Insecure pattern 'direct_innerhtml_assignment' in src/home/dms-intake-invoice.ts:124", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in src/home/dms-intake-invoice.ts:124"}, "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-2f4ec4e358181f41", "name": "Insecure pattern 'direct_innerhtml_assignment' in src/home/acct-manual.ts:167", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in src/home/acct-manual.ts:167"}, "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-7eec46fd14ddab9a", "name": "Insecure pattern 'direct_innerhtml_assignment' in src/home/modal-notif-new.ts:13", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in src/home/modal-notif-new.ts:13"}, "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-e5dde056a6f9faf0", "name": "Insecure pattern 'direct_innerhtml_assignment' in src/home/rules-settings.ts:131", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in src/home/rules-settings.ts:131"}, "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-78e3b0d15cb0a3f7", "name": "Insecure pattern 'direct_innerhtml_assignment' in src/home/toast.ts:119", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in src/home/toast.ts:119"}, "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-7c8638e00e32383d", "name": "Insecure pattern 'direct_innerhtml_assignment' in src/home/wb-inject.ts:10", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in src/home/wb-inject.ts:10"}, "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-291f8a5af6fca082", "name": "Insecure pattern 'direct_innerhtml_assignment' in src/home/purchase-list.ts:200", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in src/home/purchase-list.ts:200"}, "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-13a7edbb849028ba", "name": "Insecure pattern 'direct_innerhtml_assignment' in src/home/erp-endpoints.ts:57", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in src/home/erp-endpoints.ts:57"}, "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-94a2b2ab39f3c70a", "name": "Insecure pattern 'direct_innerhtml_assignment' in src/home/integration-drawer.ts:130", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in src/home/integration-drawer.ts:130"}, "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-c3c586024840014a", "name": "Insecure pattern 'direct_innerhtml_assignment' in src/home/recon-drawer.ts:60", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in src/home/recon-drawer.ts:60"}, "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-7400f420c9d440c4", "name": "Insecure pattern 'direct_innerhtml_assignment' in src/home/modal-archive-token.ts:13", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in src/home/modal-archive-token.ts:13"}, "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-a976da760cd92786", "name": "Insecure pattern 'direct_innerhtml_assignment' in src/home/recon-center-x-tpl.ts:104", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in src/home/recon-center-x-tpl.ts:104"}, "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-fa23da3f1221c103", "name": "Insecure pattern 'direct_innerhtml_assignment' in src/home/erp-onboard.ts:33", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in src/home/erp-onboard.ts:33"}, "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-15ccb38515b540bd", "name": "Insecure pattern 'direct_innerhtml_assignment' in src/home/inventory.ts:125", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in src/home/inventory.ts:125"}, "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-2a460e5042f976f9", "name": "Insecure pattern 'direct_innerhtml_assignment' in design-reference/pearnly_reconciliation_redesign_v2.html:972", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in design-reference/pearnly_reconciliation_redesign_v2.html:972"}, "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-27924aa79fa4a517", "name": "GitHub Action is tag-pinned rather than SHA-pinned", "shortDescription": {"text": "GitHub Action is tag-pinned rather than SHA-pinned"}, "fullDescription": {"text": "actions/checkout@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-03e2e53fcbc50d16", "name": "Very large file: tests/unit/test_erp_test_connection_route_dispatch.py (2356 lines)", "shortDescription": {"text": "Very large file: tests/unit/test_erp_test_connection_route_dispatch.py (2356 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-f8d2e7ce19910784", "name": "Very large file: static/erp-mrerp-connect.js (2299 lines)", "shortDescription": {"text": "Very large file: static/erp-mrerp-connect.js (2299 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-d2a360c76c832f29", "name": "Very large file: static/admin/admin.js (2903 lines)", "shortDescription": {"text": "Very large file: static/admin/admin.js (2903 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-f2c8dc337feccac4", "name": "Very large file: static/pos/pos-i18n.js (857 lines)", "shortDescription": {"text": "Very large file: static/pos/pos-i18n.js (857 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-62e2c5c12b56ff40", "name": "Very large file: static/console/console.js (1858 lines)", "shortDescription": {"text": "Very large file: static/console/console.js (1858 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-9e39f1a1022945da", "name": "Very large file: static/console/console-i18n.js (1166 lines)", "shortDescription": {"text": "Very large file: static/console/console-i18n.js (1166 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-141b30a41e03817b", "name": "No license file detected", "shortDescription": {"text": "No license file detected"}, "fullDescription": {"text": "No LICENSE/COPYING/NOTICE file was found. Generated repositories often omit licensing, which blocks reuse and automated intake."}, "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 569 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 255 placeholder/mock markers across 95 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-749d4bc1bd66df5f", "name": "Agent instructions exist but release-hardening basics are missing", "shortDescription": {"text": "Agent instructions exist but release-hardening basics are missing"}, "fullDescription": {"text": "AI-coder instruction files were found, but the repo is missing license. Treat this as a contract gap: the agent is guided, but the generated output is not yet guarded by the controls that make it repeatable."}, "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-122f91b7f2906dc4", "name": "Agent authority lacks a verifier contract: .claude/settings.json", "shortDescription": {"text": "Agent authority lacks a verifier contract: .claude/settings.json"}, "fullDescription": {"text": "This agent instruction grants code or shell authority but does not state the verification gate that decides promotion. The recurring safe pattern is: LLM proposes; deterministic tests/build/security checks verify; only verified code promotes."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-6685e18ddf5bead5", "name": "Commented-code block (5 lines) in app.py:336", "shortDescription": {"text": "Commented-code block (5 lines) in app.py:336"}, "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-68d523322c7e2e7d", "name": "Commented-code block (5 lines) in eslint.config.mjs:3", "shortDescription": {"text": "Commented-code block (5 lines) in eslint.config.mjs:3"}, "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-282285c7d4cf6bc9", "name": "Legacy-named symbol `model_copy` in tests/test_layer3_fallback.py:174", "shortDescription": {"text": "Legacy-named symbol `model_copy` in tests/test_layer3_fallback.py:174"}, "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-eb815e2dc328c6fd", "name": "Legacy-named symbol `test_dict_passthrough_as_copy` in tests/integration/test_recon_field_override_safety_net.py:77", "shortDescription": {"text": "Legacy-named symbol `test_dict_passthrough_as_copy` in tests/integration/test_recon_field_override_safety_net.py:77"}, "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-b6fec7a6f3c4419d", "name": "Commented-code block (5 lines) in tests/integration/test_mrerp_e2e_auto_sync.py:143", "shortDescription": {"text": "Commented-code block (5 lines) in tests/integration/test_mrerp_e2e_auto_sync.py:143"}, "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-18f47901fa9e2574", "name": "Legacy-named symbol `bank_recon_v2` in tests/unit/test_run_matching_contract.py:14", "shortDescription": {"text": "Legacy-named symbol `bank_recon_v2` in tests/unit/test_run_matching_contract.py:14"}, "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-b83ab4bdd79df9dc", "name": "Legacy-named symbol `bank_recon_v2` in tests/unit/test_bank_v2_continuation_page_balance.py:22", "shortDescription": {"text": "Legacy-named symbol `bank_recon_v2` in tests/unit/test_bank_v2_continuation_page_balance.py:22"}, "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-20af9398c7c473f7", "name": "Legacy-named symbol `bank_recon_v2` in tests/unit/test_reconcile_golden.py:13", "shortDescription": {"text": "Legacy-named symbol `bank_recon_v2` in tests/unit/test_reconcile_golden.py:13"}, "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-f1090f6d0451ec2b", "name": "Legacy-named symbol `bank_recon_v2` in tests/unit/test_gl_template_integration.py:10", "shortDescription": {"text": "Legacy-named symbol `bank_recon_v2` in tests/unit/test_gl_template_integration.py:10"}, "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-ddbc2e238d997305", "name": "Legacy-named symbol `pipeline_v1` in tests/unit/test_ocr_response_no_engine_leak.py:33", "shortDescription": {"text": "Legacy-named symbol `pipeline_v1` in tests/unit/test_ocr_response_no_engine_leak.py:33"}, "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-3d64c64c1963c305", "name": "Legacy-named symbol `bank_recon_v2` in tests/unit/test_csv_stmt.py:8", "shortDescription": {"text": "Legacy-named symbol `bank_recon_v2` in tests/unit/test_csv_stmt.py:8"}, "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-93d922d94b254296", "name": "Legacy-named symbol `bank_recon_v2` in tests/unit/test_brv2_mismatch_warn.py:17", "shortDescription": {"text": "Legacy-named symbol `bank_recon_v2` in tests/unit/test_brv2_mismatch_warn.py:17"}, "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-33d947609c8af809", "name": "Commented-code block (5 lines) in tests/unit/test_mrerp_validate_history.py:214", "shortDescription": {"text": "Commented-code block (5 lines) in tests/unit/test_mrerp_validate_history.py:214"}, "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-13a5ec04c77aabb8", "name": "Legacy-named symbol `_override_after_copy` in tests/unit/test_mrerp_master_data_verify.py:377", "shortDescription": {"text": "Legacy-named symbol `_override_after_copy` in tests/unit/test_mrerp_master_data_verify.py:377"}, "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-12f32399d59e0c38", "name": "Legacy-named symbol `test_response_shape_is_rich_not_legacy` in tests/unit/test_erp_test_connection_route_dispatch.py:17", "shortDescription": {"text": "Legacy-named symbol `test_response_shape_is_rich_not_legacy` in tests/unit/test_erp_test_connection_route_dispatch.py:176"}, "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-9e641e2e284e411f", "name": "Commented-code block (5 lines) in tests/unit/test_erp_test_connection_route_dispatch.py:1510", "shortDescription": {"text": "Commented-code block (5 lines) in tests/unit/test_erp_test_connection_route_dispatch.py:1510"}, "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-6594dc66165e7282", "name": "Legacy-named symbol `bank_recon_v2` in tests/unit/test_recon_gl_csv_preflight.py:14", "shortDescription": {"text": "Legacy-named symbol `bank_recon_v2` in tests/unit/test_recon_gl_csv_preflight.py:14"}, "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-747965fc97cb4255", "name": "Legacy-named symbol `bank_recon_v2` in tests/unit/test_importer_gl_inference_contract.py:11", "shortDescription": {"text": "Legacy-named symbol `bank_recon_v2` in tests/unit/test_importer_gl_inference_contract.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-d57d2e1f3641918b", "name": "Legacy-named symbol `bank_recon_v2` in tests/unit/test_bank_v2_xlsx_multisheet.py:23", "shortDescription": {"text": "Legacy-named symbol `bank_recon_v2` in tests/unit/test_bank_v2_xlsx_multisheet.py:23"}, "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-83cb8a86bf82e60c", "name": "Legacy-named symbol `bank_recon_v2` in tests/unit/test_bank_v2_amount_repair.py:19", "shortDescription": {"text": "Legacy-named symbol `bank_recon_v2` in tests/unit/test_bank_v2_amount_repair.py:19"}, "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-6a40dd0e85c658b6", "name": "Legacy-named symbol `bank_recon_v2` in tests/unit/test_stmt_template_integration.py:16", "shortDescription": {"text": "Legacy-named symbol `bank_recon_v2` in tests/unit/test_stmt_template_integration.py:16"}, "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-414283a18cf7b5bf", "name": "Legacy-named symbol `test_copy_kind_original_and_copy` in tests/unit/test_sales_pdf.py:109", "shortDescription": {"text": "Legacy-named symbol `test_copy_kind_original_and_copy` in tests/unit/test_sales_pdf.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-346bc267907b9fde", "name": "Legacy-named symbol `is_copy` in tests/unit/test_ocr_history_store_contract.py:41", "shortDescription": {"text": "Legacy-named symbol `is_copy` in tests/unit/test_ocr_history_store_contract.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-dac8f44d0bb37cda", "name": "Legacy-named symbol `bank_recon_v2` in tests/unit/test_ai_mapping.py:20", "shortDescription": {"text": "Legacy-named symbol `bank_recon_v2` in tests/unit/test_ai_mapping.py:20"}, "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-073638cd15eee252", "name": "Legacy-named symbol `tenant_type_v2` in tests/unit/test_services_membership_schema_contract.py:56", "shortDescription": {"text": "Legacy-named symbol `tenant_type_v2` in tests/unit/test_services_membership_schema_contract.py:56"}, "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-c88ead8b99e2b6f3", "name": "Legacy-named symbol `clear_old` in tests/unit/test_vat_excel_split_contract.py:4", "shortDescription": {"text": "Legacy-named symbol `clear_old` in tests/unit/test_vat_excel_split_contract.py:4"}, "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-482d064d5b5cc1dc", "name": "Legacy-named symbol `bank_recon_v2` in tests/unit/test_bank_v2_synthetic_fuzz.py:21", "shortDescription": {"text": "Legacy-named symbol `bank_recon_v2` in tests/unit/test_bank_v2_synthetic_fuzz.py:21"}, "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-212eae939f0021c1", "name": "Legacy-named symbol `bank_recon_v2` in tests/unit/test_importer_coerce_contract.py:9", "shortDescription": {"text": "Legacy-named symbol `bank_recon_v2` in tests/unit/test_importer_coerce_contract.py:9"}, "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-da93b997a341a5e1", "name": "Legacy-named symbol `bank_recon_v2` in tests/unit/test_brv2_match_rate_honesty.py:20", "shortDescription": {"text": "Legacy-named symbol `bank_recon_v2` in tests/unit/test_brv2_match_rate_honesty.py:20"}, "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-381e76c1dfef79b8", "name": "Legacy-named symbol `clear_old` in tests/unit/test_vat_excel_routes_contract.py:9", "shortDescription": {"text": "Legacy-named symbol `clear_old` in tests/unit/test_vat_excel_routes_contract.py:9"}, "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-33920da11fce131c", "name": "Legacy-named symbol `bank_recon_v2` in tests/unit/test_s8_review_gate.py:17", "shortDescription": {"text": "Legacy-named symbol `bank_recon_v2` in tests/unit/test_s8_review_gate.py:17"}, "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-8d8539ef706b8379", "name": "Legacy-named symbol `bank_recon_v2` in tests/unit/test_recon_handlers_contract.py:15", "shortDescription": {"text": "Legacy-named symbol `bank_recon_v2` in tests/unit/test_recon_handlers_contract.py:15"}, "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-01cf91da892f0199", "name": "Legacy-named symbol `bank_recon_v2` in tests/unit/test_bank_v2_export_anchor_yellow.py:17", "shortDescription": {"text": "Legacy-named symbol `bank_recon_v2` in tests/unit/test_bank_v2_export_anchor_yellow.py:17"}, "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-d0ea6db0606c8209", "name": "Legacy-named symbol `bank_recon_v2` in tests/unit/test_bank_v2_coords.py:21", "shortDescription": {"text": "Legacy-named symbol `bank_recon_v2` in tests/unit/test_bank_v2_coords.py:21"}, "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-173ae1483393bff3", "name": "Legacy-named symbol `bank_recon_v2` in tests/unit/test_reconciliation_matcher_contract.py:5", "shortDescription": {"text": "Legacy-named symbol `bank_recon_v2` in tests/unit/test_reconciliation_matcher_contract.py:5"}, "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-a516e107a588b954", "name": "Legacy-named symbol `bank_recon_v2` in tests/unit/test_recon_task_stores_contract.py:4", "shortDescription": {"text": "Legacy-named symbol `bank_recon_v2` in tests/unit/test_recon_task_stores_contract.py:4"}, "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-b1858c902c877d84", "name": "Legacy-named symbol `bank_recon_v2` in tests/unit/test_bank_v2_direction_correct.py:19", "shortDescription": {"text": "Legacy-named symbol `bank_recon_v2` in tests/unit/test_bank_v2_direction_correct.py:19"}, "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-1249e47135b6cf97", "name": "Legacy-named symbol `bank_recon_v2` in tests/unit/test_bank_v2_summary_row.py:12", "shortDescription": {"text": "Legacy-named symbol `bank_recon_v2` in tests/unit/test_bank_v2_summary_row.py:12"}, "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-ecdadc1ce5bd0866", "name": "Legacy-named symbol `bank_recon_v2` in tests/unit/test_importer_ai_mapping_contract.py:12", "shortDescription": {"text": "Legacy-named symbol `bank_recon_v2` in tests/unit/test_importer_ai_mapping_contract.py:12"}, "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-8796fa4572f7f33a", "name": "Legacy-named symbol `bank_recon_v2` in tests/unit/test_bank_v2_completeness.py:19", "shortDescription": {"text": "Legacy-named symbol `bank_recon_v2` in tests/unit/test_bank_v2_completeness.py:19"}, "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-8a68d19cdc124e34", "name": "Legacy-named symbol `bank_recon_v2` in tests/unit/test_bank_v2_multi_account.py:22", "shortDescription": {"text": "Legacy-named symbol `bank_recon_v2` in tests/unit/test_bank_v2_multi_account.py:22"}, "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-a468027d105ecc15", "name": "Legacy-named symbol `bank_recon_v2` in tests/unit/test_parse_date_buddhist_era.py:22", "shortDescription": {"text": "Legacy-named symbol `bank_recon_v2` in tests/unit/test_parse_date_buddhist_era.py:22"}, "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-46b5a96207a28b0e", "name": "Legacy-named symbol `bank_recon_v2` in tests/eval/run_eval.py:38", "shortDescription": {"text": "Legacy-named symbol `bank_recon_v2` in tests/eval/run_eval.py:38"}, "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-6b145aa567a3516c", "name": "Commented-code block (5 lines) in tests/e2e/05-exceptions.spec.js:1", "shortDescription": {"text": "Commented-code block (5 lines) in tests/e2e/05-exceptions.spec.js:1"}, "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-18ffaea131607b0e", "name": "Commented-code block (8 lines) in tests/e2e/13-password-change.spec.js:6", "shortDescription": {"text": "Commented-code block (8 lines) in tests/e2e/13-password-change.spec.js:6"}, "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-8ab41a6611ea21f9", "name": "Commented-code block (5 lines) in tests/e2e/11-charge-ocr-closure.spec.js:1", "shortDescription": {"text": "Commented-code block (5 lines) in tests/e2e/11-charge-ocr-closure.spec.js:1"}, "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-edcef8907d87b447", "name": "Commented-code block (5 lines) in tests/e2e/08-erp-push.spec.js:1", "shortDescription": {"text": "Commented-code block (5 lines) in tests/e2e/08-erp-push.spec.js:1"}, "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-d26aeee3c71f54d5", "name": "Commented-code block (8 lines) in tests/e2e/14-line-binding.spec.js:1", "shortDescription": {"text": "Commented-code block (8 lines) in tests/e2e/14-line-binding.spec.js:1"}, "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-241acc467a12a4b1", "name": "Commented-code block (6 lines) in tests/e2e/03-clients.spec.js:1", "shortDescription": {"text": "Commented-code block (6 lines) in tests/e2e/03-clients.spec.js:1"}, "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-e1fea4bf3f031d04", "name": "Commented-code block (14 lines) in tests/e2e/16-ocr-recognize.spec.js:1", "shortDescription": {"text": "Commented-code block (14 lines) in tests/e2e/16-ocr-recognize.spec.js:1"}, "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-ecbfeae124c161ba", "name": "Commented-code block (9 lines) in tests/e2e/12-rls-isolation.spec.js:5", "shortDescription": {"text": "Commented-code block (9 lines) in tests/e2e/12-rls-isolation.spec.js:5"}, "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-b63befdf48cda98e", "name": "Commented-code block (6 lines) in tests/e2e/04-history.spec.js:1", "shortDescription": {"text": "Commented-code block (6 lines) in tests/e2e/04-history.spec.js:1"}, "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-424a81e9f939b5d2", "name": "Commented-code block (8 lines) in tests/e2e/02-app-lang-switch.spec.js:1", "shortDescription": {"text": "Commented-code block (8 lines) in tests/e2e/02-app-lang-switch.spec.js:1"}, "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-0e41fe214893f37d", "name": "Commented-code block (8 lines) in tests/e2e/17-email-code-flow.spec.js:1", "shortDescription": {"text": "Commented-code block (8 lines) in tests/e2e/17-email-code-flow.spec.js:1"}, "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-5a618e87dad08f77", "name": "Commented-code block (5 lines) in tests/e2e/15-session-heartbeat.spec.js:1", "shortDescription": {"text": "Commented-code block (5 lines) in tests/e2e/15-session-heartbeat.spec.js:1"}, "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-c96afcb2689810fc", "name": "Commented-code block (7 lines) in tests/e2e/06-reconcile.spec.js:1", "shortDescription": {"text": "Commented-code block (7 lines) in tests/e2e/06-reconcile.spec.js:1"}, "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-77aacf789eb14e37", "name": "Commented-code block (5 lines) in tests/e2e/18-cpw-visual.spec.js:1", "shortDescription": {"text": "Commented-code block (5 lines) in tests/e2e/18-cpw-visual.spec.js:1"}, "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-8e48c41b3be693f6", "name": "Commented-code block (6 lines) in tests/e2e/_helpers/auth.js:1", "shortDescription": {"text": "Commented-code block (6 lines) in tests/e2e/_helpers/auth.js:1"}, "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-937996284b14bc4b", "name": "Commented-code block (5 lines) in tests/e2e/_helpers/console-guard.js:6", "shortDescription": {"text": "Commented-code block (5 lines) in tests/e2e/_helpers/console-guard.js:6"}, "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-a57236d5d98854f6", "name": "Commented-code block (6 lines) in static/erp-mrerp-connect.js:645", "shortDescription": {"text": "Commented-code block (6 lines) in static/erp-mrerp-connect.js:645"}, "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-cd8646ec8d864d39", "name": "`fetch()` without try/.catch or AbortSignal \u2014 static/erp-mrerp-connect.js:2280", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 static/erp-mrerp-connect.js:2280"}, "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-4e14cc9be4c9d51f", "name": "`fetch()` without try/.catch or AbortSignal \u2014 static/recon-mapping.js:288", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 static/recon-mapping.js:288"}, "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-45686ba406990725", "name": "Legacy-named symbol `pipeline_v1` in static/admin/admin.js:282", "shortDescription": {"text": "Legacy-named symbol `pipeline_v1` in static/admin/admin.js:282"}, "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-3237c4f8f558381d", "name": "`fetch()` without try/.catch or AbortSignal \u2014 static/admin/admin.js:52", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 static/admin/admin.js:52"}, "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-e6933a7dab5f8fb4", "name": "`fetch()` without try/.catch or AbortSignal \u2014 static/pos/pos-restaurant-ops.js:344", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 static/pos/pos-restaurant-ops.js:344"}, "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-1fd04f5b2870dd65", "name": "`fetch()` without try/.catch or AbortSignal \u2014 static/console/invite.js:120", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 static/console/invite.js:120"}, "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-81ac62b1a5aceabc", "name": "Legacy-named symbol `btn_copy` in static/console/console.js:979", "shortDescription": {"text": "Legacy-named symbol `btn_copy` in static/console/console.js:979"}, "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-2718a88121beaa04", "name": "`fetch()` without try/.catch or AbortSignal \u2014 static/console/console.js:1682", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 static/console/console.js:1682"}, "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-3e1db69692251d2d", "name": "Legacy-named symbol `btn_copy` in static/console/console-i18n.js:67", "shortDescription": {"text": "Legacy-named symbol `btn_copy` in static/console/console-i18n.js: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-bce6cf65436f9d51", "name": "Network/subprocess call without timeout or try/except \u2014 scripts/_authz_e2e.py:39", "shortDescription": {"text": "Network/subprocess call without timeout or try/except \u2014 scripts/_authz_e2e.py:39"}, "fullDescription": {"text": "`requests.post(...)` 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-555a1696a83f173b", "name": "Legacy-named symbol `pearnly_reconciliation_redesign_v2` in scripts/_rcx_preview.cjs:65", "shortDescription": {"text": "Legacy-named symbol `pearnly_reconciliation_redesign_v2` in scripts/_rcx_preview.cjs:65"}, "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-b37726165db98db9", "name": "Commented-code block (5 lines) in scripts/check_ui_consistency.py:71", "shortDescription": {"text": "Commented-code block (5 lines) in scripts/check_ui_consistency.py:71"}, "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-1f62bc2a13bf8a18", "name": "Network/subprocess call without timeout or try/except \u2014 scripts/check_new_routes_contract.py:70", "shortDescription": {"text": "Network/subprocess call without timeout or try/except \u2014 scripts/check_new_routes_contract.py:70"}, "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-9e25760fba88907a", "name": "Commented-code block (5 lines) in scripts/ui_design_lint.mjs:1", "shortDescription": {"text": "Commented-code block (5 lines) in scripts/ui_design_lint.mjs:1"}, "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-673edaad05cc71a4", "name": "Commented-code block (13 lines) in scripts/midcontrol_ui_verify.spec.js:1", "shortDescription": {"text": "Commented-code block (13 lines) in scripts/midcontrol_ui_verify.spec.js:1"}, "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-2728d53b11547d50", "name": "Network/subprocess call without timeout or try/except \u2014 scripts/check_tracked_imports.py:132", "shortDescription": {"text": "Network/subprocess call without timeout or try/except \u2014 scripts/check_tracked_imports.py:132"}, "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-fbff960cfc7cf179", "name": "Network/subprocess call without timeout or try/except \u2014 scripts/check_new_debt.py:86", "shortDescription": {"text": "Network/subprocess call without timeout or try/except \u2014 scripts/check_new_debt.py:86"}, "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-f5801ce15d5da999", "name": "Network/subprocess call without timeout or try/except \u2014 scripts/_authz_roles_e2e.py:44", "shortDescription": {"text": "Network/subprocess call without timeout or try/except \u2014 scripts/_authz_roles_e2e.py:44"}, "fullDescription": {"text": "`requests.post(...)` 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-b5a8bc98ee640f94", "name": "Network/subprocess call without timeout or try/except \u2014 scripts/check_line_ratchet.py:104", "shortDescription": {"text": "Network/subprocess call without timeout or try/except \u2014 scripts/check_line_ratchet.py:104"}, "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-712ac3853afc5914", "name": "Commented-code block (8 lines) in scripts/build-home-js.mjs:1", "shortDescription": {"text": "Commented-code block (8 lines) in scripts/build-home-js.mjs:1"}, "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-d629a2c70dbe56c6", "name": "Legacy-named symbol `bank_recon_v2` in scripts/check_file_size.py:61", "shortDescription": {"text": "Legacy-named symbol `bank_recon_v2` in scripts/check_file_size.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-4f24c2785d94fc98", "name": "Commented-code block (5 lines) in scripts/check_file_size.py:75", "shortDescription": {"text": "Commented-code block (5 lines) in scripts/check_file_size.py:75"}, "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-76b7cf37551f0d1e", "name": "Legacy-named symbol `probe_armas_copy_v2` in scripts/probe/_debug/probe_armas_copy_v2.py:4", "shortDescription": {"text": "Legacy-named symbol `probe_armas_copy_v2` in scripts/probe/_debug/probe_armas_copy_v2.py:4"}, "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-75fc377f5d8ce971", "name": "Legacy-named symbol `pipeline_v1` in routes/pages_routes.py:48", "shortDescription": {"text": "Legacy-named symbol `pipeline_v1` in routes/pages_routes.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-7354d7ea9c2bc8b8", "name": "Legacy-named symbol `parse_gl_v2` in routes/recon_routes_bankv2_run.py:18", "shortDescription": {"text": "Legacy-named symbol `parse_gl_v2` in routes/recon_routes_bankv2_run.py:18"}, "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-9df080ce03909260", "name": "Commented-code block (5 lines) in routes/me_routes.py:42", "shortDescription": {"text": "Commented-code block (5 lines) in routes/me_routes.py:42"}, "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-89cb7775b598ce0b", "name": "Legacy-named symbol `_pipe_legacy` in routes/recon_routes_v1_batch.py:184", "shortDescription": {"text": "Legacy-named symbol `_pipe_legacy` in routes/recon_routes_v1_batch.py:184"}, "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-e0b93b572e360a99", "name": "Legacy-named symbol `bank_recon_v2` in routes/bank_recon_routes.py:21", "shortDescription": {"text": "Legacy-named symbol `bank_recon_v2` in routes/bank_recon_routes.py:21"}, "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-ba5f5fb29a320020", "name": "Commented-code block (5 lines) in routes/erp_xero_routes.py:104", "shortDescription": {"text": "Commented-code block (5 lines) in routes/erp_xero_routes.py:104"}, "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-a3e84071db60f950", "name": "Legacy-named symbol `bank_recon_v2` in routes/accounting_bank_routes.py:80", "shortDescription": {"text": "Legacy-named symbol `bank_recon_v2` in routes/accounting_bank_routes.py:80"}, "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-aee6da88bc8d607a", "name": "Legacy-named symbol `parse_gl_v2` in routes/recon_routes.py:446", "shortDescription": {"text": "Legacy-named symbol `parse_gl_v2` in routes/recon_routes.py:446"}, "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-796bfe1266076407", "name": "Legacy-named symbol `bank_recon_v2` in routes/recon_jobs_routes.py:116", "shortDescription": {"text": "Legacy-named symbol `bank_recon_v2` in routes/recon_jobs_routes.py:116"}, "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-4cfb9da54a15bdf3", "name": "Legacy-named symbol `_workspace_from_store_or_legacy` in routes/pos_auth_routes.py:74", "shortDescription": {"text": "Legacy-named symbol `_workspace_from_store_or_legacy` in routes/pos_auth_routes.py:74"}, "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-83be83df6f54ac40", "name": "Legacy-named symbol `bank_recon_v2` in routes/recon_routes_bankv2_helpers.py:2", "shortDescription": {"text": "Legacy-named symbol `bank_recon_v2` in routes/recon_routes_bankv2_helpers.py:2"}, "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-af4ce31312a6df9b", "name": "Legacy-named symbol `is_copy` in routes/history_routes.py:117", "shortDescription": {"text": "Legacy-named symbol `is_copy` in routes/history_routes.py:117"}, "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-2d15e94e81db8330", "name": "Commented-code block (7 lines) in routes/admin_diagnostics_routes.py:57", "shortDescription": {"text": "Commented-code block (7 lines) in routes/admin_diagnostics_routes.py:57"}, "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-3cf7ee15a5428870", "name": "Commented-code block (5 lines) in routes/erp_endpoints_routes.py:102", "shortDescription": {"text": "Commented-code block (5 lines) in routes/erp_endpoints_routes.py:102"}, "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-c790e60e2da1e495", "name": "Legacy-named symbol `pipeline_v1` in routes/ocr_recognize_routes.py:204", "shortDescription": {"text": "Legacy-named symbol `pipeline_v1` in routes/ocr_recognize_routes.py:204"}, "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-52a0ae889a1256d7", "name": "Legacy-named symbol `clear_old` in routes/vat_excel_tasks_routes.py:3", "shortDescription": {"text": "Legacy-named symbol `clear_old` in routes/vat_excel_tasks_routes.py:3"}, "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-204ea42e910408dc", "name": "Commented-code block (5 lines) in routes/erp_listing_routes.py:53", "shortDescription": {"text": "Commented-code block (5 lines) in routes/erp_listing_routes.py:53"}, "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-4cf59e318d107645", "name": "Commented-code block (6 lines) in services/playwright_bootstrap.py:151", "shortDescription": {"text": "Commented-code block (6 lines) in services/playwright_bootstrap.py:151"}, "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-1ece18e261fb219c", "name": "Legacy-named symbol `bank_recon_v2` in services/startup.py:190", "shortDescription": {"text": "Legacy-named symbol `bank_recon_v2` in services/startup.py:190"}, "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-7c6d366e2b40ac40", "name": "Commented-code block (6 lines) in services/startup.py:336", "shortDescription": {"text": "Commented-code block (6 lines) in services/startup.py:336"}, "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-613ae9847cfd6a1c", "name": "Legacy-named symbol `bank_recon_v2` in services/importer/__init__.py:4", "shortDescription": {"text": "Legacy-named symbol `bank_recon_v2` in services/importer/__init__.py:4"}, "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-2051443b18bda2ad", "name": "Legacy-named symbol `bank_recon_v2` in services/importer/gl_inference.py:7", "shortDescription": {"text": "Legacy-named symbol `bank_recon_v2` in services/importer/gl_inference.py:7"}, "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-d3537811ac1651c5", "name": "Legacy-named symbol `bank_recon_v2` in services/importer/template_store.py:5", "shortDescription": {"text": "Legacy-named symbol `bank_recon_v2` in services/importer/template_store.py:5"}, "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-0513c42798572bd2", "name": "Legacy-named symbol `bank_recon_v2` in services/importer/synonyms.py:7", "shortDescription": {"text": "Legacy-named symbol `bank_recon_v2` in services/importer/synonyms.py:7"}, "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-6458a425eb51b58d", "name": "Legacy-named symbol `bank_recon_v2` in services/importer/stmt_review.py:5", "shortDescription": {"text": "Legacy-named symbol `bank_recon_v2` in services/importer/stmt_review.py:5"}, "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-01dec75a75153968", "name": "Legacy-named symbol `bank_recon_v2` in services/importer/template_learning.py:6", "shortDescription": {"text": "Legacy-named symbol `bank_recon_v2` in services/importer/template_learning.py:6"}, "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-382e14dc800c0de4", "name": "Legacy-named symbol `bank_recon_v2` in services/importer/ai_mapping.py:12", "shortDescription": {"text": "Legacy-named symbol `bank_recon_v2` in services/importer/ai_mapping.py:12"}, "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-4d5b80a1023d3399", "name": "Commented-code block (5 lines) in services/auth/user_lookup.py:28", "shortDescription": {"text": "Commented-code block (5 lines) in services/auth/user_lookup.py:28"}, "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-5046a5d6203ed660", "name": "Commented-code block (5 lines) in services/auth/auth_signup.py:408", "shortDescription": {"text": "Commented-code block (5 lines) in services/auth/auth_signup.py:408"}, "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-3a29beda916be17e", "name": "Commented-code block (12 lines) in services/exceptions/knowledge_bridge.py:31", "shortDescription": {"text": "Commented-code block (12 lines) in services/exceptions/knowledge_bridge.py:31"}, "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-e9ab5eddebe4caea", "name": "Legacy-named symbol `bank_recon_v2` in services/vat/vat_excel_exporter.py:27", "shortDescription": {"text": "Legacy-named symbol `bank_recon_v2` in services/vat/vat_excel_exporter.py:27"}, "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-bae0d596613d3ce2", "name": "Commented-code block (5 lines) in services/vat/vat_excel_i18n.py:4", "shortDescription": {"text": "Commented-code block (5 lines) in services/vat/vat_excel_i18n.py:4"}, "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-e15158e3b9d0845e", "name": "Commented-code block (5 lines) in services/vat/vat_ocr_extract.py:266", "shortDescription": {"text": "Commented-code block (5 lines) in services/vat/vat_ocr_extract.py:266"}, "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-a33558a33545acf1", "name": "Legacy-named symbol `pipeline_v1` in services/vat/vat_report_parser.py:111", "shortDescription": {"text": "Legacy-named symbol `pipeline_v1` in services/vat/vat_report_parser.py:111"}, "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-75451add1a26392b", "name": "Legacy-named symbol `pipeline_v1` in services/email_ingest/email_ingest_pipeline.py:90", "shortDescription": {"text": "Legacy-named symbol `pipeline_v1` in services/email_ingest/email_ingest_pipeline.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-b9ef5fc15c72b1b4", "name": "Legacy-named symbol `ok_old` in services/team/ownership.py:93", "shortDescription": {"text": "Legacy-named symbol `ok_old` in services/team/ownership.py:93"}, "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-feec0b810d167051", "name": "Commented-code block (5 lines) in services/user_settings/store.py:44", "shortDescription": {"text": "Commented-code block (5 lines) in services/user_settings/store.py:44"}, "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-1cf2f7954024f5ba", "name": "Legacy-named symbol `is_copy` in services/ocr_history/mutations.py:23", "shortDescription": {"text": "Legacy-named symbol `is_copy` in services/ocr_history/mutations.py:23"}, "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-587a00a94e73352e", "name": "Commented-code block (10 lines) in services/billing/charge.py:70", "shortDescription": {"text": "Commented-code block (10 lines) in services/billing/charge.py:70"}, "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-b16473be7a03d1ac", "name": "Commented-code block (5 lines) in services/billing/credits_schema.py:124", "shortDescription": {"text": "Commented-code block (5 lines) in services/billing/credits_schema.py:124"}, "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-a9e3732cd28f2aca", "name": "Stub function `_noop` (body is just `pass`/`return`) \u2014 services/recon_jobs/_handler_common.py:27", "shortDescription": {"text": "Stub function `_noop` (body is just `pass`/`return`) \u2014 services/recon_jobs/_handler_common.py:27"}, "fullDescription": {"text": "Likely an AI scaffold that was never filled in. Remove or implement."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "low", "confidence": 1.0}}, {"id": "scanner-f00cf96f5c12609e", "name": "Legacy-named symbol `parse_gl_v2` in services/recon_jobs/bank_handler.py:31", "shortDescription": {"text": "Legacy-named symbol `parse_gl_v2` in services/recon_jobs/bank_handler.py:31"}, "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-156203d5532bb39f", "name": "Commented-code block (6 lines) in services/recon_jobs/bank_handler.py:196", "shortDescription": {"text": "Commented-code block (6 lines) in services/recon_jobs/bank_handler.py:196"}, "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-c8c534f2cb732dcb", "name": "Legacy-named symbol `tenant_type_v2` in services/membership/schema.py:10", "shortDescription": {"text": "Legacy-named symbol `tenant_type_v2` in services/membership/schema.py:10"}, "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-c06473884b40ddbb", "name": "Legacy-named symbol `tenant_type_v2` in services/membership/migration.py:293", "shortDescription": {"text": "Legacy-named symbol `tenant_type_v2` in services/membership/migration.py:293"}, "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-765c963a9eafb4ef", "name": "Legacy-named symbol `ERP_IMPORT_FORMAT_v1` in services/report/report_engine_templates.py:203", "shortDescription": {"text": "Legacy-named symbol `ERP_IMPORT_FORMAT_v1` in services/report/report_engine_templates.py:203"}, "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-2b5fd0c9f1bb4562", "name": "Legacy-named symbol `build_copy` in services/sales/pdf.py:204", "shortDescription": {"text": "Legacy-named symbol `build_copy` in services/sales/pdf.py:204"}, "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-cbdcb812d53b65eb", "name": "Commented-code block (5 lines) in services/erp/mrerp_adapter_report.py:81", "shortDescription": {"text": "Commented-code block (5 lines) in services/erp/mrerp_adapter_report.py:81"}, "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-b8ab39fc3241d440", "name": "Commented-code block (6 lines) in services/erp/_customer_sync_const.py:21", "shortDescription": {"text": "Commented-code block (6 lines) in services/erp/_customer_sync_const.py:21"}, "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-4598f0e6c8eb7294", "name": "Legacy-named symbol `is_copy` in services/erp/erp_payload.py:48", "shortDescription": {"text": "Legacy-named symbol `is_copy` in services/erp/erp_payload.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-70c72658c0b13a18", "name": "Commented-code block (6 lines) in services/erp/mrerp_adapter_login.py:85", "shortDescription": {"text": "Commented-code block (6 lines) in services/erp/mrerp_adapter_login.py:85"}, "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-efa6a3b0b1d2ebaf", "name": "Commented-code block (9 lines) in services/erp/erp_mrerp_listing.py:171", "shortDescription": {"text": "Commented-code block (9 lines) in services/erp/erp_mrerp_listing.py:171"}, "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-2917be0c60446eda", "name": "Commented-code block (6 lines) in services/erp/push_retry.py:19", "shortDescription": {"text": "Commented-code block (6 lines) in services/erp/push_retry.py:19"}, "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-1a01a90c879c9f21", "name": "Commented-code block (5 lines) in services/erp/mrerp_xlsx_lookups.py:45", "shortDescription": {"text": "Commented-code block (5 lines) in services/erp/mrerp_xlsx_lookups.py:45"}, "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-1cc1f70e581ef1a9", "name": "Commented-code block (5 lines) in services/erp/mrerp_xlsx_schemas.py:21", "shortDescription": {"text": "Commented-code block (5 lines) in services/erp/mrerp_xlsx_schemas.py:21"}, "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-3361a9847ea58d74", "name": "Commented-code block (5 lines) in services/erp/mrerp_dms_adapter.py:238", "shortDescription": {"text": "Commented-code block (5 lines) in services/erp/mrerp_dms_adapter.py:238"}, "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-b9728534431bfc7d", "name": "Legacy-named symbol `_override_after_copy` in services/erp/mrerp_product_create.py:117", "shortDescription": {"text": "Legacy-named symbol `_override_after_copy` in services/erp/mrerp_product_create.py:117"}, "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-59449149fcbc2033", "name": "Commented-code block (5 lines) in services/erp/mrerp_product_create.py:80", "shortDescription": {"text": "Commented-code block (5 lines) in services/erp/mrerp_product_create.py:80"}, "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-b2dc1bd9f1186cf3", "name": "Commented-code block (15 lines) in services/erp/_browser.py:157", "shortDescription": {"text": "Commented-code block (15 lines) in services/erp/_browser.py:157"}, "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-a43b9cf3f19a7169", "name": "Commented-code block (5 lines) in services/erp/erp_push.py:360", "shortDescription": {"text": "Commented-code block (5 lines) in services/erp/erp_push.py:360"}, "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-c1d50ee3aa1eaea2", "name": "Commented-code block (5 lines) in services/erp/mrerp_xlsx_generator.py:353", "shortDescription": {"text": "Commented-code block (5 lines) in services/erp/mrerp_xlsx_generator.py:353"}, "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-fe7cd0c33e8dc8e6", "name": "Commented-code block (7 lines) in services/erp/mrerp_adapter_upload.py:85", "shortDescription": {"text": "Commented-code block (7 lines) in services/erp/mrerp_adapter_upload.py:85"}, "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-efbbb4d2643e38ad", "name": "Commented-code block (5 lines) in services/erp/_customer_sync_fetch.py:353", "shortDescription": {"text": "Commented-code block (5 lines) in services/erp/_customer_sync_fetch.py:353"}, "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-d8aca6fb14eb33d9", "name": "Legacy-named symbol `_override_after_copy` in services/erp/_customer_sync_create.py:112", "shortDescription": {"text": "Legacy-named symbol `_override_after_copy` in services/erp/_customer_sync_create.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-84eef330ebb2913a", "name": "Commented-code block (15 lines) in services/erp/mrerp_adapter.py:158", "shortDescription": {"text": "Commented-code block (15 lines) in services/erp/mrerp_adapter.py:158"}, "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-a193582693ba5021", "name": "Commented-code block (5 lines) in services/erp/erp_mrerp_crud.py:179", "shortDescription": {"text": "Commented-code block (5 lines) in services/erp/erp_mrerp_crud.py:179"}, "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-65cecf6764e89170", "name": "Legacy-named symbol `bank_recon_v2` in services/recon/bank_stmt_gemini.py:4", "shortDescription": {"text": "Legacy-named symbol `bank_recon_v2` in services/recon/bank_stmt_gemini.py:4"}, "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-c22b319b46dc8e4b", "name": "Legacy-named symbol `bank_recon_v2` in services/recon/bank_stmt_text.py:4", "shortDescription": {"text": "Legacy-named symbol `bank_recon_v2` in services/recon/bank_stmt_text.py:4"}, "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-ac855325775f986b", "name": "Legacy-named symbol `bank_recon_v2` in services/recon/bank_stmt_legacy_parsers.py:7", "shortDescription": {"text": "Legacy-named symbol `bank_recon_v2` in services/recon/bank_stmt_legacy_parsers.py:7"}, "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-738d955cf6b4e026", "name": "Legacy-named symbol `bank_recon_v2` in services/recon/bank_recon_v2.py:3", "shortDescription": {"text": "Legacy-named symbol `bank_recon_v2` in services/recon/bank_recon_v2.py:3"}, "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-204329cf764ea294", "name": "Commented-code block (5 lines) in services/recon/vat_recon_core.py:403", "shortDescription": {"text": "Commented-code block (5 lines) in services/recon/vat_recon_core.py:403"}, "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-645cc5a9cf350c7f", "name": "Legacy-named symbol `bank_recon_v2` in services/recon/bank_stmt_extract.py:4", "shortDescription": {"text": "Legacy-named symbol `bank_recon_v2` in services/recon/bank_stmt_extract.py:4"}, "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-3933ffeb58b13e61", "name": "Commented-code block (5 lines) in services/recon/bank_recon_merge.py:74", "shortDescription": {"text": "Commented-code block (5 lines) in services/recon/bank_recon_merge.py:74"}, "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-e03f2648581a56ee", "name": "Legacy-named symbol `bank_recon_v2` in services/recon/bank_recon_types.py:4", "shortDescription": {"text": "Legacy-named symbol `bank_recon_v2` in services/recon/bank_recon_types.py:4"}, "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-ccee21b06591e23f", "name": "Legacy-named symbol `bank_recon_v2` in services/recon/bank_recon_excel.py:4", "shortDescription": {"text": "Legacy-named symbol `bank_recon_v2` in services/recon/bank_recon_excel.py:4"}, "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-fc7ee88e0333a1bc", "name": "Commented-code block (9 lines) in services/recon/bank_recon_excel.py:44", "shortDescription": {"text": "Commented-code block (9 lines) in services/recon/bank_recon_excel.py:44"}, "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-078f055777c56627", "name": "Commented-code block (5 lines) in services/recon/bank_gl_excel.py:186", "shortDescription": {"text": "Commented-code block (5 lines) in services/recon/bank_gl_excel.py:186"}, "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-c438c71903e89b51", "name": "Legacy-named symbol `bank_recon_v2` in services/recon/bank_recon_pipeline.py:8", "shortDescription": {"text": "Legacy-named symbol `bank_recon_v2` in services/recon/bank_recon_pipeline.py:8"}, "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-f146a9726cf066d8", "name": "Legacy-named symbol `bank_recon_v2` in services/recon/gl_vat_parse_excel.py:94", "shortDescription": {"text": "Legacy-named symbol `bank_recon_v2` in services/recon/gl_vat_parse_excel.py:94"}, "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-1560e9f481edf155", "name": "Legacy-named symbol `bank_stmt_legacy` in services/recon/bank_stmt_legacy.py:3", "shortDescription": {"text": "Legacy-named symbol `bank_stmt_legacy` in services/recon/bank_stmt_legacy.py:3"}, "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-4206e6dfa2e9c27e", "name": "Commented-code block (13 lines) in services/recon/bank_recon_excel_summary.py:28", "shortDescription": {"text": "Commented-code block (13 lines) in services/recon/bank_recon_excel_summary.py:28"}, "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-7b30ee4ec35ae3ee", "name": "Legacy-named symbol `bank_recon_v2` in services/recon/bank_recon_utils.py:5", "shortDescription": {"text": "Legacy-named symbol `bank_recon_v2` in services/recon/bank_recon_utils.py:5"}, "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-3abb401580b09fe0", "name": "Legacy-named symbol `bank_recon_v2` in services/recon/bank_stmt_balance.py:5", "shortDescription": {"text": "Legacy-named symbol `bank_recon_v2` in services/recon/bank_stmt_balance.py:5"}, "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-d202e124e55adb64", "name": "Commented-code block (5 lines) in services/recon/bank_stmt_balance.py:257", "shortDescription": {"text": "Commented-code block (5 lines) in services/recon/bank_stmt_balance.py:257"}, "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-eee3a2cd04352f56", "name": "Legacy-named symbol `bank_recon_v2` in services/recon/bank_stmt_xlsx.py:488", "shortDescription": {"text": "Legacy-named symbol `bank_recon_v2` in services/recon/bank_stmt_xlsx.py:488"}, "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-96b4bf18733d313c", "name": "Legacy-named symbol `is_copy` in services/ocr/line_image_ocr.py:85", "shortDescription": {"text": "Legacy-named symbol `is_copy` in services/ocr/line_image_ocr.py:85"}, "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-5511a202bf5b94dd", "name": "Commented-code block (5 lines) in services/ocr/page_runner.py:310", "shortDescription": {"text": "Commented-code block (5 lines) in services/ocr/page_runner.py:310"}, "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-fc61d3427ac82f2a", "name": "Legacy-named symbol `pipeline_v1` in services/ocr/schemas_results.py:180", "shortDescription": {"text": "Legacy-named symbol `pipeline_v1` in services/ocr/schemas_results.py:180"}, "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-023916b1719c33a3", "name": "Commented-code block (8 lines) in services/ocr/layer3_fallback.py:74", "shortDescription": {"text": "Commented-code block (8 lines) in services/ocr/layer3_fallback.py:74"}, "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-ce46226ad1d34e0b", "name": "Legacy-named symbol `is_copy` in services/ocr/legacy_adapter.py:16", "shortDescription": {"text": "Legacy-named symbol `is_copy` in services/ocr/legacy_adapter.py:16"}, "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-7e3911021227a1fe", "name": "Commented-code block (5 lines) in services/ocr/schemas_invoice.py:216", "shortDescription": {"text": "Commented-code block (5 lines) in services/ocr/schemas_invoice.py:216"}, "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-27176a566b1c9b4c", "name": "Legacy-named symbol `is_copy` in services/ocr/pdf_text_extractor.py:452", "shortDescription": {"text": "Legacy-named symbol `is_copy` in services/ocr/pdf_text_extractor.py:452"}, "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-5ac96c319f0604a8", "name": "Commented-code block (5 lines) in services/ocr/validators.py:277", "shortDescription": {"text": "Commented-code block (5 lines) in services/ocr/validators.py:277"}, "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-5ade03f2e8e0b1d6", "name": "Commented-code block (6 lines) in services/ocr/recognize/autopush.py:25", "shortDescription": {"text": "Commented-code block (6 lines) in services/ocr/recognize/autopush.py:25"}, "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-199e1437fb5d9155", "name": "Legacy-named symbol `is_copy` in services/ocr/recognize/cache.py:68", "shortDescription": {"text": "Legacy-named symbol `is_copy` in services/ocr/recognize/cache.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-d50aeed6b631deb8", "name": "Commented-code block (8 lines) in services/ocr/recognize/persist.py:249", "shortDescription": {"text": "Commented-code block (8 lines) in services/ocr/recognize/persist.py:249"}, "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-4e2b944fa198b9c3", "name": "Legacy-named symbol `bank_recon_v2` in core/db.py:81", "shortDescription": {"text": "Legacy-named symbol `bank_recon_v2` in core/db.py:81"}, "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-e7ddefb4fa504b05", "name": "Commented-code block (5 lines) in core/db.py:41", "shortDescription": {"text": "Commented-code block (5 lines) in core/db.py:41"}, "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-c945104cdc2c0586", "name": "Commented-code block (6 lines) in core/route_helpers.py:208", "shortDescription": {"text": "Commented-code block (6 lines) in core/route_helpers.py:208"}, "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-d1546832bb9b2b46", "name": "Legacy-named symbol `bank_recon_v2` in alembic/versions/004_import_template_mappings.py:4", "shortDescription": {"text": "Legacy-named symbol `bank_recon_v2` in alembic/versions/004_import_template_mappings.py:4"}, "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-03e41380dab12136", "name": "Legacy-named symbol `bank_recon_v2` in probes/s7_ai_mapping_smoke.py:24", "shortDescription": {"text": "Legacy-named symbol `bank_recon_v2` in probes/s7_ai_mapping_smoke.py:24"}, "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-aefbb3f7a678c06f", "name": "Legacy-named symbol `bank_recon_v2` in probes/s7_boundary_audit.py:22", "shortDescription": {"text": "Legacy-named symbol `bank_recon_v2` in probes/s7_boundary_audit.py:22"}, "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-d7a0ae7282342784", "name": "Commented-code block (6 lines) in src/types/globals.d.ts:1", "shortDescription": {"text": "Commented-code block (6 lines) in src/types/globals.d.ts:1"}, "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-bf701b7d1b9fa28b", "name": "Commented-code block (6 lines) in src/home/purchase-common.ts:446", "shortDescription": {"text": "Commented-code block (6 lines) in src/home/purchase-common.ts:446"}, "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-d044d54ea9a34ebd", "name": "Commented-code block (5 lines) in src/home/workspace-switcher.ts:7", "shortDescription": {"text": "Commented-code block (5 lines) in src/home/workspace-switcher.ts:7"}, "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-4199472142488e2a", "name": "Commented-code block (5 lines) in src/home/settings-core.ts:234", "shortDescription": {"text": "Commented-code block (5 lines) in src/home/settings-core.ts:234"}, "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-51796877ebfc9f07", "name": "Commented-code block (5 lines) in src/home/camera-image-utils.ts:4", "shortDescription": {"text": "Commented-code block (5 lines) in src/home/camera-image-utils.ts:4"}, "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-b4c13afccf08971a", "name": "Commented-code block (12 lines) in src/home/ocr-results.ts:5", "shortDescription": {"text": "Commented-code block (12 lines) in src/home/ocr-results.ts:5"}, "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-136c9de33e9b25cb", "name": "Commented-code block (6 lines) in src/home/confirm-modals-html.ts:4", "shortDescription": {"text": "Commented-code block (6 lines) in src/home/confirm-modals-html.ts:4"}, "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-4dc31baadb9a6472", "name": "Commented-code block (8 lines) in src/home/erp-xero.ts:4", "shortDescription": {"text": "Commented-code block (8 lines) in src/home/erp-xero.ts:4"}, "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-1c769cc0e22aefa0", "name": "Commented-code block (5 lines) in src/home/pos-onboarding.ts:1", "shortDescription": {"text": "Commented-code block (5 lines) in src/home/pos-onboarding.ts:1"}, "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-2c5ed50172961fc0", "name": "Legacy-named symbol `pearnly_reconciliation_redesign_v2` in src/home/recon-center-x.ts:1", "shortDescription": {"text": "Legacy-named symbol `pearnly_reconciliation_redesign_v2` in src/home/recon-center-x.ts:1"}, "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-6b2d941f9559590b", "name": "Commented-code block (6 lines) in src/home/welcome-wizard.ts:9", "shortDescription": {"text": "Commented-code block (6 lines) in src/home/welcome-wizard.ts:9"}, "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-2f82ffd5690b58eb", "name": "Commented-code block (5 lines) in src/home/modal-archive-rule.ts:4", "shortDescription": {"text": "Commented-code block (5 lines) in src/home/modal-archive-rule.ts:4"}, "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-d0d2cfcf4e44f5d3", "name": "Commented-code block (5 lines) in src/home/workspace-gate.ts:1", "shortDescription": {"text": "Commented-code block (5 lines) in src/home/workspace-gate.ts:1"}, "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-812639053496176a", "name": "Commented-code block (9 lines) in src/home/big-batch-progress.ts:4", "shortDescription": {"text": "Commented-code block (9 lines) in src/home/big-batch-progress.ts:4"}, "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-6f22cdb199a3b395", "name": "Commented-code block (8 lines) in src/home/endpoint-modal-html.ts:4", "shortDescription": {"text": "Commented-code block (8 lines) in src/home/endpoint-modal-html.ts:4"}, "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-84e1b3ef840730df", "name": "Commented-code block (5 lines) in src/home/pos-cashiers.ts:1", "shortDescription": {"text": "Commented-code block (5 lines) in src/home/pos-cashiers.ts:1"}, "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-cf1187759db9e3fb", "name": "Commented-code block (5 lines) in src/home/dashboard.ts:11", "shortDescription": {"text": "Commented-code block (5 lines) in src/home/dashboard.ts:11"}, "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-1c2f6e3d23279d9b", "name": "Commented-code block (5 lines) in src/home/erp-mappings.ts:9", "shortDescription": {"text": "Commented-code block (5 lines) in src/home/erp-mappings.ts:9"}, "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-5ce312785f5a3d83", "name": "Commented-code block (8 lines) in src/home/erp-integration.ts:1", "shortDescription": {"text": "Commented-code block (8 lines) in src/home/erp-integration.ts:1"}, "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-5f3ceca424e124be", "name": "`fetch()` without try/.catch or AbortSignal \u2014 src/home/erp-integration.ts:91", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 src/home/erp-integration.ts:91"}, "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-dffb1d51a9acac39", "name": "Commented-code block (5 lines) in src/home/knowledge-sources.ts:4", "shortDescription": {"text": "Commented-code block (5 lines) in src/home/knowledge-sources.ts:4"}, "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-100b1ea1fa6d6561", "name": "Commented-code block (7 lines) in src/home/page-reconcile.ts:6", "shortDescription": {"text": "Commented-code block (7 lines) in src/home/page-reconcile.ts:6"}, "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-cb6419135f19d926", "name": "Commented-code block (5 lines) in src/home/billing.ts:10", "shortDescription": {"text": "Commented-code block (5 lines) in src/home/billing.ts:10"}, "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-511d6053d404de5e", "name": "`fetch()` without try/.catch or AbortSignal \u2014 src/home/billing.ts:37", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 src/home/billing.ts:37"}, "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-822cfbe09f92d6bb", "name": "Commented-code block (7 lines) in src/home/page-dashboard.ts:4", "shortDescription": {"text": "Commented-code block (7 lines) in src/home/page-dashboard.ts:4"}, "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-1ce6b92a19732180", "name": "Commented-code block (5 lines) in src/home/dms-intake-html.ts:1", "shortDescription": {"text": "Commented-code block (5 lines) in src/home/dms-intake-html.ts:1"}, "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-ed85340e08c6fe67", "name": "Commented-code block (5 lines) in src/home/pos-payment-settings.ts:1", "shortDescription": {"text": "Commented-code block (5 lines) in src/home/pos-payment-settings.ts:1"}, "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-063702c0e0416961", "name": "Commented-code block (10 lines) in src/home/page-settings.ts:4", "shortDescription": {"text": "Commented-code block (10 lines) in src/home/page-settings.ts:4"}, "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-df20fd3a1ffc4292", "name": "Commented-code block (6 lines) in src/home/session-heartbeat.ts:4", "shortDescription": {"text": "Commented-code block (6 lines) in src/home/session-heartbeat.ts:4"}, "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-c4ee9633c29b090f", "name": "Commented-code block (9 lines) in src/home/history-list.ts:4", "shortDescription": {"text": "Commented-code block (9 lines) in src/home/history-list.ts:4"}, "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-422c07bb4c474278", "name": "Legacy-named symbol `is_copy` in src/home/ocr-fields.ts:15", "shortDescription": {"text": "Legacy-named symbol `is_copy` in src/home/ocr-fields.ts:15"}, "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-359fd65d72006b46", "name": "Commented-code block (5 lines) in src/home/bank-client-picker-html.ts:4", "shortDescription": {"text": "Commented-code block (5 lines) in src/home/bank-client-picker-html.ts:4"}, "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-4a43cb822f59c921", "name": "Commented-code block (5 lines) in src/home/purchase-detail.ts:1", "shortDescription": {"text": "Commented-code block (5 lines) in src/home/purchase-detail.ts:1"}, "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-2ecb259207ef1fc8", "name": "Commented-code block (5 lines) in src/home/page-automation-panes-1.ts:1", "shortDescription": {"text": "Commented-code block (5 lines) in src/home/page-automation-panes-1.ts:1"}, "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-3e893d5804e40d2c", "name": "Commented-code block (8 lines) in src/home/page-automation.ts:7", "shortDescription": {"text": "Commented-code block (8 lines) in src/home/page-automation.ts:7"}, "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-b952195895056bc6", "name": "Commented-code block (8 lines) in src/home/notifications.ts:4", "shortDescription": {"text": "Commented-code block (8 lines) in src/home/notifications.ts:4"}, "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-f4e380edaf54ac62", "name": "`fetch()` without try/.catch or AbortSignal \u2014 src/home/notifications.ts:23", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 src/home/notifications.ts:23"}, "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-3cc834fefc485a59", "name": "Commented-code block (5 lines) in src/home/pos-tables.ts:1", "shortDescription": {"text": "Commented-code block (5 lines) in src/home/pos-tables.ts:1"}, "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-aeed0e6bb98a9959", "name": "Commented-code block (5 lines) in src/home/knowledge-documents.ts:4", "shortDescription": {"text": "Commented-code block (5 lines) in src/home/knowledge-documents.ts:4"}, "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-183af5a5c47ae74d", "name": "Commented-code block (6 lines) in src/home/exceptions-store.ts:1", "shortDescription": {"text": "Commented-code block (6 lines) in src/home/exceptions-store.ts:1"}, "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-3dc01baf5cd5d390", "name": "Commented-code block (5 lines) in src/home/bank-recon.ts:1", "shortDescription": {"text": "Commented-code block (5 lines) in src/home/bank-recon.ts:1"}, "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-4410d4eaeac758ca", "name": "Commented-code block (6 lines) in src/home/dms-intake.ts:1", "shortDescription": {"text": "Commented-code block (6 lines) in src/home/dms-intake.ts:1"}, "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-88db9d524841953b", "name": "`fetch()` without try/.catch or AbortSignal \u2014 src/home/recon-center-x-results.ts:259", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 src/home/recon-center-x-results.ts:259"}, "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-c24ef41a809320e6", "name": "Commented-code block (5 lines) in src/home/change-password.ts:4", "shortDescription": {"text": "Commented-code block (5 lines) in src/home/change-password.ts:4"}, "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-12c9f3cafc7effd3", "name": "Commented-code block (6 lines) in src/home/page-integrations.ts:4", "shortDescription": {"text": "Commented-code block (6 lines) in src/home/page-integrations.ts:4"}, "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-e3a93051c7b1df30", "name": "Commented-code block (8 lines) in src/home/topbar-avatar.ts:9", "shortDescription": {"text": "Commented-code block (8 lines) in src/home/topbar-avatar.ts:9"}, "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-38e78bf7eb34d18b", "name": "Commented-code block (5 lines) in src/home/clients-store.ts:1", "shortDescription": {"text": "Commented-code block (5 lines) in src/home/clients-store.ts:1"}, "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-f1471977b249b809", "name": "Commented-code block (7 lines) in src/home/ocr-push.ts:4", "shortDescription": {"text": "Commented-code block (7 lines) in src/home/ocr-push.ts:4"}, "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-8935513812003ac3", "name": "Commented-code block (6 lines) in src/home/dms-intake-invoice-submit.ts:1", "shortDescription": {"text": "Commented-code block (6 lines) in src/home/dms-intake-invoice-submit.ts:1"}, "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-de9efb4cc8e28df7", "name": "`fetch()` without try/.catch or AbortSignal \u2014 src/home/dms-intake-invoice-submit.ts:274", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 src/home/dms-intake-invoice-submit.ts:274"}, "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-fa45ad86fa14ccf1", "name": "`fetch()` without try/.catch or AbortSignal \u2014 src/home/exceptions-list.ts:26", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 src/home/exceptions-list.ts:26"}, "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-a7258bf85985ad4d", "name": "Commented-code block (6 lines) in src/home/page-history.ts:4", "shortDescription": {"text": "Commented-code block (6 lines) in src/home/page-history.ts:4"}, "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-0792d566057444a8", "name": "Legacy-named symbol `is_copy` in src/home/history-drawer.ts:133", "shortDescription": {"text": "Legacy-named symbol `is_copy` in src/home/history-drawer.ts:133"}, "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-8cd7961bc51ea308", "name": "Commented-code block (8 lines) in src/home/history-drawer.ts:4", "shortDescription": {"text": "Commented-code block (8 lines) in src/home/history-drawer.ts:4"}, "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-8652ed533c29b452", "name": "Commented-code block (5 lines) in src/home/page-knowledge.ts:4", "shortDescription": {"text": "Commented-code block (5 lines) in src/home/page-knowledge.ts:4"}, "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-750e2890b1641b01", "name": "Commented-code block (7 lines) in src/home/line-email-modal.ts:4", "shortDescription": {"text": "Commented-code block (7 lines) in src/home/line-email-modal.ts:4"}, "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-907b204e81d201a3", "name": "Legacy-named symbol `pearnly_reconciliation_redesign_v2` in src/home/recon-center-x-html.ts:1", "shortDescription": {"text": "Legacy-named symbol `pearnly_reconciliation_redesign_v2` in src/home/recon-center-x-html.ts:1"}, "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-2d84ec41585a7a1f", "name": "Commented-code block (8 lines) in src/home/format-date.ts:1", "shortDescription": {"text": "Commented-code block (8 lines) in src/home/format-date.ts:1"}, "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-09dcf2a01e9d8104", "name": "Commented-code block (6 lines) in src/home/page-clients.ts:4", "shortDescription": {"text": "Commented-code block (6 lines) in src/home/page-clients.ts:4"}, "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-f0fecf16604d3fae", "name": "Commented-code block (6 lines) in src/home/core.ts:205", "shortDescription": {"text": "Commented-code block (6 lines) in src/home/core.ts:205"}, "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-03285a89ec710c2d", "name": "`fetch()` without try/.catch or AbortSignal \u2014 src/home/core.ts:223", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 src/home/core.ts:223"}, "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-6b1fbf0d18a1b31c", "name": "Commented-code block (5 lines) in src/home/more-menu.ts:1", "shortDescription": {"text": "Commented-code block (5 lines) in src/home/more-menu.ts:1"}, "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-716ca04a1b264a7a", "name": "Commented-code block (7 lines) in src/home/access-log.ts:4", "shortDescription": {"text": "Commented-code block (7 lines) in src/home/access-log.ts:4"}, "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-fe8411fad86ac0da", "name": "`fetch()` without try/.catch or AbortSignal \u2014 src/home/access-log.ts:108", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 src/home/access-log.ts:108"}, "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-c4448b0cc2c8848c", "name": "Commented-code block (5 lines) in src/home/dms-intake-confirm.ts:1", "shortDescription": {"text": "Commented-code block (5 lines) in src/home/dms-intake-confirm.ts:1"}, "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-da4fcd7859d5a001", "name": "Commented-code block (8 lines) in src/home/ui-templates.ts:1", "shortDescription": {"text": "Commented-code block (8 lines) in src/home/ui-templates.ts:1"}, "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-d07600adc40335cc", "name": "Commented-code block (5 lines) in src/home/state.ts:3", "shortDescription": {"text": "Commented-code block (5 lines) in src/home/state.ts:3"}, "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-2e5cdb84a98f5d94", "name": "Commented-code block (7 lines) in src/home/module-nav.ts:1", "shortDescription": {"text": "Commented-code block (7 lines) in src/home/module-nav.ts:1"}, "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-44862e951aa608ae", "name": "Legacy-named symbol `is_copy` in src/home/exceptions-drawer-render.ts:43", "shortDescription": {"text": "Legacy-named symbol `is_copy` in src/home/exceptions-drawer-render.ts:43"}, "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-667ff77f5a823195", "name": "Commented-code block (8 lines) in src/home/automation.ts:4", "shortDescription": {"text": "Commented-code block (8 lines) in src/home/automation.ts:4"}, "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-856b3a466ebd4355", "name": "Commented-code block (5 lines) in src/home/knowledge-api.ts:4", "shortDescription": {"text": "Commented-code block (5 lines) in src/home/knowledge-api.ts:4"}, "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-68acb9bbb0617e2c", "name": "`fetch()` without try/.catch or AbortSignal \u2014 src/home/sales-report.ts:83", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 src/home/sales-report.ts:83"}, "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-04b891e69fc7e589", "name": "Commented-code block (6 lines) in src/home/layout.ts:193", "shortDescription": {"text": "Commented-code block (6 lines) in src/home/layout.ts:193"}, "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-bb4f69722b451808", "name": "`fetch()` without try/.catch or AbortSignal \u2014 src/home/bank-recon-detail.ts:39", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 src/home/bank-recon-detail.ts:39"}, "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-e0a88c973dd8a13e", "name": "Commented-code block (9 lines) in src/home/unified-push.ts:161", "shortDescription": {"text": "Commented-code block (9 lines) in src/home/unified-push.ts: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-83f33271f89924a3", "name": "`fetch()` without try/.catch or AbortSignal \u2014 src/home/unified-push.ts:159", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 src/home/unified-push.ts:159"}, "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-9f713f8fd5eb18b4", "name": "Commented-code block (5 lines) in src/home/erp-exceptions.ts:4", "shortDescription": {"text": "Commented-code block (5 lines) in src/home/erp-exceptions.ts:4"}, "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-5aa1dfd517c829be", "name": "`fetch()` without try/.catch or AbortSignal \u2014 src/home/erp-exceptions.ts:409", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 src/home/erp-exceptions.ts:409"}, "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-0908b9522acc0682", "name": "Commented-code block (5 lines) in src/home/knowledge-center.ts:4", "shortDescription": {"text": "Commented-code block (5 lines) in src/home/knowledge-center.ts:4"}, "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-c06b24a35b683927", "name": "Commented-code block (8 lines) in src/home/erp-mrerp-dms-connect.ts:4", "shortDescription": {"text": "Commented-code block (8 lines) in src/home/erp-mrerp-dms-connect.ts:4"}, "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-5d5d3a1f2eb3ac4f", "name": "Commented-code block (5 lines) in src/home/erp-batch.ts:4", "shortDescription": {"text": "Commented-code block (5 lines) in src/home/erp-batch.ts:4"}, "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-66d7857717cb37b8", "name": "Commented-code block (5 lines) in src/home/core-boot.ts:303", "shortDescription": {"text": "Commented-code block (5 lines) in src/home/core-boot.ts:303"}, "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-2800bb64334a59a3", "name": "`fetch()` without try/.catch or AbortSignal \u2014 src/home/core-boot.ts:165", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 src/home/core-boot.ts:165"}, "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-80bf8c95b4645f03", "name": "Commented-code block (6 lines) in src/home/cmdk-mask-html.ts:4", "shortDescription": {"text": "Commented-code block (6 lines) in src/home/cmdk-mask-html.ts:4"}, "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-3952f2655f33ce81", "name": "Commented-code block (5 lines) in src/home/sidebar-nav-group.ts:4", "shortDescription": {"text": "Commented-code block (5 lines) in src/home/sidebar-nav-group.ts:4"}, "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-d835e4e5f0bbf99f", "name": "Commented-code block (7 lines) in src/home/dms-intake-invoice.ts:1", "shortDescription": {"text": "Commented-code block (7 lines) in src/home/dms-intake-invoice.ts:1"}, "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-7e29bd4999f0b6b1", "name": "Commented-code block (5 lines) in src/home/modal-notif-new.ts:4", "shortDescription": {"text": "Commented-code block (5 lines) in src/home/modal-notif-new.ts:4"}, "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-2d3a4943e0a69ca1", "name": "Commented-code block (5 lines) in src/home/rules-settings.ts:4", "shortDescription": {"text": "Commented-code block (5 lines) in src/home/rules-settings.ts:4"}, "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-045cc46bdff2c689", "name": "`fetch()` without try/.catch or AbortSignal \u2014 src/home/rules-settings.ts:26", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 src/home/rules-settings.ts:26"}, "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-e0c321b370f0c920", "name": "Commented-code block (7 lines) in src/home/email-modal-html.ts:4", "shortDescription": {"text": "Commented-code block (7 lines) in src/home/email-modal-html.ts:4"}, "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-67bbc856ce23de3d", "name": "Commented-code block (9 lines) in src/home/erp-endpoints.ts:4", "shortDescription": {"text": "Commented-code block (9 lines) in src/home/erp-endpoints.ts:4"}, "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-115c722f725fd1e4", "name": "Commented-code block (11 lines) in src/home/report-templates.ts:226", "shortDescription": {"text": "Commented-code block (11 lines) in src/home/report-templates.ts:226"}, "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-1e455c6354bdc5af", "name": "`fetch()` without try/.catch or AbortSignal \u2014 src/home/report-templates.ts:303", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 src/home/report-templates.ts:303"}, "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-f1785e63271e655f", "name": "Commented-code block (5 lines) in src/home/bank-recon-store.ts:1", "shortDescription": {"text": "Commented-code block (5 lines) in src/home/bank-recon-store.ts:1"}, "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-b0d33e24ad6a8225", "name": "Legacy-named symbol `is_copy` in src/home/exceptions-drawer.ts:111", "shortDescription": {"text": "Legacy-named symbol `is_copy` in src/home/exceptions-drawer.ts:111"}, "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-072ebaab055ba481", "name": "`fetch()` without try/.catch or AbortSignal \u2014 src/home/exceptions-drawer.ts:150", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 src/home/exceptions-drawer.ts:150"}, "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-07cd8ad3670727dc", "name": "Commented-code block (6 lines) in src/home/bank-cand-drawer-html.ts:4", "shortDescription": {"text": "Commented-code block (6 lines) in src/home/bank-cand-drawer-html.ts:4"}, "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-d90eb67c958e147b", "name": "Commented-code block (5 lines) in src/home/modal-archive-token.ts:4", "shortDescription": {"text": "Commented-code block (5 lines) in src/home/modal-archive-token.ts:4"}, "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-64897ac812b4f437", "name": "Commented-code block (6 lines) in src/home/erp-onboard.ts:8", "shortDescription": {"text": "Commented-code block (6 lines) in src/home/erp-onboard.ts:8"}, "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-6adfe3d30ee9355f", "name": "40 env vars used in code but missing from .env.example", "shortDescription": {"text": "40 env vars used in code but missing from .env.example"}, "fullDescription": {"text": "Drift between code and config docs. The first few: `CI`, `DMS_LOGIN_URL`, `DMS_PASSWORD`, `DMS_USERNAME`, `ERP_SELLER_ROUTING`, `ERP_SELLER_ROUTING_USERS`, `GOOGLE_EXPORT_CLIENT_ID`, `GOOGLE_EXPORT_CLIENT_SECRET` + 32 more. Add them (with a placeholder/comment) to .env.example so onboarding doesn't break."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "low", "confidence": 1.0}}, {"id": "scanner-6297377883dd7783", "name": "Near-duplicate function bodies in 13 places", "shortDescription": {"text": "Near-duplicate function bodies in 13 places"}, "fullDescription": {"text": "Functions with the same first-5-line body hash:\ndocs/workspace-isolation/_e2e_ws_isolation.py:main, docs/pos/_e2e_po_b2.py:main, docs/pos/_perf_c2.py:main, docs/pos/_e2e_po_b6.py:main\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-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:\ndocs/pos/_e2e_po_b6.py:record, docs/pos/_e2e_full.py:record\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-49c98f7cedd9c977", "name": "Near-duplicate function bodies in 4 places", "shortDescription": {"text": "Near-duplicate function bodies in 4 places"}, "fullDescription": {"text": "Functions with the same first-5-line body hash:\ndocs/pos/_e2e_po_a3.py:main, docs/pos/_e2e_po_a2.py:main, docs/pos/_e2e_po_a1.py:main, docs/pos/restaurant/_e2e_restaurant.py:main\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:\nscripts/_authz_e2e.py:H, scripts/_authz_matrix_prod.py:H, scripts/_authz_roles_e2e.py:H\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-ad353f0f7bc66774", "name": "FastAPI POST `dms_id_card_recognize` without auth dependency \u2014 routes/dms_routes.py:171", "shortDescription": {"text": "FastAPI POST `dms_id_card_recognize` without auth dependency \u2014 routes/dms_routes.py:171"}, "fullDescription": {"text": "`@router.post` decorator with no `Depends(get_current_user)` or auth-shaped dependency in its signature. Mutating endpoints should require authentication unless explicitly public."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "high", "confidence": 1.0}}, {"id": "scanner-547ee6466591985e", "name": "FastAPI POST `dms_customer_fields` without auth dependency \u2014 routes/dms_routes.py:206", "shortDescription": {"text": "FastAPI POST `dms_customer_fields` without auth dependency \u2014 routes/dms_routes.py:206"}, "fullDescription": {"text": "`@router.post` decorator with no `Depends(get_current_user)` or auth-shaped dependency in its signature. Mutating endpoints should require authentication unless explicitly public."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "high", "confidence": 1.0}}, {"id": "scanner-bc436a5a622561c1", "name": "FastAPI POST `dms_id_card_push` without auth dependency \u2014 routes/dms_routes.py:241", "shortDescription": {"text": "FastAPI POST `dms_id_card_push` without auth dependency \u2014 routes/dms_routes.py:241"}, "fullDescription": {"text": "`@router.post` decorator with no `Depends(get_current_user)` or auth-shaped dependency in its signature. Mutating endpoints should require authentication unless explicitly public."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "high", "confidence": 1.0}}, {"id": "scanner-e477be95c6a723d6", "name": "FastAPI POST `run_check` without auth dependency \u2014 routes/knowledge_risk_routes.py:37", "shortDescription": {"text": "FastAPI POST `run_check` without auth dependency \u2014 routes/knowledge_risk_routes.py:37"}, "fullDescription": {"text": "`@router.post` decorator with no `Depends(get_current_user)` or auth-shaped dependency in its signature. Mutating endpoints should require authentication unless explicitly public."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "high", "confidence": 1.0}}, {"id": "scanner-71e5ffb2c06c098e", "name": "FastAPI POST `create_invitation` without auth dependency \u2014 routes/console_invite_routes.py:66", "shortDescription": {"text": "FastAPI POST `create_invitation` without auth dependency \u2014 routes/console_invite_routes.py:66"}, "fullDescription": {"text": "`@router.post` decorator with no `Depends(get_current_user)` or auth-shaped dependency in its signature. Mutating endpoints should require authentication unless explicitly public."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "high", "confidence": 1.0}}, {"id": "scanner-8a9ba97eb10c0aed", "name": "FastAPI DELETE `revoke_invitation` without auth dependency \u2014 routes/console_invite_routes.py:123", "shortDescription": {"text": "FastAPI DELETE `revoke_invitation` without auth dependency \u2014 routes/console_invite_routes.py:123"}, "fullDescription": {"text": "`@router.delete` decorator with no `Depends(get_current_user)` or auth-shaped dependency in its signature. Mutating endpoints should require authentication unless explicitly public."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "high", "confidence": 1.0}}, {"id": "scanner-80b9f0627bf898bd", "name": "FastAPI POST `accept_invitation` without auth dependency \u2014 routes/console_invite_routes.py:147", "shortDescription": {"text": "FastAPI POST `accept_invitation` without auth dependency \u2014 routes/console_invite_routes.py:147"}, "fullDescription": {"text": "`@router.post` decorator with no `Depends(get_current_user)` or auth-shaped dependency in its signature. Mutating endpoints should require authentication unless explicitly public."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "high", "confidence": 1.0}}, {"id": "scanner-67fb72c5b8c6cef3", "name": "FastAPI POST `initiate_transfer` without auth dependency \u2014 routes/console_invite_routes.py:177", "shortDescription": {"text": "FastAPI POST `initiate_transfer` without auth dependency \u2014 routes/console_invite_routes.py:177"}, "fullDescription": {"text": "`@router.post` decorator with no `Depends(get_current_user)` or auth-shaped dependency in its signature. Mutating endpoints should require authentication unless explicitly public."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "high", "confidence": 1.0}}, {"id": "scanner-e3c1472ed6f7cdb2", "name": "FastAPI POST `accept_transfer` without auth dependency \u2014 routes/console_invite_routes.py:204", "shortDescription": {"text": "FastAPI POST `accept_transfer` without auth dependency \u2014 routes/console_invite_routes.py:204"}, "fullDescription": {"text": "`@router.post` decorator with no `Depends(get_current_user)` or auth-shaped dependency in its signature. Mutating endpoints should require authentication unless explicitly public."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "high", "confidence": 1.0}}, {"id": "scanner-687eb43dc12d276a", "name": "FastAPI PUT `email_account_bind` without auth dependency \u2014 routes/email_ingest_routes.py:66", "shortDescription": {"text": "FastAPI PUT `email_account_bind` without auth dependency \u2014 routes/email_ingest_routes.py:66"}, "fullDescription": {"text": "`@router.put` decorator with no `Depends(get_current_user)` or auth-shaped dependency in its signature. Mutating endpoints should require authentication unless explicitly public."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "high", "confidence": 1.0}}, {"id": "scanner-6a47f853b6ee14e7", "name": "FastAPI DELETE `email_account_unbind` without auth dependency \u2014 routes/email_ingest_routes.py:99", "shortDescription": {"text": "FastAPI DELETE `email_account_unbind` without auth dependency \u2014 routes/email_ingest_routes.py:99"}, "fullDescription": {"text": "`@router.delete` decorator with no `Depends(get_current_user)` or auth-shaped dependency in its signature. Mutating endpoints should require authentication unless explicitly public."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "high", "confidence": 1.0}}, {"id": "scanner-853c9355b375a1e9", "name": "FastAPI POST `email_account_test` without auth dependency \u2014 routes/email_ingest_routes.py:107", "shortDescription": {"text": "FastAPI POST `email_account_test` without auth dependency \u2014 routes/email_ingest_routes.py:107"}, "fullDescription": {"text": "`@router.post` decorator with no `Depends(get_current_user)` or auth-shaped dependency in its signature. Mutating endpoints should require authentication unless explicitly public."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "high", "confidence": 1.0}}, {"id": "scanner-f967bb21b9f8b8ba", "name": "FastAPI POST `email_account_trigger` without auth dependency \u2014 routes/email_ingest_routes.py:127", "shortDescription": {"text": "FastAPI POST `email_account_trigger` without auth dependency \u2014 routes/email_ingest_routes.py:127"}, "fullDescription": {"text": "`@router.post` decorator with no `Depends(get_current_user)` or auth-shaped dependency in its signature. Mutating endpoints should require authentication unless explicitly public."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "high", "confidence": 1.0}}, {"id": "scanner-463059d315a76548", "name": "FastAPI POST `admin_create_user` without auth dependency \u2014 routes/admin_users_mutation_routes.py:62", "shortDescription": {"text": "FastAPI POST `admin_create_user` without auth dependency \u2014 routes/admin_users_mutation_routes.py:62"}, "fullDescription": {"text": "`@router.post` decorator with no `Depends(get_current_user)` or auth-shaped dependency in its signature. Mutating endpoints should require authentication unless explicitly public."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "high", "confidence": 1.0}}, {"id": "scanner-a9e060f73a8b69fa", "name": "FastAPI PATCH `admin_update_user_quota` without auth dependency \u2014 routes/admin_users_mutation_routes.py:95", "shortDescription": {"text": "FastAPI PATCH `admin_update_user_quota` without auth dependency \u2014 routes/admin_users_mutation_routes.py:95"}, "fullDescription": {"text": "`@router.patch` decorator with no `Depends(get_current_user)` or auth-shaped dependency in its signature. Mutating endpoints should require authentication unless explicitly public."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "high", "confidence": 1.0}}, {"id": "scanner-ca4f3b303b0d9c14", "name": "FastAPI PATCH `admin_update_user_status` without auth dependency \u2014 routes/admin_users_mutation_routes.py:119", "shortDescription": {"text": "FastAPI PATCH `admin_update_user_status` without auth dependency \u2014 routes/admin_users_mutation_routes.py:119"}, "fullDescription": {"text": "`@router.patch` decorator with no `Depends(get_current_user)` or auth-shaped dependency in its signature. Mutating endpoints should require authentication unless explicitly public."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "high", "confidence": 1.0}}, {"id": "scanner-1167311366e8ac53", "name": "FastAPI POST `admin_delete_user` without auth dependency \u2014 routes/admin_users_mutation_routes.py:143", "shortDescription": {"text": "FastAPI POST `admin_delete_user` without auth dependency \u2014 routes/admin_users_mutation_routes.py:143"}, "fullDescription": {"text": "`@router.post` decorator with no `Depends(get_current_user)` or auth-shaped dependency in its signature. Mutating endpoints should require authentication unless explicitly public."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "high", "confidence": 1.0}}, {"id": "scanner-1f03748d61d1db6e", "name": "FastAPI POST `admin_reset_user_password` without auth dependency \u2014 routes/admin_users_mutation_routes.py:177", "shortDescription": {"text": "FastAPI POST `admin_reset_user_password` without auth dependency \u2014 routes/admin_users_mutation_routes.py:177"}, "fullDescription": {"text": "`@router.post` decorator with no `Depends(get_current_user)` or auth-shaped dependency in its signature. Mutating endpoints should require authentication unless explicitly public."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "high", "confidence": 1.0}}, {"id": "scanner-aae55d0dccffd1b1", "name": "FastAPI PATCH `admin_toggle_employee_active` without auth dependency \u2014 routes/admin_users_mutation_routes.py:185", "shortDescription": {"text": "FastAPI PATCH `admin_toggle_employee_active` without auth dependency \u2014 routes/admin_users_mutation_routes.py:185"}, "fullDescription": {"text": "`@router.patch` decorator with no `Depends(get_current_user)` or auth-shaped dependency in its signature. Mutating endpoints should require authentication unless explicitly public."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "high", "confidence": 1.0}}, {"id": "scanner-ba9083dcb031a196", "name": "FastAPI POST `admin_reset_employee_password` without auth dependency \u2014 routes/admin_users_mutation_routes.py:194", "shortDescription": {"text": "FastAPI POST `admin_reset_employee_password` without auth dependency \u2014 routes/admin_users_mutation_routes.py:194"}, "fullDescription": {"text": "`@router.post` decorator with no `Depends(get_current_user)` or auth-shaped dependency in its signature. Mutating endpoints should require authentication unless explicitly public."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "high", "confidence": 1.0}}, {"id": "scanner-54079f1b44c244ce", "name": "FastAPI DELETE `admin_remove_employee` without auth dependency \u2014 routes/admin_users_mutation_routes.py:201", "shortDescription": {"text": "FastAPI DELETE `admin_remove_employee` without auth dependency \u2014 routes/admin_users_mutation_routes.py:201"}, "fullDescription": {"text": "`@router.delete` decorator with no `Depends(get_current_user)` or auth-shaped dependency in its signature. Mutating endpoints should require authentication unless explicitly public."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "high", "confidence": 1.0}}, {"id": "scanner-143bb07a68418ceb", "name": "FastAPI POST `admin_cascade_delete` without auth dependency \u2014 routes/admin_users_mutation_routes.py:208", "shortDescription": {"text": "FastAPI POST `admin_cascade_delete` without auth dependency \u2014 routes/admin_users_mutation_routes.py:208"}, "fullDescription": {"text": "`@router.post` decorator with no `Depends(get_current_user)` or auth-shaped dependency in its signature. Mutating endpoints should require authentication unless explicitly public."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "high", "confidence": 1.0}}, {"id": "scanner-b86a8422b19e30f3", "name": "FastAPI POST `api_send_document` without auth dependency \u2014 routes/sales_send_routes.py:71", "shortDescription": {"text": "FastAPI POST `api_send_document` without auth dependency \u2014 routes/sales_send_routes.py:71"}, "fullDescription": {"text": "`@router.post` decorator with no `Depends(get_current_user)` or auth-shaped dependency in its signature. Mutating endpoints should require authentication unless explicitly public."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "high", "confidence": 1.0}}, {"id": "scanner-89e548e676c0a983", "name": "FastAPI POST `v1_recognize` without auth dependency \u2014 routes/meta_aliases_routes.py:52", "shortDescription": {"text": "FastAPI POST `v1_recognize` without auth dependency \u2014 routes/meta_aliases_routes.py:52"}, "fullDescription": {"text": "`@router.post` decorator with no `Depends(get_current_user)` or auth-shaped dependency in its signature. Mutating endpoints should require authentication unless explicitly public."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "high", "confidence": 1.0}}, {"id": "scanner-dfa0bbe37525efde", "name": "FastAPI POST `me_line_complete_email` without auth dependency \u2014 routes/line_account_merge_routes.py:40", "shortDescription": {"text": "FastAPI POST `me_line_complete_email` without auth dependency \u2014 routes/line_account_merge_routes.py:40"}, "fullDescription": {"text": "`@router.post` decorator with no `Depends(get_current_user)` or auth-shaped dependency in its signature. Mutating endpoints should require authentication unless explicitly public."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "high", "confidence": 1.0}}, {"id": "scanner-de7c25e8e4ba2af9", "name": "FastAPI POST `upload_document` without auth dependency \u2014 routes/knowledge_routes.py:100", "shortDescription": {"text": "FastAPI POST `upload_document` without auth dependency \u2014 routes/knowledge_routes.py:100"}, "fullDescription": {"text": "`@router.post` decorator with no `Depends(get_current_user)` or auth-shaped dependency in its signature. Mutating endpoints should require authentication unless explicitly public."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "high", "confidence": 1.0}}, {"id": "scanner-f79fcd33e7460768", "name": "FastAPI DELETE `delete_document` without auth dependency \u2014 routes/knowledge_routes.py:294", "shortDescription": {"text": "FastAPI DELETE `delete_document` without auth dependency \u2014 routes/knowledge_routes.py:294"}, "fullDescription": {"text": "`@router.delete` decorator with no `Depends(get_current_user)` or auth-shaped dependency in its signature. Mutating endpoints should require authentication unless explicitly public."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "high", "confidence": 1.0}}, {"id": "scanner-eda639512bc9ad79", "name": "FastAPI POST `search_documents` without auth dependency \u2014 routes/knowledge_routes.py:325", "shortDescription": {"text": "FastAPI POST `search_documents` without auth dependency \u2014 routes/knowledge_routes.py:325"}, "fullDescription": {"text": "`@router.post` decorator with no `Depends(get_current_user)` or auth-shaped dependency in its signature. Mutating endpoints should require authentication unless explicitly public."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "high", "confidence": 1.0}}, {"id": "scanner-c36ed5dad96dfd0f", "name": "FastAPI POST `api_create_supplier` without auth dependency \u2014 routes/purchase_config_routes.py:62", "shortDescription": {"text": "FastAPI POST `api_create_supplier` without auth dependency \u2014 routes/purchase_config_routes.py:62"}, "fullDescription": {"text": "`@router.post` decorator with no `Depends(get_current_user)` or auth-shaped dependency in its signature. Mutating endpoints should require authentication unless explicitly public."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "high", "confidence": 1.0}}, {"id": "scanner-dd7866fc5b4b4299", "name": "FastAPI PATCH `api_update_supplier` without auth dependency \u2014 routes/purchase_config_routes.py:87", "shortDescription": {"text": "FastAPI PATCH `api_update_supplier` without auth dependency \u2014 routes/purchase_config_routes.py:87"}, "fullDescription": {"text": "`@router.patch` decorator with no `Depends(get_current_user)` or auth-shaped dependency in its signature. Mutating endpoints should require authentication unless explicitly public."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "high", "confidence": 1.0}}, {"id": "scanner-30d07f3145f3689b", "name": "FastAPI DELETE `api_delete_supplier` without auth dependency \u2014 routes/purchase_config_routes.py:112", "shortDescription": {"text": "FastAPI DELETE `api_delete_supplier` without auth dependency \u2014 routes/purchase_config_routes.py:112"}, "fullDescription": {"text": "`@router.delete` decorator with no `Depends(get_current_user)` or auth-shaped dependency in its signature. Mutating endpoints should require authentication unless explicitly public."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "high", "confidence": 1.0}}, {"id": "scanner-0c6560f81246a28f", "name": "FastAPI POST `api_create_category` without auth dependency \u2014 routes/purchase_config_routes.py:149", "shortDescription": {"text": "FastAPI POST `api_create_category` without auth dependency \u2014 routes/purchase_config_routes.py:149"}, "fullDescription": {"text": "`@router.post` decorator with no `Depends(get_current_user)` or auth-shaped dependency in its signature. Mutating endpoints should require authentication unless explicitly public."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "high", "confidence": 1.0}}, {"id": "scanner-9a5d0ab19f1ab7e9", "name": "FastAPI PATCH `api_update_category` without auth dependency \u2014 routes/purchase_config_routes.py:168", "shortDescription": {"text": "FastAPI PATCH `api_update_category` without auth dependency \u2014 routes/purchase_config_routes.py:168"}, "fullDescription": {"text": "`@router.patch` decorator with no `Depends(get_current_user)` or auth-shaped dependency in its signature. Mutating endpoints should require authentication unless explicitly public."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "high", "confidence": 1.0}}, {"id": "scanner-a79f5d0ef79d51a4", "name": "FastAPI DELETE `api_delete_category` without auth dependency \u2014 routes/purchase_config_routes.py:188", "shortDescription": {"text": "FastAPI DELETE `api_delete_category` without auth dependency \u2014 routes/purchase_config_routes.py:188"}, "fullDescription": {"text": "`@router.delete` decorator with no `Depends(get_current_user)` or auth-shaped dependency in its signature. Mutating endpoints should require authentication unless explicitly public."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "high", "confidence": 1.0}}, {"id": "scanner-1256c41bfbfd4b86", "name": "FastAPI PUT `api_save_settings` without auth dependency \u2014 routes/purchase_config_routes.py:224", "shortDescription": {"text": "FastAPI PUT `api_save_settings` without auth dependency \u2014 routes/purchase_config_routes.py:224"}, "fullDescription": {"text": "`@router.put` decorator with no `Depends(get_current_user)` or auth-shaped dependency in its signature. Mutating endpoints should require authentication unless explicitly public."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "high", "confidence": 1.0}}, {"id": "scanner-e060363a12d69ff6", "name": "FastAPI POST `admin_migration_dry_run` without auth dependency \u2014 routes/admin_migration_routes.py:42", "shortDescription": {"text": "FastAPI POST `admin_migration_dry_run` without auth dependency \u2014 routes/admin_migration_routes.py:42"}, "fullDescription": {"text": "`@router.post` decorator with no `Depends(get_current_user)` or auth-shaped dependency in its signature. Mutating endpoints should require authentication unless explicitly public."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "high", "confidence": 1.0}}, {"id": "scanner-276165201de85ce0", "name": "FastAPI POST `admin_migration_execute` without auth dependency \u2014 routes/admin_migration_routes.py:52", "shortDescription": {"text": "FastAPI POST `admin_migration_execute` without auth dependency \u2014 routes/admin_migration_routes.py:52"}, "fullDescription": {"text": "`@router.post` decorator with no `Depends(get_current_user)` or auth-shaped dependency in its signature. Mutating endpoints should require authentication unless explicitly public."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "high", "confidence": 1.0}}, {"id": "scanner-8452bb883f3e48e1", "name": "FastAPI POST `admin_fix_orphans` without auth dependency \u2014 routes/admin_migration_routes.py:75", "shortDescription": {"text": "FastAPI POST `admin_fix_orphans` without auth dependency \u2014 routes/admin_migration_routes.py:75"}, "fullDescription": {"text": "`@router.post` decorator with no `Depends(get_current_user)` or auth-shaped dependency in its signature. Mutating endpoints should require authentication unless explicitly public."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "high", "confidence": 1.0}}, {"id": "scanner-173a4cfc65302ec3", "name": "FastAPI POST `admin_rls_run_tests` without auth dependency \u2014 routes/admin_migration_routes.py:97", "shortDescription": {"text": "FastAPI POST `admin_rls_run_tests` without auth dependency \u2014 routes/admin_migration_routes.py:97"}, "fullDescription": {"text": "`@router.post` decorator with no `Depends(get_current_user)` or auth-shaped dependency in its signature. Mutating endpoints should require authentication unless explicitly public."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "high", "confidence": 1.0}}, {"id": "scanner-5758a0cc0040721c", "name": "FastAPI POST `admin_backfill_tenant_ids` without auth dependency \u2014 routes/admin_migration_routes.py:107", "shortDescription": {"text": "FastAPI POST `admin_backfill_tenant_ids` without auth dependency \u2014 routes/admin_migration_routes.py:107"}, "fullDescription": {"text": "`@router.post` decorator with no `Depends(get_current_user)` or auth-shaped dependency in its signature. Mutating endpoints should require authentication unless explicitly public."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "high", "confidence": 1.0}}, {"id": "scanner-c4c5b724604e0be8", "name": "FastAPI POST `api_receive` without auth dependency \u2014 routes/inventory_routes.py:169", "shortDescription": {"text": "FastAPI POST `api_receive` without auth dependency \u2014 routes/inventory_routes.py:169"}, "fullDescription": {"text": "`@router.post` decorator with no `Depends(get_current_user)` or auth-shaped dependency in its signature. Mutating endpoints should require authentication unless explicitly public."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "high", "confidence": 1.0}}, {"id": "scanner-3f1f5777a1c4ac6c", "name": "FastAPI POST `api_count` without auth dependency \u2014 routes/inventory_routes.py:189", "shortDescription": {"text": "FastAPI POST `api_count` without auth dependency \u2014 routes/inventory_routes.py:189"}, "fullDescription": {"text": "`@router.post` decorator with no `Depends(get_current_user)` or auth-shaped dependency in its signature. Mutating endpoints should require authentication unless explicitly public."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "high", "confidence": 1.0}}, {"id": "scanner-454c5766db5d3adc", "name": "FastAPI POST `api_adjust` without auth dependency \u2014 routes/inventory_routes.py:206", "shortDescription": {"text": "FastAPI POST `api_adjust` without auth dependency \u2014 routes/inventory_routes.py:206"}, "fullDescription": {"text": "`@router.post` decorator with no `Depends(get_current_user)` or auth-shaped dependency in its signature. Mutating endpoints should require authentication unless explicitly public."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "high", "confidence": 1.0}}, {"id": "scanner-1261396c9ff37031", "name": "FastAPI POST `admin_create_tenant` without auth dependency \u2014 routes/tenant_routes.py:85", "shortDescription": {"text": "FastAPI POST `admin_create_tenant` without auth dependency \u2014 routes/tenant_routes.py:85"}, "fullDescription": {"text": "`@router.post` decorator with no `Depends(get_current_user)` or auth-shaped dependency in its signature. Mutating endpoints should require authentication unless explicitly public."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "high", "confidence": 1.0}}, {"id": "scanner-cb236782b678f39a", "name": "FastAPI PATCH `admin_update_tenant_quota` without auth dependency \u2014 routes/tenant_routes.py:100", "shortDescription": {"text": "FastAPI PATCH `admin_update_tenant_quota` without auth dependency \u2014 routes/tenant_routes.py:100"}, "fullDescription": {"text": "`@router.patch` decorator with no `Depends(get_current_user)` or auth-shaped dependency in its signature. Mutating endpoints should require authentication unless explicitly public."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "high", "confidence": 1.0}}, {"id": "scanner-1447eee0cac4becc", "name": "FastAPI PATCH `admin_update_tenant_status` without auth dependency \u2014 routes/tenant_routes.py:112", "shortDescription": {"text": "FastAPI PATCH `admin_update_tenant_status` without auth dependency \u2014 routes/tenant_routes.py:112"}, "fullDescription": {"text": "`@router.patch` decorator with no `Depends(get_current_user)` or auth-shaped dependency in its signature. Mutating endpoints should require authentication unless explicitly public."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "high", "confidence": 1.0}}, {"id": "scanner-ba991259058665f1", "name": "FastAPI POST `erp_push` without auth dependency \u2014 routes/erp_push_log_routes.py:34", "shortDescription": {"text": "FastAPI POST `erp_push` without auth dependency \u2014 routes/erp_push_log_routes.py:34"}, "fullDescription": {"text": "`@router.post` decorator with no `Depends(get_current_user)` or auth-shaped dependency in its signature. Mutating endpoints should require authentication unless explicitly public."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "high", "confidence": 1.0}}, {"id": "scanner-b0530729ca2eaa17", "name": "FastAPI POST `erp_retry_push` without auth dependency \u2014 routes/erp_push_log_routes.py:309", "shortDescription": {"text": "FastAPI POST `erp_retry_push` without auth dependency \u2014 routes/erp_push_log_routes.py:309"}, "fullDescription": {"text": "`@router.post` decorator with no `Depends(get_current_user)` or auth-shaped dependency in its signature. Mutating endpoints should require authentication unless explicitly public."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "high", "confidence": 1.0}}, {"id": "scanner-a877e2eb5a98d908", "name": "FastAPI POST `erp_batch_retry` without auth dependency \u2014 routes/erp_push_log_routes.py:372", "shortDescription": {"text": "FastAPI POST `erp_batch_retry` without auth dependency \u2014 routes/erp_push_log_routes.py:372"}, "fullDescription": {"text": "`@router.post` decorator with no `Depends(get_current_user)` or auth-shaped dependency in its signature. Mutating endpoints should require authentication unless explicitly public."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "high", "confidence": 1.0}}, {"id": "scanner-b0bc4db05ff6a1b5", "name": "FastAPI POST `erp_batch_delete` without auth dependency \u2014 routes/erp_push_log_routes.py:463", "shortDescription": {"text": "FastAPI POST `erp_batch_delete` without auth dependency \u2014 routes/erp_push_log_routes.py:463"}, "fullDescription": {"text": "`@router.post` decorator with no `Depends(get_current_user)` or auth-shaped dependency in its signature. Mutating endpoints should require authentication unless explicitly public."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "high", "confidence": 1.0}}, {"id": "scanner-713d33c54db29310", "name": "FastAPI POST `api_open_table` without auth dependency \u2014 routes/pos_restaurant_routes.py:79", "shortDescription": {"text": "FastAPI POST `api_open_table` without auth dependency \u2014 routes/pos_restaurant_routes.py:79"}, "fullDescription": {"text": "`@router.post` decorator with no `Depends(get_current_user)` or auth-shaped dependency in its signature. Mutating endpoints should require authentication unless explicitly public."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "high", "confidence": 1.0}}, {"id": "scanner-b011bb8464c358cf", "name": "FastAPI POST `api_add_lines` without auth dependency \u2014 routes/pos_restaurant_routes.py:126", "shortDescription": {"text": "FastAPI POST `api_add_lines` without auth dependency \u2014 routes/pos_restaurant_routes.py:126"}, "fullDescription": {"text": "`@router.post` decorator with no `Depends(get_current_user)` or auth-shaped dependency in its signature. Mutating endpoints should require authentication unless explicitly public."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "high", "confidence": 1.0}}, {"id": "scanner-c5289dad892cca5a", "name": "FastAPI PATCH `api_update_line` without auth dependency \u2014 routes/pos_restaurant_routes.py:150", "shortDescription": {"text": "FastAPI PATCH `api_update_line` without auth dependency \u2014 routes/pos_restaurant_routes.py:150"}, "fullDescription": {"text": "`@router.patch` decorator with no `Depends(get_current_user)` or auth-shaped dependency in its signature. Mutating endpoints should require authentication unless explicitly public."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "high", "confidence": 1.0}}, {"id": "scanner-eebd97b6d5757d78", "name": "FastAPI DELETE `api_delete_line` without auth dependency \u2014 routes/pos_restaurant_routes.py:162", "shortDescription": {"text": "FastAPI DELETE `api_delete_line` without auth dependency \u2014 routes/pos_restaurant_routes.py:162"}, "fullDescription": {"text": "`@router.delete` decorator with no `Depends(get_current_user)` or auth-shaped dependency in its signature. Mutating endpoints should require authentication unless explicitly public."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "high", "confidence": 1.0}}, {"id": "scanner-c8e3038408b07e99", "name": "FastAPI POST `api_send_kitchen` without auth dependency \u2014 routes/pos_restaurant_routes.py:185", "shortDescription": {"text": "FastAPI POST `api_send_kitchen` without auth dependency \u2014 routes/pos_restaurant_routes.py:185"}, "fullDescription": {"text": "`@router.post` decorator with no `Depends(get_current_user)` or auth-shaped dependency in its signature. Mutating endpoints should require authentication unless explicitly public."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "high", "confidence": 1.0}}, {"id": "scanner-f678e8d1c3590e85", "name": "FastAPI POST `api_cancel_session` without auth dependency \u2014 routes/pos_restaurant_routes.py:202", "shortDescription": {"text": "FastAPI POST `api_cancel_session` without auth dependency \u2014 routes/pos_restaurant_routes.py:202"}, "fullDescription": {"text": "`@router.post` decorator with no `Depends(get_current_user)` or auth-shaped dependency in its signature. Mutating endpoints should require authentication unless explicitly public."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "high", "confidence": 1.0}}, {"id": "scanner-4c5f1eedd4efceee", "name": "FastAPI POST `api_kot_status` without auth dependency \u2014 routes/pos_restaurant_routes.py:238", "shortDescription": {"text": "FastAPI POST `api_kot_status` without auth dependency \u2014 routes/pos_restaurant_routes.py:238"}, "fullDescription": {"text": "`@router.post` decorator with no `Depends(get_current_user)` or auth-shaped dependency in its signature. Mutating endpoints should require authentication unless explicitly public."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "high", "confidence": 1.0}}, {"id": "scanner-ee74d19286a27bfa", "name": "FastAPI POST `api_kot_item_status` without auth dependency \u2014 routes/pos_restaurant_routes.py:250", "shortDescription": {"text": "FastAPI POST `api_kot_item_status` without auth dependency \u2014 routes/pos_restaurant_routes.py:250"}, "fullDescription": {"text": "`@router.post` decorator with no `Depends(get_current_user)` or auth-shaped dependency in its signature. Mutating endpoints should require authentication unless explicitly public."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "high", "confidence": 1.0}}, {"id": "scanner-153ad8beb4e7dd22", "name": "FastAPI POST `api_request_bill` without auth dependency \u2014 routes/pos_restaurant_routes.py:263", "shortDescription": {"text": "FastAPI POST `api_request_bill` without auth dependency \u2014 routes/pos_restaurant_routes.py:263"}, "fullDescription": {"text": "`@router.post` decorator with no `Depends(get_current_user)` or auth-shaped dependency in its signature. Mutating endpoints should require authentication unless explicitly public."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "high", "confidence": 1.0}}, {"id": "scanner-f8fece22dd63a18f", "name": "FastAPI POST `api_checkout` without auth dependency \u2014 routes/pos_restaurant_routes.py:332", "shortDescription": {"text": "FastAPI POST `api_checkout` without auth dependency \u2014 routes/pos_restaurant_routes.py:332"}, "fullDescription": {"text": "`@router.post` decorator with no `Depends(get_current_user)` or auth-shaped dependency in its signature. Mutating endpoints should require authentication unless explicitly public."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "high", "confidence": 1.0}}, {"id": "scanner-cf206176908049f6", "name": "FastAPI PUT `update_me_profile` without auth dependency \u2014 routes/me_routes.py:245", "shortDescription": {"text": "FastAPI PUT `update_me_profile` without auth dependency \u2014 routes/me_routes.py:245"}, "fullDescription": {"text": "`@router.put` decorator with no `Depends(get_current_user)` or auth-shaped dependency in its signature. Mutating endpoints should require authentication unless explicitly public."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "high", "confidence": 1.0}}, {"id": "scanner-5cf83d6ac4bd4bba", "name": "FastAPI POST `api_open_shift` without auth dependency \u2014 routes/pos_sales_routes.py:119", "shortDescription": {"text": "FastAPI POST `api_open_shift` without auth dependency \u2014 routes/pos_sales_routes.py:119"}, "fullDescription": {"text": "`@router.post` decorator with no `Depends(get_current_user)` or auth-shaped dependency in its signature. Mutating endpoints should require authentication unless explicitly public."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "high", "confidence": 1.0}}, {"id": "scanner-efe50f1346f5bf8e", "name": "FastAPI POST `api_close_shift` without auth dependency \u2014 routes/pos_sales_routes.py:139", "shortDescription": {"text": "FastAPI POST `api_close_shift` without auth dependency \u2014 routes/pos_sales_routes.py:139"}, "fullDescription": {"text": "`@router.post` decorator with no `Depends(get_current_user)` or auth-shaped dependency in its signature. Mutating endpoints should require authentication unless explicitly public."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "high", "confidence": 1.0}}, {"id": "scanner-249cf88a61cc5793", "name": "FastAPI POST `api_create_sale` without auth dependency \u2014 routes/pos_sales_routes.py:193", "shortDescription": {"text": "FastAPI POST `api_create_sale` without auth dependency \u2014 routes/pos_sales_routes.py:193"}, "fullDescription": {"text": "`@router.post` decorator with no `Depends(get_current_user)` or auth-shaped dependency in its signature. Mutating endpoints should require authentication unless explicitly public."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "high", "confidence": 1.0}}, {"id": "scanner-d0acbeb9f7e756fe", "name": "FastAPI POST `api_sync_sales` without auth dependency \u2014 routes/pos_sales_routes.py:214", "shortDescription": {"text": "FastAPI POST `api_sync_sales` without auth dependency \u2014 routes/pos_sales_routes.py:214"}, "fullDescription": {"text": "`@router.post` decorator with no `Depends(get_current_user)` or auth-shaped dependency in its signature. Mutating endpoints should require authentication unless explicitly public."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "high", "confidence": 1.0}}, {"id": "scanner-025ea1357f0a076d", "name": "FastAPI POST `api_refund` without auth dependency \u2014 routes/pos_sales_routes.py:269", "shortDescription": {"text": "FastAPI POST `api_refund` without auth dependency \u2014 routes/pos_sales_routes.py:269"}, "fullDescription": {"text": "`@router.post` decorator with no `Depends(get_current_user)` or auth-shaped dependency in its signature. Mutating endpoints should require authentication unless explicitly public."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "high", "confidence": 1.0}}, {"id": "scanner-d09dd37a74c6f7fe", "name": "FastAPI POST `api_void` without auth dependency \u2014 routes/pos_sales_routes.py:288", "shortDescription": {"text": "FastAPI POST `api_void` without auth dependency \u2014 routes/pos_sales_routes.py:288"}, "fullDescription": {"text": "`@router.post` decorator with no `Depends(get_current_user)` or auth-shaped dependency in its signature. Mutating endpoints should require authentication unless explicitly public."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "high", "confidence": 1.0}}, {"id": "scanner-1dd6ae53e1409d8c", "name": "FastAPI POST `api_full_tax_invoice` without auth dependency \u2014 routes/pos_sales_routes.py:319", "shortDescription": {"text": "FastAPI POST `api_full_tax_invoice` without auth dependency \u2014 routes/pos_sales_routes.py:319"}, "fullDescription": {"text": "`@router.post` decorator with no `Depends(get_current_user)` or auth-shaped dependency in its signature. Mutating endpoints should require authentication unless explicitly public."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "high", "confidence": 1.0}}, {"id": "scanner-6c12ade93f655aa5", "name": "FastAPI POST `send_email_code` without auth dependency \u2014 routes/auth_email_code_routes.py:179", "shortDescription": {"text": "FastAPI POST `send_email_code` without auth dependency \u2014 routes/auth_email_code_routes.py:179"}, "fullDescription": {"text": "`@router.post` decorator with no `Depends(get_current_user)` or auth-shaped dependency in its signature. Mutating endpoints should require authentication unless explicitly public."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "high", "confidence": 1.0}}, {"id": "scanner-b64b50479c26d679", "name": "FastAPI POST `verify_email_code` without auth dependency \u2014 routes/auth_email_code_routes.py:289", "shortDescription": {"text": "FastAPI POST `verify_email_code` without auth dependency \u2014 routes/auth_email_code_routes.py:289"}, "fullDescription": {"text": "`@router.post` decorator with no `Depends(get_current_user)` or auth-shaped dependency in its signature. Mutating endpoints should require authentication unless explicitly public."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "high", "confidence": 1.0}}, {"id": "scanner-69a05fad694d3b74", "name": "FastAPI POST `download_mrerp_xlsx_batch` without auth dependency \u2014 routes/erp_export_routes.py:38", "shortDescription": {"text": "FastAPI POST `download_mrerp_xlsx_batch` without auth dependency \u2014 routes/erp_export_routes.py:38"}, "fullDescription": {"text": "`@router.post` decorator with no `Depends(get_current_user)` or auth-shaped dependency in its signature. Mutating endpoints should require authentication unless explicitly public."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "high", "confidence": 1.0}}, {"id": "scanner-0ef26806f6a90bf2", "name": "FastAPI POST `build_excel_endpoint` without auth dependency \u2014 routes/vat_excel_routes.py:74", "shortDescription": {"text": "FastAPI POST `build_excel_endpoint` without auth dependency \u2014 routes/vat_excel_routes.py:74"}, "fullDescription": {"text": "`@router.post` decorator with no `Depends(get_current_user)` or auth-shaped dependency in its signature. Mutating endpoints should require authentication unless explicitly public."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "high", "confidence": 1.0}}, {"id": "scanner-e3e96ad49dd7d7cf", "name": "FastAPI POST `regenerate_task` without auth dependency \u2014 routes/vat_excel_routes.py:402", "shortDescription": {"text": "FastAPI POST `regenerate_task` without auth dependency \u2014 routes/vat_excel_routes.py:402"}, "fullDescription": {"text": "`@router.post` decorator with no `Depends(get_current_user)` or auth-shaped dependency in its signature. Mutating endpoints should require authentication unless explicitly public."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "high", "confidence": 1.0}}, {"id": "scanner-f9777ec1f34a59d4", "name": "FastAPI PUT `api_onboarding` without auth dependency \u2014 routes/modules_routes.py:48", "shortDescription": {"text": "FastAPI PUT `api_onboarding` without auth dependency \u2014 routes/modules_routes.py:48"}, "fullDescription": {"text": "`@router.put` decorator with no `Depends(get_current_user)` or auth-shaped dependency in its signature. Mutating endpoints should require authentication unless explicitly public."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "high", "confidence": 1.0}}, {"id": "scanner-5911a0a08cd70976", "name": "FastAPI PUT `api_toggle_module` without auth dependency \u2014 routes/modules_routes.py:59", "shortDescription": {"text": "FastAPI PUT `api_toggle_module` without auth dependency \u2014 routes/modules_routes.py:59"}, "fullDescription": {"text": "`@router.put` decorator with no `Depends(get_current_user)` or auth-shaped dependency in its signature. Mutating endpoints should require authentication unless explicitly public."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "high", "confidence": 1.0}}, {"id": "scanner-2e9645563d58f1ff", "name": "FastAPI POST `bank_recon_upload` without auth dependency \u2014 routes/bank_recon_routes.py:41", "shortDescription": {"text": "FastAPI POST `bank_recon_upload` without auth dependency \u2014 routes/bank_recon_routes.py:41"}, "fullDescription": {"text": "`@router.post` decorator with no `Depends(get_current_user)` or auth-shaped dependency in its signature. Mutating endpoints should require authentication unless explicitly public."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "high", "confidence": 1.0}}, {"id": "scanner-761495da25a983b8", "name": "FastAPI DELETE `bank_recon_delete_session` without auth dependency \u2014 routes/bank_recon_routes.py:210", "shortDescription": {"text": "FastAPI DELETE `bank_recon_delete_session` without auth dependency \u2014 routes/bank_recon_routes.py:210"}, "fullDescription": {"text": "`@router.delete` decorator with no `Depends(get_current_user)` or auth-shaped dependency in its signature. Mutating endpoints should require authentication unless explicitly public."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "high", "confidence": 1.0}}, {"id": "scanner-480a7a731efcd665", "name": "FastAPI POST `bank_recon_run_match` without auth dependency \u2014 routes/bank_recon_routes.py:224", "shortDescription": {"text": "FastAPI POST `bank_recon_run_match` without auth dependency \u2014 routes/bank_recon_routes.py:224"}, "fullDescription": {"text": "`@router.post` decorator with no `Depends(get_current_user)` or auth-shaped dependency in its signature. Mutating endpoints should require authentication unless explicitly public."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "high", "confidence": 1.0}}, {"id": "scanner-f66a5a8101f461ee", "name": "FastAPI POST `bank_recon_tx_override` without auth dependency \u2014 routes/bank_recon_routes.py:252", "shortDescription": {"text": "FastAPI POST `bank_recon_tx_override` without auth dependency \u2014 routes/bank_recon_routes.py:252"}, "fullDescription": {"text": "`@router.post` decorator with no `Depends(get_current_user)` or auth-shaped dependency in its signature. Mutating endpoints should require authentication unless explicitly public."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "high", "confidence": 1.0}}, {"id": "scanner-84c2029ae493b5c5", "name": "FastAPI PATCH `bank_recon_set_session_client` without auth dependency \u2014 routes/bank_recon_routes.py:282", "shortDescription": {"text": "FastAPI PATCH `bank_recon_set_session_client` without auth dependency \u2014 routes/bank_recon_routes.py:282"}, "fullDescription": {"text": "`@router.patch` decorator with no `Depends(get_current_user)` or auth-shaped dependency in its signature. Mutating endpoints should require authentication unless explicitly public."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "high", "confidence": 1.0}}, {"id": "scanner-6eb48f0de6d73525", "name": "FastAPI POST `api_upload_image` without auth dependency \u2014 routes/uploads_routes.py:39", "shortDescription": {"text": "FastAPI POST `api_upload_image` without auth dependency \u2014 routes/uploads_routes.py:39"}, "fullDescription": {"text": "`@router.post` decorator with no `Depends(get_current_user)` or auth-shaped dependency in its signature. Mutating endpoints should require authentication unless explicitly public."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "high", "confidence": 1.0}}, {"id": "scanner-03fe00f368b5fccb", "name": "FastAPI POST `save_mapping` without auth dependency \u2014 routes/import_routes.py:44", "shortDescription": {"text": "FastAPI POST `save_mapping` without auth dependency \u2014 routes/import_routes.py:44"}, "fullDescription": {"text": "`@router.post` decorator with no `Depends(get_current_user)` or auth-shaped dependency in its signature. Mutating endpoints should require authentication unless explicitly public."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "high", "confidence": 1.0}}, {"id": "scanner-c176b320393c324e", "name": "FastAPI DELETE `delete_mapping` without auth dependency \u2014 routes/import_routes.py:81", "shortDescription": {"text": "FastAPI DELETE `delete_mapping` without auth dependency \u2014 routes/import_routes.py:81"}, "fullDescription": {"text": "`@router.delete` decorator with no `Depends(get_current_user)` or auth-shaped dependency in its signature. Mutating endpoints should require authentication unless explicitly public."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "high", "confidence": 1.0}}, {"id": "scanner-3c08042d24eb41ee", "name": "FastAPI POST `ask_question` without auth dependency \u2014 routes/knowledge_ask_routes.py:51", "shortDescription": {"text": "FastAPI POST `ask_question` without auth dependency \u2014 routes/knowledge_ask_routes.py:51"}, "fullDescription": {"text": "`@router.post` decorator with no `Depends(get_current_user)` or auth-shaped dependency in its signature. Mutating endpoints should require authentication unless explicitly public."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "high", "confidence": 1.0}}, {"id": "scanner-d5defc3a78592283", "name": "FastAPI POST `link_line` without auth dependency \u2014 routes/auth_me_routes.py:34", "shortDescription": {"text": "FastAPI POST `link_line` without auth dependency \u2014 routes/auth_me_routes.py:34"}, "fullDescription": {"text": "`@router.post` decorator with no `Depends(get_current_user)` or auth-shaped dependency in its signature. Mutating endpoints should require authentication unless explicitly public."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "high", "confidence": 1.0}}, {"id": "scanner-3528c2254b86bbad", "name": "FastAPI POST `link_line_dev` without auth dependency \u2014 routes/auth_me_routes.py:89", "shortDescription": {"text": "FastAPI POST `link_line_dev` without auth dependency \u2014 routes/auth_me_routes.py:89"}, "fullDescription": {"text": "`@router.post` decorator with no `Depends(get_current_user)` or auth-shaped dependency in its signature. Mutating endpoints should require authentication unless explicitly public."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "high", "confidence": 1.0}}, {"id": "scanner-201c19dddd7ed94c", "name": "FastAPI POST `xero_set_auto_push` without auth dependency \u2014 routes/erp_xero_routes.py:268", "shortDescription": {"text": "FastAPI POST `xero_set_auto_push` without auth dependency \u2014 routes/erp_xero_routes.py:268"}, "fullDescription": {"text": "`@router.post` decorator with no `Depends(get_current_user)` or auth-shaped dependency in its signature. Mutating endpoints should require authentication unless explicitly public."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "high", "confidence": 1.0}}, {"id": "scanner-a6b0d629ca0cae06", "name": "FastAPI POST `xero_select_org` without auth dependency \u2014 routes/erp_xero_routes.py:279", "shortDescription": {"text": "FastAPI POST `xero_select_org` without auth dependency \u2014 routes/erp_xero_routes.py:279"}, "fullDescription": {"text": "`@router.post` decorator with no `Depends(get_current_user)` or auth-shaped dependency in its signature. Mutating endpoints should require authentication unless explicitly public."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "high", "confidence": 1.0}}, {"id": "scanner-a5e21603cf6dd848", "name": "FastAPI POST `xero_disconnect` without auth dependency \u2014 routes/erp_xero_routes.py:293", "shortDescription": {"text": "FastAPI POST `xero_disconnect` without auth dependency \u2014 routes/erp_xero_routes.py:293"}, "fullDescription": {"text": "`@router.post` decorator with no `Depends(get_current_user)` or auth-shaped dependency in its signature. Mutating endpoints should require authentication unless explicitly public."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "high", "confidence": 1.0}}, {"id": "scanner-921251bc67572604", "name": "FastAPI POST `xero_push` without auth dependency \u2014 routes/erp_xero_routes.py:338", "shortDescription": {"text": "FastAPI POST `xero_push` without auth dependency \u2014 routes/erp_xero_routes.py:338"}, "fullDescription": {"text": "`@router.post` decorator with no `Depends(get_current_user)` or auth-shaped dependency in its signature. Mutating endpoints should require authentication unless explicitly public."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "high", "confidence": 1.0}}, {"id": "scanner-2ee0eda20d9e3035", "name": "FastAPI POST `api_export` without auth dependency \u2014 routes/export_routes.py:34", "shortDescription": {"text": "FastAPI POST `api_export` without auth dependency \u2014 routes/export_routes.py:34"}, "fullDescription": {"text": "`@router.post` decorator with no `Depends(get_current_user)` or auth-shaped dependency in its signature. Mutating endpoints should require authentication unless explicitly public."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "high", "confidence": 1.0}}, {"id": "scanner-a2100bf20844b180", "name": "FastAPI POST `credits_topup_request` without auth dependency \u2014 routes/billing_topup_routes.py:106", "shortDescription": {"text": "FastAPI POST `credits_topup_request` without auth dependency \u2014 routes/billing_topup_routes.py:106"}, "fullDescription": {"text": "`@router.post` decorator with no `Depends(get_current_user)` or auth-shaped dependency in its signature. Mutating endpoints should require authentication unless explicitly public."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "high", "confidence": 1.0}}, {"id": "scanner-95c7609e555a1de1", "name": "FastAPI POST `credits_topup_upload_slip` without auth dependency \u2014 routes/billing_topup_routes.py:132", "shortDescription": {"text": "FastAPI POST `credits_topup_upload_slip` without auth dependency \u2014 routes/billing_topup_routes.py:132"}, "fullDescription": {"text": "`@router.post` decorator with no `Depends(get_current_user)` or auth-shaped dependency in its signature. Mutating endpoints should require authentication unless explicitly public."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "high", "confidence": 1.0}}, {"id": "scanner-6d2996881b037a3c", "name": "FastAPI POST `admin_topup_approve` without auth dependency \u2014 routes/billing_topup_routes.py:288", "shortDescription": {"text": "FastAPI POST `admin_topup_approve` without auth dependency \u2014 routes/billing_topup_routes.py:288"}, "fullDescription": {"text": "`@router.post` decorator with no `Depends(get_current_user)` or auth-shaped dependency in its signature. Mutating endpoints should require authentication unless explicitly public."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "high", "confidence": 1.0}}, {"id": "scanner-737bb525f7708941", "name": "FastAPI POST `admin_topup_reject` without auth dependency \u2014 routes/billing_topup_routes.py:331", "shortDescription": {"text": "FastAPI POST `admin_topup_reject` without auth dependency \u2014 routes/billing_topup_routes.py:331"}, "fullDescription": {"text": "`@router.post` decorator with no `Depends(get_current_user)` or auth-shaped dependency in its signature. Mutating endpoints should require authentication unless explicitly public."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "high", "confidence": 1.0}}, {"id": "scanner-ea65d6b033a992ed", "name": "FastAPI POST `api_resolve_exception` without auth dependency \u2014 routes/exceptions_routes.py:102", "shortDescription": {"text": "FastAPI POST `api_resolve_exception` without auth dependency \u2014 routes/exceptions_routes.py:102"}, "fullDescription": {"text": "`@router.post` decorator with no `Depends(get_current_user)` or auth-shaped dependency in its signature. Mutating endpoints should require authentication unless explicitly public."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "high", "confidence": 1.0}}, {"id": "scanner-7ee35293883a3155", "name": "FastAPI POST `api_ignore_exception` without auth dependency \u2014 routes/exceptions_routes.py:114", "shortDescription": {"text": "FastAPI POST `api_ignore_exception` without auth dependency \u2014 routes/exceptions_routes.py:114"}, "fullDescription": {"text": "`@router.post` decorator with no `Depends(get_current_user)` or auth-shaped dependency in its signature. Mutating endpoints should require authentication unless explicitly public."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "high", "confidence": 1.0}}, {"id": "scanner-80995082c40a898a", "name": "FastAPI POST `api_batch_exceptions` without auth dependency \u2014 routes/exceptions_routes.py:135", "shortDescription": {"text": "FastAPI POST `api_batch_exceptions` without auth dependency \u2014 routes/exceptions_routes.py:135"}, "fullDescription": {"text": "`@router.post` decorator with no `Depends(get_current_user)` or auth-shaped dependency in its signature. Mutating endpoints should require authentication unless explicitly public."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "high", "confidence": 1.0}}, {"id": "scanner-9434cc883a5161e7", "name": "FastAPI DELETE `api_delete_exception_whitelist` without auth dependency \u2014 routes/exceptions_routes.py:185", "shortDescription": {"text": "FastAPI DELETE `api_delete_exception_whitelist` without auth dependency \u2014 routes/exceptions_routes.py:185"}, "fullDescription": {"text": "`@router.delete` decorator with no `Depends(get_current_user)` or auth-shaped dependency in its signature. Mutating endpoints should require authentication unless explicitly public."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "high", "confidence": 1.0}}, {"id": "scanner-943a2886a9c1157a", "name": "FastAPI PUT `api_set_module` without auth dependency \u2014 routes/pos_modules_routes.py:39", "shortDescription": {"text": "FastAPI PUT `api_set_module` without auth dependency \u2014 routes/pos_modules_routes.py:39"}, "fullDescription": {"text": "`@router.put` decorator with no `Depends(get_current_user)` or auth-shaped dependency in its signature. Mutating endpoints should require authentication unless explicitly public."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "high", "confidence": 1.0}}, {"id": "scanner-0ba941d216400ec6", "name": "FastAPI POST `api_create_product` without auth dependency \u2014 routes/products_routes.py:149", "shortDescription": {"text": "FastAPI POST `api_create_product` without auth dependency \u2014 routes/products_routes.py:149"}, "fullDescription": {"text": "`@router.post` decorator with no `Depends(get_current_user)` or auth-shaped dependency in its signature. Mutating endpoints should require authentication unless explicitly public."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "high", "confidence": 1.0}}, {"id": "scanner-17de188a14a58fc6", "name": "FastAPI POST `api_import_products` without auth dependency \u2014 routes/products_routes.py:186", "shortDescription": {"text": "FastAPI POST `api_import_products` without auth dependency \u2014 routes/products_routes.py:186"}, "fullDescription": {"text": "`@router.post` decorator with no `Depends(get_current_user)` or auth-shaped dependency in its signature. Mutating endpoints should require authentication unless explicitly public."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "high", "confidence": 1.0}}, {"id": "scanner-43b3965ce5e88a68", "name": "FastAPI PATCH `api_update_product` without auth dependency \u2014 routes/products_routes.py:223", "shortDescription": {"text": "FastAPI PATCH `api_update_product` without auth dependency \u2014 routes/products_routes.py:223"}, "fullDescription": {"text": "`@router.patch` decorator with no `Depends(get_current_user)` or auth-shaped dependency in its signature. Mutating endpoints should require authentication unless explicitly public."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "high", "confidence": 1.0}}, {"id": "scanner-ecaf4dc74832a728", "name": "FastAPI DELETE `api_delete_product` without auth dependency \u2014 routes/products_routes.py:242", "shortDescription": {"text": "FastAPI DELETE `api_delete_product` without auth dependency \u2014 routes/products_routes.py:242"}, "fullDescription": {"text": "`@router.delete` decorator with no `Depends(get_current_user)` or auth-shaped dependency in its signature. Mutating endpoints should require authentication unless explicitly public."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "high", "confidence": 1.0}}, {"id": "scanner-f01e5101c6daa741", "name": "FastAPI POST `api_create_unit` without auth dependency \u2014 routes/products_routes.py:267", "shortDescription": {"text": "FastAPI POST `api_create_unit` without auth dependency \u2014 routes/products_routes.py:267"}, "fullDescription": {"text": "`@router.post` decorator with no `Depends(get_current_user)` or auth-shaped dependency in its signature. Mutating endpoints should require authentication unless explicitly public."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "high", "confidence": 1.0}}, {"id": "scanner-0b4c3008fb9cb336", "name": "FastAPI PATCH `api_update_unit` without auth dependency \u2014 routes/products_routes.py:286", "shortDescription": {"text": "FastAPI PATCH `api_update_unit` without auth dependency \u2014 routes/products_routes.py:286"}, "fullDescription": {"text": "`@router.patch` decorator with no `Depends(get_current_user)` or auth-shaped dependency in its signature. Mutating endpoints should require authentication unless explicitly public."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "high", "confidence": 1.0}}, {"id": "scanner-39d2c395265c0836", "name": "FastAPI DELETE `api_delete_unit` without auth dependency \u2014 routes/products_routes.py:310", "shortDescription": {"text": "FastAPI DELETE `api_delete_unit` without auth dependency \u2014 routes/products_routes.py:310"}, "fullDescription": {"text": "`@router.delete` decorator with no `Depends(get_current_user)` or auth-shaped dependency in its signature. Mutating endpoints should require authentication unless explicitly public."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "high", "confidence": 1.0}}, {"id": "scanner-5dbad95d0ff69b09", "name": "FastAPI POST `api_create_bank_account` without auth dependency \u2014 routes/accounting_bank_routes.py:60", "shortDescription": {"text": "FastAPI POST `api_create_bank_account` without auth dependency \u2014 routes/accounting_bank_routes.py:60"}, "fullDescription": {"text": "`@router.post` decorator with no `Depends(get_current_user)` or auth-shaped dependency in its signature. Mutating endpoints should require authentication unless explicitly public."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "high", "confidence": 1.0}}, {"id": "scanner-319fea9c198768d7", "name": "FastAPI POST `api_bank_import` without auth dependency \u2014 routes/accounting_bank_routes.py:100", "shortDescription": {"text": "FastAPI POST `api_bank_import` without auth dependency \u2014 routes/accounting_bank_routes.py:100"}, "fullDescription": {"text": "`@router.post` decorator with no `Depends(get_current_user)` or auth-shaped dependency in its signature. Mutating endpoints should require authentication unless explicitly public."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "high", "confidence": 1.0}}, {"id": "scanner-528903e89b0de452", "name": "FastAPI POST `api_bank_match` without auth dependency \u2014 routes/accounting_bank_routes.py:259", "shortDescription": {"text": "FastAPI POST `api_bank_match` without auth dependency \u2014 routes/accounting_bank_routes.py:259"}, "fullDescription": {"text": "`@router.post` decorator with no `Depends(get_current_user)` or auth-shaped dependency in its signature. Mutating endpoints should require authentication unless explicitly public."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "high", "confidence": 1.0}}, {"id": "scanner-04f2639fe119012a", "name": "FastAPI POST `api_bank_unmatch` without auth dependency \u2014 routes/accounting_bank_routes.py:281", "shortDescription": {"text": "FastAPI POST `api_bank_unmatch` without auth dependency \u2014 routes/accounting_bank_routes.py:281"}, "fullDescription": {"text": "`@router.post` decorator with no `Depends(get_current_user)` or auth-shaped dependency in its signature. Mutating endpoints should require authentication unless explicitly public."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "high", "confidence": 1.0}}, {"id": "scanner-19291e03470585cf", "name": "FastAPI POST `api_bank_exclude` without auth dependency \u2014 routes/accounting_bank_routes.py:305", "shortDescription": {"text": "FastAPI POST `api_bank_exclude` without auth dependency \u2014 routes/accounting_bank_routes.py:305"}, "fullDescription": {"text": "`@router.post` decorator with no `Depends(get_current_user)` or auth-shaped dependency in its signature. Mutating endpoints should require authentication unless explicitly public."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "high", "confidence": 1.0}}, {"id": "scanner-bdc5f890ed1a35bc", "name": "FastAPI POST `api_bank_restore` without auth dependency \u2014 routes/accounting_bank_routes.py:319", "shortDescription": {"text": "FastAPI POST `api_bank_restore` without auth dependency \u2014 routes/accounting_bank_routes.py:319"}, "fullDescription": {"text": "`@router.post` decorator with no `Depends(get_current_user)` or auth-shaped dependency in its signature. Mutating endpoints should require authentication unless explicitly public."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "high", "confidence": 1.0}}, {"id": "scanner-d46d859d3e9ad780", "name": "FastAPI POST `api_bank_harvest` without auth dependency \u2014 routes/accounting_bank_routes.py:333", "shortDescription": {"text": "FastAPI POST `api_bank_harvest` without auth dependency \u2014 routes/accounting_bank_routes.py:333"}, "fullDescription": {"text": "`@router.post` decorator with no `Depends(get_current_user)` or auth-shaped dependency in its signature. Mutating endpoints should require authentication unless explicitly public."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "high", "confidence": 1.0}}, {"id": "scanner-6cfe75613a193aea", "name": "FastAPI POST `api_manual_voucher` without auth dependency \u2014 routes/accounting_routes.py:134", "shortDescription": {"text": "FastAPI POST `api_manual_voucher` without auth dependency \u2014 routes/accounting_routes.py:134"}, "fullDescription": {"text": "`@router.post` decorator with no `Depends(get_current_user)` or auth-shaped dependency in its signature. Mutating endpoints should require authentication unless explicitly public."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "high", "confidence": 1.0}}, {"id": "scanner-8b33bc6fd925ebba", "name": "FastAPI POST `api_create_template` without auth dependency \u2014 routes/accounting_routes.py:170", "shortDescription": {"text": "FastAPI POST `api_create_template` without auth dependency \u2014 routes/accounting_routes.py:170"}, "fullDescription": {"text": "`@router.post` decorator with no `Depends(get_current_user)` or auth-shaped dependency in its signature. Mutating endpoints should require authentication unless explicitly public."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "high", "confidence": 1.0}}, {"id": "scanner-6211b39f9554b942", "name": "FastAPI DELETE `api_delete_template` without auth dependency \u2014 routes/accounting_routes.py:195", "shortDescription": {"text": "FastAPI DELETE `api_delete_template` without auth dependency \u2014 routes/accounting_routes.py:195"}, "fullDescription": {"text": "`@router.delete` decorator with no `Depends(get_current_user)` or auth-shaped dependency in its signature. Mutating endpoints should require authentication unless explicitly public."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "high", "confidence": 1.0}}, {"id": "scanner-ce5bb3ffe7820d84", "name": "FastAPI POST `api_review_voucher` without auth dependency \u2014 routes/accounting_routes.py:211", "shortDescription": {"text": "FastAPI POST `api_review_voucher` without auth dependency \u2014 routes/accounting_routes.py:211"}, "fullDescription": {"text": "`@router.post` decorator with no `Depends(get_current_user)` or auth-shaped dependency in its signature. Mutating endpoints should require authentication unless explicitly public."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "high", "confidence": 1.0}}, {"id": "scanner-6555a706eccd60c5", "name": "FastAPI PATCH `api_patch_voucher` without auth dependency \u2014 routes/accounting_routes.py:235", "shortDescription": {"text": "FastAPI PATCH `api_patch_voucher` without auth dependency \u2014 routes/accounting_routes.py:235"}, "fullDescription": {"text": "`@router.patch` decorator with no `Depends(get_current_user)` or auth-shaped dependency in its signature. Mutating endpoints should require authentication unless explicitly public."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "high", "confidence": 1.0}}, {"id": "scanner-90f34ecaf4b94698", "name": "FastAPI POST `api_void_voucher` without auth dependency \u2014 routes/accounting_routes.py:268", "shortDescription": {"text": "FastAPI POST `api_void_voucher` without auth dependency \u2014 routes/accounting_routes.py:268"}, "fullDescription": {"text": "`@router.post` decorator with no `Depends(get_current_user)` or auth-shaped dependency in its signature. Mutating endpoints should require authentication unless explicitly public."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "high", "confidence": 1.0}}, {"id": "scanner-189e087a128ac453", "name": "FastAPI POST `api_unpost_voucher` without auth dependency \u2014 routes/accounting_routes.py:282", "shortDescription": {"text": "FastAPI POST `api_unpost_voucher` without auth dependency \u2014 routes/accounting_routes.py:282"}, "fullDescription": {"text": "`@router.post` decorator with no `Depends(get_current_user)` or auth-shaped dependency in its signature. Mutating endpoints should require authentication unless explicitly public."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "high", "confidence": 1.0}}, {"id": "scanner-d726e1b3772361ed", "name": "FastAPI POST `api_create_account` without auth dependency \u2014 routes/accounting_routes.py:330", "shortDescription": {"text": "FastAPI POST `api_create_account` without auth dependency \u2014 routes/accounting_routes.py:330"}, "fullDescription": {"text": "`@router.post` decorator with no `Depends(get_current_user)` or auth-shaped dependency in its signature. Mutating endpoints should require authentication unless explicitly public."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "high", "confidence": 1.0}}, {"id": "scanner-d8843f3d7017c7cf", "name": "FastAPI PATCH `api_update_account` without auth dependency \u2014 routes/accounting_routes.py:345", "shortDescription": {"text": "FastAPI PATCH `api_update_account` without auth dependency \u2014 routes/accounting_routes.py:345"}, "fullDescription": {"text": "`@router.patch` decorator with no `Depends(get_current_user)` or auth-shaped dependency in its signature. Mutating endpoints should require authentication unless explicitly public."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "high", "confidence": 1.0}}, {"id": "scanner-256f32e5f023505b", "name": "FastAPI PUT `api_set_mapping` without auth dependency \u2014 routes/accounting_routes.py:378", "shortDescription": {"text": "FastAPI PUT `api_set_mapping` without auth dependency \u2014 routes/accounting_routes.py:378"}, "fullDescription": {"text": "`@router.put` decorator with no `Depends(get_current_user)` or auth-shaped dependency in its signature. Mutating endpoints should require authentication unless explicitly public."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "high", "confidence": 1.0}}, {"id": "scanner-ca5005a762c928f1", "name": "FastAPI PUT `api_update_settings` without auth dependency \u2014 routes/accounting_routes.py:405", "shortDescription": {"text": "FastAPI PUT `api_update_settings` without auth dependency \u2014 routes/accounting_routes.py:405"}, "fullDescription": {"text": "`@router.put` decorator with no `Depends(get_current_user)` or auth-shaped dependency in its signature. Mutating endpoints should require authentication unless explicitly public."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "high", "confidence": 1.0}}, {"id": "scanner-77e6a3bd31c39ba4", "name": "FastAPI DELETE `api_delete_learned` without auth dependency \u2014 routes/accounting_routes.py:429", "shortDescription": {"text": "FastAPI DELETE `api_delete_learned` without auth dependency \u2014 routes/accounting_routes.py:429"}, "fullDescription": {"text": "`@router.delete` decorator with no `Depends(get_current_user)` or auth-shaped dependency in its signature. Mutating endpoints should require authentication unless explicitly public."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "high", "confidence": 1.0}}, {"id": "scanner-2eb7d828498b7019", "name": "FastAPI POST `api_disconnect` without auth dependency \u2014 routes/google_oauth_routes.py:112", "shortDescription": {"text": "FastAPI POST `api_disconnect` without auth dependency \u2014 routes/google_oauth_routes.py:112"}, "fullDescription": {"text": "`@router.post` decorator with no `Depends(get_current_user)` or auth-shaped dependency in its signature. Mutating endpoints should require authentication unless explicitly public."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "high", "confidence": 1.0}}, {"id": "scanner-ba8cd6d1bf26604b", "name": "FastAPI POST `create_task` without auth dependency \u2014 routes/recon_routes.py:199", "shortDescription": {"text": "FastAPI POST `create_task` without auth dependency \u2014 routes/recon_routes.py:199"}, "fullDescription": {"text": "`@router.post` decorator with no `Depends(get_current_user)` or auth-shaped dependency in its signature. Mutating endpoints should require authentication unless explicitly public."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "high", "confidence": 1.0}}, {"id": "scanner-9c6ff7f35a1fcbf5", "name": "FastAPI POST `run_recon` without auth dependency \u2014 routes/recon_routes.py:217", "shortDescription": {"text": "FastAPI POST `run_recon` without auth dependency \u2014 routes/recon_routes.py:217"}, "fullDescription": {"text": "`@router.post` decorator with no `Depends(get_current_user)` or auth-shaped dependency in its signature. Mutating endpoints should require authentication unless explicitly public."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "high", "confidence": 1.0}}, {"id": "scanner-9e76272d0dbb4972", "name": "FastAPI POST `row_ai` without auth dependency \u2014 routes/recon_routes.py:302", "shortDescription": {"text": "FastAPI POST `row_ai` without auth dependency \u2014 routes/recon_routes.py:302"}, "fullDescription": {"text": "`@router.post` decorator with no `Depends(get_current_user)` or auth-shaped dependency in its signature. Mutating endpoints should require authentication unless explicitly public."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "high", "confidence": 1.0}}, {"id": "scanner-1488529de00f64cd", "name": "FastAPI POST `row_action` without auth dependency \u2014 routes/recon_routes.py:334", "shortDescription": {"text": "FastAPI POST `row_action` without auth dependency \u2014 routes/recon_routes.py:334"}, "fullDescription": {"text": "`@router.post` decorator with no `Depends(get_current_user)` or auth-shaped dependency in its signature. Mutating endpoints should require authentication unless explicitly public."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "high", "confidence": 1.0}}, {"id": "scanner-4e17f513f1fc1391", "name": "FastAPI PATCH `row_field_override` without auth dependency \u2014 routes/recon_routes.py:355", "shortDescription": {"text": "FastAPI PATCH `row_field_override` without auth dependency \u2014 routes/recon_routes.py:355"}, "fullDescription": {"text": "`@router.patch` decorator with no `Depends(get_current_user)` or auth-shaped dependency in its signature. Mutating endpoints should require authentication unless explicitly public."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "high", "confidence": 1.0}}, {"id": "scanner-05da3e57670f5100", "name": "FastAPI PUT `api_set_settings` without auth dependency \u2014 routes/sales_settings_routes.py:59", "shortDescription": {"text": "FastAPI PUT `api_set_settings` without auth dependency \u2014 routes/sales_settings_routes.py:59"}, "fullDescription": {"text": "`@router.put` decorator with no `Depends(get_current_user)` or auth-shaped dependency in its signature. Mutating endpoints should require authentication unless explicitly public."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "high", "confidence": 1.0}}, {"id": "scanner-de4551996a20c7a6", "name": "FastAPI POST `admin_cleanup_demo` without auth dependency \u2014 routes/auth_admin_routes.py:82", "shortDescription": {"text": "FastAPI POST `admin_cleanup_demo` without auth dependency \u2014 routes/auth_admin_routes.py:82"}, "fullDescription": {"text": "`@router.post` decorator with no `Depends(get_current_user)` or auth-shaped dependency in its signature. Mutating endpoints should require authentication unless explicitly public."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "high", "confidence": 1.0}}, {"id": "scanner-b92d76332208d6ac", "name": "FastAPI POST `api_create_document` without auth dependency \u2014 routes/sales_routes.py:213", "shortDescription": {"text": "FastAPI POST `api_create_document` without auth dependency \u2014 routes/sales_routes.py:213"}, "fullDescription": {"text": "`@router.post` decorator with no `Depends(get_current_user)` or auth-shaped dependency in its signature. Mutating endpoints should require authentication unless explicitly public."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "high", "confidence": 1.0}}, {"id": "scanner-55ed172aa5a04ae3", "name": "FastAPI PATCH `api_update_document` without auth dependency \u2014 routes/sales_routes.py:292", "shortDescription": {"text": "FastAPI PATCH `api_update_document` without auth dependency \u2014 routes/sales_routes.py:292"}, "fullDescription": {"text": "`@router.patch` decorator with no `Depends(get_current_user)` or auth-shaped dependency in its signature. Mutating endpoints should require authentication unless explicitly public."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "high", "confidence": 1.0}}, {"id": "scanner-6c31dc503a1c6006", "name": "FastAPI POST `api_issue_document` without auth dependency \u2014 routes/sales_routes.py:327", "shortDescription": {"text": "FastAPI POST `api_issue_document` without auth dependency \u2014 routes/sales_routes.py:327"}, "fullDescription": {"text": "`@router.post` decorator with no `Depends(get_current_user)` or auth-shaped dependency in its signature. Mutating endpoints should require authentication unless explicitly public."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "high", "confidence": 1.0}}, {"id": "scanner-505e00cbae203c84", "name": "FastAPI POST `api_void_document` without auth dependency \u2014 routes/sales_routes.py:354", "shortDescription": {"text": "FastAPI POST `api_void_document` without auth dependency \u2014 routes/sales_routes.py:354"}, "fullDescription": {"text": "`@router.post` decorator with no `Depends(get_current_user)` or auth-shaped dependency in its signature. Mutating endpoints should require authentication unless explicitly public."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "high", "confidence": 1.0}}, {"id": "scanner-4d7eaad877f809ac", "name": "FastAPI DELETE `api_delete_draft` without auth dependency \u2014 routes/sales_routes.py:365", "shortDescription": {"text": "FastAPI DELETE `api_delete_draft` without auth dependency \u2014 routes/sales_routes.py:365"}, "fullDescription": {"text": "`@router.delete` decorator with no `Depends(get_current_user)` or auth-shaped dependency in its signature. Mutating endpoints should require authentication unless explicitly public."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "high", "confidence": 1.0}}, {"id": "scanner-8faaf2a3c082d0ef", "name": "FastAPI POST `api_submit_for_approval` without auth dependency \u2014 routes/sales_routes.py:377", "shortDescription": {"text": "FastAPI POST `api_submit_for_approval` without auth dependency \u2014 routes/sales_routes.py:377"}, "fullDescription": {"text": "`@router.post` decorator with no `Depends(get_current_user)` or auth-shaped dependency in its signature. Mutating endpoints should require authentication unless explicitly public."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "high", "confidence": 1.0}}, {"id": "scanner-5374144f286ed7a8", "name": "FastAPI POST `api_approve_document` without auth dependency \u2014 routes/sales_routes.py:389", "shortDescription": {"text": "FastAPI POST `api_approve_document` without auth dependency \u2014 routes/sales_routes.py:389"}, "fullDescription": {"text": "`@router.post` decorator with no `Depends(get_current_user)` or auth-shaped dependency in its signature. Mutating endpoints should require authentication unless explicitly public."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "high", "confidence": 1.0}}, {"id": "scanner-38ad99486021fd11", "name": "FastAPI POST `api_reject_document` without auth dependency \u2014 routes/sales_routes.py:415", "shortDescription": {"text": "FastAPI POST `api_reject_document` without auth dependency \u2014 routes/sales_routes.py:415"}, "fullDescription": {"text": "`@router.post` decorator with no `Depends(get_current_user)` or auth-shaped dependency in its signature. Mutating endpoints should require authentication unless explicitly public."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "high", "confidence": 1.0}}, {"id": "scanner-7244d0cd1ec31a11", "name": "FastAPI POST `api_credit_note` without auth dependency \u2014 routes/sales_routes.py:453", "shortDescription": {"text": "FastAPI POST `api_credit_note` without auth dependency \u2014 routes/sales_routes.py:453"}, "fullDescription": {"text": "`@router.post` decorator with no `Depends(get_current_user)` or auth-shaped dependency in its signature. Mutating endpoints should require authentication unless explicitly public."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "high", "confidence": 1.0}}, {"id": "scanner-1882d0e661c05669", "name": "FastAPI POST `api_debit_note` without auth dependency \u2014 routes/sales_routes.py:459", "shortDescription": {"text": "FastAPI POST `api_debit_note` without auth dependency \u2014 routes/sales_routes.py:459"}, "fullDescription": {"text": "`@router.post` decorator with no `Depends(get_current_user)` or auth-shaped dependency in its signature. Mutating endpoints should require authentication unless explicitly public."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "high", "confidence": 1.0}}, {"id": "scanner-d2967692b271c35f", "name": "FastAPI POST `api_convert_quotation` without auth dependency \u2014 routes/sales_routes.py:465", "shortDescription": {"text": "FastAPI POST `api_convert_quotation` without auth dependency \u2014 routes/sales_routes.py:465"}, "fullDescription": {"text": "`@router.post` decorator with no `Depends(get_current_user)` or auth-shaped dependency in its signature. Mutating endpoints should require authentication unless explicitly public."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "high", "confidence": 1.0}}, {"id": "scanner-5b6142a5dc08c803", "name": "FastAPI POST `bank_v2_submit` without auth dependency \u2014 routes/recon_jobs_routes.py:172", "shortDescription": {"text": "FastAPI POST `bank_v2_submit` without auth dependency \u2014 routes/recon_jobs_routes.py:172"}, "fullDescription": {"text": "`@router.post` decorator with no `Depends(get_current_user)` or auth-shaped dependency in its signature. Mutating endpoints should require authentication unless explicitly public."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "high", "confidence": 1.0}}, {"id": "scanner-79fc42e1da199430", "name": "FastAPI POST `gl_vat_submit` without auth dependency \u2014 routes/recon_jobs_routes.py:238", "shortDescription": {"text": "FastAPI POST `gl_vat_submit` without auth dependency \u2014 routes/recon_jobs_routes.py:238"}, "fullDescription": {"text": "`@router.post` decorator with no `Depends(get_current_user)` or auth-shaped dependency in its signature. Mutating endpoints should require authentication unless explicitly public."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "high", "confidence": 1.0}}, {"id": "scanner-7844b9466180e048", "name": "FastAPI POST `vat_excel_submit` without auth dependency \u2014 routes/recon_jobs_routes.py:299", "shortDescription": {"text": "FastAPI POST `vat_excel_submit` without auth dependency \u2014 routes/recon_jobs_routes.py:299"}, "fullDescription": {"text": "`@router.post` decorator with no `Depends(get_current_user)` or auth-shaped dependency in its signature. Mutating endpoints should require authentication unless explicitly public."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "high", "confidence": 1.0}}, {"id": "scanner-fd27c6dc35b6cc6e", "name": "FastAPI POST `bank_v2_confirm_rows` without auth dependency \u2014 routes/recon_jobs_routes.py:400", "shortDescription": {"text": "FastAPI POST `bank_v2_confirm_rows` without auth dependency \u2014 routes/recon_jobs_routes.py:400"}, "fullDescription": {"text": "`@router.post` decorator with no `Depends(get_current_user)` or auth-shaped dependency in its signature. Mutating endpoints should require authentication unless explicitly public."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "high", "confidence": 1.0}}, {"id": "scanner-804a3f0f4204e9be", "name": "FastAPI POST `ocr_export` without auth dependency \u2014 routes/ocr_export_routes.py:75", "shortDescription": {"text": "FastAPI POST `ocr_export` without auth dependency \u2014 routes/ocr_export_routes.py:75"}, "fullDescription": {"text": "`@router.post` decorator with no `Depends(get_current_user)` or auth-shaped dependency in its signature. Mutating endpoints should require authentication unless explicitly public."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "high", "confidence": 1.0}}, {"id": "scanner-9e6cd5fc7096c562", "name": "FastAPI POST `ocr_export_by_history_ids` without auth dependency \u2014 routes/ocr_export_routes.py:153", "shortDescription": {"text": "FastAPI POST `ocr_export_by_history_ids` without auth dependency \u2014 routes/ocr_export_routes.py:153"}, "fullDescription": {"text": "`@router.post` decorator with no `Depends(get_current_user)` or auth-shaped dependency in its signature. Mutating endpoints should require authentication unless explicitly public."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "high", "confidence": 1.0}}, {"id": "scanner-a302297e334b3632", "name": "FastAPI POST `v1_export` without auth dependency \u2014 routes/ocr_export_routes.py:218", "shortDescription": {"text": "FastAPI POST `v1_export` without auth dependency \u2014 routes/ocr_export_routes.py:218"}, "fullDescription": {"text": "`@router.post` decorator with no `Depends(get_current_user)` or auth-shaped dependency in its signature. Mutating endpoints should require authentication unless explicitly public."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "high", "confidence": 1.0}}, {"id": "scanner-aac2e02785ec9a30", "name": "FastAPI POST `api_intake` without auth dependency \u2014 routes/purchase_intake_routes.py:69", "shortDescription": {"text": "FastAPI POST `api_intake` without auth dependency \u2014 routes/purchase_intake_routes.py:69"}, "fullDescription": {"text": "`@router.post` decorator with no `Depends(get_current_user)` or auth-shaped dependency in its signature. Mutating endpoints should require authentication unless explicitly public."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "high", "confidence": 1.0}}, {"id": "scanner-4da7aab4f9266d30", "name": "FastAPI POST `api_quick_expense` without auth dependency \u2014 routes/purchase_intake_routes.py:138", "shortDescription": {"text": "FastAPI POST `api_quick_expense` without auth dependency \u2014 routes/purchase_intake_routes.py:138"}, "fullDescription": {"text": "`@router.post` decorator with no `Depends(get_current_user)` or auth-shaped dependency in its signature. Mutating endpoints should require authentication unless explicitly public."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "high", "confidence": 1.0}}, {"id": "scanner-0b3badaf44c2fa8d", "name": "FastAPI POST `api_inbox_resolve` without auth dependency \u2014 routes/purchase_intake_routes.py:193", "shortDescription": {"text": "FastAPI POST `api_inbox_resolve` without auth dependency \u2014 routes/purchase_intake_routes.py:193"}, "fullDescription": {"text": "`@router.post` decorator with no `Depends(get_current_user)` or auth-shaped dependency in its signature. Mutating endpoints should require authentication unless explicitly public."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "high", "confidence": 1.0}}, {"id": "scanner-c84e0b2eef9c1c9e", "name": "FastAPI POST `api_bind_device` without auth dependency \u2014 routes/pos_auth_routes.py:111", "shortDescription": {"text": "FastAPI POST `api_bind_device` without auth dependency \u2014 routes/pos_auth_routes.py:111"}, "fullDescription": {"text": "`@router.post` decorator with no `Depends(get_current_user)` or auth-shaped dependency in its signature. Mutating endpoints should require authentication unless explicitly public."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "high", "confidence": 1.0}}, {"id": "scanner-8f174c9ad3041111", "name": "FastAPI POST `api_pin_login` without auth dependency \u2014 routes/pos_auth_routes.py:143", "shortDescription": {"text": "FastAPI POST `api_pin_login` without auth dependency \u2014 routes/pos_auth_routes.py:143"}, "fullDescription": {"text": "`@router.post` decorator with no `Depends(get_current_user)` or auth-shaped dependency in its signature. Mutating endpoints should require authentication unless explicitly public."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "high", "confidence": 1.0}}, {"id": "scanner-65b9f79f3e0399a4", "name": "FastAPI POST `api_reset_store_code` without auth dependency \u2014 routes/pos_auth_routes.py:183", "shortDescription": {"text": "FastAPI POST `api_reset_store_code` without auth dependency \u2014 routes/pos_auth_routes.py:183"}, "fullDescription": {"text": "`@router.post` decorator with no `Depends(get_current_user)` or auth-shaped dependency in its signature. Mutating endpoints should require authentication unless explicitly public."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "high", "confidence": 1.0}}, {"id": "scanner-2f9bf2372d8e9a92", "name": "FastAPI POST `api_admin_create_cashier` without auth dependency \u2014 routes/pos_auth_routes.py:242", "shortDescription": {"text": "FastAPI POST `api_admin_create_cashier` without auth dependency \u2014 routes/pos_auth_routes.py:242"}, "fullDescription": {"text": "`@router.post` decorator with no `Depends(get_current_user)` or auth-shaped dependency in its signature. Mutating endpoints should require authentication unless explicitly public."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "high", "confidence": 1.0}}, {"id": "scanner-355a60636fc0e82f", "name": "FastAPI PUT `api_admin_update_cashier` without auth dependency \u2014 routes/pos_auth_routes.py:259", "shortDescription": {"text": "FastAPI PUT `api_admin_update_cashier` without auth dependency \u2014 routes/pos_auth_routes.py:259"}, "fullDescription": {"text": "`@router.put` decorator with no `Depends(get_current_user)` or auth-shaped dependency in its signature. Mutating endpoints should require authentication unless explicitly public."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "high", "confidence": 1.0}}, {"id": "scanner-ae33b9821672e86d", "name": "FastAPI DELETE `api_admin_delete_cashier` without auth dependency \u2014 routes/pos_auth_routes.py:280", "shortDescription": {"text": "FastAPI DELETE `api_admin_delete_cashier` without auth dependency \u2014 routes/pos_auth_routes.py:280"}, "fullDescription": {"text": "`@router.delete` decorator with no `Depends(get_current_user)` or auth-shaped dependency in its signature. Mutating endpoints should require authentication unless explicitly public."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "high", "confidence": 1.0}}, {"id": "scanner-97f1a3a4e3558d0e", "name": "FastAPI PUT `api_onboarding` without auth dependency \u2014 routes/pos_auth_routes.py:298", "shortDescription": {"text": "FastAPI PUT `api_onboarding` without auth dependency \u2014 routes/pos_auth_routes.py:298"}, "fullDescription": {"text": "`@router.put` decorator with no `Depends(get_current_user)` or auth-shaped dependency in its signature. Mutating endpoints should require authentication unless explicitly public."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "high", "confidence": 1.0}}, {"id": "scanner-8a1a5c1a0a9d2b1d", "name": "FastAPI POST `export_records` without auth dependency \u2014 routes/report_routes.py:123", "shortDescription": {"text": "FastAPI POST `export_records` without auth dependency \u2014 routes/report_routes.py:123"}, "fullDescription": {"text": "`@router.post` decorator with no `Depends(get_current_user)` or auth-shaped dependency in its signature. Mutating endpoints should require authentication unless explicitly public."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "high", "confidence": 1.0}}, {"id": "scanner-047170a6f16692de", "name": "FastAPI POST `batch_export_history` without auth dependency \u2014 routes/report_routes.py:231", "shortDescription": {"text": "FastAPI POST `batch_export_history` without auth dependency \u2014 routes/report_routes.py:231"}, "fullDescription": {"text": "`@router.post` decorator with no `Depends(get_current_user)` or auth-shaped dependency in its signature. Mutating endpoints should require authentication unless explicitly public."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "high", "confidence": 1.0}}, {"id": "scanner-403eb59366e6b2b5", "name": "FastAPI POST `forgot_password` without auth dependency \u2014 routes/auth_password_routes.py:222", "shortDescription": {"text": "FastAPI POST `forgot_password` without auth dependency \u2014 routes/auth_password_routes.py:222"}, "fullDescription": {"text": "`@router.post` decorator with no `Depends(get_current_user)` or auth-shaped dependency in its signature. Mutating endpoints should require authentication unless explicitly public."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "high", "confidence": 1.0}}, {"id": "scanner-8604672aaaa83d5b", "name": "FastAPI POST `reset_password` without auth dependency \u2014 routes/auth_password_routes.py:333", "shortDescription": {"text": "FastAPI POST `reset_password` without auth dependency \u2014 routes/auth_password_routes.py:333"}, "fullDescription": {"text": "`@router.post` decorator with no `Depends(get_current_user)` or auth-shaped dependency in its signature. Mutating endpoints should require authentication unless explicitly public."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "high", "confidence": 1.0}}, {"id": "scanner-c83436761a63dbf2", "name": "FastAPI POST `change_password` without auth dependency \u2014 routes/auth_password_routes.py:417", "shortDescription": {"text": "FastAPI POST `change_password` without auth dependency \u2014 routes/auth_password_routes.py:417"}, "fullDescription": {"text": "`@router.post` decorator with no `Depends(get_current_user)` or auth-shaped dependency in its signature. Mutating endpoints should require authentication unless explicitly public."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "high", "confidence": 1.0}}, {"id": "scanner-7740f7965e8bc1a3", "name": "FastAPI PUT `history_update` without auth dependency \u2014 routes/history_routes.py:105", "shortDescription": {"text": "FastAPI PUT `history_update` without auth dependency \u2014 routes/history_routes.py:105"}, "fullDescription": {"text": "`@router.put` decorator with no `Depends(get_current_user)` or auth-shaped dependency in its signature. Mutating endpoints should require authentication unless explicitly public."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "high", "confidence": 1.0}}, {"id": "scanner-910ef3bd1301b519", "name": "FastAPI DELETE `history_delete` without auth dependency \u2014 routes/history_routes.py:172", "shortDescription": {"text": "FastAPI DELETE `history_delete` without auth dependency \u2014 routes/history_routes.py:172"}, "fullDescription": {"text": "`@router.delete` decorator with no `Depends(get_current_user)` or auth-shaped dependency in its signature. Mutating endpoints should require authentication unless explicitly public."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "high", "confidence": 1.0}}, {"id": "scanner-8cc0c457fed287e4", "name": "FastAPI POST `history_batch_delete` without auth dependency \u2014 routes/history_routes.py:233", "shortDescription": {"text": "FastAPI POST `history_batch_delete` without auth dependency \u2014 routes/history_routes.py:233"}, "fullDescription": {"text": "`@router.post` decorator with no `Depends(get_current_user)` or auth-shaped dependency in its signature. Mutating endpoints should require authentication unless explicitly public."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "high", "confidence": 1.0}}, {"id": "scanner-cd497c26226c2f32", "name": "FastAPI PUT `v1_history_update` without auth dependency \u2014 routes/history_routes.py:275", "shortDescription": {"text": "FastAPI PUT `v1_history_update` without auth dependency \u2014 routes/history_routes.py:275"}, "fullDescription": {"text": "`@router.put` decorator with no `Depends(get_current_user)` or auth-shaped dependency in its signature. Mutating endpoints should require authentication unless explicitly public."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "high", "confidence": 1.0}}, {"id": "scanner-81ce5415d8514200", "name": "FastAPI DELETE `v1_history_delete` without auth dependency \u2014 routes/history_routes.py:280", "shortDescription": {"text": "FastAPI DELETE `v1_history_delete` without auth dependency \u2014 routes/history_routes.py:280"}, "fullDescription": {"text": "`@router.delete` decorator with no `Depends(get_current_user)` or auth-shaped dependency in its signature. Mutating endpoints should require authentication unless explicitly public."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "high", "confidence": 1.0}}, {"id": "scanner-940e947337e6d217", "name": "FastAPI POST `api_assign_client` without auth dependency \u2014 routes/history_routes.py:289", "shortDescription": {"text": "FastAPI POST `api_assign_client` without auth dependency \u2014 routes/history_routes.py:289"}, "fullDescription": {"text": "`@router.post` decorator with no `Depends(get_current_user)` or auth-shaped dependency in its signature. Mutating endpoints should require authentication unless explicitly public."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "high", "confidence": 1.0}}, {"id": "scanner-3e4976d65cad7c68", "name": "FastAPI POST `github_deploy_webhook` without auth dependency \u2014 routes/admin_diagnostics_routes.py:95", "shortDescription": {"text": "FastAPI POST `github_deploy_webhook` without auth dependency \u2014 routes/admin_diagnostics_routes.py:95"}, "fullDescription": {"text": "`@router.post` decorator with no `Depends(get_current_user)` or auth-shaped dependency in its signature. Mutating endpoints should require authentication unless explicitly public."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "high", "confidence": 1.0}}, {"id": "scanner-009d4f06e31587b0", "name": "FastAPI POST `install_playwright` without auth dependency \u2014 routes/admin_diagnostics_routes.py:224", "shortDescription": {"text": "FastAPI POST `install_playwright` without auth dependency \u2014 routes/admin_diagnostics_routes.py:224"}, "fullDescription": {"text": "`@router.post` decorator with no `Depends(get_current_user)` or auth-shaped dependency in its signature. Mutating endpoints should require authentication unless explicitly public."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "high", "confidence": 1.0}}, {"id": "scanner-8dfc5dbe3d95ed5c", "name": "FastAPI POST `rd_verify` without auth dependency \u2014 routes/rd_routes.py:64", "shortDescription": {"text": "FastAPI POST `rd_verify` without auth dependency \u2014 routes/rd_routes.py:64"}, "fullDescription": {"text": "`@router.post` decorator with no `Depends(get_current_user)` or auth-shaped dependency in its signature. Mutating endpoints should require authentication unless explicitly public."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "high", "confidence": 1.0}}, {"id": "scanner-fdc7648bf952ad50", "name": "FastAPI POST `rd_lookup` without auth dependency \u2014 routes/rd_routes.py:78", "shortDescription": {"text": "FastAPI POST `rd_lookup` without auth dependency \u2014 routes/rd_routes.py:78"}, "fullDescription": {"text": "`@router.post` decorator with no `Depends(get_current_user)` or auth-shaped dependency in its signature. Mutating endpoints should require authentication unless explicitly public."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "high", "confidence": 1.0}}, {"id": "scanner-70d60c4480f05a02", "name": "FastAPI POST `v1_rd_verify` without auth dependency \u2014 routes/rd_routes.py:93", "shortDescription": {"text": "FastAPI POST `v1_rd_verify` without auth dependency \u2014 routes/rd_routes.py:93"}, "fullDescription": {"text": "`@router.post` decorator with no `Depends(get_current_user)` or auth-shaped dependency in its signature. Mutating endpoints should require authentication unless explicitly public."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "high", "confidence": 1.0}}, {"id": "scanner-0478ffabb3df7110", "name": "FastAPI POST `v1_rd_lookup` without auth dependency \u2014 routes/rd_routes.py:98", "shortDescription": {"text": "FastAPI POST `v1_rd_lookup` without auth dependency \u2014 routes/rd_routes.py:98"}, "fullDescription": {"text": "`@router.post` decorator with no `Depends(get_current_user)` or auth-shaped dependency in its signature. Mutating endpoints should require authentication unless explicitly public."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "high", "confidence": 1.0}}, {"id": "scanner-91493b51c447a89d", "name": "FastAPI POST `api_create_doc` without auth dependency \u2014 routes/purchase_routes.py:79", "shortDescription": {"text": "FastAPI POST `api_create_doc` without auth dependency \u2014 routes/purchase_routes.py:79"}, "fullDescription": {"text": "`@router.post` decorator with no `Depends(get_current_user)` or auth-shaped dependency in its signature. Mutating endpoints should require authentication unless explicitly public."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "high", "confidence": 1.0}}, {"id": "scanner-b1dd78d8043a0e5f", "name": "FastAPI PUT `api_update_doc` without auth dependency \u2014 routes/purchase_routes.py:142", "shortDescription": {"text": "FastAPI PUT `api_update_doc` without auth dependency \u2014 routes/purchase_routes.py:142"}, "fullDescription": {"text": "`@router.put` decorator with no `Depends(get_current_user)` or auth-shaped dependency in its signature. Mutating endpoints should require authentication unless explicitly public."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "high", "confidence": 1.0}}, {"id": "scanner-d103b372161f5be7", "name": "FastAPI POST `api_post_doc` without auth dependency \u2014 routes/purchase_routes.py:161", "shortDescription": {"text": "FastAPI POST `api_post_doc` without auth dependency \u2014 routes/purchase_routes.py:161"}, "fullDescription": {"text": "`@router.post` decorator with no `Depends(get_current_user)` or auth-shaped dependency in its signature. Mutating endpoints should require authentication unless explicitly public."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "high", "confidence": 1.0}}, {"id": "scanner-99df36323e3d92bc", "name": "FastAPI POST `api_pay_doc` without auth dependency \u2014 routes/purchase_routes.py:180", "shortDescription": {"text": "FastAPI POST `api_pay_doc` without auth dependency \u2014 routes/purchase_routes.py:180"}, "fullDescription": {"text": "`@router.post` decorator with no `Depends(get_current_user)` or auth-shaped dependency in its signature. Mutating endpoints should require authentication unless explicitly public."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "high", "confidence": 1.0}}, {"id": "scanner-870d22be554ed8d1", "name": "FastAPI POST `api_set_payment_status` without auth dependency \u2014 routes/purchase_routes.py:192", "shortDescription": {"text": "FastAPI POST `api_set_payment_status` without auth dependency \u2014 routes/purchase_routes.py:192"}, "fullDescription": {"text": "`@router.post` decorator with no `Depends(get_current_user)` or auth-shaped dependency in its signature. Mutating endpoints should require authentication unless explicitly public."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "high", "confidence": 1.0}}, {"id": "scanner-d85f62e553c57b17", "name": "FastAPI POST `api_void_doc` without auth dependency \u2014 routes/purchase_routes.py:205", "shortDescription": {"text": "FastAPI POST `api_void_doc` without auth dependency \u2014 routes/purchase_routes.py:205"}, "fullDescription": {"text": "`@router.post` decorator with no `Depends(get_current_user)` or auth-shaped dependency in its signature. Mutating endpoints should require authentication unless explicitly public."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "high", "confidence": 1.0}}, {"id": "scanner-50a2ceab733d5370", "name": "FastAPI DELETE `api_delete_doc` without auth dependency \u2014 routes/purchase_routes.py:221", "shortDescription": {"text": "FastAPI DELETE `api_delete_doc` without auth dependency \u2014 routes/purchase_routes.py:221"}, "fullDescription": {"text": "`@router.delete` decorator with no `Depends(get_current_user)` or auth-shaped dependency in its signature. Mutating endpoints should require authentication unless explicitly public."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "high", "confidence": 1.0}}, {"id": "scanner-082ac4e283ccbf67", "name": "FastAPI POST `api_match_product` without auth dependency \u2014 routes/purchase_routes.py:233", "shortDescription": {"text": "FastAPI POST `api_match_product` without auth dependency \u2014 routes/purchase_routes.py:233"}, "fullDescription": {"text": "`@router.post` decorator with no `Depends(get_current_user)` or auth-shaped dependency in its signature. Mutating endpoints should require authentication unless explicitly public."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "high", "confidence": 1.0}}, {"id": "scanner-373a34ed9bc0bba8", "name": "FastAPI POST `api_substitute_receipt` without auth dependency \u2014 routes/purchase_routes.py:281", "shortDescription": {"text": "FastAPI POST `api_substitute_receipt` without auth dependency \u2014 routes/purchase_routes.py:281"}, "fullDescription": {"text": "`@router.post` decorator with no `Depends(get_current_user)` or auth-shaped dependency in its signature. Mutating endpoints should require authentication unless explicitly public."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "high", "confidence": 1.0}}, {"id": "scanner-90997f28d2e60b4c", "name": "FastAPI POST `api_wht_cert` without auth dependency \u2014 routes/purchase_routes.py:286", "shortDescription": {"text": "FastAPI POST `api_wht_cert` without auth dependency \u2014 routes/purchase_routes.py:286"}, "fullDescription": {"text": "`@router.post` decorator with no `Depends(get_current_user)` or auth-shaped dependency in its signature. Mutating endpoints should require authentication unless explicitly public."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "high", "confidence": 1.0}}, {"id": "scanner-38f0ba741baaecff", "name": "FastAPI POST `api_add_attachment` without auth dependency \u2014 routes/purchase_routes.py:343", "shortDescription": {"text": "FastAPI POST `api_add_attachment` without auth dependency \u2014 routes/purchase_routes.py:343"}, "fullDescription": {"text": "`@router.post` decorator with no `Depends(get_current_user)` or auth-shaped dependency in its signature. Mutating endpoints should require authentication unless explicitly public."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "high", "confidence": 1.0}}, {"id": "scanner-59946e60700b3d1e", "name": "FastAPI DELETE `api_delete_attachment` without auth dependency \u2014 routes/purchase_routes.py:355", "shortDescription": {"text": "FastAPI DELETE `api_delete_attachment` without auth dependency \u2014 routes/purchase_routes.py:355"}, "fullDescription": {"text": "`@router.delete` decorator with no `Depends(get_current_user)` or auth-shaped dependency in its signature. Mutating endpoints should require authentication unless explicitly public."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "high", "confidence": 1.0}}, {"id": "scanner-7e8846840b79b9fc", "name": "FastAPI POST `create_line_binding_code` without auth dependency \u2014 routes/line_binding_routes.py:45", "shortDescription": {"text": "FastAPI POST `create_line_binding_code` without auth dependency \u2014 routes/line_binding_routes.py:45"}, "fullDescription": {"text": "`@router.post` decorator with no `Depends(get_current_user)` or auth-shaped dependency in its signature. Mutating endpoints should require authentication unless explicitly public."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "high", "confidence": 1.0}}, {"id": "scanner-87ab2b5dce7f2f6f", "name": "FastAPI DELETE `delete_line_binding` without auth dependency \u2014 routes/line_binding_routes.py:84", "shortDescription": {"text": "FastAPI DELETE `delete_line_binding` without auth dependency \u2014 routes/line_binding_routes.py:84"}, "fullDescription": {"text": "`@router.delete` decorator with no `Depends(get_current_user)` or auth-shaped dependency in its signature. Mutating endpoints should require authentication unless explicitly public."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "high", "confidence": 1.0}}, {"id": "scanner-291f0831fa3d7eb3", "name": "FastAPI POST `update_my_lang` without auth dependency \u2014 routes/line_binding_routes.py:104", "shortDescription": {"text": "FastAPI POST `update_my_lang` without auth dependency \u2014 routes/line_binding_routes.py:104"}, "fullDescription": {"text": "`@router.post` decorator with no `Depends(get_current_user)` or auth-shaped dependency in its signature. Mutating endpoints should require authentication unless explicitly public."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "high", "confidence": 1.0}}, {"id": "scanner-8c16a4ca8eea1fde", "name": "FastAPI POST `switch_company` without auth dependency \u2014 routes/billing_credits_routes.py:186", "shortDescription": {"text": "FastAPI POST `switch_company` without auth dependency \u2014 routes/billing_credits_routes.py:186"}, "fullDescription": {"text": "`@router.post` decorator with no `Depends(get_current_user)` or auth-shaped dependency in its signature. Mutating endpoints should require authentication unless explicitly public."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "high", "confidence": 1.0}}, {"id": "scanner-544cdd9a616c7761", "name": "FastAPI PUT `archive_settings_put` without auth dependency \u2014 routes/settings_routes.py:85", "shortDescription": {"text": "FastAPI PUT `archive_settings_put` without auth dependency \u2014 routes/settings_routes.py:85"}, "fullDescription": {"text": "`@router.put` decorator with no `Depends(get_current_user)` or auth-shaped dependency in its signature. Mutating endpoints should require authentication unless explicitly public."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "high", "confidence": 1.0}}, {"id": "scanner-e66f72ceca30f90d", "name": "FastAPI POST `archive_rename_preview` without auth dependency \u2014 routes/settings_routes.py:102", "shortDescription": {"text": "FastAPI POST `archive_rename_preview` without auth dependency \u2014 routes/settings_routes.py:102"}, "fullDescription": {"text": "`@router.post` decorator with no `Depends(get_current_user)` or auth-shaped dependency in its signature. Mutating endpoints should require authentication unless explicitly public."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "high", "confidence": 1.0}}, {"id": "scanner-8dcabe924213375b", "name": "FastAPI PUT `dup_check_put` without auth dependency \u2014 routes/settings_routes.py:129", "shortDescription": {"text": "FastAPI PUT `dup_check_put` without auth dependency \u2014 routes/settings_routes.py:129"}, "fullDescription": {"text": "`@router.put` decorator with no `Depends(get_current_user)` or auth-shaped dependency in its signature. Mutating endpoints should require authentication unless explicitly public."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "high", "confidence": 1.0}}, {"id": "scanner-9fe836bbf3753a58", "name": "FastAPI PUT `erp_push_mode_put` without auth dependency \u2014 routes/settings_routes.py:152", "shortDescription": {"text": "FastAPI PUT `erp_push_mode_put` without auth dependency \u2014 routes/settings_routes.py:152"}, "fullDescription": {"text": "`@router.put` decorator with no `Depends(get_current_user)` or auth-shaped dependency in its signature. Mutating endpoints should require authentication unless explicitly public."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "high", "confidence": 1.0}}, {"id": "scanner-c24b192034179461", "name": "FastAPI POST `create_custom_role` without auth dependency \u2014 routes/console_roles_routes.py:50", "shortDescription": {"text": "FastAPI POST `create_custom_role` without auth dependency \u2014 routes/console_roles_routes.py:50"}, "fullDescription": {"text": "`@router.post` decorator with no `Depends(get_current_user)` or auth-shaped dependency in its signature. Mutating endpoints should require authentication unless explicitly public."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "high", "confidence": 1.0}}, {"id": "scanner-4ea0ce60e17f220a", "name": "FastAPI PATCH `update_custom_role` without auth dependency \u2014 routes/console_roles_routes.py:74", "shortDescription": {"text": "FastAPI PATCH `update_custom_role` without auth dependency \u2014 routes/console_roles_routes.py:74"}, "fullDescription": {"text": "`@router.patch` decorator with no `Depends(get_current_user)` or auth-shaped dependency in its signature. Mutating endpoints should require authentication unless explicitly public."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "high", "confidence": 1.0}}, {"id": "scanner-a4b9b316645b1551", "name": "FastAPI DELETE `delete_custom_role` without auth dependency \u2014 routes/console_roles_routes.py:101", "shortDescription": {"text": "FastAPI DELETE `delete_custom_role` without auth dependency \u2014 routes/console_roles_routes.py:101"}, "fullDescription": {"text": "`@router.delete` decorator with no `Depends(get_current_user)` or auth-shaped dependency in its signature. Mutating endpoints should require authentication unless explicitly public."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "high", "confidence": 1.0}}, {"id": "scanner-4a6ec12a91525b39", "name": "FastAPI PUT `assign_role` without auth dependency \u2014 routes/console_roles_routes.py:119", "shortDescription": {"text": "FastAPI PUT `assign_role` without auth dependency \u2014 routes/console_roles_routes.py:119"}, "fullDescription": {"text": "`@router.put` decorator with no `Depends(get_current_user)` or auth-shaped dependency in its signature. Mutating endpoints should require authentication unless explicitly public."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "high", "confidence": 1.0}}, {"id": "scanner-9286be9115a05f31", "name": "FastAPI POST `api_create_area` without auth dependency \u2014 routes/pos_restaurant_admin_routes.py:66", "shortDescription": {"text": "FastAPI POST `api_create_area` without auth dependency \u2014 routes/pos_restaurant_admin_routes.py:66"}, "fullDescription": {"text": "`@router.post` decorator with no `Depends(get_current_user)` or auth-shaped dependency in its signature. Mutating endpoints should require authentication unless explicitly public."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "high", "confidence": 1.0}}, {"id": "scanner-c287b5cdc17784ef", "name": "FastAPI PATCH `api_update_area` without auth dependency \u2014 routes/pos_restaurant_admin_routes.py:78", "shortDescription": {"text": "FastAPI PATCH `api_update_area` without auth dependency \u2014 routes/pos_restaurant_admin_routes.py:78"}, "fullDescription": {"text": "`@router.patch` decorator with no `Depends(get_current_user)` or auth-shaped dependency in its signature. Mutating endpoints should require authentication unless explicitly public."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "high", "confidence": 1.0}}, {"id": "scanner-7b8e9d297e7285fd", "name": "FastAPI DELETE `api_delete_area` without auth dependency \u2014 routes/pos_restaurant_admin_routes.py:91", "shortDescription": {"text": "FastAPI DELETE `api_delete_area` without auth dependency \u2014 routes/pos_restaurant_admin_routes.py:91"}, "fullDescription": {"text": "`@router.delete` decorator with no `Depends(get_current_user)` or auth-shaped dependency in its signature. Mutating endpoints should require authentication unless explicitly public."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "high", "confidence": 1.0}}, {"id": "scanner-ed12182b8a7056d7", "name": "FastAPI POST `api_create_table` without auth dependency \u2014 routes/pos_restaurant_admin_routes.py:140", "shortDescription": {"text": "FastAPI POST `api_create_table` without auth dependency \u2014 routes/pos_restaurant_admin_routes.py:140"}, "fullDescription": {"text": "`@router.post` decorator with no `Depends(get_current_user)` or auth-shaped dependency in its signature. Mutating endpoints should require authentication unless explicitly public."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "high", "confidence": 1.0}}, {"id": "scanner-07db653b20fe47de", "name": "FastAPI PATCH `api_update_table` without auth dependency \u2014 routes/pos_restaurant_admin_routes.py:158", "shortDescription": {"text": "FastAPI PATCH `api_update_table` without auth dependency \u2014 routes/pos_restaurant_admin_routes.py:158"}, "fullDescription": {"text": "`@router.patch` decorator with no `Depends(get_current_user)` or auth-shaped dependency in its signature. Mutating endpoints should require authentication unless explicitly public."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "high", "confidence": 1.0}}, {"id": "scanner-b9f83e4f137fbc8b", "name": "FastAPI DELETE `api_delete_table` without auth dependency \u2014 routes/pos_restaurant_admin_routes.py:171", "shortDescription": {"text": "FastAPI DELETE `api_delete_table` without auth dependency \u2014 routes/pos_restaurant_admin_routes.py:171"}, "fullDescription": {"text": "`@router.delete` decorator with no `Depends(get_current_user)` or auth-shaped dependency in its signature. Mutating endpoints should require authentication unless explicitly public."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "high", "confidence": 1.0}}, {"id": "scanner-0426965805455355", "name": "FastAPI POST `create_workspace_client` without auth dependency \u2014 routes/workspace_routes.py:143", "shortDescription": {"text": "FastAPI POST `create_workspace_client` without auth dependency \u2014 routes/workspace_routes.py:143"}, "fullDescription": {"text": "`@router.post` decorator with no `Depends(get_current_user)` or auth-shaped dependency in its signature. Mutating endpoints should require authentication unless explicitly public."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "high", "confidence": 1.0}}, {"id": "scanner-593a50f4ff4bcbd3", "name": "FastAPI PUT `bind_workspace_endpoint` without auth dependency \u2014 routes/workspace_routes.py:186", "shortDescription": {"text": "FastAPI PUT `bind_workspace_endpoint` without auth dependency \u2014 routes/workspace_routes.py:186"}, "fullDescription": {"text": "`@router.put` decorator with no `Depends(get_current_user)` or auth-shaped dependency in its signature. Mutating endpoints should require authentication unless explicitly public."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "high", "confidence": 1.0}}, {"id": "scanner-ee044fe0e38e0d82", "name": "FastAPI PATCH `update_workspace_client_route` without auth dependency \u2014 routes/workspace_routes.py:203", "shortDescription": {"text": "FastAPI PATCH `update_workspace_client_route` without auth dependency \u2014 routes/workspace_routes.py:203"}, "fullDescription": {"text": "`@router.patch` decorator with no `Depends(get_current_user)` or auth-shaped dependency in its signature. Mutating endpoints should require authentication unless explicitly public."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "high", "confidence": 1.0}}, {"id": "scanner-3f461fd1d428907a", "name": "FastAPI DELETE `archive_workspace_client_route` without auth dependency \u2014 routes/workspace_routes.py:237", "shortDescription": {"text": "FastAPI DELETE `archive_workspace_client_route` without auth dependency \u2014 routes/workspace_routes.py:237"}, "fullDescription": {"text": "`@router.delete` decorator with no `Depends(get_current_user)` or auth-shaped dependency in its signature. Mutating endpoints should require authentication unless explicitly public."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "high", "confidence": 1.0}}, {"id": "scanner-28b3543c5e31ea64", "name": "FastAPI POST `api_create_client` without auth dependency \u2014 routes/clients_routes.py:126", "shortDescription": {"text": "FastAPI POST `api_create_client` without auth dependency \u2014 routes/clients_routes.py:126"}, "fullDescription": {"text": "`@router.post` decorator with no `Depends(get_current_user)` or auth-shaped dependency in its signature. Mutating endpoints should require authentication unless explicitly public."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "high", "confidence": 1.0}}, {"id": "scanner-fca92c24c9cc7ef7", "name": "FastAPI PATCH `api_update_client` without auth dependency \u2014 routes/clients_routes.py:148", "shortDescription": {"text": "FastAPI PATCH `api_update_client` without auth dependency \u2014 routes/clients_routes.py:148"}, "fullDescription": {"text": "`@router.patch` decorator with no `Depends(get_current_user)` or auth-shaped dependency in its signature. Mutating endpoints should require authentication unless explicitly public."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "high", "confidence": 1.0}}, {"id": "scanner-00f7f8958df1de6a", "name": "FastAPI DELETE `api_delete_client` without auth dependency \u2014 routes/clients_routes.py:164", "shortDescription": {"text": "FastAPI DELETE `api_delete_client` without auth dependency \u2014 routes/clients_routes.py:164"}, "fullDescription": {"text": "`@router.delete` decorator with no `Depends(get_current_user)` or auth-shaped dependency in its signature. Mutating endpoints should require authentication unless explicitly public."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "high", "confidence": 1.0}}, {"id": "scanner-03f3255877a6239f", "name": "FastAPI POST `api_batch_delete_clients` without auth dependency \u2014 routes/clients_routes.py:178", "shortDescription": {"text": "FastAPI POST `api_batch_delete_clients` without auth dependency \u2014 routes/clients_routes.py:178"}, "fullDescription": {"text": "`@router.post` decorator with no `Depends(get_current_user)` or auth-shaped dependency in its signature. Mutating endpoints should require authentication unless explicitly public."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "high", "confidence": 1.0}}, {"id": "scanner-339dcdd68483e168", "name": "FastAPI PUT `change_member_role` without auth dependency \u2014 routes/console_team_routes.py:121", "shortDescription": {"text": "FastAPI PUT `change_member_role` without auth dependency \u2014 routes/console_team_routes.py:121"}, "fullDescription": {"text": "`@router.put` decorator with no `Depends(get_current_user)` or auth-shaped dependency in its signature. Mutating endpoints should require authentication unless explicitly public."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "high", "confidence": 1.0}}, {"id": "scanner-a2dee80fda484bac", "name": "FastAPI PUT `change_member_scope` without auth dependency \u2014 routes/console_team_routes.py:146", "shortDescription": {"text": "FastAPI PUT `change_member_scope` without auth dependency \u2014 routes/console_team_routes.py:146"}, "fullDescription": {"text": "`@router.put` decorator with no `Depends(get_current_user)` or auth-shaped dependency in its signature. Mutating endpoints should require authentication unless explicitly public."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "high", "confidence": 1.0}}, {"id": "scanner-643f78ef5eacb18c", "name": "FastAPI PATCH `toggle_member` without auth dependency \u2014 routes/console_team_routes.py:174", "shortDescription": {"text": "FastAPI PATCH `toggle_member` without auth dependency \u2014 routes/console_team_routes.py:174"}, "fullDescription": {"text": "`@router.patch` decorator with no `Depends(get_current_user)` or auth-shaped dependency in its signature. Mutating endpoints should require authentication unless explicitly public."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "high", "confidence": 1.0}}, {"id": "scanner-ceab71f28f258eaa", "name": "FastAPI DELETE `remove_member` without auth dependency \u2014 routes/console_team_routes.py:196", "shortDescription": {"text": "FastAPI DELETE `remove_member` without auth dependency \u2014 routes/console_team_routes.py:196"}, "fullDescription": {"text": "`@router.delete` decorator with no `Depends(get_current_user)` or auth-shaped dependency in its signature. Mutating endpoints should require authentication unless explicitly public."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "high", "confidence": 1.0}}, {"id": "scanner-82fd3d07def3ee01", "name": "FastAPI POST `api_notif_create_rule` without auth dependency \u2014 routes/notification_routes.py:84", "shortDescription": {"text": "FastAPI POST `api_notif_create_rule` without auth dependency \u2014 routes/notification_routes.py:84"}, "fullDescription": {"text": "`@router.post` decorator with no `Depends(get_current_user)` or auth-shaped dependency in its signature. Mutating endpoints should require authentication unless explicitly public."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "high", "confidence": 1.0}}, {"id": "scanner-9cdcccf3c78e9538", "name": "FastAPI PATCH `api_notif_update_rule` without auth dependency \u2014 routes/notification_routes.py:109", "shortDescription": {"text": "FastAPI PATCH `api_notif_update_rule` without auth dependency \u2014 routes/notification_routes.py:109"}, "fullDescription": {"text": "`@router.patch` decorator with no `Depends(get_current_user)` or auth-shaped dependency in its signature. Mutating endpoints should require authentication unless explicitly public."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "high", "confidence": 1.0}}, {"id": "scanner-f37e7e7e38717e16", "name": "FastAPI DELETE `api_notif_delete_rule` without auth dependency \u2014 routes/notification_routes.py:139", "shortDescription": {"text": "FastAPI DELETE `api_notif_delete_rule` without auth dependency \u2014 routes/notification_routes.py:139"}, "fullDescription": {"text": "`@router.delete` decorator with no `Depends(get_current_user)` or auth-shaped dependency in its signature. Mutating endpoints should require authentication unless explicitly public."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "high", "confidence": 1.0}}, {"id": "scanner-6af33f8c2da7198e", "name": "FastAPI POST `api_notif_test_send` without auth dependency \u2014 routes/notification_routes.py:152", "shortDescription": {"text": "FastAPI POST `api_notif_test_send` without auth dependency \u2014 routes/notification_routes.py:152"}, "fullDescription": {"text": "`@router.post` decorator with no `Depends(get_current_user)` or auth-shaped dependency in its signature. Mutating endpoints should require authentication unless explicitly public."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "high", "confidence": 1.0}}, {"id": "scanner-bc779fc19b2d99db", "name": "FastAPI POST `erp_endpoints_create` without auth dependency \u2014 routes/erp_endpoints_routes.py:70", "shortDescription": {"text": "FastAPI POST `erp_endpoints_create` without auth dependency \u2014 routes/erp_endpoints_routes.py:70"}, "fullDescription": {"text": "`@router.post` decorator with no `Depends(get_current_user)` or auth-shaped dependency in its signature. Mutating endpoints should require authentication unless explicitly public."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "high", "confidence": 1.0}}, {"id": "scanner-af2cf5163989ea94", "name": "FastAPI PATCH `erp_endpoints_update` without auth dependency \u2014 routes/erp_endpoints_routes.py:190", "shortDescription": {"text": "FastAPI PATCH `erp_endpoints_update` without auth dependency \u2014 routes/erp_endpoints_routes.py:190"}, "fullDescription": {"text": "`@router.patch` decorator with no `Depends(get_current_user)` or auth-shaped dependency in its signature. Mutating endpoints should require authentication unless explicitly public."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "high", "confidence": 1.0}}, {"id": "scanner-2fe0ef422940435c", "name": "FastAPI DELETE `erp_endpoints_delete` without auth dependency \u2014 routes/erp_endpoints_routes.py:277", "shortDescription": {"text": "FastAPI DELETE `erp_endpoints_delete` without auth dependency \u2014 routes/erp_endpoints_routes.py:277"}, "fullDescription": {"text": "`@router.delete` decorator with no `Depends(get_current_user)` or auth-shaped dependency in its signature. Mutating endpoints should require authentication unless explicitly public."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "high", "confidence": 1.0}}, {"id": "scanner-b265dd8e6a604577", "name": "FastAPI PATCH `erp_endpoints_update_seed` without auth dependency \u2014 routes/erp_endpoints_routes.py:294", "shortDescription": {"text": "FastAPI PATCH `erp_endpoints_update_seed` without auth dependency \u2014 routes/erp_endpoints_routes.py:294"}, "fullDescription": {"text": "`@router.patch` decorator with no `Depends(get_current_user)` or auth-shaped dependency in its signature. Mutating endpoints should require authentication unless explicitly public."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "high", "confidence": 1.0}}, {"id": "scanner-bc4c7c5250b0f104", "name": "FastAPI POST `erp_map_upsert_client` without auth dependency \u2014 routes/erp_mappings_routes.py:67", "shortDescription": {"text": "FastAPI POST `erp_map_upsert_client` without auth dependency \u2014 routes/erp_mappings_routes.py:67"}, "fullDescription": {"text": "`@router.post` decorator with no `Depends(get_current_user)` or auth-shaped dependency in its signature. Mutating endpoints should require authentication unless explicitly public."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "high", "confidence": 1.0}}, {"id": "scanner-06bcf37897c3dcf9", "name": "FastAPI DELETE `erp_map_delete_client` without auth dependency \u2014 routes/erp_mappings_routes.py:85", "shortDescription": {"text": "FastAPI DELETE `erp_map_delete_client` without auth dependency \u2014 routes/erp_mappings_routes.py:85"}, "fullDescription": {"text": "`@router.delete` decorator with no `Depends(get_current_user)` or auth-shaped dependency in its signature. Mutating endpoints should require authentication unless explicitly public."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "high", "confidence": 1.0}}, {"id": "scanner-4368fd07dc76b533", "name": "FastAPI POST `erp_map_upsert_account` without auth dependency \u2014 routes/erp_mappings_routes.py:105", "shortDescription": {"text": "FastAPI POST `erp_map_upsert_account` without auth dependency \u2014 routes/erp_mappings_routes.py:105"}, "fullDescription": {"text": "`@router.post` decorator with no `Depends(get_current_user)` or auth-shaped dependency in its signature. Mutating endpoints should require authentication unless explicitly public."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "high", "confidence": 1.0}}, {"id": "scanner-0ad624adb2ab3a91", "name": "FastAPI DELETE `erp_map_delete_account` without auth dependency \u2014 routes/erp_mappings_routes.py:124", "shortDescription": {"text": "FastAPI DELETE `erp_map_delete_account` without auth dependency \u2014 routes/erp_mappings_routes.py:124"}, "fullDescription": {"text": "`@router.delete` decorator with no `Depends(get_current_user)` or auth-shaped dependency in its signature. Mutating endpoints should require authentication unless explicitly public."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "high", "confidence": 1.0}}, {"id": "scanner-f376b91ac2b2b007", "name": "FastAPI POST `erp_map_upsert_tax` without auth dependency \u2014 routes/erp_mappings_routes.py:144", "shortDescription": {"text": "FastAPI POST `erp_map_upsert_tax` without auth dependency \u2014 routes/erp_mappings_routes.py:144"}, "fullDescription": {"text": "`@router.post` decorator with no `Depends(get_current_user)` or auth-shaped dependency in its signature. Mutating endpoints should require authentication unless explicitly public."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "high", "confidence": 1.0}}, {"id": "scanner-e7d3116f70afb29d", "name": "FastAPI DELETE `erp_map_delete_tax` without auth dependency \u2014 routes/erp_mappings_routes.py:162", "shortDescription": {"text": "FastAPI DELETE `erp_map_delete_tax` without auth dependency \u2014 routes/erp_mappings_routes.py:162"}, "fullDescription": {"text": "`@router.delete` decorator with no `Depends(get_current_user)` or auth-shaped dependency in its signature. Mutating endpoints should require authentication unless explicitly public."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "high", "confidence": 1.0}}, {"id": "scanner-1fba6c45ff12a91d", "name": "FastAPI POST `upsert_mapping_product` without auth dependency \u2014 routes/erp_mappings_routes.py:210", "shortDescription": {"text": "FastAPI POST `upsert_mapping_product` without auth dependency \u2014 routes/erp_mappings_routes.py:210"}, "fullDescription": {"text": "`@router.post` decorator with no `Depends(get_current_user)` or auth-shaped dependency in its signature. Mutating endpoints should require authentication unless explicitly public."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "high", "confidence": 1.0}}, {"id": "scanner-d4d0b0d23985abde", "name": "FastAPI DELETE `delete_mapping_product` without auth dependency \u2014 routes/erp_mappings_routes.py:234", "shortDescription": {"text": "FastAPI DELETE `delete_mapping_product` without auth dependency \u2014 routes/erp_mappings_routes.py:234"}, "fullDescription": {"text": "`@router.delete` decorator with no `Depends(get_current_user)` or auth-shaped dependency in its signature. Mutating endpoints should require authentication unless explicitly public."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "high", "confidence": 1.0}}, {"id": "scanner-de232f199549a7f0", "name": "FastAPI PUT `api_save_payment_settings` without auth dependency \u2014 routes/pos_payment_routes.py:54", "shortDescription": {"text": "FastAPI PUT `api_save_payment_settings` without auth dependency \u2014 routes/pos_payment_routes.py:54"}, "fullDescription": {"text": "`@router.put` decorator with no `Depends(get_current_user)` or auth-shaped dependency in its signature. Mutating endpoints should require authentication unless explicitly public."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "high", "confidence": 1.0}}, {"id": "scanner-3470ec75300a2fcd", "name": "FastAPI POST `admin_ban_user` without auth dependency \u2014 routes/auth_admin_risk_routes.py:178", "shortDescription": {"text": "FastAPI POST `admin_ban_user` without auth dependency \u2014 routes/auth_admin_risk_routes.py:178"}, "fullDescription": {"text": "`@router.post` decorator with no `Depends(get_current_user)` or auth-shaped dependency in its signature. Mutating endpoints should require authentication unless explicitly public."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "high", "confidence": 1.0}}, {"id": "scanner-7114f6ad4ed7a5d2", "name": "FastAPI POST `admin_unban_user` without auth dependency \u2014 routes/auth_admin_risk_routes.py:206", "shortDescription": {"text": "FastAPI POST `admin_unban_user` without auth dependency \u2014 routes/auth_admin_risk_routes.py:206"}, "fullDescription": {"text": "`@router.post` decorator with no `Depends(get_current_user)` or auth-shaped dependency in its signature. Mutating endpoints should require authentication unless explicitly public."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "high", "confidence": 1.0}}, {"id": "scanner-fd0e2d57f9f89bd6", "name": "FastAPI POST `admin_risk_batch_ban` without auth dependency \u2014 routes/auth_admin_risk_routes.py:233", "shortDescription": {"text": "FastAPI POST `admin_risk_batch_ban` without auth dependency \u2014 routes/auth_admin_risk_routes.py:233"}, "fullDescription": {"text": "`@router.post` decorator with no `Depends(get_current_user)` or auth-shaped dependency in its signature. Mutating endpoints should require authentication unless explicitly public."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "high", "confidence": 1.0}}, {"id": "scanner-4b58df59474aae33", "name": "FastAPI POST `ocr_recognize` without auth dependency \u2014 routes/ocr_recognize_routes.py:38", "shortDescription": {"text": "FastAPI POST `ocr_recognize` without auth dependency \u2014 routes/ocr_recognize_routes.py:38"}, "fullDescription": {"text": "`@router.post` decorator with no `Depends(get_current_user)` or auth-shaped dependency in its signature. Mutating endpoints should require authentication unless explicitly public."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "high", "confidence": 1.0}}, {"id": "scanner-a098ad678e85d356", "name": "FastAPI POST `api_generate_filings` without auth dependency \u2014 routes/tax_routes.py:124", "shortDescription": {"text": "FastAPI POST `api_generate_filings` without auth dependency \u2014 routes/tax_routes.py:124"}, "fullDescription": {"text": "`@router.post` decorator with no `Depends(get_current_user)` or auth-shaped dependency in its signature. Mutating endpoints should require authentication unless explicitly public."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "high", "confidence": 1.0}}, {"id": "scanner-c4685a89002f3225", "name": "FastAPI POST `api_recompute_filing` without auth dependency \u2014 routes/tax_routes.py:152", "shortDescription": {"text": "FastAPI POST `api_recompute_filing` without auth dependency \u2014 routes/tax_routes.py:152"}, "fullDescription": {"text": "`@router.post` decorator with no `Depends(get_current_user)` or auth-shaped dependency in its signature. Mutating endpoints should require authentication unless explicitly public."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "high", "confidence": 1.0}}, {"id": "scanner-c6eaeba496e3cf81", "name": "FastAPI POST `api_check_filing` without auth dependency \u2014 routes/tax_routes.py:164", "shortDescription": {"text": "FastAPI POST `api_check_filing` without auth dependency \u2014 routes/tax_routes.py:164"}, "fullDescription": {"text": "`@router.post` decorator with no `Depends(get_current_user)` or auth-shaped dependency in its signature. Mutating endpoints should require authentication unless explicitly public."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "high", "confidence": 1.0}}, {"id": "scanner-150eef5068dba328", "name": "FastAPI POST `api_file_filing` without auth dependency \u2014 routes/tax_routes.py:180", "shortDescription": {"text": "FastAPI POST `api_file_filing` without auth dependency \u2014 routes/tax_routes.py:180"}, "fullDescription": {"text": "`@router.post` decorator with no `Depends(get_current_user)` or auth-shaped dependency in its signature. Mutating endpoints should require authentication unless explicitly public."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "high", "confidence": 1.0}}, {"id": "scanner-501ecac3387b3718", "name": "FastAPI POST `api_mark_filed` without auth dependency \u2014 routes/tax_routes.py:213", "shortDescription": {"text": "FastAPI POST `api_mark_filed` without auth dependency \u2014 routes/tax_routes.py:213"}, "fullDescription": {"text": "`@router.post` decorator with no `Depends(get_current_user)` or auth-shaped dependency in its signature. Mutating endpoints should require authentication unless explicitly public."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "high", "confidence": 1.0}}, {"id": "scanner-e760e686b82de67c", "name": "FastAPI POST `api_issue_wht_cert` without auth dependency \u2014 routes/tax_routes.py:292", "shortDescription": {"text": "FastAPI POST `api_issue_wht_cert` without auth dependency \u2014 routes/tax_routes.py:292"}, "fullDescription": {"text": "`@router.post` decorator with no `Depends(get_current_user)` or auth-shaped dependency in its signature. Mutating endpoints should require authentication unless explicitly public."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "high", "confidence": 1.0}}, {"id": "scanner-8dfb730435741bd0", "name": "FastAPI PUT `api_update_settings` without auth dependency \u2014 routes/tax_routes.py:326", "shortDescription": {"text": "FastAPI PUT `api_update_settings` without auth dependency \u2014 routes/tax_routes.py:326"}, "fullDescription": {"text": "`@router.put` decorator with no `Depends(get_current_user)` or auth-shaped dependency in its signature. Mutating endpoints should require authentication unless explicitly public."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "high", "confidence": 1.0}}, {"id": "scanner-9fb96a201228dd7e", "name": "FastAPI POST `api_close_period` without auth dependency \u2014 routes/accounting_books_routes.py:131", "shortDescription": {"text": "FastAPI POST `api_close_period` without auth dependency \u2014 routes/accounting_books_routes.py:131"}, "fullDescription": {"text": "`@router.post` decorator with no `Depends(get_current_user)` or auth-shaped dependency in its signature. Mutating endpoints should require authentication unless explicitly public."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "high", "confidence": 1.0}}, {"id": "scanner-4a1ed173c4fb0216", "name": "FastAPI POST `line_webhook` without auth dependency \u2014 routes/line_webhook_routes.py:251", "shortDescription": {"text": "FastAPI POST `line_webhook` without auth dependency \u2014 routes/line_webhook_routes.py:251"}, "fullDescription": {"text": "`@router.post` decorator with no `Depends(get_current_user)` or auth-shaped dependency in its signature. Mutating endpoints should require authentication unless explicitly public."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "high", "confidence": 1.0}}, {"id": "scanner-a65d3bb82de92937", "name": "FastAPI PUT `api_set_seller` without auth dependency \u2014 routes/sales_seller_routes.py:81", "shortDescription": {"text": "FastAPI PUT `api_set_seller` without auth dependency \u2014 routes/sales_seller_routes.py:81"}, "fullDescription": {"text": "`@router.put` decorator with no `Depends(get_current_user)` or auth-shaped dependency in its signature. Mutating endpoints should require authentication unless explicitly public."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "high", "confidence": 1.0}}, {"id": "scanner-7736c8a7ea262405", "name": "FastAPI POST `api_liff_auth` without auth dependency \u2014 routes/line_liff_routes.py:54", "shortDescription": {"text": "FastAPI POST `api_liff_auth` without auth dependency \u2014 routes/line_liff_routes.py:54"}, "fullDescription": {"text": "`@router.post` decorator with no `Depends(get_current_user)` or auth-shaped dependency in its signature. Mutating endpoints should require authentication unless explicitly public."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "high", "confidence": 1.0}}, {"id": "scanner-3708fa50a3ce44fb", "name": "FastAPI DELETE `clear_old_tasks` without auth dependency \u2014 routes/vat_excel_tasks_routes.py:88", "shortDescription": {"text": "FastAPI DELETE `clear_old_tasks` without auth dependency \u2014 routes/vat_excel_tasks_routes.py:88"}, "fullDescription": {"text": "`@router.delete` decorator with no `Depends(get_current_user)` or auth-shaped dependency in its signature. Mutating endpoints should require authentication unless explicitly public."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "high", "confidence": 1.0}}, {"id": "scanner-62d6205970dc1cee", "name": "FastAPI DELETE `delete_task` without auth dependency \u2014 routes/vat_excel_tasks_routes.py:108", "shortDescription": {"text": "FastAPI DELETE `delete_task` without auth dependency \u2014 routes/vat_excel_tasks_routes.py:108"}, "fullDescription": {"text": "`@router.delete` decorator with no `Depends(get_current_user)` or auth-shaped dependency in its signature. Mutating endpoints should require authentication unless explicitly public."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "high", "confidence": 1.0}}, {"id": "scanner-6078719c83aacca8", "name": "FastAPI POST `create_rule` without auth dependency \u2014 routes/knowledge_rules_routes.py:79", "shortDescription": {"text": "FastAPI POST `create_rule` without auth dependency \u2014 routes/knowledge_rules_routes.py:79"}, "fullDescription": {"text": "`@router.post` decorator with no `Depends(get_current_user)` or auth-shaped dependency in its signature. Mutating endpoints should require authentication unless explicitly public."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "high", "confidence": 1.0}}, {"id": "scanner-2cf6a4a2e7fdf006", "name": "FastAPI PATCH `update_rule` without auth dependency \u2014 routes/knowledge_rules_routes.py:108", "shortDescription": {"text": "FastAPI PATCH `update_rule` without auth dependency \u2014 routes/knowledge_rules_routes.py:108"}, "fullDescription": {"text": "`@router.patch` decorator with no `Depends(get_current_user)` or auth-shaped dependency in its signature. Mutating endpoints should require authentication unless explicitly public."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "high", "confidence": 1.0}}, {"id": "scanner-2fc185549b966c23", "name": "FastAPI DELETE `delete_rule` without auth dependency \u2014 routes/knowledge_rules_routes.py:130", "shortDescription": {"text": "FastAPI DELETE `delete_rule` without auth dependency \u2014 routes/knowledge_rules_routes.py:130"}, "fullDescription": {"text": "`@router.delete` decorator with no `Depends(get_current_user)` or auth-shaped dependency in its signature. Mutating endpoints should require authentication unless explicitly public."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "high", "confidence": 1.0}}, {"id": "scanner-5e497247fd1ecbdb", "name": "FastAPI POST `erp_test_connection` without auth dependency \u2014 routes/erp_listing_routes.py:37", "shortDescription": {"text": "FastAPI POST `erp_test_connection` without auth dependency \u2014 routes/erp_listing_routes.py:37"}, "fullDescription": {"text": "`@router.post` decorator with no `Depends(get_current_user)` or auth-shaped dependency in its signature. Mutating endpoints should require authentication unless explicitly public."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "high", "confidence": 1.0}}, {"id": "scanner-284230b972eabcf1", "name": "FastAPI POST `erp_endpoint_test_connection` without auth dependency \u2014 routes/erp_listing_routes.py:143", "shortDescription": {"text": "FastAPI POST `erp_endpoint_test_connection` without auth dependency \u2014 routes/erp_listing_routes.py:143"}, "fullDescription": {"text": "`@router.post` decorator with no `Depends(get_current_user)` or auth-shaped dependency in its signature. Mutating endpoints should require authentication unless explicitly public."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "high", "confidence": 1.0}}, {"id": "scanner-7a83ce92c8402418", "name": "FastAPI POST `erp_wizard_products` without auth dependency \u2014 routes/erp_listing_routes.py:436", "shortDescription": {"text": "FastAPI POST `erp_wizard_products` without auth dependency \u2014 routes/erp_listing_routes.py:436"}, "fullDescription": {"text": "`@router.post` decorator with no `Depends(get_current_user)` or auth-shaped dependency in its signature. Mutating endpoints should require authentication unless explicitly public."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "high", "confidence": 1.0}}, {"id": "scanner-550c928d0ddf952b", "name": "Dangling fetch: PUT /api/pos/admin/onboarding (src/home/pos-onboarding.ts:146)", "shortDescription": {"text": "Dangling fetch: PUT /api/pos/admin/onboarding (src/home/pos-onboarding.ts:146)"}, "fullDescription": {"text": "`src/home/pos-onboarding.ts:146` calls `PUT /api/pos/admin/onboarding` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/pos/admin/onboarding`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-44cd857315c4c980", "name": "Dangling fetch: POST /api/ocr/recognize?source=folder (src/home/folder-watcher-io.ts:96)", "shortDescription": {"text": "Dangling fetch: POST /api/ocr/recognize?source=folder (src/home/folder-watcher-io.ts:96)"}, "fullDescription": {"text": "`src/home/folder-watcher-io.ts:96` calls `POST /api/ocr/recognize?source=folder` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/ocr/recognize`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-2488261b52cbc86e", "name": "Dangling fetch: POST /api/reports/history/batch_export (src/home/dms-intake-invoice-submit.ts:291)", "shortDescription": {"text": "Dangling fetch: POST /api/reports/history/batch_export (src/home/dms-intake-invoice-submit.ts:291)"}, "fullDescription": {"text": "`src/home/dms-intake-invoice-submit.ts:291` calls `POST /api/reports/history/batch_export` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/reports/history/batch_export`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-ff58f17b72a40f4d", "name": "Dangling fetch: PUT /api/me/onboarding (src/home/onboarding-flow.ts:335)", "shortDescription": {"text": "Dangling fetch: PUT /api/me/onboarding (src/home/onboarding-flow.ts:335)"}, "fullDescription": {"text": "`src/home/onboarding-flow.ts:335` calls `PUT /api/me/onboarding` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/me/onboarding`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-5480f7f0d189a79f", "name": "Dangling fetch: POST /api/purchase/export (src/home/purchase-export.ts:86)", "shortDescription": {"text": "Dangling fetch: POST /api/purchase/export (src/home/purchase-export.ts:86)"}, "fullDescription": {"text": "`src/home/purchase-export.ts:86` calls `POST /api/purchase/export` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/purchase/export`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-9ab9cd318ae754a4", "name": "Dangling fetch: GET /api/purchase/export/${encodeURIComponent(jobId)} (src/home/purchase-export.ts:125)", "shortDescription": {"text": "Dangling fetch: GET /api/purchase/export/${encodeURIComponent(jobId)} (src/home/purchase-export.ts:125)"}, "fullDescription": {"text": "`src/home/purchase-export.ts:125` calls `GET /api/purchase/export/${encodeURIComponent(jobId)}` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/purchase/export/<p>`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-78e35b37abd0f0b0", "name": "Dangling fetch: POST /api/purchase/export (src/home/purchase-export.ts:161)", "shortDescription": {"text": "Dangling fetch: POST /api/purchase/export (src/home/purchase-export.ts:161)"}, "fullDescription": {"text": "`src/home/purchase-export.ts:161` calls `POST /api/purchase/export` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/purchase/export`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-38603f1c6c18a7f6", "name": "Dangling fetch: PUT /api/me/onboarding (src/home/onboarding-business.ts:153)", "shortDescription": {"text": "Dangling fetch: PUT /api/me/onboarding (src/home/onboarding-business.ts:153)"}, "fullDescription": {"text": "`src/home/onboarding-business.ts:153` calls `PUT /api/me/onboarding` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/me/onboarding`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-aa26eb0047956ed4", "name": "Dangling fetch: POST /api/ocr/recognize (src/home/dms-intake-invoice.ts:238)", "shortDescription": {"text": "Dangling fetch: POST /api/ocr/recognize (src/home/dms-intake-invoice.ts:238)"}, "fullDescription": {"text": "`src/home/dms-intake-invoice.ts:238` calls `POST /api/ocr/recognize` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/ocr/recognize`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-9747e6e11c3c87ae", "name": "Dangling fetch: GET /api/reports/templates?lang=${encodeURIComponent(lang)} (src/home/report-templates.ts:103)", "shortDescription": {"text": "Dangling fetch: GET /api/reports/templates?lang=${encodeURIComponent(lang)} (src/home/report-templates.ts:103)"}, "fullDescription": {"text": "`src/home/report-templates.ts:103` calls `GET /api/reports/templates?lang=${encodeURIComponent(lang)}` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/reports/templates`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-8d2e0c64dc395fe2", "name": "Dangling fetch: POST /api/reports/history/batch_export (src/home/report-templates.ts:326)", "shortDescription": {"text": "Dangling fetch: POST /api/reports/history/batch_export (src/home/report-templates.ts:326)"}, "fullDescription": {"text": "`src/home/report-templates.ts:326` calls `POST /api/reports/history/batch_export` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/reports/history/batch_export`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-beadc873b5571365", "name": "Unused endpoint: POST /from-history/{history_id}", "shortDescription": {"text": "Unused endpoint: POST /from-history/{history_id}"}, "fullDescription": {"text": "`routes/knowledge_risk_routes.py` declares `POST /from-history/{history_id}` but no frontend code we scanned calls it. This is fine if the endpoint serves external clients (mobile app, third-party, server-side webhooks). Otherwise it's dead code \u2014 consider removing or documenting who consumes it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "low", "confidence": 1.0}}, {"id": "scanner-bba313dd9fd91ca0", "name": "Unused endpoint: GET /{history_id}", "shortDescription": {"text": "Unused endpoint: GET /{history_id}"}, "fullDescription": {"text": "`routes/knowledge_risk_routes.py` declares `GET /{history_id}` but no frontend code we scanned calls it. This is fine if the endpoint serves external clients (mobile app, third-party, server-side webhooks). Otherwise it's dead code \u2014 consider removing or documenting who consumes it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "low", "confidence": 1.0}}, {"id": "scanner-4a2982c7d537a154", "name": "Unused endpoint: POST /api/team/invitations", "shortDescription": {"text": "Unused endpoint: POST /api/team/invitations"}, "fullDescription": {"text": "`routes/console_invite_routes.py` declares `POST /api/team/invitations` but no frontend code we scanned calls it. This is fine if the endpoint serves external clients (mobile app, third-party, server-side webhooks). Otherwise it's dead code \u2014 consider removing or documenting who consumes it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "low", "confidence": 1.0}}, {"id": "scanner-0aef3ae29fb11c30", "name": "Unused endpoint: GET /api/team/invitations", "shortDescription": {"text": "Unused endpoint: GET /api/team/invitations"}, "fullDescription": {"text": "`routes/console_invite_routes.py` declares `GET /api/team/invitations` but no frontend code we scanned calls it. This is fine if the endpoint serves external clients (mobile app, third-party, server-side webhooks). Otherwise it's dead code \u2014 consider removing or documenting who consumes it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "low", "confidence": 1.0}}, {"id": "scanner-10edd1f2ed0b8f70", "name": "Unused endpoint: DELETE /api/team/invitations/{invitation_id}", "shortDescription": {"text": "Unused endpoint: DELETE /api/team/invitations/{invitation_id}"}, "fullDescription": {"text": "`routes/console_invite_routes.py` declares `DELETE /api/team/invitations/{invitation_id}` but no frontend code we scanned calls it. This is fine if the endpoint serves external clients (mobile app, third-party, server-side webhooks). Otherwise it's dead code \u2014 consider removing or documenting who consumes it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "low", "confidence": 1.0}}, {"id": "scanner-ac006bc08e201d43", "name": "Unused endpoint: GET /api/invitations/{token}/preview", "shortDescription": {"text": "Unused endpoint: GET /api/invitations/{token}/preview"}, "fullDescription": {"text": "`routes/console_invite_routes.py` declares `GET /api/invitations/{token}/preview` but no frontend code we scanned calls it. This is fine if the endpoint serves external clients (mobile app, third-party, server-side webhooks). Otherwise it's dead code \u2014 consider removing or documenting who consumes it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "low", "confidence": 1.0}}, {"id": "scanner-3d3544ef4dbe4592", "name": "Unused endpoint: POST /api/invitations/{token}/accept", "shortDescription": {"text": "Unused endpoint: POST /api/invitations/{token}/accept"}, "fullDescription": {"text": "`routes/console_invite_routes.py` declares `POST /api/invitations/{token}/accept` but no frontend code we scanned calls it. This is fine if the endpoint serves external clients (mobile app, third-party, server-side webhooks). Otherwise it's dead code \u2014 consider removing or documenting who consumes it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "low", "confidence": 1.0}}, {"id": "scanner-aa13454512cc600a", "name": "Unused endpoint: POST /api/ownership/transfer", "shortDescription": {"text": "Unused endpoint: POST /api/ownership/transfer"}, "fullDescription": {"text": "`routes/console_invite_routes.py` declares `POST /api/ownership/transfer` but no frontend code we scanned calls it. This is fine if the endpoint serves external clients (mobile app, third-party, server-side webhooks). Otherwise it's dead code \u2014 consider removing or documenting who consumes it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "low", "confidence": 1.0}}, {"id": "scanner-c6e1d1cc7f00b285", "name": "Unused endpoint: POST /api/ownership/transfer/accept", "shortDescription": {"text": "Unused endpoint: POST /api/ownership/transfer/accept"}, "fullDescription": {"text": "`routes/console_invite_routes.py` declares `POST /api/ownership/transfer/accept` but no frontend code we scanned calls it. This is fine if the endpoint serves external clients (mobile app, third-party, server-side webhooks). Otherwise it's dead code \u2014 consider removing or documenting who consumes it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "low", "confidence": 1.0}}, {"id": "scanner-621f858deaa3be43", "name": "Unused endpoint: GET /report", "shortDescription": {"text": "Unused endpoint: GET /report"}, "fullDescription": {"text": "`routes/inventory_report_routes.py` declares `GET /report` but no frontend code we scanned calls it. This is fine if the endpoint serves external clients (mobile app, third-party, server-side webhooks). Otherwise it's dead code \u2014 consider removing or documenting who consumes it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "low", "confidence": 1.0}}, {"id": "scanner-1cbbae7002e77128", "name": "Unused endpoint: POST /gl-vat/run", "shortDescription": {"text": "Unused endpoint: POST /gl-vat/run"}, "fullDescription": {"text": "`routes/recon_routes_glvat.py` declares `POST /gl-vat/run` but no frontend code we scanned calls it. This is fine if the endpoint serves external clients (mobile app, third-party, server-side webhooks). Otherwise it's dead code \u2014 consider removing or documenting who consumes it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "low", "confidence": 1.0}}, {"id": "scanner-117bbe70c913bc44", "name": "Unused endpoint: GET /gl-vat/tasks", "shortDescription": {"text": "Unused endpoint: GET /gl-vat/tasks"}, "fullDescription": {"text": "`routes/recon_routes_glvat.py` declares `GET /gl-vat/tasks` but no frontend code we scanned calls it. This is fine if the endpoint serves external clients (mobile app, third-party, server-side webhooks). Otherwise it's dead code \u2014 consider removing or documenting who consumes it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "low", "confidence": 1.0}}, {"id": "scanner-9baeb4bdcf450a47", "name": "Unused endpoint: GET /gl-vat/{task_id}", "shortDescription": {"text": "Unused endpoint: GET /gl-vat/{task_id}"}, "fullDescription": {"text": "`routes/recon_routes_glvat.py` declares `GET /gl-vat/{task_id}` but no frontend code we scanned calls it. This is fine if the endpoint serves external clients (mobile app, third-party, server-side webhooks). Otherwise it's dead code \u2014 consider removing or documenting who consumes it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "low", "confidence": 1.0}}, {"id": "scanner-78e585889deb1b14", "name": "Unused endpoint: GET /gl-vat/{task_id}/export", "shortDescription": {"text": "Unused endpoint: GET /gl-vat/{task_id}/export"}, "fullDescription": {"text": "`routes/recon_routes_glvat.py` declares `GET /gl-vat/{task_id}/export` but no frontend code we scanned calls it. This is fine if the endpoint serves external clients (mobile app, third-party, server-side webhooks). Otherwise it's dead code \u2014 consider removing or documenting who consumes it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "low", "confidence": 1.0}}, {"id": "scanner-f5492077adacae36", "name": "Unused endpoint: DELETE /gl-vat/{task_id}", "shortDescription": {"text": "Unused endpoint: DELETE /gl-vat/{task_id}"}, "fullDescription": {"text": "`routes/recon_routes_glvat.py` declares `DELETE /gl-vat/{task_id}` but no frontend code we scanned calls it. This is fine if the endpoint serves external clients (mobile app, third-party, server-side webhooks). Otherwise it's dead code \u2014 consider removing or documenting who consumes it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "low", "confidence": 1.0}}, {"id": "scanner-f1d75e28bb4d5061", "name": "Unused endpoint: POST /gl-vat/tasks/batch_delete", "shortDescription": {"text": "Unused endpoint: POST /gl-vat/tasks/batch_delete"}, "fullDescription": {"text": "`routes/recon_routes_glvat.py` declares `POST /gl-vat/tasks/batch_delete` but no frontend code we scanned calls it. This is fine if the endpoint serves external clients (mobile app, third-party, server-side webhooks). Otherwise it's dead code \u2014 consider removing or documenting who consumes it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "low", "confidence": 1.0}}, {"id": "scanner-4aa35f9c575955ad", "name": "Unused endpoint: POST /api/admin/users", "shortDescription": {"text": "Unused endpoint: POST /api/admin/users"}, "fullDescription": {"text": "`routes/admin_users_mutation_routes.py` declares `POST /api/admin/users` but no frontend code we scanned calls it. This is fine if the endpoint serves external clients (mobile app, third-party, server-side webhooks). Otherwise it's dead code \u2014 consider removing or documenting who consumes it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "low", "confidence": 1.0}}, {"id": "scanner-70985c2470367d6c", "name": "Unused endpoint: PATCH /api/admin/users/{user_id}/quota", "shortDescription": {"text": "Unused endpoint: PATCH /api/admin/users/{user_id}/quota"}, "fullDescription": {"text": "`routes/admin_users_mutation_routes.py` declares `PATCH /api/admin/users/{user_id}/quota` but no frontend code we scanned calls it. This is fine if the endpoint serves external clients (mobile app, third-party, server-side webhooks). Otherwise it's dead code \u2014 consider removing or documenting who consumes it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "low", "confidence": 1.0}}, {"id": "scanner-97a09e08eeeed37e", "name": "Unused endpoint: PATCH /api/admin/users/{user_id}/status", "shortDescription": {"text": "Unused endpoint: PATCH /api/admin/users/{user_id}/status"}, "fullDescription": {"text": "`routes/admin_users_mutation_routes.py` declares `PATCH /api/admin/users/{user_id}/status` but no frontend code we scanned calls it. This is fine if the endpoint serves external clients (mobile app, third-party, server-side webhooks). Otherwise it's dead code \u2014 consider removing or documenting who consumes it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "low", "confidence": 1.0}}, {"id": "scanner-caf27521612ef669", "name": "Unused endpoint: POST /api/admin/users/{user_id}/delete", "shortDescription": {"text": "Unused endpoint: POST /api/admin/users/{user_id}/delete"}, "fullDescription": {"text": "`routes/admin_users_mutation_routes.py` declares `POST /api/admin/users/{user_id}/delete` but no frontend code we scanned calls it. This is fine if the endpoint serves external clients (mobile app, third-party, server-side webhooks). Otherwise it's dead code \u2014 consider removing or documenting who consumes it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "low", "confidence": 1.0}}, {"id": "scanner-12fc20500f3ba93e", "name": "Unused endpoint: POST /api/admin/users/{user_id}/reset-password", "shortDescription": {"text": "Unused endpoint: POST /api/admin/users/{user_id}/reset-password"}, "fullDescription": {"text": "`routes/admin_users_mutation_routes.py` declares `POST /api/admin/users/{user_id}/reset-password` but no frontend code we scanned calls it. This is fine if the endpoint serves external clients (mobile app, third-party, server-side webhooks). Otherwise it's dead code \u2014 consider removing or documenting who consumes it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "low", "confidence": 1.0}}, {"id": "scanner-5cc1bc84f7a4f3f6", "name": "Unused endpoint: PATCH /api/admin/employees/{employee_id}/active", "shortDescription": {"text": "Unused endpoint: PATCH /api/admin/employees/{employee_id}/active"}, "fullDescription": {"text": "`routes/admin_users_mutation_routes.py` declares `PATCH /api/admin/employees/{employee_id}/active` but no frontend code we scanned calls it. This is fine if the endpoint serves external clients (mobile app, third-party, server-side webhooks). Otherwise it's dead code \u2014 consider removing or documenting who consumes it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "low", "confidence": 1.0}}, {"id": "scanner-3ba033cc9eb6de7d", "name": "Unused endpoint: POST /api/admin/employees/{employee_id}/reset-password", "shortDescription": {"text": "Unused endpoint: POST /api/admin/employees/{employee_id}/reset-password"}, "fullDescription": {"text": "`routes/admin_users_mutation_routes.py` declares `POST /api/admin/employees/{employee_id}/reset-password` but no frontend code we scanned calls it. This is fine if the endpoint serves external clients (mobile app, third-party, server-side webhooks). Otherwise it's dead code \u2014 consider removing or documenting who consumes it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "low", "confidence": 1.0}}, {"id": "scanner-f591f5248c76ae60", "name": "Unused endpoint: DELETE /api/admin/employees/{employee_id}", "shortDescription": {"text": "Unused endpoint: DELETE /api/admin/employees/{employee_id}"}, "fullDescription": {"text": "`routes/admin_users_mutation_routes.py` declares `DELETE /api/admin/employees/{employee_id}` but no frontend code we scanned calls it. This is fine if the endpoint serves external clients (mobile app, third-party, server-side webhooks). Otherwise it's dead code \u2014 consider removing or documenting who consumes it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "low", "confidence": 1.0}}, {"id": "scanner-b7c4cd05a781afc4", "name": "Unused endpoint: POST /api/admin/users/{user_id}/cascade-delete", "shortDescription": {"text": "Unused endpoint: POST /api/admin/users/{user_id}/cascade-delete"}, "fullDescription": {"text": "`routes/admin_users_mutation_routes.py` declares `POST /api/admin/users/{user_id}/cascade-delete` but no frontend code we scanned calls it. This is fine if the endpoint serves external clients (mobile app, third-party, server-side webhooks). Otherwise it's dead code \u2014 consider removing or documenting who consumes it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "low", "confidence": 1.0}}, {"id": "scanner-9cf873a3c4656cf5", "name": "Unused endpoint: POST /{doc_id}/send", "shortDescription": {"text": "Unused endpoint: POST /{doc_id}/send"}, "fullDescription": {"text": "`routes/sales_send_routes.py` declares `POST /{doc_id}/send` but no frontend code we scanned calls it. This is fine if the endpoint serves external clients (mobile app, third-party, server-side webhooks). Otherwise it's dead code \u2014 consider removing or documenting who consumes it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "low", "confidence": 1.0}}, {"id": "scanner-bb61631e79b67eb3", "name": "Unused endpoint: GET /shared/{token}/pdf", "shortDescription": {"text": "Unused endpoint: GET /shared/{token}/pdf"}, "fullDescription": {"text": "`routes/sales_send_routes.py` declares `GET /shared/{token}/pdf` but no frontend code we scanned calls it. This is fine if the endpoint serves external clients (mobile app, third-party, server-side webhooks). Otherwise it's dead code \u2014 consider removing or documenting who consumes it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "low", "confidence": 1.0}}, {"id": "scanner-6c2507f3182299a0", "name": "Unused endpoint: GET /api/version", "shortDescription": {"text": "Unused endpoint: GET /api/version"}, "fullDescription": {"text": "`routes/meta_aliases_routes.py` declares `GET /api/version` but no frontend code we scanned calls it. This is fine if the endpoint serves external clients (mobile app, third-party, server-side webhooks). Otherwise it's dead code \u2014 consider removing or documenting who consumes it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "low", "confidence": 1.0}}, {"id": "scanner-b096cb9141acd78a", "name": "Unused endpoint: GET /api/v1/ocr/quota", "shortDescription": {"text": "Unused endpoint: GET /api/v1/ocr/quota"}, "fullDescription": {"text": "`routes/meta_aliases_routes.py` declares `GET /api/v1/ocr/quota` but no frontend code we scanned calls it. This is fine if the endpoint serves external clients (mobile app, third-party, server-side webhooks). Otherwise it's dead code \u2014 consider removing or documenting who consumes it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "low", "confidence": 1.0}}, {"id": "scanner-57299c736f5d620c", "name": "Unused endpoint: POST /api/v1/ocr/recognize", "shortDescription": {"text": "Unused endpoint: POST /api/v1/ocr/recognize"}, "fullDescription": {"text": "`routes/meta_aliases_routes.py` declares `POST /api/v1/ocr/recognize` but no frontend code we scanned calls it. This is fine if the endpoint serves external clients (mobile app, third-party, server-side webhooks). Otherwise it's dead code \u2014 consider removing or documenting who consumes it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "low", "confidence": 1.0}}, {"id": "scanner-4756b4c4da7d2088", "name": "Unused endpoint: GET /api/health", "shortDescription": {"text": "Unused endpoint: GET /api/health"}, "fullDescription": {"text": "`routes/pages_routes.py` declares `GET /api/health` but no frontend code we scanned calls it. This is fine if the endpoint serves external clients (mobile app, third-party, server-side webhooks). Otherwise it's dead code \u2014 consider removing or documenting who consumes it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "low", "confidence": 1.0}}, {"id": "scanner-52765bcf81a6e09b", "name": "Unused endpoint: GET /api/ready", "shortDescription": {"text": "Unused endpoint: GET /api/ready"}, "fullDescription": {"text": "`routes/pages_routes.py` declares `GET /api/ready` but no frontend code we scanned calls it. This is fine if the endpoint serves external clients (mobile app, third-party, server-side webhooks). Otherwise it's dead code \u2014 consider removing or documenting who consumes it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "low", "confidence": 1.0}}, {"id": "scanner-a436691337284d03", "name": "Unused endpoint: GET /api/v1/health", "shortDescription": {"text": "Unused endpoint: GET /api/v1/health"}, "fullDescription": {"text": "`routes/pages_routes.py` declares `GET /api/v1/health` but no frontend code we scanned calls it. This is fine if the endpoint serves external clients (mobile app, third-party, server-side webhooks). Otherwise it's dead code \u2014 consider removing or documenting who consumes it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "low", "confidence": 1.0}}, {"id": "scanner-61df9670b4fd8340", "name": "Unused endpoint: GET /api/v1/contact", "shortDescription": {"text": "Unused endpoint: GET /api/v1/contact"}, "fullDescription": {"text": "`routes/pages_routes.py` declares `GET /api/v1/contact` but no frontend code we scanned calls it. This is fine if the endpoint serves external clients (mobile app, third-party, server-side webhooks). Otherwise it's dead code \u2014 consider removing or documenting who consumes it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "low", "confidence": 1.0}}, {"id": "scanner-5baa8971ebe192a1", "name": "Unused endpoint: GET /", "shortDescription": {"text": "Unused endpoint: GET /"}, "fullDescription": {"text": "`routes/pages_routes.py` declares `GET /` but no frontend code we scanned calls it. This is fine if the endpoint serves external clients (mobile app, third-party, server-side webhooks). Otherwise it's dead code \u2014 consider removing or documenting who consumes it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "low", "confidence": 1.0}}, {"id": "scanner-6a4dfcad3eb1618a", "name": "Unused endpoint: GET /login", "shortDescription": {"text": "Unused endpoint: GET /login"}, "fullDescription": {"text": "`routes/pages_routes.py` declares `GET /login` but no frontend code we scanned calls it. This is fine if the endpoint serves external clients (mobile app, third-party, server-side webhooks). Otherwise it's dead code \u2014 consider removing or documenting who consumes it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "low", "confidence": 1.0}}, {"id": "scanner-ed0fe929c38b9a74", "name": "Unused endpoint: GET /home", "shortDescription": {"text": "Unused endpoint: GET /home"}, "fullDescription": {"text": "`routes/pages_routes.py` declares `GET /home` but no frontend code we scanned calls it. This is fine if the endpoint serves external clients (mobile app, third-party, server-side webhooks). Otherwise it's dead code \u2014 consider removing or documenting who consumes it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "low", "confidence": 1.0}}, {"id": "scanner-953ec1a0ee6df50d", "name": "Unused endpoint: GET /admin", "shortDescription": {"text": "Unused endpoint: GET /admin"}, "fullDescription": {"text": "`routes/pages_routes.py` declares `GET /admin` but no frontend code we scanned calls it. This is fine if the endpoint serves external clients (mobile app, third-party, server-side webhooks). Otherwise it's dead code \u2014 consider removing or documenting who consumes it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "low", "confidence": 1.0}}, {"id": "scanner-20032897f32e6c47", "name": "Unused endpoint: GET /admin/{rest:path}", "shortDescription": {"text": "Unused endpoint: GET /admin/{rest:path}"}, "fullDescription": {"text": "`routes/pages_routes.py` declares `GET /admin/{rest:path}` but no frontend code we scanned calls it. This is fine if the endpoint serves external clients (mobile app, third-party, server-side webhooks). Otherwise it's dead code \u2014 consider removing or documenting who consumes it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "low", "confidence": 1.0}}, {"id": "scanner-a72b6601340b6cff", "name": "Unused endpoint: GET /pos-sw.js", "shortDescription": {"text": "Unused endpoint: GET /pos-sw.js"}, "fullDescription": {"text": "`routes/pages_routes.py` declares `GET /pos-sw.js` but no frontend code we scanned calls it. This is fine if the endpoint serves external clients (mobile app, third-party, server-side webhooks). Otherwise it's dead code \u2014 consider removing or documenting who consumes it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "low", "confidence": 1.0}}, {"id": "scanner-4ffa15575917ffc7", "name": "Unused endpoint: GET /pos", "shortDescription": {"text": "Unused endpoint: GET /pos"}, "fullDescription": {"text": "`routes/pages_routes.py` declares `GET /pos` but no frontend code we scanned calls it. This is fine if the endpoint serves external clients (mobile app, third-party, server-side webhooks). Otherwise it's dead code \u2014 consider removing or documenting who consumes it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "low", "confidence": 1.0}}, {"id": "scanner-45a2633809b910e5", "name": "Unused endpoint: GET /pos/{rest:path}", "shortDescription": {"text": "Unused endpoint: GET /pos/{rest:path}"}, "fullDescription": {"text": "`routes/pages_routes.py` declares `GET /pos/{rest:path}` but no frontend code we scanned calls it. This is fine if the endpoint serves external clients (mobile app, third-party, server-side webhooks). Otherwise it's dead code \u2014 consider removing or documenting who consumes it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "low", "confidence": 1.0}}, {"id": "scanner-39866e2e69fe467c", "name": "Unused endpoint: GET /console", "shortDescription": {"text": "Unused endpoint: GET /console"}, "fullDescription": {"text": "`routes/pages_routes.py` declares `GET /console` but no frontend code we scanned calls it. This is fine if the endpoint serves external clients (mobile app, third-party, server-side webhooks). Otherwise it's dead code \u2014 consider removing or documenting who consumes it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "low", "confidence": 1.0}}, {"id": "scanner-e86c2f6676c6be17", "name": "Unused endpoint: GET /console/{rest:path}", "shortDescription": {"text": "Unused endpoint: GET /console/{rest:path}"}, "fullDescription": {"text": "`routes/pages_routes.py` declares `GET /console/{rest:path}` but no frontend code we scanned calls it. This is fine if the endpoint serves external clients (mobile app, third-party, server-side webhooks). Otherwise it's dead code \u2014 consider removing or documenting who consumes it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "low", "confidence": 1.0}}, {"id": "scanner-0c428493be4ea9df", "name": "Unused endpoint: GET /invite/{token}", "shortDescription": {"text": "Unused endpoint: GET /invite/{token}"}, "fullDescription": {"text": "`routes/pages_routes.py` declares `GET /invite/{token}` but no frontend code we scanned calls it. This is fine if the endpoint serves external clients (mobile app, third-party, server-side webhooks). Otherwise it's dead code \u2014 consider removing or documenting who consumes it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "low", "confidence": 1.0}}, {"id": "scanner-9c4cb08fd0673246", "name": "Unused endpoint: GET /reset", "shortDescription": {"text": "Unused endpoint: GET /reset"}, "fullDescription": {"text": "`routes/pages_routes.py` declares `GET /reset` but no frontend code we scanned calls it. This is fine if the endpoint serves external clients (mobile app, third-party, server-side webhooks). Otherwise it's dead code \u2014 consider removing or documenting who consumes it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "low", "confidence": 1.0}}, {"id": "scanner-ebe3481a27b770a5", "name": "Unused endpoint: GET /terms", "shortDescription": {"text": "Unused endpoint: GET /terms"}, "fullDescription": {"text": "`routes/pages_routes.py` declares `GET /terms` but no frontend code we scanned calls it. This is fine if the endpoint serves external clients (mobile app, third-party, server-side webhooks). Otherwise it's dead code \u2014 consider removing or documenting who consumes it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "low", "confidence": 1.0}}, {"id": "scanner-9daee89b78e9ceac", "name": "Unused endpoint: GET /privacy", "shortDescription": {"text": "Unused endpoint: GET /privacy"}, "fullDescription": {"text": "`routes/pages_routes.py` declares `GET /privacy` but no frontend code we scanned calls it. This is fine if the endpoint serves external clients (mobile app, third-party, server-side webhooks). Otherwise it's dead code \u2014 consider removing or documenting who consumes it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "low", "confidence": 1.0}}, {"id": "scanner-06399f44ad6564f6", "name": "Unused endpoint: GET /bases", "shortDescription": {"text": "Unused endpoint: GET /bases"}, "fullDescription": {"text": "`routes/knowledge_routes.py` declares `GET /bases` but no frontend code we scanned calls it. This is fine if the endpoint serves external clients (mobile app, third-party, server-side webhooks). Otherwise it's dead code \u2014 consider removing or documenting who consumes it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "low", "confidence": 1.0}}, {"id": "scanner-ee82d381f92e9834", "name": "Unused endpoint: POST /documents", "shortDescription": {"text": "Unused endpoint: POST /documents"}, "fullDescription": {"text": "`routes/knowledge_routes.py` declares `POST /documents` but no frontend code we scanned calls it. This is fine if the endpoint serves external clients (mobile app, third-party, server-side webhooks). Otherwise it's dead code \u2014 consider removing or documenting who consumes it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "low", "confidence": 1.0}}]}}, "automationDetails": {"id": "repobility/19801"}, "properties": {"repository": "skin306152-star/pearnly-app", "repoUrl": "https://github.com/skin306152-star/pearnly-app", "branch": "main"}, "results": [{"ruleId": "scanner-5da7bbe80944ecd6", "level": "note", "message": {"text": "Possibly dead Python function: repl"}, "properties": {"repobilityId": "6f5d3779bbb8be8b", "scanner": "scanner-primary", "fingerprint": "5da7bbe80944ecd6", "layer": "software", "severity": "low", "confidence": 1.0, "tags": ["dead-code"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "scripts/sync_landing.py:56"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-e11949063b9551e5", "level": "note", "message": {"text": "Possibly dead Python function: send_reset_link_for_employee"}, "properties": {"repobilityId": "c15b1ad37023e061", "scanner": "scanner-primary", "fingerprint": "e11949063b9551e5", "layer": "software", "severity": "low", "confidence": 1.0, "tags": ["dead-code"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "routes/auth_password_routes.py:128"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-c13d6021b9b0a0a2", "level": "note", "message": {"text": "Possibly dead Python function: ensure_schema"}, "properties": {"repobilityId": "22242be87a1895b4", "scanner": "scanner-primary", "fingerprint": "c13d6021b9b0a0a2", "layer": "software", "severity": "low", "confidence": 1.0, "tags": ["dead-code"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "services/inventory/store.py:32"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-1b34e599946b9425", "level": "note", "message": {"text": "Possibly dead Python function: payroll_visible"}, "properties": {"repobilityId": "90e56055bc6b80c0", "scanner": "scanner-primary", "fingerprint": "1b34e599946b9425", "layer": "software", "severity": "low", "confidence": 1.0, "tags": ["dead-code"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "services/authz/field_mask.py:23"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-3bc99bd08eb5924c", "level": "note", "message": {"text": "Possibly dead Python function: mask_rows"}, "properties": {"repobilityId": "95094f350f609054", "scanner": "scanner-primary", "fingerprint": "3bc99bd08eb5924c", "layer": "software", "severity": "low", "confidence": 1.0, "tags": ["dead-code"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "services/authz/field_mask.py:41"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-ab33b6bf453b6b2b", "level": "note", "message": {"text": "Possibly dead Python function: count_active_owners"}, "properties": {"repobilityId": "596c2680ca596c98", "scanner": "scanner-primary", "fingerprint": "ab33b6bf453b6b2b", "layer": "software", "severity": "low", "confidence": 1.0, "tags": ["dead-code"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "services/authz/resolver.py:208"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-73098c09c802db75", "level": "note", "message": {"text": "Possibly dead Python function: classify_file"}, "properties": {"repobilityId": "7075c1fde2b0b391", "scanner": "scanner-primary", "fingerprint": "73098c09c802db75", "layer": "software", "severity": "low", "confidence": 1.0, "tags": ["dead-code"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "services/vat/vat_file_classifier.py:183"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-79010de56bd14a66", "level": "note", "message": {"text": "Possibly dead Python function: run_account_ingest"}, "properties": {"repobilityId": "d98ab2a50c5d74be", "scanner": "scanner-primary", "fingerprint": "79010de56bd14a66", "layer": "software", "severity": "low", "confidence": 1.0, "tags": ["dead-code"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "services/email_ingest/email_ingest_pipeline.py:227"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-eebfdc0cb4ecab55", "level": "note", "message": {"text": "Possibly dead Python function: send_with_request_id"}, "properties": {"repobilityId": "1fde7a98411f6d08", "scanner": "scanner-primary", "fingerprint": "eebfdc0cb4ecab55", "layer": "software", "severity": "low", "confidence": 1.0, "tags": ["dead-code"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "services/observability/request_context.py:39"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-3bc61d1edd86f228", "level": "note", "message": {"text": "Possibly dead Python function: render_substitute_receipt"}, "properties": {"repobilityId": "13f059ea9dfe472c", "scanner": "scanner-primary", "fingerprint": "3bc61d1edd86f228", "layer": "software", "severity": "low", "confidence": 1.0, "tags": ["dead-code"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "services/purchase/documents.py:68"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-d02ee3939fbe8732", "level": "note", "message": {"text": "Possibly dead Python function: render_wht_cert"}, "properties": {"repobilityId": "12aee2fc0ffb2f4c", "scanner": "scanner-primary", "fingerprint": "d02ee3939fbe8732", "layer": "software", "severity": "low", "confidence": 1.0, "tags": ["dead-code"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "services/purchase/documents.py:102"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-ae18a49684473588", "level": "note", "message": {"text": "Possibly dead Python function: create_rich_menu"}, "properties": {"repobilityId": "3c57bd85569fead6", "scanner": "scanner-primary", "fingerprint": "ae18a49684473588", "layer": "software", "severity": "low", "confidence": 1.0, "tags": ["dead-code"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "services/line_binding/line_client.py:212"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-12c274fd7619734b", "level": "note", "message": {"text": "Possibly dead Python function: image_to_pdf_bytes"}, "properties": {"repobilityId": "a54576ba2b676e83", "scanner": "scanner-primary", "fingerprint": "12c274fd7619734b", "layer": "software", "severity": "low", "confidence": 1.0, "tags": ["dead-code"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "services/line_binding/line_client.py:321"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-e81469ebad5f844f", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 tests/visual/test_design_fidelity.spec.js:675"}, "properties": {"repobilityId": "149b565849304c56", "scanner": "scanner-primary", "fingerprint": "e81469ebad5f844f", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-c40008ad62bca809", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 static/erp-mrerp-connect.js:1304"}, "properties": {"repobilityId": "f8ce1ac87bfca99e", "scanner": "scanner-primary", "fingerprint": "c40008ad62bca809", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-45b30b2a8ad764c0", "level": "note", "message": {"text": "Icon-only button without accessible name \u2014 static/admin/admin.js:1472"}, "properties": {"repobilityId": "d2fc901a1d07c061", "scanner": "scanner-primary", "fingerprint": "45b30b2a8ad764c0", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.button.no-label"]}}, {"ruleId": "scanner-3891529f0b05229b", "level": "note", "message": {"text": "Icon-only button without accessible name \u2014 static/pos/pos-cashier.js:189"}, "properties": {"repobilityId": "91c39d9a8d5692a7", "scanner": "scanner-primary", "fingerprint": "3891529f0b05229b", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.button.no-label"]}}, {"ruleId": "scanner-4a67aa619fdba639", "level": "note", "message": {"text": "Icon-only button without accessible name \u2014 static/pos/pos-ops.js:86"}, "properties": {"repobilityId": "9548edbeb12de30b", "scanner": "scanner-primary", "fingerprint": "4a67aa619fdba639", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.button.no-label"]}}, {"ruleId": "scanner-56f645cf94a6a68f", "level": "note", "message": {"text": "Icon-only button without accessible name \u2014 static/pos/pos-restaurant.js:406"}, "properties": {"repobilityId": "80dc46d27df74298", "scanner": "scanner-primary", "fingerprint": "56f645cf94a6a68f", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.button.no-label"]}}, {"ruleId": "scanner-e15462c53405ae7f", "level": "note", "message": {"text": "Icon-only button without accessible name \u2014 src/home/bank-recon-queue.ts:121"}, "properties": {"repobilityId": "a1e08c6631e5113f", "scanner": "scanner-primary", "fingerprint": "e15462c53405ae7f", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.button.no-label"]}}, {"ruleId": "scanner-6976ca789986ab79", "level": "note", "message": {"text": "Icon-only button without accessible name \u2014 src/home/erp-log-detail.ts:264"}, "properties": {"repobilityId": "568fcae4807b90c6", "scanner": "scanner-primary", "fingerprint": "6976ca789986ab79", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.button.no-label"]}}, {"ruleId": "scanner-87f9ef82d8b588ad", "level": "note", "message": {"text": "Icon-only button without accessible name \u2014 src/home/sales-wizard-steps.ts:150"}, "properties": {"repobilityId": "8f9f2d28a7a35fdc", "scanner": "scanner-primary", "fingerprint": "87f9ef82d8b588ad", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.button.no-label"]}}, {"ruleId": "scanner-def4f9e569f2ef11", "level": "note", "message": {"text": "Icon-only button without accessible name \u2014 src/home/recon-drawer.ts:155"}, "properties": {"repobilityId": "36595ff47f49f408", "scanner": "scanner-primary", "fingerprint": "def4f9e569f2ef11", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.button.no-label"]}}, {"ruleId": "scanner-d63da3583b14afc0", "level": "warning", "message": {"text": "Dockerfile runs as root: Dockerfile"}, "properties": {"repobilityId": "a2ed1bd120e507db", "scanner": "scanner-primary", "fingerprint": "d63da3583b14afc0", "layer": "hardware", "severity": "medium", "confidence": 1.0, "tags": ["security", "container"]}}, {"ruleId": "scanner-e066691601852931", "level": "note", "message": {"text": "Docker base image is tag-pinned but not digest-pinned: python:3.11-slim"}, "properties": {"repobilityId": "7e32c8d663ba1c89", "scanner": "scanner-primary", "fingerprint": "e066691601852931", "layer": "hardware", "severity": "low", "confidence": 1.0, "tags": ["supply-chain", "docker", "pinned-dependencies"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "Dockerfile"}, "region": {"startLine": 16}}}]}, {"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-9710c8d059e53154", "level": "none", "message": {"text": "No frontend routes/components detected"}, "properties": {"repobilityId": "44ca61485762e494", "scanner": "scanner-primary", "fingerprint": "9710c8d059e53154", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["coverage"]}}, {"ruleId": "scanner-bb73b8ab05529d94", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in static/recon-review.js:250"}, "properties": {"repobilityId": "462a570aef1e5fb0", "scanner": "scanner-primary", "fingerprint": "bb73b8ab05529d94", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "static/recon-review.js"}, "region": {"startLine": 250}}}]}, {"ruleId": "scanner-fd4d7b19f08f72bf", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in static/erp-mrerp-connect.js:779"}, "properties": {"repobilityId": "5abae3e14b999715", "scanner": "scanner-primary", "fingerprint": "fd4d7b19f08f72bf", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "static/erp-mrerp-connect.js"}, "region": {"startLine": 779}}}]}, {"ruleId": "scanner-7e33830a4e48c698", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in static/recon-mapping.js:214"}, "properties": {"repobilityId": "375ea78d4add8d16", "scanner": "scanner-primary", "fingerprint": "7e33830a4e48c698", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "static/recon-mapping.js"}, "region": {"startLine": 214}}}]}, {"ruleId": "scanner-73f969bb6aa8dbdf", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in static/admin/admin.js:38"}, "properties": {"repobilityId": "e6dc505e86d71d5c", "scanner": "scanner-primary", "fingerprint": "73f969bb6aa8dbdf", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "static/admin/admin.js"}, "region": {"startLine": 38}}}]}, {"ruleId": "scanner-470a3bb58fab728d", "level": "error", "message": {"text": "Possible secret in static/landing/landing-i18n.js"}, "properties": {"repobilityId": "dab004ce425eed2b", "scanner": "scanner-primary", "fingerprint": "470a3bb58fab728d", "layer": "security", "severity": "critical", "confidence": 1.0, "tags": ["secrets"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "static/landing/landing-i18n.js"}, "region": {"startLine": 72}}}]}, {"ruleId": "scanner-470a3bb58fab728d", "level": "error", "message": {"text": "Possible secret in static/landing/landing-i18n.js"}, "properties": {"repobilityId": "dab004ce425eed2b", "scanner": "scanner-primary", "fingerprint": "470a3bb58fab728d", "layer": "security", "severity": "critical", "confidence": 1.0, "tags": ["secrets"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "static/landing/landing-i18n.js"}, "region": {"startLine": 87}}}]}, {"ruleId": "scanner-470a3bb58fab728d", "level": "error", "message": {"text": "Possible secret in static/landing/landing-i18n.js"}, "properties": {"repobilityId": "dab004ce425eed2b", "scanner": "scanner-primary", "fingerprint": "470a3bb58fab728d", "layer": "security", "severity": "critical", "confidence": 1.0, "tags": ["secrets"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "static/landing/landing-i18n.js"}, "region": {"startLine": 89}}}]}, {"ruleId": "scanner-470a3bb58fab728d", "level": "error", "message": {"text": "Possible secret in static/landing/landing-i18n.js"}, "properties": {"repobilityId": "dab004ce425eed2b", "scanner": "scanner-primary", "fingerprint": "470a3bb58fab728d", "layer": "security", "severity": "critical", "confidence": 1.0, "tags": ["secrets"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "static/landing/landing-i18n.js"}, "region": {"startLine": 123}}}]}, {"ruleId": "scanner-470a3bb58fab728d", "level": "error", "message": {"text": "Possible secret in static/landing/landing-i18n.js"}, "properties": {"repobilityId": "dab004ce425eed2b", "scanner": "scanner-primary", "fingerprint": "470a3bb58fab728d", "layer": "security", "severity": "critical", "confidence": 1.0, "tags": ["secrets"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "static/landing/landing-i18n.js"}, "region": {"startLine": 138}}}]}, {"ruleId": "scanner-470a3bb58fab728d", "level": "error", "message": {"text": "Possible secret in static/landing/landing-i18n.js"}, "properties": {"repobilityId": "dab004ce425eed2b", "scanner": "scanner-primary", "fingerprint": "470a3bb58fab728d", "layer": "security", "severity": "critical", "confidence": 1.0, "tags": ["secrets"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "static/landing/landing-i18n.js"}, "region": {"startLine": 140}}}]}, {"ruleId": "scanner-470a3bb58fab728d", "level": "error", "message": {"text": "Possible secret in static/landing/landing-i18n.js"}, "properties": {"repobilityId": "dab004ce425eed2b", "scanner": "scanner-primary", "fingerprint": "470a3bb58fab728d", "layer": "security", "severity": "critical", "confidence": 1.0, "tags": ["secrets"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "static/landing/landing-i18n.js"}, "region": {"startLine": 191}}}]}, {"ruleId": "scanner-470a3bb58fab728d", "level": "error", "message": {"text": "Possible secret in static/landing/landing-i18n.js"}, "properties": {"repobilityId": "dab004ce425eed2b", "scanner": "scanner-primary", "fingerprint": "470a3bb58fab728d", "layer": "security", "severity": "critical", "confidence": 1.0, "tags": ["secrets"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "static/landing/landing-i18n.js"}, "region": {"startLine": 228}}}]}, {"ruleId": "scanner-470a3bb58fab728d", "level": "error", "message": {"text": "Possible secret in static/landing/landing-i18n.js"}, "properties": {"repobilityId": "dab004ce425eed2b", "scanner": "scanner-primary", "fingerprint": "470a3bb58fab728d", "layer": "security", "severity": "critical", "confidence": 1.0, "tags": ["secrets"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "static/landing/landing-i18n.js"}, "region": {"startLine": 266}}}]}, {"ruleId": "scanner-470a3bb58fab728d", "level": "error", "message": {"text": "Possible secret in static/landing/landing-i18n.js"}, "properties": {"repobilityId": "dab004ce425eed2b", "scanner": "scanner-primary", "fingerprint": "470a3bb58fab728d", "layer": "security", "severity": "critical", "confidence": 1.0, "tags": ["secrets"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "static/landing/landing-i18n.js"}, "region": {"startLine": 304}}}]}, {"ruleId": "scanner-470a3bb58fab728d", "level": "error", "message": {"text": "Possible secret in static/landing/landing-i18n.js"}, "properties": {"repobilityId": "dab004ce425eed2b", "scanner": "scanner-primary", "fingerprint": "470a3bb58fab728d", "layer": "security", "severity": "critical", "confidence": 1.0, "tags": ["secrets"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "static/landing/landing-i18n.js"}, "region": {"startLine": 342}}}]}, {"ruleId": "scanner-d4f52c560a72c495", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in static/landing/landing-i18n.js:379"}, "properties": {"repobilityId": "652831a4274fa647", "scanner": "scanner-primary", "fingerprint": "d4f52c560a72c495", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "static/landing/landing-i18n.js"}, "region": {"startLine": 379}}}]}, {"ruleId": "scanner-281420c391e757d0", "level": "error", "message": {"text": "Possible secret in static/landing/landing.js"}, "properties": {"repobilityId": "2fad018eb968a263", "scanner": "scanner-primary", "fingerprint": "281420c391e757d0", "layer": "security", "severity": "critical", "confidence": 1.0, "tags": ["secrets"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "static/landing/landing.js"}, "region": {"startLine": 101}}}]}, {"ruleId": "scanner-281420c391e757d0", "level": "error", "message": {"text": "Possible secret in static/landing/landing.js"}, "properties": {"repobilityId": "2fad018eb968a263", "scanner": "scanner-primary", "fingerprint": "281420c391e757d0", "layer": "security", "severity": "critical", "confidence": 1.0, "tags": ["secrets"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "static/landing/landing.js"}, "region": {"startLine": 129}}}]}, {"ruleId": "scanner-9d2e79b0d89bde5b", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in static/landing/landing.js:50"}, "properties": {"repobilityId": "1786de55fe60b834", "scanner": "scanner-primary", "fingerprint": "9d2e79b0d89bde5b", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "static/landing/landing.js"}, "region": {"startLine": 50}}}]}, {"ruleId": "scanner-ed6b942325e32412", "level": "warning", "message": {"text": "Insecure pattern 'local_storage_auth_token' in static/landing/landing.js:266"}, "properties": {"repobilityId": "4b757a9579461263", "scanner": "scanner-primary", "fingerprint": "ed6b942325e32412", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "local_storage_auth_token"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "static/landing/landing.js"}, "region": {"startLine": 266}}}]}, {"ruleId": "scanner-91f771d7c5eb5ea5", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in static/pos/pos.js:121"}, "properties": {"repobilityId": "0e24132030002c7a", "scanner": "scanner-primary", "fingerprint": "91f771d7c5eb5ea5", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "static/pos/pos.js"}, "region": {"startLine": 121}}}]}, {"ruleId": "scanner-6c5a210212429e3a", "level": "note", "message": {"text": "Insecure pattern 'document_write' in static/pos/pos-cashier.js:459"}, "properties": {"repobilityId": "b29961f5864d601b", "scanner": "scanner-primary", "fingerprint": "6c5a210212429e3a", "layer": "security", "severity": "low", "confidence": 1.0, "tags": ["owasp", "document_write"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "static/pos/pos-cashier.js"}, "region": {"startLine": 459}}}]}, {"ruleId": "scanner-9b3c642aba276ed7", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in static/pos/pos-cashier.js:44"}, "properties": {"repobilityId": "4f9d98dbac799f13", "scanner": "scanner-primary", "fingerprint": "9b3c642aba276ed7", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "static/pos/pos-cashier.js"}, "region": {"startLine": 44}}}]}, {"ruleId": "scanner-3d9e916af233ce38", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in static/pos/pos-ops.js:32"}, "properties": {"repobilityId": "c028ef10ff0399f1", "scanner": "scanner-primary", "fingerprint": "3d9e916af233ce38", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "static/pos/pos-ops.js"}, "region": {"startLine": 32}}}]}, {"ruleId": "scanner-0b800c2e83d58343", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in static/pos/pos-restaurant.js:90"}, "properties": {"repobilityId": "88c277a5780fc127", "scanner": "scanner-primary", "fingerprint": "0b800c2e83d58343", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "static/pos/pos-restaurant.js"}, "region": {"startLine": 90}}}]}, {"ruleId": "scanner-f95b20b075074f5b", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in static/pos/pos-restaurant-ops.js:61"}, "properties": {"repobilityId": "f7b625c1a1a244b1", "scanner": "scanner-primary", "fingerprint": "f95b20b075074f5b", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "static/pos/pos-restaurant-ops.js"}, "region": {"startLine": 61}}}]}, {"ruleId": "scanner-116c7ea83cc7acab", "level": "error", "message": {"text": "Possible secret in static/console/invite.js"}, "properties": {"repobilityId": "2a80c4a8f8fc726b", "scanner": "scanner-primary", "fingerprint": "116c7ea83cc7acab", "layer": "security", "severity": "critical", "confidence": 1.0, "tags": ["secrets"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "static/console/invite.js"}, "region": {"startLine": 19}}}]}, {"ruleId": "scanner-116c7ea83cc7acab", "level": "error", "message": {"text": "Possible secret in static/console/invite.js"}, "properties": {"repobilityId": "2a80c4a8f8fc726b", "scanner": "scanner-primary", "fingerprint": "116c7ea83cc7acab", "layer": "security", "severity": "critical", "confidence": 1.0, "tags": ["secrets"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "static/console/invite.js"}, "region": {"startLine": 38}}}]}, {"ruleId": "scanner-116c7ea83cc7acab", "level": "error", "message": {"text": "Possible secret in static/console/invite.js"}, "properties": {"repobilityId": "2a80c4a8f8fc726b", "scanner": "scanner-primary", "fingerprint": "116c7ea83cc7acab", "layer": "security", "severity": "critical", "confidence": 1.0, "tags": ["secrets"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "static/console/invite.js"}, "region": {"startLine": 58}}}]}, {"ruleId": "scanner-116c7ea83cc7acab", "level": "error", "message": {"text": "Possible secret in static/console/invite.js"}, "properties": {"repobilityId": "2a80c4a8f8fc726b", "scanner": "scanner-primary", "fingerprint": "116c7ea83cc7acab", "layer": "security", "severity": "critical", "confidence": 1.0, "tags": ["secrets"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "static/console/invite.js"}, "region": {"startLine": 78}}}]}, {"ruleId": "scanner-169925ced56564d3", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in static/console/invite.js:106"}, "properties": {"repobilityId": "9fc3b3f57cacbb2e", "scanner": "scanner-primary", "fingerprint": "169925ced56564d3", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "static/console/invite.js"}, "region": {"startLine": 106}}}]}, {"ruleId": "scanner-ce49a10b08864603", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in static/console/console.js:293"}, "properties": {"repobilityId": "891a287561041bcc", "scanner": "scanner-primary", "fingerprint": "ce49a10b08864603", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "static/console/console.js"}, "region": {"startLine": 293}}}]}, {"ruleId": "scanner-444046361649be5b", "level": "warning", "message": {"text": "Insecure pattern 'local_storage_auth_token' in scripts/_acct_shot.cjs:136"}, "properties": {"repobilityId": "8aaf9f5ab06ddcf1", "scanner": "scanner-primary", "fingerprint": "444046361649be5b", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "local_storage_auth_token"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "scripts/_acct_shot.cjs"}, "region": {"startLine": 136}}}]}, {"ruleId": "scanner-70072e9b5b29eb5e", "level": "warning", "message": {"text": "Insecure pattern 'local_storage_auth_token' in scripts/_rcx_test.cjs:42"}, "properties": {"repobilityId": "4cd73070d7d3a222", "scanner": "scanner-primary", "fingerprint": "70072e9b5b29eb5e", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "local_storage_auth_token"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "scripts/_rcx_test.cjs"}, "region": {"startLine": 42}}}]}, {"ruleId": "scanner-2ebf777163e8e0ed", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in design-preview/pearnly-ui.html:615"}, "properties": {"repobilityId": "d8c050bfd0cdf4d2", "scanner": "scanner-primary", "fingerprint": "2ebf777163e8e0ed", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "design-preview/pearnly-ui.html"}, "region": {"startLine": 615}}}]}, {"ruleId": "scanner-c323501afd735ab4", "level": "error", "message": {"text": "Possible secret in services/erp/erp_mrerp_listing.py"}, "properties": {"repobilityId": "e17a57389a7c11bd", "scanner": "scanner-primary", "fingerprint": "c323501afd735ab4", "layer": "security", "severity": "critical", "confidence": 1.0, "tags": ["secrets"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "services/erp/erp_mrerp_listing.py"}, "region": {"startLine": 32}}}]}, {"ruleId": "scanner-46a96f490fba73b8", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in src/home/recon-subtab-settings.ts:43"}, "properties": {"repobilityId": "d075b7601869d0ba", "scanner": "scanner-primary", "fingerprint": "46a96f490fba73b8", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "src/home/recon-subtab-settings.ts"}, "region": {"startLine": 43}}}]}, {"ruleId": "scanner-f721026f0dd4903b", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in src/home/email-ingest.ts:226"}, "properties": {"repobilityId": "a3d73f540a6ac874", "scanner": "scanner-primary", "fingerprint": "f721026f0dd4903b", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "src/home/email-ingest.ts"}, "region": {"startLine": 226}}}]}, {"ruleId": "scanner-e7de8af66decf7c0", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in src/home/workspace-switcher.ts:179"}, "properties": {"repobilityId": "1d0c0f6e4817972e", "scanner": "scanner-primary", "fingerprint": "e7de8af66decf7c0", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "src/home/workspace-switcher.ts"}, "region": {"startLine": 179}}}]}, {"ruleId": "scanner-aa2c52d6f3d8457a", "level": "warning", "message": {"text": "Insecure pattern 'direct_outerhtml_assignment' in src/home/workspace-switcher.ts:236"}, "properties": {"repobilityId": "02ce05996f839596", "scanner": "scanner-primary", "fingerprint": "aa2c52d6f3d8457a", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_outerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "src/home/workspace-switcher.ts"}, "region": {"startLine": 236}}}]}, {"ruleId": "scanner-2dd83f3b5c79efa2", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in src/home/settings-core.ts:90"}, "properties": {"repobilityId": "eb371943ccd317c6", "scanner": "scanner-primary", "fingerprint": "2dd83f3b5c79efa2", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "src/home/settings-core.ts"}, "region": {"startLine": 90}}}]}, {"ruleId": "scanner-9ef72dd980d937ce", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in src/home/acct-review.ts:106"}, "properties": {"repobilityId": "cf797b9a7fc03931", "scanner": "scanner-primary", "fingerprint": "9ef72dd980d937ce", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "src/home/acct-review.ts"}, "region": {"startLine": 106}}}]}, {"ruleId": "scanner-fbe6f8d51ae8934c", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in src/home/purchase-form-lines.ts:190"}, "properties": {"repobilityId": "d268e1cc5a001f96", "scanner": "scanner-primary", "fingerprint": "fbe6f8d51ae8934c", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "src/home/purchase-form-lines.ts"}, "region": {"startLine": 190}}}]}, {"ruleId": "scanner-93a900d75c1d0aa4", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in src/home/tax-center.ts:167"}, "properties": {"repobilityId": "ccf9a5b981717241", "scanner": "scanner-primary", "fingerprint": "93a900d75c1d0aa4", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "src/home/tax-center.ts"}, "region": {"startLine": 167}}}]}, {"ruleId": "scanner-32256102b06aad01", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in src/home/ocr-results.ts:34"}, "properties": {"repobilityId": "3f1f1369a96c8e60", "scanner": "scanner-primary", "fingerprint": "32256102b06aad01", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "src/home/ocr-results.ts"}, "region": {"startLine": 34}}}]}, {"ruleId": "scanner-d978732c0b726481", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in src/home/archive-settings.ts:109"}, "properties": {"repobilityId": "3602b1e4690749b3", "scanner": "scanner-primary", "fingerprint": "d978732c0b726481", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "src/home/archive-settings.ts"}, "region": {"startLine": 109}}}]}, {"ruleId": "scanner-2443c8d67eedbb5a", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in src/home/acct-modals.ts:58"}, "properties": {"repobilityId": "ccc0c2b78f4af875", "scanner": "scanner-primary", "fingerprint": "2443c8d67eedbb5a", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "src/home/acct-modals.ts"}, "region": {"startLine": 58}}}]}, {"ruleId": "scanner-3272f60df3d765e5", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in src/home/page-exceptions.ts:16"}, "properties": {"repobilityId": "e9e8c232c6deac24", "scanner": "scanner-primary", "fingerprint": "3272f60df3d765e5", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "src/home/page-exceptions.ts"}, "region": {"startLine": 16}}}]}, {"ruleId": "scanner-6f482bb1f78a7814", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in src/home/acct-bank.ts:236"}, "properties": {"repobilityId": "b0d87ffc7dc31673", "scanner": "scanner-primary", "fingerprint": "6f482bb1f78a7814", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "src/home/acct-bank.ts"}, "region": {"startLine": 236}}}]}, {"ruleId": "scanner-5fdbd9fc6f3641bb", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in src/home/purchase-form.ts:164"}, "properties": {"repobilityId": "bfad39acca09b008", "scanner": "scanner-primary", "fingerprint": "5fdbd9fc6f3641bb", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "src/home/purchase-form.ts"}, "region": {"startLine": 164}}}]}, {"ruleId": "scanner-d961366018f84ec9", "level": "warning", "message": {"text": "Insecure pattern 'direct_outerhtml_assignment' in src/home/erp-xero.ts:201"}, "properties": {"repobilityId": "145390ccc5b9b23c", "scanner": "scanner-primary", "fingerprint": "d961366018f84ec9", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_outerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "src/home/erp-xero.ts"}, "region": {"startLine": 201}}}]}, {"ruleId": "scanner-556186b09f6c7e66", "level": "warning", "message": {"text": "Insecure pattern 'insert_adjacent_html' in src/home/erp-xero.ts:203"}, "properties": {"repobilityId": "b484ac6538a2d381", "scanner": "scanner-primary", "fingerprint": "556186b09f6c7e66", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "insert_adjacent_html"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "src/home/erp-xero.ts"}, "region": {"startLine": 203}}}]}, {"ruleId": "scanner-8e7ca0732db67b09", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in src/home/pos-onboarding.ts:69"}, "properties": {"repobilityId": "bb11dc10f94b9d6f", "scanner": "scanner-primary", "fingerprint": "8e7ca0732db67b09", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "src/home/pos-onboarding.ts"}, "region": {"startLine": 69}}}]}, {"ruleId": "scanner-8bddfea1b7a04d52", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in src/home/welcome-wizard.ts:54"}, "properties": {"repobilityId": "a83d186271c49957", "scanner": "scanner-primary", "fingerprint": "8bddfea1b7a04d52", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "src/home/welcome-wizard.ts"}, "region": {"startLine": 54}}}]}, {"ruleId": "scanner-520e2883933c092a", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in src/home/sales-detail.ts:40"}, "properties": {"repobilityId": "9bd35f602cf21383", "scanner": "scanner-primary", "fingerprint": "520e2883933c092a", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "src/home/sales-detail.ts"}, "region": {"startLine": 40}}}]}, {"ruleId": "scanner-279ea27a93afddf5", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in src/home/modal-archive-rule.ts:13"}, "properties": {"repobilityId": "12a418f7fbebb36a", "scanner": "scanner-primary", "fingerprint": "279ea27a93afddf5", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "src/home/modal-archive-rule.ts"}, "region": {"startLine": 13}}}]}, {"ruleId": "scanner-47f0e0a5127440ac", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in src/home/workspace-gate.ts:124"}, "properties": {"repobilityId": "a54c4a3fb7bfd179", "scanner": "scanner-primary", "fingerprint": "47f0e0a5127440ac", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "src/home/workspace-gate.ts"}, "region": {"startLine": 124}}}]}, {"ruleId": "scanner-b2a991b9503b6a17", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in src/home/acct-settings.ts:253"}, "properties": {"repobilityId": "3a228dfbbf633e8a", "scanner": "scanner-primary", "fingerprint": "b2a991b9503b6a17", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "src/home/acct-settings.ts"}, "region": {"startLine": 253}}}]}, {"ruleId": "scanner-3680f4b6b13c6aec", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in src/home/client-assign.ts:88"}, "properties": {"repobilityId": "08c310b235d38afb", "scanner": "scanner-primary", "fingerprint": "3680f4b6b13c6aec", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "src/home/client-assign.ts"}, "region": {"startLine": 88}}}]}, {"ruleId": "scanner-63c418e61431b285", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in src/home/acct-list.ts:209"}, "properties": {"repobilityId": "4df4b8faaacd196c", "scanner": "scanner-primary", "fingerprint": "63c418e61431b285", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "src/home/acct-list.ts"}, "region": {"startLine": 209}}}]}, {"ruleId": "scanner-c72e1025bd7f50b3", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in src/home/big-batch-progress.ts:54"}, "properties": {"repobilityId": "0d14089b65e58eb7", "scanner": "scanner-primary", "fingerprint": "c72e1025bd7f50b3", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "src/home/big-batch-progress.ts"}, "region": {"startLine": 54}}}]}, {"ruleId": "scanner-ee7b76be5e4e08de", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in src/home/pos-cashiers.ts:180"}, "properties": {"repobilityId": "63d10aa964e58b22", "scanner": "scanner-primary", "fingerprint": "ee7b76be5e4e08de", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "src/home/pos-cashiers.ts"}, "region": {"startLine": 180}}}]}, {"ruleId": "scanner-593d9d100932a511", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in src/home/dashboard.ts:108"}, "properties": {"repobilityId": "25550a87e306fb62", "scanner": "scanner-primary", "fingerprint": "593d9d100932a511", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "src/home/dashboard.ts"}, "region": {"startLine": 108}}}]}, {"ruleId": "scanner-5503cd0931aaf843", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in src/home/knowledge-ask.ts:58"}, "properties": {"repobilityId": "0bc7aa2095eb14a6", "scanner": "scanner-primary", "fingerprint": "5503cd0931aaf843", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "src/home/knowledge-ask.ts"}, "region": {"startLine": 58}}}]}, {"ruleId": "scanner-6574f983d23589a7", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in src/home/tax-pp30.ts:94"}, "properties": {"repobilityId": "e48fdff75e7e225c", "scanner": "scanner-primary", "fingerprint": "6574f983d23589a7", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "src/home/tax-pp30.ts"}, "region": {"startLine": 94}}}]}, {"ruleId": "scanner-610afd9c6ba9a1dc", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in src/home/recon-center-x-render.ts:61"}, "properties": {"repobilityId": "7dc762da4952b99a", "scanner": "scanner-primary", "fingerprint": "610afd9c6ba9a1dc", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "src/home/recon-center-x-render.ts"}, "region": {"startLine": 61}}}]}, {"ruleId": "scanner-cdf1307f8550ceda", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in src/home/erp-mappings.ts:95"}, "properties": {"repobilityId": "04d3cfe352d3a715", "scanner": "scanner-primary", "fingerprint": "cdf1307f8550ceda", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "src/home/erp-mappings.ts"}, "region": {"startLine": 95}}}]}, {"ruleId": "scanner-e21822a365c3f2e2", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in src/home/sales-workbench.ts:124"}, "properties": {"repobilityId": "b2ad2e12941de25d", "scanner": "scanner-primary", "fingerprint": "e21822a365c3f2e2", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "src/home/sales-workbench.ts"}, "region": {"startLine": 124}}}]}, {"ruleId": "scanner-bb6a8ebeae4927da", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in src/home/page-placeholders.ts:82"}, "properties": {"repobilityId": "385cc7e683a815e1", "scanner": "scanner-primary", "fingerprint": "bb6a8ebeae4927da", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "src/home/page-placeholders.ts"}, "region": {"startLine": 82}}}]}, {"ruleId": "scanner-c49d2c914665c4cc", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in src/home/erp-integration.ts:59"}, "properties": {"repobilityId": "c2b6166017db43a8", "scanner": "scanner-primary", "fingerprint": "c49d2c914665c4cc", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "src/home/erp-integration.ts"}, "region": {"startLine": 59}}}]}, {"ruleId": "scanner-08161b1cb539f65e", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in src/home/knowledge-sources.ts:84"}, "properties": {"repobilityId": "1f457a03bcc732c2", "scanner": "scanner-primary", "fingerprint": "08161b1cb539f65e", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "src/home/knowledge-sources.ts"}, "region": {"startLine": 84}}}]}, {"ruleId": "scanner-fb58103c4eb93248", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in src/home/page-reconcile.ts:18"}, "properties": {"repobilityId": "51a2da0924e81cb4", "scanner": "scanner-primary", "fingerprint": "fb58103c4eb93248", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "src/home/page-reconcile.ts"}, "region": {"startLine": 18}}}]}, {"ruleId": "scanner-3b2838a1844b0e0c", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in src/home/billing.ts:80"}, "properties": {"repobilityId": "48aef9d394ab0ccc", "scanner": "scanner-primary", "fingerprint": "3b2838a1844b0e0c", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "src/home/billing.ts"}, "region": {"startLine": 80}}}]}, {"ruleId": "scanner-6b799c9f76c7cf28", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in src/home/clients-buyer.ts:56"}, "properties": {"repobilityId": "d2ebb43aac5a199e", "scanner": "scanner-primary", "fingerprint": "6b799c9f76c7cf28", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "src/home/clients-buyer.ts"}, "region": {"startLine": 56}}}]}, {"ruleId": "scanner-a318fbfd105e7d81", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in src/home/bank-recon-sessions.ts:60"}, "properties": {"repobilityId": "05e6c64c108b35b3", "scanner": "scanner-primary", "fingerprint": "a318fbfd105e7d81", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "src/home/bank-recon-sessions.ts"}, "region": {"startLine": 60}}}]}, {"ruleId": "scanner-41bb743dbe2657f9", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in src/home/page-dashboard.ts:16"}, "properties": {"repobilityId": "e984cd23a8b9d3ef", "scanner": "scanner-primary", "fingerprint": "41bb743dbe2657f9", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "src/home/page-dashboard.ts"}, "region": {"startLine": 16}}}]}, {"ruleId": "scanner-f42166758f587974", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in src/home/pos-payment-settings.ts:92"}, "properties": {"repobilityId": "79f55be5ce2d7421", "scanner": "scanner-primary", "fingerprint": "f42166758f587974", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "src/home/pos-payment-settings.ts"}, "region": {"startLine": 92}}}]}, {"ruleId": "scanner-c6c545c9de6726e7", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in src/home/page-settings.ts:18"}, "properties": {"repobilityId": "2f47b769a91bfcaf", "scanner": "scanner-primary", "fingerprint": "c6c545c9de6726e7", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "src/home/page-settings.ts"}, "region": {"startLine": 18}}}]}, {"ruleId": "scanner-28fccdfeb5292fe7", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in src/home/history-list.ts:163"}, "properties": {"repobilityId": "c7e1ece81e9ec337", "scanner": "scanner-primary", "fingerprint": "28fccdfeb5292fe7", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "src/home/history-list.ts"}, "region": {"startLine": 163}}}]}, {"ruleId": "scanner-25cc6f40d9579bed", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in src/home/purchase-liff.ts:37"}, "properties": {"repobilityId": "f432204647bccaf9", "scanner": "scanner-primary", "fingerprint": "25cc6f40d9579bed", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "src/home/purchase-liff.ts"}, "region": {"startLine": 37}}}]}, {"ruleId": "scanner-3c85a242d7e1086a", "level": "warning", "message": {"text": "Insecure pattern 'local_storage_auth_token' in src/home/purchase-liff.ts:98"}, "properties": {"repobilityId": "dc11b0a5c32a366a", "scanner": "scanner-primary", "fingerprint": "3c85a242d7e1086a", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "local_storage_auth_token"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "src/home/purchase-liff.ts"}, "region": {"startLine": 98}}}]}, {"ruleId": "scanner-9318c0c07ce132f3", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in src/home/settings-panels.ts:21"}, "properties": {"repobilityId": "939e14b66806c186", "scanner": "scanner-primary", "fingerprint": "9318c0c07ce132f3", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "src/home/settings-panels.ts"}, "region": {"startLine": 21}}}]}, {"ruleId": "scanner-c7c8965d4a456ff4", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in src/home/purchase-detail.ts:252"}, "properties": {"repobilityId": "bef5d4b95cc8e5d9", "scanner": "scanner-primary", "fingerprint": "c7c8965d4a456ff4", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "src/home/purchase-detail.ts"}, "region": {"startLine": 252}}}]}, {"ruleId": "scanner-5ff16963eac02565", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in src/home/page-automation.ts:19"}, "properties": {"repobilityId": "3475b0db812cbe25", "scanner": "scanner-primary", "fingerprint": "5ff16963eac02565", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "src/home/page-automation.ts"}, "region": {"startLine": 19}}}]}, {"ruleId": "scanner-2c1afbdac6b6acdb", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in src/home/notifications.ts:56"}, "properties": {"repobilityId": "b0cd23fd916deb6b", "scanner": "scanner-primary", "fingerprint": "2c1afbdac6b6acdb", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "src/home/notifications.ts"}, "region": {"startLine": 56}}}]}, {"ruleId": "scanner-7a911a929d1281b9", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in src/home/purchase-suppliers.ts:111"}, "properties": {"repobilityId": "167cc06a079384ae", "scanner": "scanner-primary", "fingerprint": "7a911a929d1281b9", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "src/home/purchase-suppliers.ts"}, "region": {"startLine": 111}}}]}, {"ruleId": "scanner-4624f314fdb9f3ae", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in src/home/pos-tables.ts:136"}, "properties": {"repobilityId": "620ba989b0a8004d", "scanner": "scanner-primary", "fingerprint": "4624f314fdb9f3ae", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "src/home/pos-tables.ts"}, "region": {"startLine": 136}}}]}, {"ruleId": "scanner-710feef0a1dddaab", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in src/home/knowledge-documents.ts:90"}, "properties": {"repobilityId": "7542e5ce4403c5e7", "scanner": "scanner-primary", "fingerprint": "710feef0a1dddaab", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "src/home/knowledge-documents.ts"}, "region": {"startLine": 90}}}]}, {"ruleId": "scanner-1e4e569f15c3c19f", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in src/home/purchase-modals.ts:66"}, "properties": {"repobilityId": "dc05e35ff196e3f4", "scanner": "scanner-primary", "fingerprint": "1e4e569f15c3c19f", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "src/home/purchase-modals.ts"}, "region": {"startLine": 66}}}]}, {"ruleId": "scanner-9636f552714bb609", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in src/home/folder-watcher.ts:106"}, "properties": {"repobilityId": "13e4088929f44ba3", "scanner": "scanner-primary", "fingerprint": "9636f552714bb609", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "src/home/folder-watcher.ts"}, "region": {"startLine": 106}}}]}, {"ruleId": "scanner-8458539f3970e0b9", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in src/home/dms-intake.ts:45"}, "properties": {"repobilityId": "e1f6ae74f4e2bf07", "scanner": "scanner-primary", "fingerprint": "8458539f3970e0b9", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "src/home/dms-intake.ts"}, "region": {"startLine": 45}}}]}, {"ruleId": "scanner-5b9f2f0f98b24b50", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in src/home/recon-center-x-results.ts:309"}, "properties": {"repobilityId": "5dad5ffc4d6dc1c6", "scanner": "scanner-primary", "fingerprint": "5b9f2f0f98b24b50", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "src/home/recon-center-x-results.ts"}, "region": {"startLine": 309}}}]}, {"ruleId": "scanner-65ff50b3b9328760", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in src/home/change-password.ts:202"}, "properties": {"repobilityId": "4697968227a58ad4", "scanner": "scanner-primary", "fingerprint": "65ff50b3b9328760", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "src/home/change-password.ts"}, "region": {"startLine": 202}}}]}, {"ruleId": "scanner-157ea8f233a612ea", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in src/home/purchase-capture.ts:78"}, "properties": {"repobilityId": "1e6cfc786ea2c76c", "scanner": "scanner-primary", "fingerprint": "157ea8f233a612ea", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "src/home/purchase-capture.ts"}, "region": {"startLine": 78}}}]}, {"ruleId": "scanner-4698dac4643192d7", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in src/home/page-integrations.ts:14"}, "properties": {"repobilityId": "ed768d88715074bb", "scanner": "scanner-primary", "fingerprint": "4698dac4643192d7", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "src/home/page-integrations.ts"}, "region": {"startLine": 14}}}]}, {"ruleId": "scanner-12aba9e8b0629d36", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in src/home/topbar-avatar.ts:84"}, "properties": {"repobilityId": "4c40054275608512", "scanner": "scanner-primary", "fingerprint": "12aba9e8b0629d36", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "src/home/topbar-avatar.ts"}, "region": {"startLine": 84}}}]}, {"ruleId": "scanner-2abca0413ad31255", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in src/home/bank-recon-queue.ts:76"}, "properties": {"repobilityId": "0465f60490759931", "scanner": "scanner-primary", "fingerprint": "2abca0413ad31255", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "src/home/bank-recon-queue.ts"}, "region": {"startLine": 76}}}]}, {"ruleId": "scanner-7863c1bcf5059c21", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in src/home/ocr-push.ts:59"}, "properties": {"repobilityId": "59e5a74f423155eb", "scanner": "scanner-primary", "fingerprint": "7863c1bcf5059c21", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "src/home/ocr-push.ts"}, "region": {"startLine": 59}}}]}, {"ruleId": "scanner-d6a17d5935d0e6b8", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in src/home/dms-intake-invoice-submit.ts:65"}, "properties": {"repobilityId": "55e3924325be398f", "scanner": "scanner-primary", "fingerprint": "d6a17d5935d0e6b8", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "src/home/dms-intake-invoice-submit.ts"}, "region": {"startLine": 65}}}]}, {"ruleId": "scanner-26457fdca39dfd32", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in src/home/exceptions-list.ts:94"}, "properties": {"repobilityId": "cc5c91971121d59b", "scanner": "scanner-primary", "fingerprint": "26457fdca39dfd32", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "src/home/exceptions-list.ts"}, "region": {"startLine": 94}}}]}, {"ruleId": "scanner-3a76f592bf54c4bc", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in src/home/purchase-inbox.ts:141"}, "properties": {"repobilityId": "71d5801e5e5a38c4", "scanner": "scanner-primary", "fingerprint": "3a76f592bf54c4bc", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "src/home/purchase-inbox.ts"}, "region": {"startLine": 141}}}]}, {"ruleId": "scanner-b600291431b557d0", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in src/home/page-history.ts:15"}, "properties": {"repobilityId": "d20131299f5cb284", "scanner": "scanner-primary", "fingerprint": "b600291431b557d0", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "src/home/page-history.ts"}, "region": {"startLine": 15}}}]}, {"ruleId": "scanner-5d7cfc3f0ff1901f", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in src/home/exceptions-learned.ts:17"}, "properties": {"repobilityId": "4987e9223eabda86", "scanner": "scanner-primary", "fingerprint": "5d7cfc3f0ff1901f", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "src/home/exceptions-learned.ts"}, "region": {"startLine": 17}}}]}, {"ruleId": "scanner-9912bcfd0c2bc081", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in src/home/purchase-settings.ts:148"}, "properties": {"repobilityId": "ad068d07dd7bf2f2", "scanner": "scanner-primary", "fingerprint": "9912bcfd0c2bc081", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "src/home/purchase-settings.ts"}, "region": {"startLine": 148}}}]}, {"ruleId": "scanner-f986e52bb9dab449", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in src/home/sales-products.ts:54"}, "properties": {"repobilityId": "4ca06accae59a7f8", "scanner": "scanner-primary", "fingerprint": "f986e52bb9dab449", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "src/home/sales-products.ts"}, "region": {"startLine": 54}}}]}, {"ruleId": "scanner-4c0f24ce291bdcca", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in src/home/history-drawer.ts:95"}, "properties": {"repobilityId": "d0fa527cba3896bf", "scanner": "scanner-primary", "fingerprint": "4c0f24ce291bdcca", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "src/home/history-drawer.ts"}, "region": {"startLine": 95}}}]}, {"ruleId": "scanner-4314606f38922583", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in src/home/purchase-google.ts:43"}, "properties": {"repobilityId": "b56a4e16a8b74801", "scanner": "scanner-primary", "fingerprint": "4314606f38922583", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "src/home/purchase-google.ts"}, "region": {"startLine": 43}}}]}, {"ruleId": "scanner-b1244f5d69a59b0e", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in src/home/knowledge-info.ts:73"}, "properties": {"repobilityId": "b70cadb54d7d6d49", "scanner": "scanner-primary", "fingerprint": "b1244f5d69a59b0e", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "src/home/knowledge-info.ts"}, "region": {"startLine": 73}}}]}, {"ruleId": "scanner-e85de7de6589020a", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in src/home/page-knowledge.ts:35"}, "properties": {"repobilityId": "a8da99ffb462eaa2", "scanner": "scanner-primary", "fingerprint": "e85de7de6589020a", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "src/home/page-knowledge.ts"}, "region": {"startLine": 35}}}]}, {"ruleId": "scanner-9516e6e11908ea4c", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in src/home/bank-recon-picker.ts:102"}, "properties": {"repobilityId": "5d8094fa79685c71", "scanner": "scanner-primary", "fingerprint": "9516e6e11908ea4c", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "src/home/bank-recon-picker.ts"}, "region": {"startLine": 102}}}]}, {"ruleId": "scanner-7d16e34aec7f50f0", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in src/home/line-email-modal.ts:23"}, "properties": {"repobilityId": "a21dab05df842e31", "scanner": "scanner-primary", "fingerprint": "7d16e34aec7f50f0", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "src/home/line-email-modal.ts"}, "region": {"startLine": 23}}}]}, {"ruleId": "scanner-9440769734217223", "level": "warning", "message": {"text": "Insecure pattern 'local_storage_auth_token' in src/home/line-email-modal.ts:66"}, "properties": {"repobilityId": "f6ce9781322735f5", "scanner": "scanner-primary", "fingerprint": "9440769734217223", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "local_storage_auth_token"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "src/home/line-email-modal.ts"}, "region": {"startLine": 66}}}]}, {"ruleId": "scanner-2c84c029f48a2e7e", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in src/home/clients-seller.ts:87"}, "properties": {"repobilityId": "5b3d5648b2a13727", "scanner": "scanner-primary", "fingerprint": "2c84c029f48a2e7e", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "src/home/clients-seller.ts"}, "region": {"startLine": 87}}}]}, {"ruleId": "scanner-ed8940f9490f1e3c", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in src/home/module-settings.ts:116"}, "properties": {"repobilityId": "824feff9110bf7bd", "scanner": "scanner-primary", "fingerprint": "ed8940f9490f1e3c", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "src/home/module-settings.ts"}, "region": {"startLine": 116}}}]}, {"ruleId": "scanner-661076b99d642e89", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in src/home/email-ingest-form.ts:16"}, "properties": {"repobilityId": "3a35a3d798698568", "scanner": "scanner-primary", "fingerprint": "661076b99d642e89", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "src/home/email-ingest-form.ts"}, "region": {"startLine": 16}}}]}, {"ruleId": "scanner-d3c185ba628061d1", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in src/home/erp-exceptions-edit.ts:85"}, "properties": {"repobilityId": "3b99b39ceaee8b7c", "scanner": "scanner-primary", "fingerprint": "d3c185ba628061d1", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "src/home/erp-exceptions-edit.ts"}, "region": {"startLine": 85}}}]}, {"ruleId": "scanner-bdcbac705fbc4665", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in src/home/settings-general.ts:67"}, "properties": {"repobilityId": "d37deccdd2665e80", "scanner": "scanner-primary", "fingerprint": "bdcbac705fbc4665", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "src/home/settings-general.ts"}, "region": {"startLine": 67}}}]}, {"ruleId": "scanner-50caae7586f19672", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in src/home/onboarding-flow.ts:215"}, "properties": {"repobilityId": "986538d2a5d08641", "scanner": "scanner-primary", "fingerprint": "50caae7586f19672", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "src/home/onboarding-flow.ts"}, "region": {"startLine": 215}}}]}, {"ruleId": "scanner-c5a724805f2893cc", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in src/home/page-clients.ts:15"}, "properties": {"repobilityId": "3d4e9777d616188f", "scanner": "scanner-primary", "fingerprint": "c5a724805f2893cc", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "src/home/page-clients.ts"}, "region": {"startLine": 15}}}]}, {"ruleId": "scanner-09ef27b8b08360a2", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in src/home/core.ts:184"}, "properties": {"repobilityId": "727702a3b656b094", "scanner": "scanner-primary", "fingerprint": "09ef27b8b08360a2", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "src/home/core.ts"}, "region": {"startLine": 184}}}]}, {"ruleId": "scanner-c9d5b17b8d1036a0", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in src/home/sales-settings.ts:45"}, "properties": {"repobilityId": "4044d101485e3d07", "scanner": "scanner-primary", "fingerprint": "c9d5b17b8d1036a0", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "src/home/sales-settings.ts"}, "region": {"startLine": 45}}}]}, {"ruleId": "scanner-e09854069eb3c0fc", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in src/home/boot-ui-extras.ts:73"}, "properties": {"repobilityId": "f190ae4b0f1a43ef", "scanner": "scanner-primary", "fingerprint": "e09854069eb3c0fc", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "src/home/boot-ui-extras.ts"}, "region": {"startLine": 73}}}]}, {"ruleId": "scanner-1376863ba5b1501f", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in src/home/sales-wizard.ts:66"}, "properties": {"repobilityId": "b518905f0ffa009d", "scanner": "scanner-primary", "fingerprint": "1376863ba5b1501f", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "src/home/sales-wizard.ts"}, "region": {"startLine": 66}}}]}, {"ruleId": "scanner-b0bd113fdf38224f", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in src/home/access-log.ts:32"}, "properties": {"repobilityId": "de5163403cdd7e0e", "scanner": "scanner-primary", "fingerprint": "b0bd113fdf38224f", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "src/home/access-log.ts"}, "region": {"startLine": 32}}}]}, {"ruleId": "scanner-e3307f3b6a9c5e65", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in src/home/dms-intake-confirm.ts:60"}, "properties": {"repobilityId": "9881d5ed92855a12", "scanner": "scanner-primary", "fingerprint": "e3307f3b6a9c5e65", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "src/home/dms-intake-confirm.ts"}, "region": {"startLine": 60}}}]}, {"ruleId": "scanner-a6c3b760c7166b85", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in src/home/acct-accounts.ts:104"}, "properties": {"repobilityId": "545f15e59f6c2370", "scanner": "scanner-primary", "fingerprint": "a6c3b760c7166b85", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "src/home/acct-accounts.ts"}, "region": {"startLine": 104}}}]}, {"ruleId": "scanner-f80831a900a0dc91", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in src/home/purchase-export.ts:59"}, "properties": {"repobilityId": "c68c8bf1884a401e", "scanner": "scanner-primary", "fingerprint": "f80831a900a0dc91", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "src/home/purchase-export.ts"}, "region": {"startLine": 59}}}]}, {"ruleId": "scanner-9d26b282f4017950", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in src/home/tax-settings.ts:126"}, "properties": {"repobilityId": "c54784a67e6eaf3a", "scanner": "scanner-primary", "fingerprint": "9d26b282f4017950", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "src/home/tax-settings.ts"}, "region": {"startLine": 126}}}]}, {"ruleId": "scanner-c3064d2ac5f07110", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in src/home/bank-recon-drawer.ts:24"}, "properties": {"repobilityId": "bb4113dc288dbb5a", "scanner": "scanner-primary", "fingerprint": "c3064d2ac5f07110", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "src/home/bank-recon-drawer.ts"}, "region": {"startLine": 24}}}]}, {"ruleId": "scanner-30d4595b8cc1a534", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in src/home/acct-common.ts:256"}, "properties": {"repobilityId": "ca2d236ff8abdb29", "scanner": "scanner-primary", "fingerprint": "30d4595b8cc1a534", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "src/home/acct-common.ts"}, "region": {"startLine": 256}}}]}, {"ruleId": "scanner-1ec8b896e6032202", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in src/home/exceptions-drawer-render.ts:194"}, "properties": {"repobilityId": "5138898e77c9a559", "scanner": "scanner-primary", "fingerprint": "1ec8b896e6032202", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "src/home/exceptions-drawer-render.ts"}, "region": {"startLine": 194}}}]}, {"ruleId": "scanner-8bcc5a5982e68ea0", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in src/home/sales-account.ts:119"}, "properties": {"repobilityId": "4fa54f94effa726a", "scanner": "scanner-primary", "fingerprint": "8bcc5a5982e68ea0", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "src/home/sales-account.ts"}, "region": {"startLine": 119}}}]}, {"ruleId": "scanner-ed801ba0aa289277", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in src/home/knowledge-api.ts:77"}, "properties": {"repobilityId": "38577f663fbf4e90", "scanner": "scanner-primary", "fingerprint": "ed801ba0aa289277", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "src/home/knowledge-api.ts"}, "region": {"startLine": 77}}}]}, {"ruleId": "scanner-e8cde42d96206379", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in src/home/knowledge-fab.ts:68"}, "properties": {"repobilityId": "ebcdcfd0a9ddb1b4", "scanner": "scanner-primary", "fingerprint": "e8cde42d96206379", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "src/home/knowledge-fab.ts"}, "region": {"startLine": 68}}}]}, {"ruleId": "scanner-886d4904ddd0e75f", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in src/home/sales-report.ts:183"}, "properties": {"repobilityId": "525ff08793dd98f9", "scanner": "scanner-primary", "fingerprint": "886d4904ddd0e75f", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "src/home/sales-report.ts"}, "region": {"startLine": 183}}}]}, {"ruleId": "scanner-0cdd159c84e7baec", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in src/home/layout.ts:84"}, "properties": {"repobilityId": "e464e233195f2bd5", "scanner": "scanner-primary", "fingerprint": "0cdd159c84e7baec", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "src/home/layout.ts"}, "region": {"startLine": 84}}}]}, {"ruleId": "scanner-c3eb3e84736e07c4", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in src/home/line-panel.ts:137"}, "properties": {"repobilityId": "b9c1ecf8d6c04629", "scanner": "scanner-primary", "fingerprint": "c3eb3e84736e07c4", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "src/home/line-panel.ts"}, "region": {"startLine": 137}}}]}, {"ruleId": "scanner-c1d41f56415b317a", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in src/home/onboarding-business.ts:47"}, "properties": {"repobilityId": "f44d56dee0502268", "scanner": "scanner-primary", "fingerprint": "c1d41f56415b317a", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "src/home/onboarding-business.ts"}, "region": {"startLine": 47}}}]}, {"ruleId": "scanner-5ca9a7e688dfcfc6", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in src/home/modal-help.ts:51"}, "properties": {"repobilityId": "6afe9569e51bc55f", "scanner": "scanner-primary", "fingerprint": "5ca9a7e688dfcfc6", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "src/home/modal-help.ts"}, "region": {"startLine": 51}}}]}, {"ruleId": "scanner-be5dfe992015f81e", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in src/home/erp-log-detail.ts:39"}, "properties": {"repobilityId": "d2cb6f7f42d2d404", "scanner": "scanner-primary", "fingerprint": "be5dfe992015f81e", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "src/home/erp-log-detail.ts"}, "region": {"startLine": 39}}}]}, {"ruleId": "scanner-e9ba49b685c29bb7", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in src/home/clients.ts:34"}, "properties": {"repobilityId": "2fc3f7510dff42b5", "scanner": "scanner-primary", "fingerprint": "e9ba49b685c29bb7", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "src/home/clients.ts"}, "region": {"startLine": 34}}}]}, {"ruleId": "scanner-e4cce8d5e40d1cd9", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in src/home/inventory-modals.ts:101"}, "properties": {"repobilityId": "4ab78782b4622e33", "scanner": "scanner-primary", "fingerprint": "e4cce8d5e40d1cd9", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "src/home/inventory-modals.ts"}, "region": {"startLine": 101}}}]}, {"ruleId": "scanner-ba2df9ca1ba34e77", "level": "warning", "message": {"text": "Insecure pattern 'insert_adjacent_html' in src/home/inventory-modals.ts:110"}, "properties": {"repobilityId": "9904561fd92f2646", "scanner": "scanner-primary", "fingerprint": "ba2df9ca1ba34e77", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "insert_adjacent_html"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "src/home/inventory-modals.ts"}, "region": {"startLine": 110}}}]}, {"ruleId": "scanner-59f0981c80c30d2b", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in src/home/bank-recon-detail.ts:56"}, "properties": {"repobilityId": "f6fbcb2aafa4a1ed", "scanner": "scanner-primary", "fingerprint": "59f0981c80c30d2b", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "src/home/bank-recon-detail.ts"}, "region": {"startLine": 56}}}]}, {"ruleId": "scanner-7153ded51c3d5b30", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in src/home/workspace-gate-boot.js:35"}, "properties": {"repobilityId": "680d1fc40b54a118", "scanner": "scanner-primary", "fingerprint": "7153ded51c3d5b30", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "src/home/workspace-gate-boot.js"}, "region": {"startLine": 35}}}]}, {"ruleId": "scanner-e1da8e9e7c091cb4", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in src/home/erp-xero-push.ts:50"}, "properties": {"repobilityId": "c30bcfdc91491b30", "scanner": "scanner-primary", "fingerprint": "e1da8e9e7c091cb4", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "src/home/erp-xero-push.ts"}, "region": {"startLine": 50}}}]}, {"ruleId": "scanner-6b50d671af64e6b2", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in src/home/unified-push.ts:49"}, "properties": {"repobilityId": "14cdcec437cdedb9", "scanner": "scanner-primary", "fingerprint": "6b50d671af64e6b2", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "src/home/unified-push.ts"}, "region": {"startLine": 49}}}]}, {"ruleId": "scanner-0cd1c0b3406aea13", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in src/home/recon-center-x-history.ts:86"}, "properties": {"repobilityId": "436cf7d1b64595a5", "scanner": "scanner-primary", "fingerprint": "0cd1c0b3406aea13", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "src/home/recon-center-x-history.ts"}, "region": {"startLine": 86}}}]}, {"ruleId": "scanner-3ae57c5c86380550", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in src/home/confirm-modal.ts:52"}, "properties": {"repobilityId": "847dd193927fcbca", "scanner": "scanner-primary", "fingerprint": "3ae57c5c86380550", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "src/home/confirm-modal.ts"}, "region": {"startLine": 52}}}]}, {"ruleId": "scanner-5712f6fcb23e076c", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in src/home/acct-books.ts:240"}, "properties": {"repobilityId": "61d55d273bed4441", "scanner": "scanner-primary", "fingerprint": "5712f6fcb23e076c", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "src/home/acct-books.ts"}, "region": {"startLine": 240}}}]}, {"ruleId": "scanner-b037341e2dedb9d4", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in src/home/erp-exceptions.ts:100"}, "properties": {"repobilityId": "c749d7a6918bf3d2", "scanner": "scanner-primary", "fingerprint": "b037341e2dedb9d4", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "src/home/erp-exceptions.ts"}, "region": {"startLine": 100}}}]}, {"ruleId": "scanner-9ddd2a21e4f1eabc", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in src/home/knowledge-center.ts:20"}, "properties": {"repobilityId": "72716a26d911c2ec", "scanner": "scanner-primary", "fingerprint": "9ddd2a21e4f1eabc", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "src/home/knowledge-center.ts"}, "region": {"startLine": 20}}}]}, {"ruleId": "scanner-5581f75680dc7386", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in src/home/company-profile.ts:122"}, "properties": {"repobilityId": "ee224d8c6cf7a20f", "scanner": "scanner-primary", "fingerprint": "5581f75680dc7386", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "src/home/company-profile.ts"}, "region": {"startLine": 122}}}]}, {"ruleId": "scanner-b9395c064645144b", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in src/home/erp-mrerp-dms-connect.ts:114"}, "properties": {"repobilityId": "d0e4637484cb862e", "scanner": "scanner-primary", "fingerprint": "b9395c064645144b", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "src/home/erp-mrerp-dms-connect.ts"}, "region": {"startLine": 114}}}]}, {"ruleId": "scanner-513f70a79265ab9a", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in src/home/tax-pnd.ts:115"}, "properties": {"repobilityId": "7bdb87dd0324ed11", "scanner": "scanner-primary", "fingerprint": "513f70a79265ab9a", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "src/home/tax-pnd.ts"}, "region": {"startLine": 115}}}]}, {"ruleId": "scanner-2fcb343d897b04c5", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in src/home/dms-intake-invoice.ts:124"}, "properties": {"repobilityId": "b26fc9c82865bb8d", "scanner": "scanner-primary", "fingerprint": "2fcb343d897b04c5", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "src/home/dms-intake-invoice.ts"}, "region": {"startLine": 124}}}]}, {"ruleId": "scanner-2f4ec4e358181f41", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in src/home/acct-manual.ts:167"}, "properties": {"repobilityId": "86e52a9b3972b595", "scanner": "scanner-primary", "fingerprint": "2f4ec4e358181f41", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "src/home/acct-manual.ts"}, "region": {"startLine": 167}}}]}, {"ruleId": "scanner-7eec46fd14ddab9a", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in src/home/modal-notif-new.ts:13"}, "properties": {"repobilityId": "03f9d867471c0ef2", "scanner": "scanner-primary", "fingerprint": "7eec46fd14ddab9a", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "src/home/modal-notif-new.ts"}, "region": {"startLine": 13}}}]}, {"ruleId": "scanner-e5dde056a6f9faf0", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in src/home/rules-settings.ts:131"}, "properties": {"repobilityId": "3e2cc94439835193", "scanner": "scanner-primary", "fingerprint": "e5dde056a6f9faf0", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "src/home/rules-settings.ts"}, "region": {"startLine": 131}}}]}, {"ruleId": "scanner-78e3b0d15cb0a3f7", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in src/home/toast.ts:119"}, "properties": {"repobilityId": "0510c1c1349605a8", "scanner": "scanner-primary", "fingerprint": "78e3b0d15cb0a3f7", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "src/home/toast.ts"}, "region": {"startLine": 119}}}]}, {"ruleId": "scanner-7c8638e00e32383d", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in src/home/wb-inject.ts:10"}, "properties": {"repobilityId": "057ed186f4e649aa", "scanner": "scanner-primary", "fingerprint": "7c8638e00e32383d", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "src/home/wb-inject.ts"}, "region": {"startLine": 10}}}]}, {"ruleId": "scanner-291f8a5af6fca082", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in src/home/purchase-list.ts:200"}, "properties": {"repobilityId": "f0bd6a71a713690c", "scanner": "scanner-primary", "fingerprint": "291f8a5af6fca082", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "src/home/purchase-list.ts"}, "region": {"startLine": 200}}}]}, {"ruleId": "scanner-13a7edbb849028ba", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in src/home/erp-endpoints.ts:57"}, "properties": {"repobilityId": "c2494f0195fb9ea2", "scanner": "scanner-primary", "fingerprint": "13a7edbb849028ba", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "src/home/erp-endpoints.ts"}, "region": {"startLine": 57}}}]}, {"ruleId": "scanner-94a2b2ab39f3c70a", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in src/home/integration-drawer.ts:130"}, "properties": {"repobilityId": "11dfea223e6912d1", "scanner": "scanner-primary", "fingerprint": "94a2b2ab39f3c70a", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "src/home/integration-drawer.ts"}, "region": {"startLine": 130}}}]}, {"ruleId": "scanner-c3c586024840014a", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in src/home/recon-drawer.ts:60"}, "properties": {"repobilityId": "085600950af70fbd", "scanner": "scanner-primary", "fingerprint": "c3c586024840014a", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "src/home/recon-drawer.ts"}, "region": {"startLine": 60}}}]}, {"ruleId": "scanner-7400f420c9d440c4", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in src/home/modal-archive-token.ts:13"}, "properties": {"repobilityId": "3946bd9cf254a0eb", "scanner": "scanner-primary", "fingerprint": "7400f420c9d440c4", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "src/home/modal-archive-token.ts"}, "region": {"startLine": 13}}}]}, {"ruleId": "scanner-a976da760cd92786", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in src/home/recon-center-x-tpl.ts:104"}, "properties": {"repobilityId": "50fe05c73006bf05", "scanner": "scanner-primary", "fingerprint": "a976da760cd92786", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "src/home/recon-center-x-tpl.ts"}, "region": {"startLine": 104}}}]}, {"ruleId": "scanner-fa23da3f1221c103", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in src/home/erp-onboard.ts:33"}, "properties": {"repobilityId": "16504a2b956c4431", "scanner": "scanner-primary", "fingerprint": "fa23da3f1221c103", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "src/home/erp-onboard.ts"}, "region": {"startLine": 33}}}]}, {"ruleId": "scanner-15ccb38515b540bd", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in src/home/inventory.ts:125"}, "properties": {"repobilityId": "6f1f7ed30a53f889", "scanner": "scanner-primary", "fingerprint": "15ccb38515b540bd", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "src/home/inventory.ts"}, "region": {"startLine": 125}}}]}, {"ruleId": "scanner-2a460e5042f976f9", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in design-reference/pearnly_reconciliation_redesign_v2.html:972"}, "properties": {"repobilityId": "6878c1cf91a80367", "scanner": "scanner-primary", "fingerprint": "2a460e5042f976f9", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "design-reference/pearnly_reconciliation_redesign_v2.html"}, "region": {"startLine": 972}}}]}, {"ruleId": "scanner-27924aa79fa4a517", "level": "note", "message": {"text": "GitHub Action is tag-pinned rather than SHA-pinned"}, "properties": {"repobilityId": "ae16880318b99912", "scanner": "scanner-primary", "fingerprint": "27924aa79fa4a517", "layer": "cicd", "severity": "low", "confidence": 1.0, "tags": ["supply-chain", "github-actions", "pinned-dependencies"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": ".github/workflows/ci.yml"}, "region": {"startLine": 38}}}]}, {"ruleId": "scanner-27924aa79fa4a517", "level": "note", "message": {"text": "GitHub Action is tag-pinned rather than SHA-pinned"}, "properties": {"repobilityId": "04f57d208548fcef", "scanner": "scanner-primary", "fingerprint": "27924aa79fa4a517", "layer": "cicd", "severity": "low", "confidence": 1.0, "tags": ["supply-chain", "github-actions", "pinned-dependencies"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": ".github/workflows/ci.yml"}, "region": {"startLine": 41}}}]}, {"ruleId": "scanner-27924aa79fa4a517", "level": "note", "message": {"text": "GitHub Action is tag-pinned rather than SHA-pinned"}, "properties": {"repobilityId": "989a74409a402368", "scanner": "scanner-primary", "fingerprint": "27924aa79fa4a517", "layer": "cicd", "severity": "low", "confidence": 1.0, "tags": ["supply-chain", "github-actions", "pinned-dependencies"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": ".github/workflows/ci.yml"}, "region": {"startLine": 63}}}]}, {"ruleId": "scanner-27924aa79fa4a517", "level": "note", "message": {"text": "GitHub Action is tag-pinned rather than SHA-pinned"}, "properties": {"repobilityId": "ae16880318b99912", "scanner": "scanner-primary", "fingerprint": "27924aa79fa4a517", "layer": "cicd", "severity": "low", "confidence": 1.0, "tags": ["supply-chain", "github-actions", "pinned-dependencies"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": ".github/workflows/ci.yml"}, "region": {"startLine": 96}}}]}, {"ruleId": "scanner-27924aa79fa4a517", "level": "note", "message": {"text": "GitHub Action is tag-pinned rather than SHA-pinned"}, "properties": {"repobilityId": "04f57d208548fcef", "scanner": "scanner-primary", "fingerprint": "27924aa79fa4a517", "layer": "cicd", "severity": "low", "confidence": 1.0, "tags": ["supply-chain", "github-actions", "pinned-dependencies"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": ".github/workflows/ci.yml"}, "region": {"startLine": 101}}}]}, {"ruleId": "scanner-27924aa79fa4a517", "level": "note", "message": {"text": "GitHub Action is tag-pinned rather than SHA-pinned"}, "properties": {"repobilityId": "ae16880318b99912", "scanner": "scanner-primary", "fingerprint": "27924aa79fa4a517", "layer": "cicd", "severity": "low", "confidence": 1.0, "tags": ["supply-chain", "github-actions", "pinned-dependencies"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": ".github/workflows/ci.yml"}, "region": {"startLine": 133}}}]}, {"ruleId": "scanner-27924aa79fa4a517", "level": "note", "message": {"text": "GitHub Action is tag-pinned rather than SHA-pinned"}, "properties": {"repobilityId": "04f57d208548fcef", "scanner": "scanner-primary", "fingerprint": "27924aa79fa4a517", "layer": "cicd", "severity": "low", "confidence": 1.0, "tags": ["supply-chain", "github-actions", "pinned-dependencies"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": ".github/workflows/ci.yml"}, "region": {"startLine": 136}}}]}, {"ruleId": "scanner-27924aa79fa4a517", "level": "note", "message": {"text": "GitHub Action is tag-pinned rather than SHA-pinned"}, "properties": {"repobilityId": "989a74409a402368", "scanner": "scanner-primary", "fingerprint": "27924aa79fa4a517", "layer": "cicd", "severity": "low", "confidence": 1.0, "tags": ["supply-chain", "github-actions", "pinned-dependencies"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": ".github/workflows/ci.yml"}, "region": {"startLine": 151}}}]}, {"ruleId": "scanner-27924aa79fa4a517", "level": "note", "message": {"text": "GitHub Action is tag-pinned rather than SHA-pinned"}, "properties": {"repobilityId": "ae16880318b99912", "scanner": "scanner-primary", "fingerprint": "27924aa79fa4a517", "layer": "cicd", "severity": "low", "confidence": 1.0, "tags": ["supply-chain", "github-actions", "pinned-dependencies"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": ".github/workflows/ci.yml"}, "region": {"startLine": 172}}}]}, {"ruleId": "scanner-27924aa79fa4a517", "level": "note", "message": {"text": "GitHub Action is tag-pinned rather than SHA-pinned"}, "properties": {"repobilityId": "04f57d208548fcef", "scanner": "scanner-primary", "fingerprint": "27924aa79fa4a517", "layer": "cicd", "severity": "low", "confidence": 1.0, "tags": ["supply-chain", "github-actions", "pinned-dependencies"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": ".github/workflows/ci.yml"}, "region": {"startLine": 177}}}]}, {"ruleId": "scanner-27924aa79fa4a517", "level": "note", "message": {"text": "GitHub Action is tag-pinned rather than SHA-pinned"}, "properties": {"repobilityId": "ae16880318b99912", "scanner": "scanner-primary", "fingerprint": "27924aa79fa4a517", "layer": "cicd", "severity": "low", "confidence": 1.0, "tags": ["supply-chain", "github-actions", "pinned-dependencies"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": ".github/workflows/ci.yml"}, "region": {"startLine": 204}}}]}, {"ruleId": "scanner-27924aa79fa4a517", "level": "note", "message": {"text": "GitHub Action is tag-pinned rather than SHA-pinned"}, "properties": {"repobilityId": "04f57d208548fcef", "scanner": "scanner-primary", "fingerprint": "27924aa79fa4a517", "layer": "cicd", "severity": "low", "confidence": 1.0, "tags": ["supply-chain", "github-actions", "pinned-dependencies"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": ".github/workflows/ci.yml"}, "region": {"startLine": 209}}}]}, {"ruleId": "scanner-27924aa79fa4a517", "level": "note", "message": {"text": "GitHub Action is tag-pinned rather than SHA-pinned"}, "properties": {"repobilityId": "ae16880318b99912", "scanner": "scanner-primary", "fingerprint": "27924aa79fa4a517", "layer": "cicd", "severity": "low", "confidence": 1.0, "tags": ["supply-chain", "github-actions", "pinned-dependencies"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": ".github/workflows/ci.yml"}, "region": {"startLine": 235}}}]}, {"ruleId": "scanner-27924aa79fa4a517", "level": "note", "message": {"text": "GitHub Action is tag-pinned rather than SHA-pinned"}, "properties": {"repobilityId": "04f57d208548fcef", "scanner": "scanner-primary", "fingerprint": "27924aa79fa4a517", "layer": "cicd", "severity": "low", "confidence": 1.0, "tags": ["supply-chain", "github-actions", "pinned-dependencies"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": ".github/workflows/ci.yml"}, "region": {"startLine": 238}}}]}, {"ruleId": "scanner-27924aa79fa4a517", "level": "note", "message": {"text": "GitHub Action is tag-pinned rather than SHA-pinned"}, "properties": {"repobilityId": "989a74409a402368", "scanner": "scanner-primary", "fingerprint": "27924aa79fa4a517", "layer": "cicd", "severity": "low", "confidence": 1.0, "tags": ["supply-chain", "github-actions", "pinned-dependencies"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": ".github/workflows/ci.yml"}, "region": {"startLine": 261}}}]}, {"ruleId": "scanner-27924aa79fa4a517", "level": "note", "message": {"text": "GitHub Action is tag-pinned rather than SHA-pinned"}, "properties": {"repobilityId": "54c8f1b47dd62535", "scanner": "scanner-primary", "fingerprint": "27924aa79fa4a517", "layer": "cicd", "severity": "low", "confidence": 1.0, "tags": ["supply-chain", "github-actions", "pinned-dependencies"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": ".github/workflows/ci.yml"}, "region": {"startLine": 296}}}]}, {"ruleId": "scanner-27924aa79fa4a517", "level": "note", "message": {"text": "GitHub Action is tag-pinned rather than SHA-pinned"}, "properties": {"repobilityId": "bd7f3c1c34d83159", "scanner": "scanner-primary", "fingerprint": "27924aa79fa4a517", "layer": "cicd", "severity": "low", "confidence": 1.0, "tags": ["supply-chain", "github-actions", "pinned-dependencies"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": ".github/workflows/ci.yml"}, "region": {"startLine": 315}}}]}, {"ruleId": "scanner-03e2e53fcbc50d16", "level": "note", "message": {"text": "Very large file: tests/unit/test_erp_test_connection_route_dispatch.py (2356 lines)"}, "properties": {"repobilityId": "fabd801c0a2e4fec", "scanner": "scanner-primary", "fingerprint": "03e2e53fcbc50d16", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["complexity"]}}, {"ruleId": "scanner-f8d2e7ce19910784", "level": "note", "message": {"text": "Very large file: static/erp-mrerp-connect.js (2299 lines)"}, "properties": {"repobilityId": "fb508aefedc2a71b", "scanner": "scanner-primary", "fingerprint": "f8d2e7ce19910784", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["complexity"]}}, {"ruleId": "scanner-d2a360c76c832f29", "level": "note", "message": {"text": "Very large file: static/admin/admin.js (2903 lines)"}, "properties": {"repobilityId": "19a91b6f03337299", "scanner": "scanner-primary", "fingerprint": "d2a360c76c832f29", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["complexity"]}}, {"ruleId": "scanner-f2c8dc337feccac4", "level": "note", "message": {"text": "Very large file: static/pos/pos-i18n.js (857 lines)"}, "properties": {"repobilityId": "3f03bce1fae981f0", "scanner": "scanner-primary", "fingerprint": "f2c8dc337feccac4", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["complexity"]}}, {"ruleId": "scanner-62e2c5c12b56ff40", "level": "note", "message": {"text": "Very large file: static/console/console.js (1858 lines)"}, "properties": {"repobilityId": "4b8b1f6864439c6e", "scanner": "scanner-primary", "fingerprint": "62e2c5c12b56ff40", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["complexity"]}}, {"ruleId": "scanner-9e39f1a1022945da", "level": "note", "message": {"text": "Very large file: static/console/console-i18n.js (1166 lines)"}, "properties": {"repobilityId": "c650e03a43925077", "scanner": "scanner-primary", "fingerprint": "9e39f1a1022945da", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["complexity"]}}, {"ruleId": "scanner-141b30a41e03817b", "level": "note", "message": {"text": "No license file detected"}, "properties": {"repobilityId": "4f3e9b3cbadbf283", "scanner": "scanner-primary", "fingerprint": "141b30a41e03817b", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["license", "repo-hardening", "generated-repo-pattern"]}}, {"ruleId": "scanner-3ab5d313dda8e5f9", "level": "note", "message": {"text": "Debug logging residue appears in source files"}, "properties": {"repobilityId": "7e68c0df3fe42d30", "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": "a7d194ab8497bcf5", "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": "18623e7756199e34", "scanner": "scanner-primary", "fingerprint": "2d0c7b7ab8f8aacf", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["placeholder", "mock-data", "critical-flow", "generated-repo-pattern"]}}, {"ruleId": "scanner-749d4bc1bd66df5f", "level": "warning", "message": {"text": "Agent instructions exist but release-hardening basics are missing"}, "properties": {"repobilityId": "6a4f033faae4ce04", "scanner": "scanner-primary", "fingerprint": "749d4bc1bd66df5f", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["agent-instructions", "repo-hardening", "generated-repo-pattern"]}}, {"ruleId": "scanner-ea8f3013f588db25", "level": "note", "message": {"text": "Shallow git history limits provenance confidence"}, "properties": {"repobilityId": "2a7da99a55deb078", "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": "8c513da71dee2558", "scanner": "scanner-primary", "fingerprint": "8424db9c75e04ba4", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["provenance", "git-history", "generated-repo-pattern"]}}, {"ruleId": "scanner-122f91b7f2906dc4", "level": "warning", "message": {"text": "Agent authority lacks a verifier contract: .claude/settings.json"}, "properties": {"repobilityId": "a2967269048b6a9d", "scanner": "scanner-primary", "fingerprint": "122f91b7f2906dc4", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["agent-instructions", "verification", "claude_instruction"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": ".claude/settings.json"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-6685e18ddf5bead5", "level": "none", "message": {"text": "Commented-code block (5 lines) in app.py:336"}, "properties": {"repobilityId": "3f5881f1b68f9173", "scanner": "scanner-primary", "fingerprint": "6685e18ddf5bead5", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-68d523322c7e2e7d", "level": "none", "message": {"text": "Commented-code block (5 lines) in eslint.config.mjs:3"}, "properties": {"repobilityId": "d58864ca92483889", "scanner": "scanner-primary", "fingerprint": "68d523322c7e2e7d", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-282285c7d4cf6bc9", "level": "note", "message": {"text": "Legacy-named symbol `model_copy` in tests/test_layer3_fallback.py:174"}, "properties": {"repobilityId": "3b1a3e5245734f41", "scanner": "scanner-primary", "fingerprint": "282285c7d4cf6bc9", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "legacy-marker", "dead-code"]}}, {"ruleId": "scanner-eb815e2dc328c6fd", "level": "note", "message": {"text": "Legacy-named symbol `test_dict_passthrough_as_copy` in tests/integration/test_recon_field_override_safety_net.py:77"}, "properties": {"repobilityId": "691bbbae6a44da83", "scanner": "scanner-primary", "fingerprint": "eb815e2dc328c6fd", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "legacy-marker", "dead-code"]}}, {"ruleId": "scanner-b6fec7a6f3c4419d", "level": "none", "message": {"text": "Commented-code block (5 lines) in tests/integration/test_mrerp_e2e_auto_sync.py:143"}, "properties": {"repobilityId": "0827512f3488bf5e", "scanner": "scanner-primary", "fingerprint": "b6fec7a6f3c4419d", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-18f47901fa9e2574", "level": "note", "message": {"text": "Legacy-named symbol `bank_recon_v2` in tests/unit/test_run_matching_contract.py:14"}, "properties": {"repobilityId": "c93c068dc5c252a1", "scanner": "scanner-primary", "fingerprint": "18f47901fa9e2574", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "legacy-marker", "dead-code"]}}, {"ruleId": "scanner-b83ab4bdd79df9dc", "level": "note", "message": {"text": "Legacy-named symbol `bank_recon_v2` in tests/unit/test_bank_v2_continuation_page_balance.py:22"}, "properties": {"repobilityId": "ecdd6bdeb93f7687", "scanner": "scanner-primary", "fingerprint": "b83ab4bdd79df9dc", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "legacy-marker", "dead-code"]}}, {"ruleId": "scanner-20af9398c7c473f7", "level": "note", "message": {"text": "Legacy-named symbol `bank_recon_v2` in tests/unit/test_reconcile_golden.py:13"}, "properties": {"repobilityId": "43f5c70607f43c40", "scanner": "scanner-primary", "fingerprint": "20af9398c7c473f7", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "legacy-marker", "dead-code"]}}, {"ruleId": "scanner-f1090f6d0451ec2b", "level": "note", "message": {"text": "Legacy-named symbol `bank_recon_v2` in tests/unit/test_gl_template_integration.py:10"}, "properties": {"repobilityId": "0ed97342f6c35d0d", "scanner": "scanner-primary", "fingerprint": "f1090f6d0451ec2b", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "legacy-marker", "dead-code"]}}, {"ruleId": "scanner-ddbc2e238d997305", "level": "note", "message": {"text": "Legacy-named symbol `pipeline_v1` in tests/unit/test_ocr_response_no_engine_leak.py:33"}, "properties": {"repobilityId": "9c0fbd02bf381a39", "scanner": "scanner-primary", "fingerprint": "ddbc2e238d997305", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "legacy-marker", "dead-code"]}}, {"ruleId": "scanner-3d64c64c1963c305", "level": "note", "message": {"text": "Legacy-named symbol `bank_recon_v2` in tests/unit/test_csv_stmt.py:8"}, "properties": {"repobilityId": "714590895a429953", "scanner": "scanner-primary", "fingerprint": "3d64c64c1963c305", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "legacy-marker", "dead-code"]}}, {"ruleId": "scanner-93d922d94b254296", "level": "note", "message": {"text": "Legacy-named symbol `bank_recon_v2` in tests/unit/test_brv2_mismatch_warn.py:17"}, "properties": {"repobilityId": "dda77d63ebc4805b", "scanner": "scanner-primary", "fingerprint": "93d922d94b254296", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "legacy-marker", "dead-code"]}}, {"ruleId": "scanner-33d947609c8af809", "level": "none", "message": {"text": "Commented-code block (5 lines) in tests/unit/test_mrerp_validate_history.py:214"}, "properties": {"repobilityId": "ac258f63f37c15d5", "scanner": "scanner-primary", "fingerprint": "33d947609c8af809", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-13a5ec04c77aabb8", "level": "note", "message": {"text": "Legacy-named symbol `_override_after_copy` in tests/unit/test_mrerp_master_data_verify.py:377"}, "properties": {"repobilityId": "03503fcb1e0d5736", "scanner": "scanner-primary", "fingerprint": "13a5ec04c77aabb8", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "legacy-marker", "dead-code"]}}, {"ruleId": "scanner-12f32399d59e0c38", "level": "note", "message": {"text": "Legacy-named symbol `test_response_shape_is_rich_not_legacy` in tests/unit/test_erp_test_connection_route_dispatch.py:176"}, "properties": {"repobilityId": "15f3f670f3b7e915", "scanner": "scanner-primary", "fingerprint": "12f32399d59e0c38", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "legacy-marker", "dead-code"]}}, {"ruleId": "scanner-9e641e2e284e411f", "level": "none", "message": {"text": "Commented-code block (5 lines) in tests/unit/test_erp_test_connection_route_dispatch.py:1510"}, "properties": {"repobilityId": "0589b1c5909d7788", "scanner": "scanner-primary", "fingerprint": "9e641e2e284e411f", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-6594dc66165e7282", "level": "note", "message": {"text": "Legacy-named symbol `bank_recon_v2` in tests/unit/test_recon_gl_csv_preflight.py:14"}, "properties": {"repobilityId": "644f33c38d68bc24", "scanner": "scanner-primary", "fingerprint": "6594dc66165e7282", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "legacy-marker", "dead-code"]}}, {"ruleId": "scanner-747965fc97cb4255", "level": "note", "message": {"text": "Legacy-named symbol `bank_recon_v2` in tests/unit/test_importer_gl_inference_contract.py:11"}, "properties": {"repobilityId": "777b1ff857f44b66", "scanner": "scanner-primary", "fingerprint": "747965fc97cb4255", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "legacy-marker", "dead-code"]}}, {"ruleId": "scanner-d57d2e1f3641918b", "level": "note", "message": {"text": "Legacy-named symbol `bank_recon_v2` in tests/unit/test_bank_v2_xlsx_multisheet.py:23"}, "properties": {"repobilityId": "fdc62c552c1b1691", "scanner": "scanner-primary", "fingerprint": "d57d2e1f3641918b", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "legacy-marker", "dead-code"]}}, {"ruleId": "scanner-83cb8a86bf82e60c", "level": "note", "message": {"text": "Legacy-named symbol `bank_recon_v2` in tests/unit/test_bank_v2_amount_repair.py:19"}, "properties": {"repobilityId": "2b603b9adc3e1e13", "scanner": "scanner-primary", "fingerprint": "83cb8a86bf82e60c", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "legacy-marker", "dead-code"]}}, {"ruleId": "scanner-6a40dd0e85c658b6", "level": "note", "message": {"text": "Legacy-named symbol `bank_recon_v2` in tests/unit/test_stmt_template_integration.py:16"}, "properties": {"repobilityId": "fbd990424a9dad35", "scanner": "scanner-primary", "fingerprint": "6a40dd0e85c658b6", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "legacy-marker", "dead-code"]}}, {"ruleId": "scanner-414283a18cf7b5bf", "level": "note", "message": {"text": "Legacy-named symbol `test_copy_kind_original_and_copy` in tests/unit/test_sales_pdf.py:109"}, "properties": {"repobilityId": "6b25a9183a7d6c3f", "scanner": "scanner-primary", "fingerprint": "414283a18cf7b5bf", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "legacy-marker", "dead-code"]}}, {"ruleId": "scanner-346bc267907b9fde", "level": "note", "message": {"text": "Legacy-named symbol `is_copy` in tests/unit/test_ocr_history_store_contract.py:41"}, "properties": {"repobilityId": "299292033b97d78c", "scanner": "scanner-primary", "fingerprint": "346bc267907b9fde", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "legacy-marker", "dead-code"]}}, {"ruleId": "scanner-dac8f44d0bb37cda", "level": "note", "message": {"text": "Legacy-named symbol `bank_recon_v2` in tests/unit/test_ai_mapping.py:20"}, "properties": {"repobilityId": "db26a7ccaab64edc", "scanner": "scanner-primary", "fingerprint": "dac8f44d0bb37cda", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "legacy-marker", "dead-code"]}}, {"ruleId": "scanner-073638cd15eee252", "level": "note", "message": {"text": "Legacy-named symbol `tenant_type_v2` in tests/unit/test_services_membership_schema_contract.py:56"}, "properties": {"repobilityId": "4e724b73127fe507", "scanner": "scanner-primary", "fingerprint": "073638cd15eee252", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "legacy-marker", "dead-code"]}}, {"ruleId": "scanner-c88ead8b99e2b6f3", "level": "note", "message": {"text": "Legacy-named symbol `clear_old` in tests/unit/test_vat_excel_split_contract.py:4"}, "properties": {"repobilityId": "3b19019e180b3ddc", "scanner": "scanner-primary", "fingerprint": "c88ead8b99e2b6f3", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "legacy-marker", "dead-code"]}}, {"ruleId": "scanner-482d064d5b5cc1dc", "level": "note", "message": {"text": "Legacy-named symbol `bank_recon_v2` in tests/unit/test_bank_v2_synthetic_fuzz.py:21"}, "properties": {"repobilityId": "acb1247dddda0ead", "scanner": "scanner-primary", "fingerprint": "482d064d5b5cc1dc", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "legacy-marker", "dead-code"]}}, {"ruleId": "scanner-212eae939f0021c1", "level": "note", "message": {"text": "Legacy-named symbol `bank_recon_v2` in tests/unit/test_importer_coerce_contract.py:9"}, "properties": {"repobilityId": "31ef3497f0b5b323", "scanner": "scanner-primary", "fingerprint": "212eae939f0021c1", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "legacy-marker", "dead-code"]}}, {"ruleId": "scanner-da93b997a341a5e1", "level": "note", "message": {"text": "Legacy-named symbol `bank_recon_v2` in tests/unit/test_brv2_match_rate_honesty.py:20"}, "properties": {"repobilityId": "e97b751d62c79bd9", "scanner": "scanner-primary", "fingerprint": "da93b997a341a5e1", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "legacy-marker", "dead-code"]}}, {"ruleId": "scanner-381e76c1dfef79b8", "level": "note", "message": {"text": "Legacy-named symbol `clear_old` in tests/unit/test_vat_excel_routes_contract.py:9"}, "properties": {"repobilityId": "1bf2e2e10f543142", "scanner": "scanner-primary", "fingerprint": "381e76c1dfef79b8", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "legacy-marker", "dead-code"]}}, {"ruleId": "scanner-33920da11fce131c", "level": "note", "message": {"text": "Legacy-named symbol `bank_recon_v2` in tests/unit/test_s8_review_gate.py:17"}, "properties": {"repobilityId": "9b526b4a9b2134a9", "scanner": "scanner-primary", "fingerprint": "33920da11fce131c", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "legacy-marker", "dead-code"]}}, {"ruleId": "scanner-8d8539ef706b8379", "level": "note", "message": {"text": "Legacy-named symbol `bank_recon_v2` in tests/unit/test_recon_handlers_contract.py:15"}, "properties": {"repobilityId": "36786c984579975e", "scanner": "scanner-primary", "fingerprint": "8d8539ef706b8379", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "legacy-marker", "dead-code"]}}, {"ruleId": "scanner-01cf91da892f0199", "level": "note", "message": {"text": "Legacy-named symbol `bank_recon_v2` in tests/unit/test_bank_v2_export_anchor_yellow.py:17"}, "properties": {"repobilityId": "126e47096fa5084e", "scanner": "scanner-primary", "fingerprint": "01cf91da892f0199", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "legacy-marker", "dead-code"]}}, {"ruleId": "scanner-d0ea6db0606c8209", "level": "note", "message": {"text": "Legacy-named symbol `bank_recon_v2` in tests/unit/test_bank_v2_coords.py:21"}, "properties": {"repobilityId": "17036af26574c92a", "scanner": "scanner-primary", "fingerprint": "d0ea6db0606c8209", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "legacy-marker", "dead-code"]}}, {"ruleId": "scanner-173ae1483393bff3", "level": "note", "message": {"text": "Legacy-named symbol `bank_recon_v2` in tests/unit/test_reconciliation_matcher_contract.py:5"}, "properties": {"repobilityId": "1da05de7a1a7ce2c", "scanner": "scanner-primary", "fingerprint": "173ae1483393bff3", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "legacy-marker", "dead-code"]}}, {"ruleId": "scanner-a516e107a588b954", "level": "note", "message": {"text": "Legacy-named symbol `bank_recon_v2` in tests/unit/test_recon_task_stores_contract.py:4"}, "properties": {"repobilityId": "9ef189c115e50bbb", "scanner": "scanner-primary", "fingerprint": "a516e107a588b954", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "legacy-marker", "dead-code"]}}, {"ruleId": "scanner-b1858c902c877d84", "level": "note", "message": {"text": "Legacy-named symbol `bank_recon_v2` in tests/unit/test_bank_v2_direction_correct.py:19"}, "properties": {"repobilityId": "b17651250b233eb0", "scanner": "scanner-primary", "fingerprint": "b1858c902c877d84", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "legacy-marker", "dead-code"]}}, {"ruleId": "scanner-1249e47135b6cf97", "level": "note", "message": {"text": "Legacy-named symbol `bank_recon_v2` in tests/unit/test_bank_v2_summary_row.py:12"}, "properties": {"repobilityId": "c0ccb6b4969535b8", "scanner": "scanner-primary", "fingerprint": "1249e47135b6cf97", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "legacy-marker", "dead-code"]}}, {"ruleId": "scanner-ecdadc1ce5bd0866", "level": "note", "message": {"text": "Legacy-named symbol `bank_recon_v2` in tests/unit/test_importer_ai_mapping_contract.py:12"}, "properties": {"repobilityId": "23f0bbfa1f372544", "scanner": "scanner-primary", "fingerprint": "ecdadc1ce5bd0866", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "legacy-marker", "dead-code"]}}, {"ruleId": "scanner-8796fa4572f7f33a", "level": "note", "message": {"text": "Legacy-named symbol `bank_recon_v2` in tests/unit/test_bank_v2_completeness.py:19"}, "properties": {"repobilityId": "cb5a82e4193ab2bc", "scanner": "scanner-primary", "fingerprint": "8796fa4572f7f33a", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "legacy-marker", "dead-code"]}}, {"ruleId": "scanner-8a68d19cdc124e34", "level": "note", "message": {"text": "Legacy-named symbol `bank_recon_v2` in tests/unit/test_bank_v2_multi_account.py:22"}, "properties": {"repobilityId": "80f3c0fabf890974", "scanner": "scanner-primary", "fingerprint": "8a68d19cdc124e34", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "legacy-marker", "dead-code"]}}, {"ruleId": "scanner-a468027d105ecc15", "level": "note", "message": {"text": "Legacy-named symbol `bank_recon_v2` in tests/unit/test_parse_date_buddhist_era.py:22"}, "properties": {"repobilityId": "68a8ffbde774c77b", "scanner": "scanner-primary", "fingerprint": "a468027d105ecc15", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "legacy-marker", "dead-code"]}}, {"ruleId": "scanner-46b5a96207a28b0e", "level": "note", "message": {"text": "Legacy-named symbol `bank_recon_v2` in tests/eval/run_eval.py:38"}, "properties": {"repobilityId": "4ce99996d31ee909", "scanner": "scanner-primary", "fingerprint": "46b5a96207a28b0e", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "legacy-marker", "dead-code"]}}, {"ruleId": "scanner-6b145aa567a3516c", "level": "none", "message": {"text": "Commented-code block (5 lines) in tests/e2e/05-exceptions.spec.js:1"}, "properties": {"repobilityId": "85d2b495ed40ac90", "scanner": "scanner-primary", "fingerprint": "6b145aa567a3516c", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-18ffaea131607b0e", "level": "none", "message": {"text": "Commented-code block (8 lines) in tests/e2e/13-password-change.spec.js:6"}, "properties": {"repobilityId": "67e63882e9d414d7", "scanner": "scanner-primary", "fingerprint": "18ffaea131607b0e", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-8ab41a6611ea21f9", "level": "none", "message": {"text": "Commented-code block (5 lines) in tests/e2e/11-charge-ocr-closure.spec.js:1"}, "properties": {"repobilityId": "aaf49241e29cb1a2", "scanner": "scanner-primary", "fingerprint": "8ab41a6611ea21f9", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-edcef8907d87b447", "level": "none", "message": {"text": "Commented-code block (5 lines) in tests/e2e/08-erp-push.spec.js:1"}, "properties": {"repobilityId": "583fc5bfb89c7e77", "scanner": "scanner-primary", "fingerprint": "edcef8907d87b447", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-d26aeee3c71f54d5", "level": "none", "message": {"text": "Commented-code block (8 lines) in tests/e2e/14-line-binding.spec.js:1"}, "properties": {"repobilityId": "e7357ce02c2d4aa0", "scanner": "scanner-primary", "fingerprint": "d26aeee3c71f54d5", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-241acc467a12a4b1", "level": "none", "message": {"text": "Commented-code block (6 lines) in tests/e2e/03-clients.spec.js:1"}, "properties": {"repobilityId": "7c06890d4df4c40b", "scanner": "scanner-primary", "fingerprint": "241acc467a12a4b1", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-e1fea4bf3f031d04", "level": "none", "message": {"text": "Commented-code block (14 lines) in tests/e2e/16-ocr-recognize.spec.js:1"}, "properties": {"repobilityId": "c5b488bf3088ce8b", "scanner": "scanner-primary", "fingerprint": "e1fea4bf3f031d04", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-ecbfeae124c161ba", "level": "none", "message": {"text": "Commented-code block (9 lines) in tests/e2e/12-rls-isolation.spec.js:5"}, "properties": {"repobilityId": "fd0623e763b63671", "scanner": "scanner-primary", "fingerprint": "ecbfeae124c161ba", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-b63befdf48cda98e", "level": "none", "message": {"text": "Commented-code block (6 lines) in tests/e2e/04-history.spec.js:1"}, "properties": {"repobilityId": "25fc26364a11416c", "scanner": "scanner-primary", "fingerprint": "b63befdf48cda98e", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-424a81e9f939b5d2", "level": "none", "message": {"text": "Commented-code block (8 lines) in tests/e2e/02-app-lang-switch.spec.js:1"}, "properties": {"repobilityId": "37b288f7c3971e27", "scanner": "scanner-primary", "fingerprint": "424a81e9f939b5d2", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-0e41fe214893f37d", "level": "none", "message": {"text": "Commented-code block (8 lines) in tests/e2e/17-email-code-flow.spec.js:1"}, "properties": {"repobilityId": "aaa8c4f7070348c0", "scanner": "scanner-primary", "fingerprint": "0e41fe214893f37d", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-5a618e87dad08f77", "level": "none", "message": {"text": "Commented-code block (5 lines) in tests/e2e/15-session-heartbeat.spec.js:1"}, "properties": {"repobilityId": "13619006b72c843a", "scanner": "scanner-primary", "fingerprint": "5a618e87dad08f77", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-c96afcb2689810fc", "level": "none", "message": {"text": "Commented-code block (7 lines) in tests/e2e/06-reconcile.spec.js:1"}, "properties": {"repobilityId": "6a1c6595a287a53d", "scanner": "scanner-primary", "fingerprint": "c96afcb2689810fc", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-77aacf789eb14e37", "level": "none", "message": {"text": "Commented-code block (5 lines) in tests/e2e/18-cpw-visual.spec.js:1"}, "properties": {"repobilityId": "28e603159e1cd59e", "scanner": "scanner-primary", "fingerprint": "77aacf789eb14e37", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-8e48c41b3be693f6", "level": "none", "message": {"text": "Commented-code block (6 lines) in tests/e2e/_helpers/auth.js:1"}, "properties": {"repobilityId": "3c8e4c62245806bb", "scanner": "scanner-primary", "fingerprint": "8e48c41b3be693f6", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-937996284b14bc4b", "level": "none", "message": {"text": "Commented-code block (5 lines) in tests/e2e/_helpers/console-guard.js:6"}, "properties": {"repobilityId": "6b6cd5db2e5355e8", "scanner": "scanner-primary", "fingerprint": "937996284b14bc4b", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-a57236d5d98854f6", "level": "none", "message": {"text": "Commented-code block (6 lines) in static/erp-mrerp-connect.js:645"}, "properties": {"repobilityId": "8ad85035821604e8", "scanner": "scanner-primary", "fingerprint": "a57236d5d98854f6", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-cd8646ec8d864d39", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 static/erp-mrerp-connect.js:2280"}, "properties": {"repobilityId": "7b12c82c9588763a", "scanner": "scanner-primary", "fingerprint": "cd8646ec8d864d39", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-4e14cc9be4c9d51f", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 static/recon-mapping.js:288"}, "properties": {"repobilityId": "a116623f615b0323", "scanner": "scanner-primary", "fingerprint": "4e14cc9be4c9d51f", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-45686ba406990725", "level": "note", "message": {"text": "Legacy-named symbol `pipeline_v1` in static/admin/admin.js:282"}, "properties": {"repobilityId": "d6541e892c59c35e", "scanner": "scanner-primary", "fingerprint": "45686ba406990725", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "legacy-marker", "dead-code"]}}, {"ruleId": "scanner-3237c4f8f558381d", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 static/admin/admin.js:52"}, "properties": {"repobilityId": "d925e80e6dc388ee", "scanner": "scanner-primary", "fingerprint": "3237c4f8f558381d", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-e6933a7dab5f8fb4", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 static/pos/pos-restaurant-ops.js:344"}, "properties": {"repobilityId": "d228b87707f323e0", "scanner": "scanner-primary", "fingerprint": "e6933a7dab5f8fb4", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-1fd04f5b2870dd65", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 static/console/invite.js:120"}, "properties": {"repobilityId": "d63a3b2d17d2ea8a", "scanner": "scanner-primary", "fingerprint": "1fd04f5b2870dd65", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-81ac62b1a5aceabc", "level": "note", "message": {"text": "Legacy-named symbol `btn_copy` in static/console/console.js:979"}, "properties": {"repobilityId": "8a8f7e6482e785da", "scanner": "scanner-primary", "fingerprint": "81ac62b1a5aceabc", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "legacy-marker", "dead-code"]}}, {"ruleId": "scanner-2718a88121beaa04", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 static/console/console.js:1682"}, "properties": {"repobilityId": "f46dc45e2c268270", "scanner": "scanner-primary", "fingerprint": "2718a88121beaa04", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-3e1db69692251d2d", "level": "note", "message": {"text": "Legacy-named symbol `btn_copy` in static/console/console-i18n.js:67"}, "properties": {"repobilityId": "6dc0e64d403ec43c", "scanner": "scanner-primary", "fingerprint": "3e1db69692251d2d", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "legacy-marker", "dead-code"]}}, {"ruleId": "scanner-bce6cf65436f9d51", "level": "warning", "message": {"text": "Network/subprocess call without timeout or try/except \u2014 scripts/_authz_e2e.py:39"}, "properties": {"repobilityId": "a05fe002fc94c128", "scanner": "scanner-primary", "fingerprint": "bce6cf65436f9d51", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-555a1696a83f173b", "level": "note", "message": {"text": "Legacy-named symbol `pearnly_reconciliation_redesign_v2` in scripts/_rcx_preview.cjs:65"}, "properties": {"repobilityId": "a055cef37bb4098a", "scanner": "scanner-primary", "fingerprint": "555a1696a83f173b", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "legacy-marker", "dead-code"]}}, {"ruleId": "scanner-b37726165db98db9", "level": "none", "message": {"text": "Commented-code block (5 lines) in scripts/check_ui_consistency.py:71"}, "properties": {"repobilityId": "91be9debbc9754cf", "scanner": "scanner-primary", "fingerprint": "b37726165db98db9", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-1f62bc2a13bf8a18", "level": "warning", "message": {"text": "Network/subprocess call without timeout or try/except \u2014 scripts/check_new_routes_contract.py:70"}, "properties": {"repobilityId": "8453ebcdb1203965", "scanner": "scanner-primary", "fingerprint": "1f62bc2a13bf8a18", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-9e25760fba88907a", "level": "none", "message": {"text": "Commented-code block (5 lines) in scripts/ui_design_lint.mjs:1"}, "properties": {"repobilityId": "69d3ad1ad04e2d0f", "scanner": "scanner-primary", "fingerprint": "9e25760fba88907a", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-673edaad05cc71a4", "level": "none", "message": {"text": "Commented-code block (13 lines) in scripts/midcontrol_ui_verify.spec.js:1"}, "properties": {"repobilityId": "26c2d9ad45ab177a", "scanner": "scanner-primary", "fingerprint": "673edaad05cc71a4", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-2728d53b11547d50", "level": "warning", "message": {"text": "Network/subprocess call without timeout or try/except \u2014 scripts/check_tracked_imports.py:132"}, "properties": {"repobilityId": "06d1ded33d345780", "scanner": "scanner-primary", "fingerprint": "2728d53b11547d50", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-fbff960cfc7cf179", "level": "warning", "message": {"text": "Network/subprocess call without timeout or try/except \u2014 scripts/check_new_debt.py:86"}, "properties": {"repobilityId": "d43b73b04c66c7e3", "scanner": "scanner-primary", "fingerprint": "fbff960cfc7cf179", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-f5801ce15d5da999", "level": "warning", "message": {"text": "Network/subprocess call without timeout or try/except \u2014 scripts/_authz_roles_e2e.py:44"}, "properties": {"repobilityId": "6f88288d390d3ae1", "scanner": "scanner-primary", "fingerprint": "f5801ce15d5da999", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-b5a8bc98ee640f94", "level": "warning", "message": {"text": "Network/subprocess call without timeout or try/except \u2014 scripts/check_line_ratchet.py:104"}, "properties": {"repobilityId": "aaf6cdfe0bf8711c", "scanner": "scanner-primary", "fingerprint": "b5a8bc98ee640f94", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-712ac3853afc5914", "level": "none", "message": {"text": "Commented-code block (8 lines) in scripts/build-home-js.mjs:1"}, "properties": {"repobilityId": "94d84f4ebc639476", "scanner": "scanner-primary", "fingerprint": "712ac3853afc5914", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-d629a2c70dbe56c6", "level": "note", "message": {"text": "Legacy-named symbol `bank_recon_v2` in scripts/check_file_size.py:61"}, "properties": {"repobilityId": "c22d6f5a91bad05a", "scanner": "scanner-primary", "fingerprint": "d629a2c70dbe56c6", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "legacy-marker", "dead-code"]}}, {"ruleId": "scanner-4f24c2785d94fc98", "level": "none", "message": {"text": "Commented-code block (5 lines) in scripts/check_file_size.py:75"}, "properties": {"repobilityId": "04232b72dca91c17", "scanner": "scanner-primary", "fingerprint": "4f24c2785d94fc98", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-76b7cf37551f0d1e", "level": "note", "message": {"text": "Legacy-named symbol `probe_armas_copy_v2` in scripts/probe/_debug/probe_armas_copy_v2.py:4"}, "properties": {"repobilityId": "20a279a723d1efbd", "scanner": "scanner-primary", "fingerprint": "76b7cf37551f0d1e", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "legacy-marker", "dead-code"]}}, {"ruleId": "scanner-75fc377f5d8ce971", "level": "note", "message": {"text": "Legacy-named symbol `pipeline_v1` in routes/pages_routes.py:48"}, "properties": {"repobilityId": "eef1059c45eff055", "scanner": "scanner-primary", "fingerprint": "75fc377f5d8ce971", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "legacy-marker", "dead-code"]}}, {"ruleId": "scanner-7354d7ea9c2bc8b8", "level": "note", "message": {"text": "Legacy-named symbol `parse_gl_v2` in routes/recon_routes_bankv2_run.py:18"}, "properties": {"repobilityId": "7b1a69ac94321a7a", "scanner": "scanner-primary", "fingerprint": "7354d7ea9c2bc8b8", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "legacy-marker", "dead-code"]}}, {"ruleId": "scanner-9df080ce03909260", "level": "none", "message": {"text": "Commented-code block (5 lines) in routes/me_routes.py:42"}, "properties": {"repobilityId": "478bf18145c3f5c5", "scanner": "scanner-primary", "fingerprint": "9df080ce03909260", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-89cb7775b598ce0b", "level": "note", "message": {"text": "Legacy-named symbol `_pipe_legacy` in routes/recon_routes_v1_batch.py:184"}, "properties": {"repobilityId": "0d0397953ad054d4", "scanner": "scanner-primary", "fingerprint": "89cb7775b598ce0b", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "legacy-marker", "dead-code"]}}, {"ruleId": "scanner-e0b93b572e360a99", "level": "note", "message": {"text": "Legacy-named symbol `bank_recon_v2` in routes/bank_recon_routes.py:21"}, "properties": {"repobilityId": "33ece5c8a0b0cb4e", "scanner": "scanner-primary", "fingerprint": "e0b93b572e360a99", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "legacy-marker", "dead-code"]}}, {"ruleId": "scanner-ba5f5fb29a320020", "level": "none", "message": {"text": "Commented-code block (5 lines) in routes/erp_xero_routes.py:104"}, "properties": {"repobilityId": "4e917260aba47c24", "scanner": "scanner-primary", "fingerprint": "ba5f5fb29a320020", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-a3e84071db60f950", "level": "note", "message": {"text": "Legacy-named symbol `bank_recon_v2` in routes/accounting_bank_routes.py:80"}, "properties": {"repobilityId": "74e11254081ac1ab", "scanner": "scanner-primary", "fingerprint": "a3e84071db60f950", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "legacy-marker", "dead-code"]}}, {"ruleId": "scanner-aee6da88bc8d607a", "level": "note", "message": {"text": "Legacy-named symbol `parse_gl_v2` in routes/recon_routes.py:446"}, "properties": {"repobilityId": "208780c2684238a2", "scanner": "scanner-primary", "fingerprint": "aee6da88bc8d607a", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "legacy-marker", "dead-code"]}}, {"ruleId": "scanner-796bfe1266076407", "level": "note", "message": {"text": "Legacy-named symbol `bank_recon_v2` in routes/recon_jobs_routes.py:116"}, "properties": {"repobilityId": "529f1b8f3eb25ecc", "scanner": "scanner-primary", "fingerprint": "796bfe1266076407", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "legacy-marker", "dead-code"]}}, {"ruleId": "scanner-4cfb9da54a15bdf3", "level": "note", "message": {"text": "Legacy-named symbol `_workspace_from_store_or_legacy` in routes/pos_auth_routes.py:74"}, "properties": {"repobilityId": "36e18aed103be765", "scanner": "scanner-primary", "fingerprint": "4cfb9da54a15bdf3", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "legacy-marker", "dead-code"]}}, {"ruleId": "scanner-83be83df6f54ac40", "level": "note", "message": {"text": "Legacy-named symbol `bank_recon_v2` in routes/recon_routes_bankv2_helpers.py:2"}, "properties": {"repobilityId": "1d61ec928a49ae4e", "scanner": "scanner-primary", "fingerprint": "83be83df6f54ac40", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "legacy-marker", "dead-code"]}}, {"ruleId": "scanner-af4ce31312a6df9b", "level": "note", "message": {"text": "Legacy-named symbol `is_copy` in routes/history_routes.py:117"}, "properties": {"repobilityId": "42c2d10f98b4ce09", "scanner": "scanner-primary", "fingerprint": "af4ce31312a6df9b", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "legacy-marker", "dead-code"]}}, {"ruleId": "scanner-2d15e94e81db8330", "level": "none", "message": {"text": "Commented-code block (7 lines) in routes/admin_diagnostics_routes.py:57"}, "properties": {"repobilityId": "2160a94d10334c1f", "scanner": "scanner-primary", "fingerprint": "2d15e94e81db8330", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-3cf7ee15a5428870", "level": "none", "message": {"text": "Commented-code block (5 lines) in routes/erp_endpoints_routes.py:102"}, "properties": {"repobilityId": "319d3e298d45973d", "scanner": "scanner-primary", "fingerprint": "3cf7ee15a5428870", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-c790e60e2da1e495", "level": "note", "message": {"text": "Legacy-named symbol `pipeline_v1` in routes/ocr_recognize_routes.py:204"}, "properties": {"repobilityId": "3d692143a7cc8511", "scanner": "scanner-primary", "fingerprint": "c790e60e2da1e495", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "legacy-marker", "dead-code"]}}, {"ruleId": "scanner-52a0ae889a1256d7", "level": "note", "message": {"text": "Legacy-named symbol `clear_old` in routes/vat_excel_tasks_routes.py:3"}, "properties": {"repobilityId": "13774eae0736255d", "scanner": "scanner-primary", "fingerprint": "52a0ae889a1256d7", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "legacy-marker", "dead-code"]}}, {"ruleId": "scanner-204ea42e910408dc", "level": "none", "message": {"text": "Commented-code block (5 lines) in routes/erp_listing_routes.py:53"}, "properties": {"repobilityId": "d55432074b823ac3", "scanner": "scanner-primary", "fingerprint": "204ea42e910408dc", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-4cf59e318d107645", "level": "none", "message": {"text": "Commented-code block (6 lines) in services/playwright_bootstrap.py:151"}, "properties": {"repobilityId": "d3d4e4955314f58a", "scanner": "scanner-primary", "fingerprint": "4cf59e318d107645", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-1ece18e261fb219c", "level": "note", "message": {"text": "Legacy-named symbol `bank_recon_v2` in services/startup.py:190"}, "properties": {"repobilityId": "5f3782aef2d67592", "scanner": "scanner-primary", "fingerprint": "1ece18e261fb219c", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "legacy-marker", "dead-code"]}}, {"ruleId": "scanner-7c6d366e2b40ac40", "level": "none", "message": {"text": "Commented-code block (6 lines) in services/startup.py:336"}, "properties": {"repobilityId": "9d6f227e18adde67", "scanner": "scanner-primary", "fingerprint": "7c6d366e2b40ac40", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-613ae9847cfd6a1c", "level": "note", "message": {"text": "Legacy-named symbol `bank_recon_v2` in services/importer/__init__.py:4"}, "properties": {"repobilityId": "60e69551cb2d43c0", "scanner": "scanner-primary", "fingerprint": "613ae9847cfd6a1c", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "legacy-marker", "dead-code"]}}, {"ruleId": "scanner-2051443b18bda2ad", "level": "note", "message": {"text": "Legacy-named symbol `bank_recon_v2` in services/importer/gl_inference.py:7"}, "properties": {"repobilityId": "21604777d258df1b", "scanner": "scanner-primary", "fingerprint": "2051443b18bda2ad", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "legacy-marker", "dead-code"]}}, {"ruleId": "scanner-d3537811ac1651c5", "level": "note", "message": {"text": "Legacy-named symbol `bank_recon_v2` in services/importer/template_store.py:5"}, "properties": {"repobilityId": "633877218cb7a212", "scanner": "scanner-primary", "fingerprint": "d3537811ac1651c5", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "legacy-marker", "dead-code"]}}, {"ruleId": "scanner-0513c42798572bd2", "level": "note", "message": {"text": "Legacy-named symbol `bank_recon_v2` in services/importer/synonyms.py:7"}, "properties": {"repobilityId": "bf39a202cad2b863", "scanner": "scanner-primary", "fingerprint": "0513c42798572bd2", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "legacy-marker", "dead-code"]}}, {"ruleId": "scanner-6458a425eb51b58d", "level": "note", "message": {"text": "Legacy-named symbol `bank_recon_v2` in services/importer/stmt_review.py:5"}, "properties": {"repobilityId": "ee9f55ec09d699c5", "scanner": "scanner-primary", "fingerprint": "6458a425eb51b58d", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "legacy-marker", "dead-code"]}}, {"ruleId": "scanner-01dec75a75153968", "level": "note", "message": {"text": "Legacy-named symbol `bank_recon_v2` in services/importer/template_learning.py:6"}, "properties": {"repobilityId": "2c550766d89122b5", "scanner": "scanner-primary", "fingerprint": "01dec75a75153968", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "legacy-marker", "dead-code"]}}, {"ruleId": "scanner-382e14dc800c0de4", "level": "note", "message": {"text": "Legacy-named symbol `bank_recon_v2` in services/importer/ai_mapping.py:12"}, "properties": {"repobilityId": "e34bbce2c213837c", "scanner": "scanner-primary", "fingerprint": "382e14dc800c0de4", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "legacy-marker", "dead-code"]}}, {"ruleId": "scanner-4d5b80a1023d3399", "level": "none", "message": {"text": "Commented-code block (5 lines) in services/auth/user_lookup.py:28"}, "properties": {"repobilityId": "5c04f45aaeb6a912", "scanner": "scanner-primary", "fingerprint": "4d5b80a1023d3399", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-5046a5d6203ed660", "level": "none", "message": {"text": "Commented-code block (5 lines) in services/auth/auth_signup.py:408"}, "properties": {"repobilityId": "4891d8bf920b125f", "scanner": "scanner-primary", "fingerprint": "5046a5d6203ed660", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-3a29beda916be17e", "level": "none", "message": {"text": "Commented-code block (12 lines) in services/exceptions/knowledge_bridge.py:31"}, "properties": {"repobilityId": "502e256711e419f5", "scanner": "scanner-primary", "fingerprint": "3a29beda916be17e", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-e9ab5eddebe4caea", "level": "note", "message": {"text": "Legacy-named symbol `bank_recon_v2` in services/vat/vat_excel_exporter.py:27"}, "properties": {"repobilityId": "4e4acc4d7642d020", "scanner": "scanner-primary", "fingerprint": "e9ab5eddebe4caea", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "legacy-marker", "dead-code"]}}, {"ruleId": "scanner-bae0d596613d3ce2", "level": "none", "message": {"text": "Commented-code block (5 lines) in services/vat/vat_excel_i18n.py:4"}, "properties": {"repobilityId": "fb6e8b6a0846a6ed", "scanner": "scanner-primary", "fingerprint": "bae0d596613d3ce2", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-e15158e3b9d0845e", "level": "none", "message": {"text": "Commented-code block (5 lines) in services/vat/vat_ocr_extract.py:266"}, "properties": {"repobilityId": "3fc7b53539fdfe59", "scanner": "scanner-primary", "fingerprint": "e15158e3b9d0845e", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-a33558a33545acf1", "level": "note", "message": {"text": "Legacy-named symbol `pipeline_v1` in services/vat/vat_report_parser.py:111"}, "properties": {"repobilityId": "37ccac8f0836ef3e", "scanner": "scanner-primary", "fingerprint": "a33558a33545acf1", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "legacy-marker", "dead-code"]}}, {"ruleId": "scanner-75451add1a26392b", "level": "note", "message": {"text": "Legacy-named symbol `pipeline_v1` in services/email_ingest/email_ingest_pipeline.py:90"}, "properties": {"repobilityId": "921aacbb95841e4b", "scanner": "scanner-primary", "fingerprint": "75451add1a26392b", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "legacy-marker", "dead-code"]}}, {"ruleId": "scanner-b9ef5fc15c72b1b4", "level": "note", "message": {"text": "Legacy-named symbol `ok_old` in services/team/ownership.py:93"}, "properties": {"repobilityId": "3040eeaf82edf922", "scanner": "scanner-primary", "fingerprint": "b9ef5fc15c72b1b4", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "legacy-marker", "dead-code"]}}, {"ruleId": "scanner-feec0b810d167051", "level": "none", "message": {"text": "Commented-code block (5 lines) in services/user_settings/store.py:44"}, "properties": {"repobilityId": "39f5f6599f0fc436", "scanner": "scanner-primary", "fingerprint": "feec0b810d167051", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-1cf2f7954024f5ba", "level": "note", "message": {"text": "Legacy-named symbol `is_copy` in services/ocr_history/mutations.py:23"}, "properties": {"repobilityId": "5613c589b333ceec", "scanner": "scanner-primary", "fingerprint": "1cf2f7954024f5ba", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "legacy-marker", "dead-code"]}}, {"ruleId": "scanner-587a00a94e73352e", "level": "none", "message": {"text": "Commented-code block (10 lines) in services/billing/charge.py:70"}, "properties": {"repobilityId": "2e8b9dcf3a448a76", "scanner": "scanner-primary", "fingerprint": "587a00a94e73352e", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-b16473be7a03d1ac", "level": "none", "message": {"text": "Commented-code block (5 lines) in services/billing/credits_schema.py:124"}, "properties": {"repobilityId": "b3f1b091145bd3cb", "scanner": "scanner-primary", "fingerprint": "b16473be7a03d1ac", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-a9e3732cd28f2aca", "level": "note", "message": {"text": "Stub function `_noop` (body is just `pass`/`return`) \u2014 services/recon_jobs/_handler_common.py:27"}, "properties": {"repobilityId": "e0f0a27e6b5bfe31", "scanner": "scanner-primary", "fingerprint": "a9e3732cd28f2aca", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "empty-handler", "dead-code"]}}, {"ruleId": "scanner-f00cf96f5c12609e", "level": "note", "message": {"text": "Legacy-named symbol `parse_gl_v2` in services/recon_jobs/bank_handler.py:31"}, "properties": {"repobilityId": "0e9aa69b8ef11f64", "scanner": "scanner-primary", "fingerprint": "f00cf96f5c12609e", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "legacy-marker", "dead-code"]}}, {"ruleId": "scanner-156203d5532bb39f", "level": "none", "message": {"text": "Commented-code block (6 lines) in services/recon_jobs/bank_handler.py:196"}, "properties": {"repobilityId": "593ff3e82b657beb", "scanner": "scanner-primary", "fingerprint": "156203d5532bb39f", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-c8c534f2cb732dcb", "level": "note", "message": {"text": "Legacy-named symbol `tenant_type_v2` in services/membership/schema.py:10"}, "properties": {"repobilityId": "4707b5b63dddd0e7", "scanner": "scanner-primary", "fingerprint": "c8c534f2cb732dcb", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "legacy-marker", "dead-code"]}}, {"ruleId": "scanner-c06473884b40ddbb", "level": "note", "message": {"text": "Legacy-named symbol `tenant_type_v2` in services/membership/migration.py:293"}, "properties": {"repobilityId": "61e7ef4641844e99", "scanner": "scanner-primary", "fingerprint": "c06473884b40ddbb", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "legacy-marker", "dead-code"]}}, {"ruleId": "scanner-765c963a9eafb4ef", "level": "note", "message": {"text": "Legacy-named symbol `ERP_IMPORT_FORMAT_v1` in services/report/report_engine_templates.py:203"}, "properties": {"repobilityId": "b0e1fc7c9dc70934", "scanner": "scanner-primary", "fingerprint": "765c963a9eafb4ef", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "legacy-marker", "dead-code"]}}, {"ruleId": "scanner-2b5fd0c9f1bb4562", "level": "note", "message": {"text": "Legacy-named symbol `build_copy` in services/sales/pdf.py:204"}, "properties": {"repobilityId": "0fd5fa9f7c8fc4a2", "scanner": "scanner-primary", "fingerprint": "2b5fd0c9f1bb4562", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "legacy-marker", "dead-code"]}}, {"ruleId": "scanner-cbdcb812d53b65eb", "level": "none", "message": {"text": "Commented-code block (5 lines) in services/erp/mrerp_adapter_report.py:81"}, "properties": {"repobilityId": "21892201df66ab6e", "scanner": "scanner-primary", "fingerprint": "cbdcb812d53b65eb", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-b8ab39fc3241d440", "level": "none", "message": {"text": "Commented-code block (6 lines) in services/erp/_customer_sync_const.py:21"}, "properties": {"repobilityId": "ac907daf78752dd6", "scanner": "scanner-primary", "fingerprint": "b8ab39fc3241d440", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-4598f0e6c8eb7294", "level": "note", "message": {"text": "Legacy-named symbol `is_copy` in services/erp/erp_payload.py:48"}, "properties": {"repobilityId": "750da0c376c9a41c", "scanner": "scanner-primary", "fingerprint": "4598f0e6c8eb7294", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "legacy-marker", "dead-code"]}}, {"ruleId": "scanner-70c72658c0b13a18", "level": "none", "message": {"text": "Commented-code block (6 lines) in services/erp/mrerp_adapter_login.py:85"}, "properties": {"repobilityId": "cc7593beed3ddc30", "scanner": "scanner-primary", "fingerprint": "70c72658c0b13a18", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-efa6a3b0b1d2ebaf", "level": "none", "message": {"text": "Commented-code block (9 lines) in services/erp/erp_mrerp_listing.py:171"}, "properties": {"repobilityId": "c3cf3c2392c0a3ab", "scanner": "scanner-primary", "fingerprint": "efa6a3b0b1d2ebaf", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-2917be0c60446eda", "level": "none", "message": {"text": "Commented-code block (6 lines) in services/erp/push_retry.py:19"}, "properties": {"repobilityId": "3a69f2f23b87dbf5", "scanner": "scanner-primary", "fingerprint": "2917be0c60446eda", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-1a01a90c879c9f21", "level": "none", "message": {"text": "Commented-code block (5 lines) in services/erp/mrerp_xlsx_lookups.py:45"}, "properties": {"repobilityId": "75385ce71a68f664", "scanner": "scanner-primary", "fingerprint": "1a01a90c879c9f21", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-1cc1f70e581ef1a9", "level": "none", "message": {"text": "Commented-code block (5 lines) in services/erp/mrerp_xlsx_schemas.py:21"}, "properties": {"repobilityId": "fd4698be79b51422", "scanner": "scanner-primary", "fingerprint": "1cc1f70e581ef1a9", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-3361a9847ea58d74", "level": "none", "message": {"text": "Commented-code block (5 lines) in services/erp/mrerp_dms_adapter.py:238"}, "properties": {"repobilityId": "61b5742fbafebd7a", "scanner": "scanner-primary", "fingerprint": "3361a9847ea58d74", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-b9728534431bfc7d", "level": "note", "message": {"text": "Legacy-named symbol `_override_after_copy` in services/erp/mrerp_product_create.py:117"}, "properties": {"repobilityId": "d85c79d4bbfc485b", "scanner": "scanner-primary", "fingerprint": "b9728534431bfc7d", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "legacy-marker", "dead-code"]}}, {"ruleId": "scanner-59449149fcbc2033", "level": "none", "message": {"text": "Commented-code block (5 lines) in services/erp/mrerp_product_create.py:80"}, "properties": {"repobilityId": "2a9af59c176ea84a", "scanner": "scanner-primary", "fingerprint": "59449149fcbc2033", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-b2dc1bd9f1186cf3", "level": "none", "message": {"text": "Commented-code block (15 lines) in services/erp/_browser.py:157"}, "properties": {"repobilityId": "f97b7a3ecb2161c6", "scanner": "scanner-primary", "fingerprint": "b2dc1bd9f1186cf3", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-a43b9cf3f19a7169", "level": "none", "message": {"text": "Commented-code block (5 lines) in services/erp/erp_push.py:360"}, "properties": {"repobilityId": "ab9392f52f5ce59c", "scanner": "scanner-primary", "fingerprint": "a43b9cf3f19a7169", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-c1d50ee3aa1eaea2", "level": "none", "message": {"text": "Commented-code block (5 lines) in services/erp/mrerp_xlsx_generator.py:353"}, "properties": {"repobilityId": "e0e8f4560bbf5c01", "scanner": "scanner-primary", "fingerprint": "c1d50ee3aa1eaea2", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-fe7cd0c33e8dc8e6", "level": "none", "message": {"text": "Commented-code block (7 lines) in services/erp/mrerp_adapter_upload.py:85"}, "properties": {"repobilityId": "55bb0e83dcd643a6", "scanner": "scanner-primary", "fingerprint": "fe7cd0c33e8dc8e6", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-efbbb4d2643e38ad", "level": "none", "message": {"text": "Commented-code block (5 lines) in services/erp/_customer_sync_fetch.py:353"}, "properties": {"repobilityId": "cf58551294d73ed9", "scanner": "scanner-primary", "fingerprint": "efbbb4d2643e38ad", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-d8aca6fb14eb33d9", "level": "note", "message": {"text": "Legacy-named symbol `_override_after_copy` in services/erp/_customer_sync_create.py:112"}, "properties": {"repobilityId": "42b71a8097171dbd", "scanner": "scanner-primary", "fingerprint": "d8aca6fb14eb33d9", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "legacy-marker", "dead-code"]}}, {"ruleId": "scanner-84eef330ebb2913a", "level": "none", "message": {"text": "Commented-code block (15 lines) in services/erp/mrerp_adapter.py:158"}, "properties": {"repobilityId": "f9f0099db0aaff95", "scanner": "scanner-primary", "fingerprint": "84eef330ebb2913a", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-a193582693ba5021", "level": "none", "message": {"text": "Commented-code block (5 lines) in services/erp/erp_mrerp_crud.py:179"}, "properties": {"repobilityId": "4447826d9affde51", "scanner": "scanner-primary", "fingerprint": "a193582693ba5021", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-65cecf6764e89170", "level": "note", "message": {"text": "Legacy-named symbol `bank_recon_v2` in services/recon/bank_stmt_gemini.py:4"}, "properties": {"repobilityId": "219076c4eb34068b", "scanner": "scanner-primary", "fingerprint": "65cecf6764e89170", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "legacy-marker", "dead-code"]}}, {"ruleId": "scanner-c22b319b46dc8e4b", "level": "note", "message": {"text": "Legacy-named symbol `bank_recon_v2` in services/recon/bank_stmt_text.py:4"}, "properties": {"repobilityId": "69bc612cdd9dd753", "scanner": "scanner-primary", "fingerprint": "c22b319b46dc8e4b", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "legacy-marker", "dead-code"]}}, {"ruleId": "scanner-ac855325775f986b", "level": "note", "message": {"text": "Legacy-named symbol `bank_recon_v2` in services/recon/bank_stmt_legacy_parsers.py:7"}, "properties": {"repobilityId": "186311d4eb755666", "scanner": "scanner-primary", "fingerprint": "ac855325775f986b", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "legacy-marker", "dead-code"]}}, {"ruleId": "scanner-738d955cf6b4e026", "level": "note", "message": {"text": "Legacy-named symbol `bank_recon_v2` in services/recon/bank_recon_v2.py:3"}, "properties": {"repobilityId": "0027bf441c6d78ae", "scanner": "scanner-primary", "fingerprint": "738d955cf6b4e026", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "legacy-marker", "dead-code"]}}, {"ruleId": "scanner-204329cf764ea294", "level": "none", "message": {"text": "Commented-code block (5 lines) in services/recon/vat_recon_core.py:403"}, "properties": {"repobilityId": "2c7af2a9f6ba7b6d", "scanner": "scanner-primary", "fingerprint": "204329cf764ea294", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-645cc5a9cf350c7f", "level": "note", "message": {"text": "Legacy-named symbol `bank_recon_v2` in services/recon/bank_stmt_extract.py:4"}, "properties": {"repobilityId": "a2025b4ba4928b41", "scanner": "scanner-primary", "fingerprint": "645cc5a9cf350c7f", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "legacy-marker", "dead-code"]}}, {"ruleId": "scanner-3933ffeb58b13e61", "level": "none", "message": {"text": "Commented-code block (5 lines) in services/recon/bank_recon_merge.py:74"}, "properties": {"repobilityId": "4f242f13f07e84f9", "scanner": "scanner-primary", "fingerprint": "3933ffeb58b13e61", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-e03f2648581a56ee", "level": "note", "message": {"text": "Legacy-named symbol `bank_recon_v2` in services/recon/bank_recon_types.py:4"}, "properties": {"repobilityId": "88117385721c4eb1", "scanner": "scanner-primary", "fingerprint": "e03f2648581a56ee", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "legacy-marker", "dead-code"]}}, {"ruleId": "scanner-ccee21b06591e23f", "level": "note", "message": {"text": "Legacy-named symbol `bank_recon_v2` in services/recon/bank_recon_excel.py:4"}, "properties": {"repobilityId": "93528a1b73d4ff64", "scanner": "scanner-primary", "fingerprint": "ccee21b06591e23f", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "legacy-marker", "dead-code"]}}, {"ruleId": "scanner-fc7ee88e0333a1bc", "level": "none", "message": {"text": "Commented-code block (9 lines) in services/recon/bank_recon_excel.py:44"}, "properties": {"repobilityId": "c463b0e00266b87a", "scanner": "scanner-primary", "fingerprint": "fc7ee88e0333a1bc", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-078f055777c56627", "level": "none", "message": {"text": "Commented-code block (5 lines) in services/recon/bank_gl_excel.py:186"}, "properties": {"repobilityId": "0d5bd56a144a4346", "scanner": "scanner-primary", "fingerprint": "078f055777c56627", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-c438c71903e89b51", "level": "note", "message": {"text": "Legacy-named symbol `bank_recon_v2` in services/recon/bank_recon_pipeline.py:8"}, "properties": {"repobilityId": "0d605936d40d1f63", "scanner": "scanner-primary", "fingerprint": "c438c71903e89b51", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "legacy-marker", "dead-code"]}}, {"ruleId": "scanner-f146a9726cf066d8", "level": "note", "message": {"text": "Legacy-named symbol `bank_recon_v2` in services/recon/gl_vat_parse_excel.py:94"}, "properties": {"repobilityId": "f7321559a4793732", "scanner": "scanner-primary", "fingerprint": "f146a9726cf066d8", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "legacy-marker", "dead-code"]}}, {"ruleId": "scanner-1560e9f481edf155", "level": "note", "message": {"text": "Legacy-named symbol `bank_stmt_legacy` in services/recon/bank_stmt_legacy.py:3"}, "properties": {"repobilityId": "ecb3cfc0e5543816", "scanner": "scanner-primary", "fingerprint": "1560e9f481edf155", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "legacy-marker", "dead-code"]}}, {"ruleId": "scanner-4206e6dfa2e9c27e", "level": "none", "message": {"text": "Commented-code block (13 lines) in services/recon/bank_recon_excel_summary.py:28"}, "properties": {"repobilityId": "e0e3d92ce13d3403", "scanner": "scanner-primary", "fingerprint": "4206e6dfa2e9c27e", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-7b30ee4ec35ae3ee", "level": "note", "message": {"text": "Legacy-named symbol `bank_recon_v2` in services/recon/bank_recon_utils.py:5"}, "properties": {"repobilityId": "64860e811032fc47", "scanner": "scanner-primary", "fingerprint": "7b30ee4ec35ae3ee", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "legacy-marker", "dead-code"]}}, {"ruleId": "scanner-3abb401580b09fe0", "level": "note", "message": {"text": "Legacy-named symbol `bank_recon_v2` in services/recon/bank_stmt_balance.py:5"}, "properties": {"repobilityId": "731410a7af6b798a", "scanner": "scanner-primary", "fingerprint": "3abb401580b09fe0", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "legacy-marker", "dead-code"]}}, {"ruleId": "scanner-d202e124e55adb64", "level": "none", "message": {"text": "Commented-code block (5 lines) in services/recon/bank_stmt_balance.py:257"}, "properties": {"repobilityId": "f6cbb94de5a2c40f", "scanner": "scanner-primary", "fingerprint": "d202e124e55adb64", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-eee3a2cd04352f56", "level": "note", "message": {"text": "Legacy-named symbol `bank_recon_v2` in services/recon/bank_stmt_xlsx.py:488"}, "properties": {"repobilityId": "537924ccbc56c932", "scanner": "scanner-primary", "fingerprint": "eee3a2cd04352f56", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "legacy-marker", "dead-code"]}}, {"ruleId": "scanner-96b4bf18733d313c", "level": "note", "message": {"text": "Legacy-named symbol `is_copy` in services/ocr/line_image_ocr.py:85"}, "properties": {"repobilityId": "0cef01b113b019d3", "scanner": "scanner-primary", "fingerprint": "96b4bf18733d313c", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "legacy-marker", "dead-code"]}}, {"ruleId": "scanner-5511a202bf5b94dd", "level": "none", "message": {"text": "Commented-code block (5 lines) in services/ocr/page_runner.py:310"}, "properties": {"repobilityId": "8a4384f55a399f87", "scanner": "scanner-primary", "fingerprint": "5511a202bf5b94dd", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-fc61d3427ac82f2a", "level": "note", "message": {"text": "Legacy-named symbol `pipeline_v1` in services/ocr/schemas_results.py:180"}, "properties": {"repobilityId": "acd52b0ffa5e4185", "scanner": "scanner-primary", "fingerprint": "fc61d3427ac82f2a", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "legacy-marker", "dead-code"]}}, {"ruleId": "scanner-023916b1719c33a3", "level": "none", "message": {"text": "Commented-code block (8 lines) in services/ocr/layer3_fallback.py:74"}, "properties": {"repobilityId": "a535fa2a8f79156d", "scanner": "scanner-primary", "fingerprint": "023916b1719c33a3", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-ce46226ad1d34e0b", "level": "note", "message": {"text": "Legacy-named symbol `is_copy` in services/ocr/legacy_adapter.py:16"}, "properties": {"repobilityId": "aff6b6f01add853a", "scanner": "scanner-primary", "fingerprint": "ce46226ad1d34e0b", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "legacy-marker", "dead-code"]}}, {"ruleId": "scanner-7e3911021227a1fe", "level": "none", "message": {"text": "Commented-code block (5 lines) in services/ocr/schemas_invoice.py:216"}, "properties": {"repobilityId": "55e00c7235930d4f", "scanner": "scanner-primary", "fingerprint": "7e3911021227a1fe", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-27176a566b1c9b4c", "level": "note", "message": {"text": "Legacy-named symbol `is_copy` in services/ocr/pdf_text_extractor.py:452"}, "properties": {"repobilityId": "8468e30d5362060f", "scanner": "scanner-primary", "fingerprint": "27176a566b1c9b4c", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "legacy-marker", "dead-code"]}}, {"ruleId": "scanner-5ac96c319f0604a8", "level": "none", "message": {"text": "Commented-code block (5 lines) in services/ocr/validators.py:277"}, "properties": {"repobilityId": "bd9e97adba5f0ab1", "scanner": "scanner-primary", "fingerprint": "5ac96c319f0604a8", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-5ade03f2e8e0b1d6", "level": "none", "message": {"text": "Commented-code block (6 lines) in services/ocr/recognize/autopush.py:25"}, "properties": {"repobilityId": "208ed0aad4bb1298", "scanner": "scanner-primary", "fingerprint": "5ade03f2e8e0b1d6", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-199e1437fb5d9155", "level": "note", "message": {"text": "Legacy-named symbol `is_copy` in services/ocr/recognize/cache.py:68"}, "properties": {"repobilityId": "27f2d1de63d34e5d", "scanner": "scanner-primary", "fingerprint": "199e1437fb5d9155", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "legacy-marker", "dead-code"]}}, {"ruleId": "scanner-d50aeed6b631deb8", "level": "none", "message": {"text": "Commented-code block (8 lines) in services/ocr/recognize/persist.py:249"}, "properties": {"repobilityId": "8f93a486f0cf4112", "scanner": "scanner-primary", "fingerprint": "d50aeed6b631deb8", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-4e2b944fa198b9c3", "level": "note", "message": {"text": "Legacy-named symbol `bank_recon_v2` in core/db.py:81"}, "properties": {"repobilityId": "ed1f4adb82968216", "scanner": "scanner-primary", "fingerprint": "4e2b944fa198b9c3", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "legacy-marker", "dead-code"]}}, {"ruleId": "scanner-e7ddefb4fa504b05", "level": "none", "message": {"text": "Commented-code block (5 lines) in core/db.py:41"}, "properties": {"repobilityId": "301b6720c645395f", "scanner": "scanner-primary", "fingerprint": "e7ddefb4fa504b05", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-c945104cdc2c0586", "level": "none", "message": {"text": "Commented-code block (6 lines) in core/route_helpers.py:208"}, "properties": {"repobilityId": "2ea8528c9cac1d86", "scanner": "scanner-primary", "fingerprint": "c945104cdc2c0586", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-d1546832bb9b2b46", "level": "note", "message": {"text": "Legacy-named symbol `bank_recon_v2` in alembic/versions/004_import_template_mappings.py:4"}, "properties": {"repobilityId": "7b63f52e195624a0", "scanner": "scanner-primary", "fingerprint": "d1546832bb9b2b46", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "legacy-marker", "dead-code"]}}, {"ruleId": "scanner-03e41380dab12136", "level": "note", "message": {"text": "Legacy-named symbol `bank_recon_v2` in probes/s7_ai_mapping_smoke.py:24"}, "properties": {"repobilityId": "0802685f788e147c", "scanner": "scanner-primary", "fingerprint": "03e41380dab12136", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "legacy-marker", "dead-code"]}}, {"ruleId": "scanner-aefbb3f7a678c06f", "level": "note", "message": {"text": "Legacy-named symbol `bank_recon_v2` in probes/s7_boundary_audit.py:22"}, "properties": {"repobilityId": "103101986a0dab67", "scanner": "scanner-primary", "fingerprint": "aefbb3f7a678c06f", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "legacy-marker", "dead-code"]}}, {"ruleId": "scanner-d7a0ae7282342784", "level": "none", "message": {"text": "Commented-code block (6 lines) in src/types/globals.d.ts:1"}, "properties": {"repobilityId": "35a13933b1e3f505", "scanner": "scanner-primary", "fingerprint": "d7a0ae7282342784", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-bf701b7d1b9fa28b", "level": "none", "message": {"text": "Commented-code block (6 lines) in src/home/purchase-common.ts:446"}, "properties": {"repobilityId": "5c7aaa05fc384ae5", "scanner": "scanner-primary", "fingerprint": "bf701b7d1b9fa28b", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-d044d54ea9a34ebd", "level": "none", "message": {"text": "Commented-code block (5 lines) in src/home/workspace-switcher.ts:7"}, "properties": {"repobilityId": "8cfe456c21bd2466", "scanner": "scanner-primary", "fingerprint": "d044d54ea9a34ebd", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-4199472142488e2a", "level": "none", "message": {"text": "Commented-code block (5 lines) in src/home/settings-core.ts:234"}, "properties": {"repobilityId": "2fa77843ea5be01f", "scanner": "scanner-primary", "fingerprint": "4199472142488e2a", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-51796877ebfc9f07", "level": "none", "message": {"text": "Commented-code block (5 lines) in src/home/camera-image-utils.ts:4"}, "properties": {"repobilityId": "08b6168547a7ea79", "scanner": "scanner-primary", "fingerprint": "51796877ebfc9f07", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-b4c13afccf08971a", "level": "none", "message": {"text": "Commented-code block (12 lines) in src/home/ocr-results.ts:5"}, "properties": {"repobilityId": "954ffeae9e4e3bc2", "scanner": "scanner-primary", "fingerprint": "b4c13afccf08971a", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-136c9de33e9b25cb", "level": "none", "message": {"text": "Commented-code block (6 lines) in src/home/confirm-modals-html.ts:4"}, "properties": {"repobilityId": "722a09901b9245fc", "scanner": "scanner-primary", "fingerprint": "136c9de33e9b25cb", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-4dc31baadb9a6472", "level": "none", "message": {"text": "Commented-code block (8 lines) in src/home/erp-xero.ts:4"}, "properties": {"repobilityId": "b488cb610993c941", "scanner": "scanner-primary", "fingerprint": "4dc31baadb9a6472", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-1c769cc0e22aefa0", "level": "none", "message": {"text": "Commented-code block (5 lines) in src/home/pos-onboarding.ts:1"}, "properties": {"repobilityId": "2d4e9b15f4e1423f", "scanner": "scanner-primary", "fingerprint": "1c769cc0e22aefa0", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-2c5ed50172961fc0", "level": "note", "message": {"text": "Legacy-named symbol `pearnly_reconciliation_redesign_v2` in src/home/recon-center-x.ts:1"}, "properties": {"repobilityId": "b2294113aff89911", "scanner": "scanner-primary", "fingerprint": "2c5ed50172961fc0", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "legacy-marker", "dead-code"]}}, {"ruleId": "scanner-6b2d941f9559590b", "level": "none", "message": {"text": "Commented-code block (6 lines) in src/home/welcome-wizard.ts:9"}, "properties": {"repobilityId": "29e6cefc9f7841a3", "scanner": "scanner-primary", "fingerprint": "6b2d941f9559590b", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-2f82ffd5690b58eb", "level": "none", "message": {"text": "Commented-code block (5 lines) in src/home/modal-archive-rule.ts:4"}, "properties": {"repobilityId": "1a8f150e2bc70489", "scanner": "scanner-primary", "fingerprint": "2f82ffd5690b58eb", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-d0d2cfcf4e44f5d3", "level": "none", "message": {"text": "Commented-code block (5 lines) in src/home/workspace-gate.ts:1"}, "properties": {"repobilityId": "c1bbf9845e60a597", "scanner": "scanner-primary", "fingerprint": "d0d2cfcf4e44f5d3", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-812639053496176a", "level": "none", "message": {"text": "Commented-code block (9 lines) in src/home/big-batch-progress.ts:4"}, "properties": {"repobilityId": "f1e658c0675d1205", "scanner": "scanner-primary", "fingerprint": "812639053496176a", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-6f22cdb199a3b395", "level": "none", "message": {"text": "Commented-code block (8 lines) in src/home/endpoint-modal-html.ts:4"}, "properties": {"repobilityId": "2cadcca2e31f8b45", "scanner": "scanner-primary", "fingerprint": "6f22cdb199a3b395", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-84e1b3ef840730df", "level": "none", "message": {"text": "Commented-code block (5 lines) in src/home/pos-cashiers.ts:1"}, "properties": {"repobilityId": "4e3f0befa184d360", "scanner": "scanner-primary", "fingerprint": "84e1b3ef840730df", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-cf1187759db9e3fb", "level": "none", "message": {"text": "Commented-code block (5 lines) in src/home/dashboard.ts:11"}, "properties": {"repobilityId": "ea998486054c9871", "scanner": "scanner-primary", "fingerprint": "cf1187759db9e3fb", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-1c2f6e3d23279d9b", "level": "none", "message": {"text": "Commented-code block (5 lines) in src/home/erp-mappings.ts:9"}, "properties": {"repobilityId": "ccdbd463c2e97f02", "scanner": "scanner-primary", "fingerprint": "1c2f6e3d23279d9b", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-5ce312785f5a3d83", "level": "none", "message": {"text": "Commented-code block (8 lines) in src/home/erp-integration.ts:1"}, "properties": {"repobilityId": "2089578a7c400d95", "scanner": "scanner-primary", "fingerprint": "5ce312785f5a3d83", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-5f3ceca424e124be", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 src/home/erp-integration.ts:91"}, "properties": {"repobilityId": "82814843578ed43b", "scanner": "scanner-primary", "fingerprint": "5f3ceca424e124be", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-dffb1d51a9acac39", "level": "none", "message": {"text": "Commented-code block (5 lines) in src/home/knowledge-sources.ts:4"}, "properties": {"repobilityId": "b52934e5c15ca3ce", "scanner": "scanner-primary", "fingerprint": "dffb1d51a9acac39", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-100b1ea1fa6d6561", "level": "none", "message": {"text": "Commented-code block (7 lines) in src/home/page-reconcile.ts:6"}, "properties": {"repobilityId": "54d406fb713284a4", "scanner": "scanner-primary", "fingerprint": "100b1ea1fa6d6561", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-cb6419135f19d926", "level": "none", "message": {"text": "Commented-code block (5 lines) in src/home/billing.ts:10"}, "properties": {"repobilityId": "7ab87d6c7814857e", "scanner": "scanner-primary", "fingerprint": "cb6419135f19d926", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-511d6053d404de5e", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 src/home/billing.ts:37"}, "properties": {"repobilityId": "ed8e357e42863782", "scanner": "scanner-primary", "fingerprint": "511d6053d404de5e", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-822cfbe09f92d6bb", "level": "none", "message": {"text": "Commented-code block (7 lines) in src/home/page-dashboard.ts:4"}, "properties": {"repobilityId": "e1c5862b393ff8bd", "scanner": "scanner-primary", "fingerprint": "822cfbe09f92d6bb", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-1ce6b92a19732180", "level": "none", "message": {"text": "Commented-code block (5 lines) in src/home/dms-intake-html.ts:1"}, "properties": {"repobilityId": "25306d43701e4c30", "scanner": "scanner-primary", "fingerprint": "1ce6b92a19732180", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-ed85340e08c6fe67", "level": "none", "message": {"text": "Commented-code block (5 lines) in src/home/pos-payment-settings.ts:1"}, "properties": {"repobilityId": "83eee04c079d105f", "scanner": "scanner-primary", "fingerprint": "ed85340e08c6fe67", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-063702c0e0416961", "level": "none", "message": {"text": "Commented-code block (10 lines) in src/home/page-settings.ts:4"}, "properties": {"repobilityId": "e099715084460d8f", "scanner": "scanner-primary", "fingerprint": "063702c0e0416961", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-df20fd3a1ffc4292", "level": "none", "message": {"text": "Commented-code block (6 lines) in src/home/session-heartbeat.ts:4"}, "properties": {"repobilityId": "173263b38b4ece27", "scanner": "scanner-primary", "fingerprint": "df20fd3a1ffc4292", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-c4ee9633c29b090f", "level": "none", "message": {"text": "Commented-code block (9 lines) in src/home/history-list.ts:4"}, "properties": {"repobilityId": "a68da60a635f8906", "scanner": "scanner-primary", "fingerprint": "c4ee9633c29b090f", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-422c07bb4c474278", "level": "note", "message": {"text": "Legacy-named symbol `is_copy` in src/home/ocr-fields.ts:15"}, "properties": {"repobilityId": "acd5f642b0b27de3", "scanner": "scanner-primary", "fingerprint": "422c07bb4c474278", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "legacy-marker", "dead-code"]}}, {"ruleId": "scanner-359fd65d72006b46", "level": "none", "message": {"text": "Commented-code block (5 lines) in src/home/bank-client-picker-html.ts:4"}, "properties": {"repobilityId": "6c146f790ecc47cf", "scanner": "scanner-primary", "fingerprint": "359fd65d72006b46", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-4a43cb822f59c921", "level": "none", "message": {"text": "Commented-code block (5 lines) in src/home/purchase-detail.ts:1"}, "properties": {"repobilityId": "ce087278ef8690d4", "scanner": "scanner-primary", "fingerprint": "4a43cb822f59c921", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-2ecb259207ef1fc8", "level": "none", "message": {"text": "Commented-code block (5 lines) in src/home/page-automation-panes-1.ts:1"}, "properties": {"repobilityId": "c1b701846f9d857b", "scanner": "scanner-primary", "fingerprint": "2ecb259207ef1fc8", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-3e893d5804e40d2c", "level": "none", "message": {"text": "Commented-code block (8 lines) in src/home/page-automation.ts:7"}, "properties": {"repobilityId": "5298a3602272f16a", "scanner": "scanner-primary", "fingerprint": "3e893d5804e40d2c", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-b952195895056bc6", "level": "none", "message": {"text": "Commented-code block (8 lines) in src/home/notifications.ts:4"}, "properties": {"repobilityId": "7326b70d4d82cc8a", "scanner": "scanner-primary", "fingerprint": "b952195895056bc6", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-f4e380edaf54ac62", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 src/home/notifications.ts:23"}, "properties": {"repobilityId": "e3e5628edf9c90bc", "scanner": "scanner-primary", "fingerprint": "f4e380edaf54ac62", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-3cc834fefc485a59", "level": "none", "message": {"text": "Commented-code block (5 lines) in src/home/pos-tables.ts:1"}, "properties": {"repobilityId": "d208aede020d65bc", "scanner": "scanner-primary", "fingerprint": "3cc834fefc485a59", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-aeed0e6bb98a9959", "level": "none", "message": {"text": "Commented-code block (5 lines) in src/home/knowledge-documents.ts:4"}, "properties": {"repobilityId": "382550d78ebeab6f", "scanner": "scanner-primary", "fingerprint": "aeed0e6bb98a9959", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-183af5a5c47ae74d", "level": "none", "message": {"text": "Commented-code block (6 lines) in src/home/exceptions-store.ts:1"}, "properties": {"repobilityId": "71ea4a4700d4b960", "scanner": "scanner-primary", "fingerprint": "183af5a5c47ae74d", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-3dc01baf5cd5d390", "level": "none", "message": {"text": "Commented-code block (5 lines) in src/home/bank-recon.ts:1"}, "properties": {"repobilityId": "3b01bb06d517de57", "scanner": "scanner-primary", "fingerprint": "3dc01baf5cd5d390", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-4410d4eaeac758ca", "level": "none", "message": {"text": "Commented-code block (6 lines) in src/home/dms-intake.ts:1"}, "properties": {"repobilityId": "a1e368b6f3e1dafe", "scanner": "scanner-primary", "fingerprint": "4410d4eaeac758ca", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-88db9d524841953b", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 src/home/recon-center-x-results.ts:259"}, "properties": {"repobilityId": "22d38fdec22e287e", "scanner": "scanner-primary", "fingerprint": "88db9d524841953b", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-c24ef41a809320e6", "level": "none", "message": {"text": "Commented-code block (5 lines) in src/home/change-password.ts:4"}, "properties": {"repobilityId": "0652db0774a16bf4", "scanner": "scanner-primary", "fingerprint": "c24ef41a809320e6", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-12c9f3cafc7effd3", "level": "none", "message": {"text": "Commented-code block (6 lines) in src/home/page-integrations.ts:4"}, "properties": {"repobilityId": "5985b49d248f745d", "scanner": "scanner-primary", "fingerprint": "12c9f3cafc7effd3", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-e3a93051c7b1df30", "level": "none", "message": {"text": "Commented-code block (8 lines) in src/home/topbar-avatar.ts:9"}, "properties": {"repobilityId": "f92c7415b27243f0", "scanner": "scanner-primary", "fingerprint": "e3a93051c7b1df30", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-38e78bf7eb34d18b", "level": "none", "message": {"text": "Commented-code block (5 lines) in src/home/clients-store.ts:1"}, "properties": {"repobilityId": "b44ef3cf799f5be5", "scanner": "scanner-primary", "fingerprint": "38e78bf7eb34d18b", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-f1471977b249b809", "level": "none", "message": {"text": "Commented-code block (7 lines) in src/home/ocr-push.ts:4"}, "properties": {"repobilityId": "d42bf822e33bb5da", "scanner": "scanner-primary", "fingerprint": "f1471977b249b809", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-8935513812003ac3", "level": "none", "message": {"text": "Commented-code block (6 lines) in src/home/dms-intake-invoice-submit.ts:1"}, "properties": {"repobilityId": "bc14e6597723f95e", "scanner": "scanner-primary", "fingerprint": "8935513812003ac3", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-de9efb4cc8e28df7", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 src/home/dms-intake-invoice-submit.ts:274"}, "properties": {"repobilityId": "3d00536cf44b125d", "scanner": "scanner-primary", "fingerprint": "de9efb4cc8e28df7", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-fa45ad86fa14ccf1", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 src/home/exceptions-list.ts:26"}, "properties": {"repobilityId": "8bf4073cae6e5720", "scanner": "scanner-primary", "fingerprint": "fa45ad86fa14ccf1", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-a7258bf85985ad4d", "level": "none", "message": {"text": "Commented-code block (6 lines) in src/home/page-history.ts:4"}, "properties": {"repobilityId": "305fc3411865d4d7", "scanner": "scanner-primary", "fingerprint": "a7258bf85985ad4d", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-0792d566057444a8", "level": "note", "message": {"text": "Legacy-named symbol `is_copy` in src/home/history-drawer.ts:133"}, "properties": {"repobilityId": "191f9776649bf15b", "scanner": "scanner-primary", "fingerprint": "0792d566057444a8", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "legacy-marker", "dead-code"]}}, {"ruleId": "scanner-8cd7961bc51ea308", "level": "none", "message": {"text": "Commented-code block (8 lines) in src/home/history-drawer.ts:4"}, "properties": {"repobilityId": "c46318ffef57a431", "scanner": "scanner-primary", "fingerprint": "8cd7961bc51ea308", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-8652ed533c29b452", "level": "none", "message": {"text": "Commented-code block (5 lines) in src/home/page-knowledge.ts:4"}, "properties": {"repobilityId": "06c4e216b6873aa9", "scanner": "scanner-primary", "fingerprint": "8652ed533c29b452", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-750e2890b1641b01", "level": "none", "message": {"text": "Commented-code block (7 lines) in src/home/line-email-modal.ts:4"}, "properties": {"repobilityId": "f4762626d34e1eac", "scanner": "scanner-primary", "fingerprint": "750e2890b1641b01", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-907b204e81d201a3", "level": "note", "message": {"text": "Legacy-named symbol `pearnly_reconciliation_redesign_v2` in src/home/recon-center-x-html.ts:1"}, "properties": {"repobilityId": "5401ce246e33bd00", "scanner": "scanner-primary", "fingerprint": "907b204e81d201a3", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "legacy-marker", "dead-code"]}}, {"ruleId": "scanner-2d84ec41585a7a1f", "level": "none", "message": {"text": "Commented-code block (8 lines) in src/home/format-date.ts:1"}, "properties": {"repobilityId": "33eb797d78a94a81", "scanner": "scanner-primary", "fingerprint": "2d84ec41585a7a1f", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-09dcf2a01e9d8104", "level": "none", "message": {"text": "Commented-code block (6 lines) in src/home/page-clients.ts:4"}, "properties": {"repobilityId": "b9da8ebe59fdd0fe", "scanner": "scanner-primary", "fingerprint": "09dcf2a01e9d8104", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-f0fecf16604d3fae", "level": "none", "message": {"text": "Commented-code block (6 lines) in src/home/core.ts:205"}, "properties": {"repobilityId": "9f565c1e63eebe68", "scanner": "scanner-primary", "fingerprint": "f0fecf16604d3fae", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-03285a89ec710c2d", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 src/home/core.ts:223"}, "properties": {"repobilityId": "ea23b7ffeb16a3f9", "scanner": "scanner-primary", "fingerprint": "03285a89ec710c2d", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-6b1fbf0d18a1b31c", "level": "none", "message": {"text": "Commented-code block (5 lines) in src/home/more-menu.ts:1"}, "properties": {"repobilityId": "9be1869fb707162a", "scanner": "scanner-primary", "fingerprint": "6b1fbf0d18a1b31c", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-716ca04a1b264a7a", "level": "none", "message": {"text": "Commented-code block (7 lines) in src/home/access-log.ts:4"}, "properties": {"repobilityId": "1c8d4f40bab7a2ae", "scanner": "scanner-primary", "fingerprint": "716ca04a1b264a7a", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-fe8411fad86ac0da", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 src/home/access-log.ts:108"}, "properties": {"repobilityId": "e5df0f461c962131", "scanner": "scanner-primary", "fingerprint": "fe8411fad86ac0da", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-c4448b0cc2c8848c", "level": "none", "message": {"text": "Commented-code block (5 lines) in src/home/dms-intake-confirm.ts:1"}, "properties": {"repobilityId": "99c4bcfea0894218", "scanner": "scanner-primary", "fingerprint": "c4448b0cc2c8848c", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-da4fcd7859d5a001", "level": "none", "message": {"text": "Commented-code block (8 lines) in src/home/ui-templates.ts:1"}, "properties": {"repobilityId": "63907a7abb5ee917", "scanner": "scanner-primary", "fingerprint": "da4fcd7859d5a001", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-d07600adc40335cc", "level": "none", "message": {"text": "Commented-code block (5 lines) in src/home/state.ts:3"}, "properties": {"repobilityId": "2f8c53acd7c4ee4e", "scanner": "scanner-primary", "fingerprint": "d07600adc40335cc", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-2e5cdb84a98f5d94", "level": "none", "message": {"text": "Commented-code block (7 lines) in src/home/module-nav.ts:1"}, "properties": {"repobilityId": "f1f168318de02ea0", "scanner": "scanner-primary", "fingerprint": "2e5cdb84a98f5d94", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-44862e951aa608ae", "level": "note", "message": {"text": "Legacy-named symbol `is_copy` in src/home/exceptions-drawer-render.ts:43"}, "properties": {"repobilityId": "3a41afaa1655185c", "scanner": "scanner-primary", "fingerprint": "44862e951aa608ae", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "legacy-marker", "dead-code"]}}, {"ruleId": "scanner-667ff77f5a823195", "level": "none", "message": {"text": "Commented-code block (8 lines) in src/home/automation.ts:4"}, "properties": {"repobilityId": "340d11ba1461c5c8", "scanner": "scanner-primary", "fingerprint": "667ff77f5a823195", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-856b3a466ebd4355", "level": "none", "message": {"text": "Commented-code block (5 lines) in src/home/knowledge-api.ts:4"}, "properties": {"repobilityId": "1b9c22c47fd3f0e2", "scanner": "scanner-primary", "fingerprint": "856b3a466ebd4355", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-68acb9bbb0617e2c", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 src/home/sales-report.ts:83"}, "properties": {"repobilityId": "d43d5486a0c4bd78", "scanner": "scanner-primary", "fingerprint": "68acb9bbb0617e2c", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-04b891e69fc7e589", "level": "none", "message": {"text": "Commented-code block (6 lines) in src/home/layout.ts:193"}, "properties": {"repobilityId": "c7c19ca4c8fff281", "scanner": "scanner-primary", "fingerprint": "04b891e69fc7e589", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-bb4f69722b451808", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 src/home/bank-recon-detail.ts:39"}, "properties": {"repobilityId": "853b0cf9d32ad678", "scanner": "scanner-primary", "fingerprint": "bb4f69722b451808", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-e0a88c973dd8a13e", "level": "none", "message": {"text": "Commented-code block (9 lines) in src/home/unified-push.ts:161"}, "properties": {"repobilityId": "1ebebd28e2bc5d11", "scanner": "scanner-primary", "fingerprint": "e0a88c973dd8a13e", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-83f33271f89924a3", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 src/home/unified-push.ts:159"}, "properties": {"repobilityId": "47899a8a6486740d", "scanner": "scanner-primary", "fingerprint": "83f33271f89924a3", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-9f713f8fd5eb18b4", "level": "none", "message": {"text": "Commented-code block (5 lines) in src/home/erp-exceptions.ts:4"}, "properties": {"repobilityId": "a9eb2eebe40d8f87", "scanner": "scanner-primary", "fingerprint": "9f713f8fd5eb18b4", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-5aa1dfd517c829be", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 src/home/erp-exceptions.ts:409"}, "properties": {"repobilityId": "4ae8f60dc2d8576b", "scanner": "scanner-primary", "fingerprint": "5aa1dfd517c829be", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-0908b9522acc0682", "level": "none", "message": {"text": "Commented-code block (5 lines) in src/home/knowledge-center.ts:4"}, "properties": {"repobilityId": "e16c3f4b3290454b", "scanner": "scanner-primary", "fingerprint": "0908b9522acc0682", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-c06b24a35b683927", "level": "none", "message": {"text": "Commented-code block (8 lines) in src/home/erp-mrerp-dms-connect.ts:4"}, "properties": {"repobilityId": "e3d202c8d39abb87", "scanner": "scanner-primary", "fingerprint": "c06b24a35b683927", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-5d5d3a1f2eb3ac4f", "level": "none", "message": {"text": "Commented-code block (5 lines) in src/home/erp-batch.ts:4"}, "properties": {"repobilityId": "15b52a2489a277e8", "scanner": "scanner-primary", "fingerprint": "5d5d3a1f2eb3ac4f", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-66d7857717cb37b8", "level": "none", "message": {"text": "Commented-code block (5 lines) in src/home/core-boot.ts:303"}, "properties": {"repobilityId": "602aeac09138cdb7", "scanner": "scanner-primary", "fingerprint": "66d7857717cb37b8", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-2800bb64334a59a3", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 src/home/core-boot.ts:165"}, "properties": {"repobilityId": "34d28607ceedbb31", "scanner": "scanner-primary", "fingerprint": "2800bb64334a59a3", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-80bf8c95b4645f03", "level": "none", "message": {"text": "Commented-code block (6 lines) in src/home/cmdk-mask-html.ts:4"}, "properties": {"repobilityId": "69ffa29bd724cef8", "scanner": "scanner-primary", "fingerprint": "80bf8c95b4645f03", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-3952f2655f33ce81", "level": "none", "message": {"text": "Commented-code block (5 lines) in src/home/sidebar-nav-group.ts:4"}, "properties": {"repobilityId": "9dcb1b87f4345ca0", "scanner": "scanner-primary", "fingerprint": "3952f2655f33ce81", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-d835e4e5f0bbf99f", "level": "none", "message": {"text": "Commented-code block (7 lines) in src/home/dms-intake-invoice.ts:1"}, "properties": {"repobilityId": "fd89bee52ed27a2c", "scanner": "scanner-primary", "fingerprint": "d835e4e5f0bbf99f", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-7e29bd4999f0b6b1", "level": "none", "message": {"text": "Commented-code block (5 lines) in src/home/modal-notif-new.ts:4"}, "properties": {"repobilityId": "8e4cf25c5380b896", "scanner": "scanner-primary", "fingerprint": "7e29bd4999f0b6b1", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-2d3a4943e0a69ca1", "level": "none", "message": {"text": "Commented-code block (5 lines) in src/home/rules-settings.ts:4"}, "properties": {"repobilityId": "a93b6feaf064d5ae", "scanner": "scanner-primary", "fingerprint": "2d3a4943e0a69ca1", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-045cc46bdff2c689", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 src/home/rules-settings.ts:26"}, "properties": {"repobilityId": "e06a23a5aa0ba93e", "scanner": "scanner-primary", "fingerprint": "045cc46bdff2c689", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-e0c321b370f0c920", "level": "none", "message": {"text": "Commented-code block (7 lines) in src/home/email-modal-html.ts:4"}, "properties": {"repobilityId": "db17a8156e833d2c", "scanner": "scanner-primary", "fingerprint": "e0c321b370f0c920", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-67bbc856ce23de3d", "level": "none", "message": {"text": "Commented-code block (9 lines) in src/home/erp-endpoints.ts:4"}, "properties": {"repobilityId": "b2b20fcb34e85b57", "scanner": "scanner-primary", "fingerprint": "67bbc856ce23de3d", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-115c722f725fd1e4", "level": "none", "message": {"text": "Commented-code block (11 lines) in src/home/report-templates.ts:226"}, "properties": {"repobilityId": "40e3db8260342511", "scanner": "scanner-primary", "fingerprint": "115c722f725fd1e4", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-1e455c6354bdc5af", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 src/home/report-templates.ts:303"}, "properties": {"repobilityId": "bee1463e1be6499e", "scanner": "scanner-primary", "fingerprint": "1e455c6354bdc5af", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-f1785e63271e655f", "level": "none", "message": {"text": "Commented-code block (5 lines) in src/home/bank-recon-store.ts:1"}, "properties": {"repobilityId": "580afce9bb117a4f", "scanner": "scanner-primary", "fingerprint": "f1785e63271e655f", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-b0d33e24ad6a8225", "level": "note", "message": {"text": "Legacy-named symbol `is_copy` in src/home/exceptions-drawer.ts:111"}, "properties": {"repobilityId": "b38d3d46776440a6", "scanner": "scanner-primary", "fingerprint": "b0d33e24ad6a8225", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "legacy-marker", "dead-code"]}}, {"ruleId": "scanner-072ebaab055ba481", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 src/home/exceptions-drawer.ts:150"}, "properties": {"repobilityId": "4f388e5a9556f73c", "scanner": "scanner-primary", "fingerprint": "072ebaab055ba481", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-07cd8ad3670727dc", "level": "none", "message": {"text": "Commented-code block (6 lines) in src/home/bank-cand-drawer-html.ts:4"}, "properties": {"repobilityId": "5fc4042734c27ddf", "scanner": "scanner-primary", "fingerprint": "07cd8ad3670727dc", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-d90eb67c958e147b", "level": "none", "message": {"text": "Commented-code block (5 lines) in src/home/modal-archive-token.ts:4"}, "properties": {"repobilityId": "d083a5a2c135e1d3", "scanner": "scanner-primary", "fingerprint": "d90eb67c958e147b", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-64897ac812b4f437", "level": "none", "message": {"text": "Commented-code block (6 lines) in src/home/erp-onboard.ts:8"}, "properties": {"repobilityId": "5f12eb194e8251e5", "scanner": "scanner-primary", "fingerprint": "64897ac812b4f437", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-6adfe3d30ee9355f", "level": "note", "message": {"text": "40 env vars used in code but missing from .env.example"}, "properties": {"repobilityId": "a58f987b7fee95b4", "scanner": "scanner-primary", "fingerprint": "6adfe3d30ee9355f", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "config-drift"]}}, {"ruleId": "scanner-6297377883dd7783", "level": "note", "message": {"text": "Near-duplicate function bodies in 13 places"}, "properties": {"repobilityId": "2770d14d0c27685b", "scanner": "scanner-primary", "fingerprint": "6297377883dd7783", "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": "2339202df1ad7a1b", "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": "5e473ac4c503cca0", "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": "d8e5ddbaae22ae58", "scanner": "scanner-primary", "fingerprint": "2c04133e54348533", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "duplicate", "dry"]}}, {"ruleId": "scanner-49c98f7cedd9c977", "level": "note", "message": {"text": "Near-duplicate function bodies in 4 places"}, "properties": {"repobilityId": "a073b9c28f2d0599", "scanner": "scanner-primary", "fingerprint": "49c98f7cedd9c977", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "duplicate", "dry"]}}, {"ruleId": "scanner-49c98f7cedd9c977", "level": "note", "message": {"text": "Near-duplicate function bodies in 4 places"}, "properties": {"repobilityId": "019833167797d427", "scanner": "scanner-primary", "fingerprint": "49c98f7cedd9c977", "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": "6d7a95a1220d853e", "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": "fe64e36e733c66ab", "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": "4a56ad2d70ce4be5", "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": "dc9b2f10a5c20905", "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": "6594a2eddc5b799c", "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": "5185cdc6e9995c0d", "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": "43566d111faeefc2", "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": "9dacddb07b72cd28", "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": "6634bee0328f787c", "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": "26278f6fd48aacd6", "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": "160c93148cf3d8e4", "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": "14dcf961421e7934", "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": "008743ca63149f43", "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": "160e141c22716443", "scanner": "scanner-primary", "fingerprint": "2c04133e54348533", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "duplicate", "dry"]}}, {"ruleId": "scanner-ad353f0f7bc66774", "level": "error", "message": {"text": "FastAPI POST `dms_id_card_recognize` without auth dependency \u2014 routes/dms_routes.py:171"}, "properties": {"repobilityId": "d8732db7078af59c", "scanner": "scanner-primary", "fingerprint": "ad353f0f7bc66774", "layer": "security", "severity": "high", "confidence": 1.0, "tags": ["auth", "owasp", "auth.fastapi.unauth_mutation"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "routes/dms_routes.py"}, "region": {"startLine": 171}}}]}, {"ruleId": "scanner-547ee6466591985e", "level": "error", "message": {"text": "FastAPI POST `dms_customer_fields` without auth dependency \u2014 routes/dms_routes.py:206"}, "properties": {"repobilityId": "ddb5d8b521ee518b", "scanner": "scanner-primary", "fingerprint": "547ee6466591985e", "layer": "security", "severity": "high", "confidence": 1.0, "tags": ["auth", "owasp", "auth.fastapi.unauth_mutation"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "routes/dms_routes.py"}, "region": {"startLine": 206}}}]}, {"ruleId": "scanner-bc436a5a622561c1", "level": "error", "message": {"text": "FastAPI POST `dms_id_card_push` without auth dependency \u2014 routes/dms_routes.py:241"}, "properties": {"repobilityId": "e174285d6e243f6e", "scanner": "scanner-primary", "fingerprint": "bc436a5a622561c1", "layer": "security", "severity": "high", "confidence": 1.0, "tags": ["auth", "owasp", "auth.fastapi.unauth_mutation"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "routes/dms_routes.py"}, "region": {"startLine": 241}}}]}, {"ruleId": "scanner-e477be95c6a723d6", "level": "error", "message": {"text": "FastAPI POST `run_check` without auth dependency \u2014 routes/knowledge_risk_routes.py:37"}, "properties": {"repobilityId": "01ef4aa176531e79", "scanner": "scanner-primary", "fingerprint": "e477be95c6a723d6", "layer": "security", "severity": "high", "confidence": 1.0, "tags": ["auth", "owasp", "auth.fastapi.unauth_mutation"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "routes/knowledge_risk_routes.py"}, "region": {"startLine": 37}}}]}, {"ruleId": "scanner-71e5ffb2c06c098e", "level": "error", "message": {"text": "FastAPI POST `create_invitation` without auth dependency \u2014 routes/console_invite_routes.py:66"}, "properties": {"repobilityId": "03614ef46b4c6714", "scanner": "scanner-primary", "fingerprint": "71e5ffb2c06c098e", "layer": "security", "severity": "high", "confidence": 1.0, "tags": ["auth", "owasp", "auth.fastapi.unauth_mutation"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "routes/console_invite_routes.py"}, "region": {"startLine": 66}}}]}, {"ruleId": "scanner-8a9ba97eb10c0aed", "level": "error", "message": {"text": "FastAPI DELETE `revoke_invitation` without auth dependency \u2014 routes/console_invite_routes.py:123"}, "properties": {"repobilityId": "dc9ad5b8c806dbca", "scanner": "scanner-primary", "fingerprint": "8a9ba97eb10c0aed", "layer": "security", "severity": "high", "confidence": 1.0, "tags": ["auth", "owasp", "auth.fastapi.unauth_mutation"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "routes/console_invite_routes.py"}, "region": {"startLine": 123}}}]}, {"ruleId": "scanner-80b9f0627bf898bd", "level": "error", "message": {"text": "FastAPI POST `accept_invitation` without auth dependency \u2014 routes/console_invite_routes.py:147"}, "properties": {"repobilityId": "7a52155df07d5f90", "scanner": "scanner-primary", "fingerprint": "80b9f0627bf898bd", "layer": "security", "severity": "high", "confidence": 1.0, "tags": ["auth", "owasp", "auth.fastapi.unauth_mutation"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "routes/console_invite_routes.py"}, "region": {"startLine": 147}}}]}, {"ruleId": "scanner-67fb72c5b8c6cef3", "level": "error", "message": {"text": "FastAPI POST `initiate_transfer` without auth dependency \u2014 routes/console_invite_routes.py:177"}, "properties": {"repobilityId": "dbdb67bf459edff1", "scanner": "scanner-primary", "fingerprint": "67fb72c5b8c6cef3", "layer": "security", "severity": "high", "confidence": 1.0, "tags": ["auth", "owasp", "auth.fastapi.unauth_mutation"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "routes/console_invite_routes.py"}, "region": {"startLine": 177}}}]}, {"ruleId": "scanner-e3c1472ed6f7cdb2", "level": "error", "message": {"text": "FastAPI POST `accept_transfer` without auth dependency \u2014 routes/console_invite_routes.py:204"}, "properties": {"repobilityId": "f1f1f78bb0b1f0af", "scanner": "scanner-primary", "fingerprint": "e3c1472ed6f7cdb2", "layer": "security", "severity": "high", "confidence": 1.0, "tags": ["auth", "owasp", "auth.fastapi.unauth_mutation"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "routes/console_invite_routes.py"}, "region": {"startLine": 204}}}]}, {"ruleId": "scanner-687eb43dc12d276a", "level": "error", "message": {"text": "FastAPI PUT `email_account_bind` without auth dependency \u2014 routes/email_ingest_routes.py:66"}, "properties": {"repobilityId": "8cfadd41201a292d", "scanner": "scanner-primary", "fingerprint": "687eb43dc12d276a", "layer": "security", "severity": "high", "confidence": 1.0, "tags": ["auth", "owasp", "auth.fastapi.unauth_mutation"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "routes/email_ingest_routes.py"}, "region": {"startLine": 66}}}]}, {"ruleId": "scanner-6a47f853b6ee14e7", "level": "error", "message": {"text": "FastAPI DELETE `email_account_unbind` without auth dependency \u2014 routes/email_ingest_routes.py:99"}, "properties": {"repobilityId": "3a245d512f7c2e54", "scanner": "scanner-primary", "fingerprint": "6a47f853b6ee14e7", "layer": "security", "severity": "high", "confidence": 1.0, "tags": ["auth", "owasp", "auth.fastapi.unauth_mutation"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "routes/email_ingest_routes.py"}, "region": {"startLine": 99}}}]}, {"ruleId": "scanner-853c9355b375a1e9", "level": "error", "message": {"text": "FastAPI POST `email_account_test` without auth dependency \u2014 routes/email_ingest_routes.py:107"}, "properties": {"repobilityId": "0f11acbcc294a7d1", "scanner": "scanner-primary", "fingerprint": "853c9355b375a1e9", "layer": "security", "severity": "high", "confidence": 1.0, "tags": ["auth", "owasp", "auth.fastapi.unauth_mutation"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "routes/email_ingest_routes.py"}, "region": {"startLine": 107}}}]}, {"ruleId": "scanner-f967bb21b9f8b8ba", "level": "error", "message": {"text": "FastAPI POST `email_account_trigger` without auth dependency \u2014 routes/email_ingest_routes.py:127"}, "properties": {"repobilityId": "0f1e530834890144", "scanner": "scanner-primary", "fingerprint": "f967bb21b9f8b8ba", "layer": "security", "severity": "high", "confidence": 1.0, "tags": ["auth", "owasp", "auth.fastapi.unauth_mutation"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "routes/email_ingest_routes.py"}, "region": {"startLine": 127}}}]}, {"ruleId": "scanner-463059d315a76548", "level": "error", "message": {"text": "FastAPI POST `admin_create_user` without auth dependency \u2014 routes/admin_users_mutation_routes.py:62"}, "properties": {"repobilityId": "17471e0e75d5ec05", "scanner": "scanner-primary", "fingerprint": "463059d315a76548", "layer": "security", "severity": "high", "confidence": 1.0, "tags": ["auth", "owasp", "auth.fastapi.unauth_mutation"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "routes/admin_users_mutation_routes.py"}, "region": {"startLine": 62}}}]}, {"ruleId": "scanner-a9e060f73a8b69fa", "level": "error", "message": {"text": "FastAPI PATCH `admin_update_user_quota` without auth dependency \u2014 routes/admin_users_mutation_routes.py:95"}, "properties": {"repobilityId": "2111513bd4b152a4", "scanner": "scanner-primary", "fingerprint": "a9e060f73a8b69fa", "layer": "security", "severity": "high", "confidence": 1.0, "tags": ["auth", "owasp", "auth.fastapi.unauth_mutation"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "routes/admin_users_mutation_routes.py"}, "region": {"startLine": 95}}}]}, {"ruleId": "scanner-ca4f3b303b0d9c14", "level": "error", "message": {"text": "FastAPI PATCH `admin_update_user_status` without auth dependency \u2014 routes/admin_users_mutation_routes.py:119"}, "properties": {"repobilityId": "6f973b0c43f73af1", "scanner": "scanner-primary", "fingerprint": "ca4f3b303b0d9c14", "layer": "security", "severity": "high", "confidence": 1.0, "tags": ["auth", "owasp", "auth.fastapi.unauth_mutation"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "routes/admin_users_mutation_routes.py"}, "region": {"startLine": 119}}}]}, {"ruleId": "scanner-1167311366e8ac53", "level": "error", "message": {"text": "FastAPI POST `admin_delete_user` without auth dependency \u2014 routes/admin_users_mutation_routes.py:143"}, "properties": {"repobilityId": "165a8bc051a6d14c", "scanner": "scanner-primary", "fingerprint": "1167311366e8ac53", "layer": "security", "severity": "high", "confidence": 1.0, "tags": ["auth", "owasp", "auth.fastapi.unauth_mutation"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "routes/admin_users_mutation_routes.py"}, "region": {"startLine": 143}}}]}, {"ruleId": "scanner-1f03748d61d1db6e", "level": "error", "message": {"text": "FastAPI POST `admin_reset_user_password` without auth dependency \u2014 routes/admin_users_mutation_routes.py:177"}, "properties": {"repobilityId": "860ebe2db2902933", "scanner": "scanner-primary", "fingerprint": "1f03748d61d1db6e", "layer": "security", "severity": "high", "confidence": 1.0, "tags": ["auth", "owasp", "auth.fastapi.unauth_mutation"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "routes/admin_users_mutation_routes.py"}, "region": {"startLine": 177}}}]}, {"ruleId": "scanner-aae55d0dccffd1b1", "level": "error", "message": {"text": "FastAPI PATCH `admin_toggle_employee_active` without auth dependency \u2014 routes/admin_users_mutation_routes.py:185"}, "properties": {"repobilityId": "ccb319d3a06189d7", "scanner": "scanner-primary", "fingerprint": "aae55d0dccffd1b1", "layer": "security", "severity": "high", "confidence": 1.0, "tags": ["auth", "owasp", "auth.fastapi.unauth_mutation"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "routes/admin_users_mutation_routes.py"}, "region": {"startLine": 185}}}]}, {"ruleId": "scanner-ba9083dcb031a196", "level": "error", "message": {"text": "FastAPI POST `admin_reset_employee_password` without auth dependency \u2014 routes/admin_users_mutation_routes.py:194"}, "properties": {"repobilityId": "995242225f099543", "scanner": "scanner-primary", "fingerprint": "ba9083dcb031a196", "layer": "security", "severity": "high", "confidence": 1.0, "tags": ["auth", "owasp", "auth.fastapi.unauth_mutation"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "routes/admin_users_mutation_routes.py"}, "region": {"startLine": 194}}}]}, {"ruleId": "scanner-54079f1b44c244ce", "level": "error", "message": {"text": "FastAPI DELETE `admin_remove_employee` without auth dependency \u2014 routes/admin_users_mutation_routes.py:201"}, "properties": {"repobilityId": "2502522f8cc6ced4", "scanner": "scanner-primary", "fingerprint": "54079f1b44c244ce", "layer": "security", "severity": "high", "confidence": 1.0, "tags": ["auth", "owasp", "auth.fastapi.unauth_mutation"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "routes/admin_users_mutation_routes.py"}, "region": {"startLine": 201}}}]}, {"ruleId": "scanner-143bb07a68418ceb", "level": "error", "message": {"text": "FastAPI POST `admin_cascade_delete` without auth dependency \u2014 routes/admin_users_mutation_routes.py:208"}, "properties": {"repobilityId": "68f9269e1c9dc46d", "scanner": "scanner-primary", "fingerprint": "143bb07a68418ceb", "layer": "security", "severity": "high", "confidence": 1.0, "tags": ["auth", "owasp", "auth.fastapi.unauth_mutation"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "routes/admin_users_mutation_routes.py"}, "region": {"startLine": 208}}}]}, {"ruleId": "scanner-b86a8422b19e30f3", "level": "error", "message": {"text": "FastAPI POST `api_send_document` without auth dependency \u2014 routes/sales_send_routes.py:71"}, "properties": {"repobilityId": "68f7d4191593d642", "scanner": "scanner-primary", "fingerprint": "b86a8422b19e30f3", "layer": "security", "severity": "high", "confidence": 1.0, "tags": ["auth", "owasp", "auth.fastapi.unauth_mutation"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "routes/sales_send_routes.py"}, "region": {"startLine": 71}}}]}, {"ruleId": "scanner-89e548e676c0a983", "level": "error", "message": {"text": "FastAPI POST `v1_recognize` without auth dependency \u2014 routes/meta_aliases_routes.py:52"}, "properties": {"repobilityId": "3de10d92a183d534", "scanner": "scanner-primary", "fingerprint": "89e548e676c0a983", "layer": "security", "severity": "high", "confidence": 1.0, "tags": ["auth", "owasp", "auth.fastapi.unauth_mutation"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "routes/meta_aliases_routes.py"}, "region": {"startLine": 52}}}]}, {"ruleId": "scanner-dfa0bbe37525efde", "level": "error", "message": {"text": "FastAPI POST `me_line_complete_email` without auth dependency \u2014 routes/line_account_merge_routes.py:40"}, "properties": {"repobilityId": "7baf8b5b42e0a144", "scanner": "scanner-primary", "fingerprint": "dfa0bbe37525efde", "layer": "security", "severity": "high", "confidence": 1.0, "tags": ["auth", "owasp", "auth.fastapi.unauth_mutation"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "routes/line_account_merge_routes.py"}, "region": {"startLine": 40}}}]}, {"ruleId": "scanner-de7c25e8e4ba2af9", "level": "error", "message": {"text": "FastAPI POST `upload_document` without auth dependency \u2014 routes/knowledge_routes.py:100"}, "properties": {"repobilityId": "cf6680519a03f68a", "scanner": "scanner-primary", "fingerprint": "de7c25e8e4ba2af9", "layer": "security", "severity": "high", "confidence": 1.0, "tags": ["auth", "owasp", "auth.fastapi.unauth_mutation"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "routes/knowledge_routes.py"}, "region": {"startLine": 100}}}]}, {"ruleId": "scanner-f79fcd33e7460768", "level": "error", "message": {"text": "FastAPI DELETE `delete_document` without auth dependency \u2014 routes/knowledge_routes.py:294"}, "properties": {"repobilityId": "ee848c6e25d7fb85", "scanner": "scanner-primary", "fingerprint": "f79fcd33e7460768", "layer": "security", "severity": "high", "confidence": 1.0, "tags": ["auth", "owasp", "auth.fastapi.unauth_mutation"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "routes/knowledge_routes.py"}, "region": {"startLine": 294}}}]}, {"ruleId": "scanner-eda639512bc9ad79", "level": "error", "message": {"text": "FastAPI POST `search_documents` without auth dependency \u2014 routes/knowledge_routes.py:325"}, "properties": {"repobilityId": "03a2aef2e4b31910", "scanner": "scanner-primary", "fingerprint": "eda639512bc9ad79", "layer": "security", "severity": "high", "confidence": 1.0, "tags": ["auth", "owasp", "auth.fastapi.unauth_mutation"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "routes/knowledge_routes.py"}, "region": {"startLine": 325}}}]}, {"ruleId": "scanner-c36ed5dad96dfd0f", "level": "error", "message": {"text": "FastAPI POST `api_create_supplier` without auth dependency \u2014 routes/purchase_config_routes.py:62"}, "properties": {"repobilityId": "96ad87be8fbd9396", "scanner": "scanner-primary", "fingerprint": "c36ed5dad96dfd0f", "layer": "security", "severity": "high", "confidence": 1.0, "tags": ["auth", "owasp", "auth.fastapi.unauth_mutation"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "routes/purchase_config_routes.py"}, "region": {"startLine": 62}}}]}, {"ruleId": "scanner-dd7866fc5b4b4299", "level": "error", "message": {"text": "FastAPI PATCH `api_update_supplier` without auth dependency \u2014 routes/purchase_config_routes.py:87"}, "properties": {"repobilityId": "331468b4ed707983", "scanner": "scanner-primary", "fingerprint": "dd7866fc5b4b4299", "layer": "security", "severity": "high", "confidence": 1.0, "tags": ["auth", "owasp", "auth.fastapi.unauth_mutation"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "routes/purchase_config_routes.py"}, "region": {"startLine": 87}}}]}, {"ruleId": "scanner-30d07f3145f3689b", "level": "error", "message": {"text": "FastAPI DELETE `api_delete_supplier` without auth dependency \u2014 routes/purchase_config_routes.py:112"}, "properties": {"repobilityId": "e550b7bc3bd1a300", "scanner": "scanner-primary", "fingerprint": "30d07f3145f3689b", "layer": "security", "severity": "high", "confidence": 1.0, "tags": ["auth", "owasp", "auth.fastapi.unauth_mutation"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "routes/purchase_config_routes.py"}, "region": {"startLine": 112}}}]}, {"ruleId": "scanner-0c6560f81246a28f", "level": "error", "message": {"text": "FastAPI POST `api_create_category` without auth dependency \u2014 routes/purchase_config_routes.py:149"}, "properties": {"repobilityId": "aa7e9c2887e52d22", "scanner": "scanner-primary", "fingerprint": "0c6560f81246a28f", "layer": "security", "severity": "high", "confidence": 1.0, "tags": ["auth", "owasp", "auth.fastapi.unauth_mutation"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "routes/purchase_config_routes.py"}, "region": {"startLine": 149}}}]}, {"ruleId": "scanner-9a5d0ab19f1ab7e9", "level": "error", "message": {"text": "FastAPI PATCH `api_update_category` without auth dependency \u2014 routes/purchase_config_routes.py:168"}, "properties": {"repobilityId": "2a8598fd4b898080", "scanner": "scanner-primary", "fingerprint": "9a5d0ab19f1ab7e9", "layer": "security", "severity": "high", "confidence": 1.0, "tags": ["auth", "owasp", "auth.fastapi.unauth_mutation"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "routes/purchase_config_routes.py"}, "region": {"startLine": 168}}}]}, {"ruleId": "scanner-a79f5d0ef79d51a4", "level": "error", "message": {"text": "FastAPI DELETE `api_delete_category` without auth dependency \u2014 routes/purchase_config_routes.py:188"}, "properties": {"repobilityId": "3b8d55b8d1e7133e", "scanner": "scanner-primary", "fingerprint": "a79f5d0ef79d51a4", "layer": "security", "severity": "high", "confidence": 1.0, "tags": ["auth", "owasp", "auth.fastapi.unauth_mutation"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "routes/purchase_config_routes.py"}, "region": {"startLine": 188}}}]}, {"ruleId": "scanner-1256c41bfbfd4b86", "level": "error", "message": {"text": "FastAPI PUT `api_save_settings` without auth dependency \u2014 routes/purchase_config_routes.py:224"}, "properties": {"repobilityId": "5d5f73d28cf2ffd3", "scanner": "scanner-primary", "fingerprint": "1256c41bfbfd4b86", "layer": "security", "severity": "high", "confidence": 1.0, "tags": ["auth", "owasp", "auth.fastapi.unauth_mutation"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "routes/purchase_config_routes.py"}, "region": {"startLine": 224}}}]}, {"ruleId": "scanner-e060363a12d69ff6", "level": "error", "message": {"text": "FastAPI POST `admin_migration_dry_run` without auth dependency \u2014 routes/admin_migration_routes.py:42"}, "properties": {"repobilityId": "d45eac446a2eb64a", "scanner": "scanner-primary", "fingerprint": "e060363a12d69ff6", "layer": "security", "severity": "high", "confidence": 1.0, "tags": ["auth", "owasp", "auth.fastapi.unauth_mutation"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "routes/admin_migration_routes.py"}, "region": {"startLine": 42}}}]}, {"ruleId": "scanner-276165201de85ce0", "level": "error", "message": {"text": "FastAPI POST `admin_migration_execute` without auth dependency \u2014 routes/admin_migration_routes.py:52"}, "properties": {"repobilityId": "1312401c1e2fdfa8", "scanner": "scanner-primary", "fingerprint": "276165201de85ce0", "layer": "security", "severity": "high", "confidence": 1.0, "tags": ["auth", "owasp", "auth.fastapi.unauth_mutation"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "routes/admin_migration_routes.py"}, "region": {"startLine": 52}}}]}, {"ruleId": "scanner-8452bb883f3e48e1", "level": "error", "message": {"text": "FastAPI POST `admin_fix_orphans` without auth dependency \u2014 routes/admin_migration_routes.py:75"}, "properties": {"repobilityId": "30ec32efc07c49d7", "scanner": "scanner-primary", "fingerprint": "8452bb883f3e48e1", "layer": "security", "severity": "high", "confidence": 1.0, "tags": ["auth", "owasp", "auth.fastapi.unauth_mutation"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "routes/admin_migration_routes.py"}, "region": {"startLine": 75}}}]}, {"ruleId": "scanner-173a4cfc65302ec3", "level": "error", "message": {"text": "FastAPI POST `admin_rls_run_tests` without auth dependency \u2014 routes/admin_migration_routes.py:97"}, "properties": {"repobilityId": "44aa42dadbfdae74", "scanner": "scanner-primary", "fingerprint": "173a4cfc65302ec3", "layer": "security", "severity": "high", "confidence": 1.0, "tags": ["auth", "owasp", "auth.fastapi.unauth_mutation"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "routes/admin_migration_routes.py"}, "region": {"startLine": 97}}}]}, {"ruleId": "scanner-5758a0cc0040721c", "level": "error", "message": {"text": "FastAPI POST `admin_backfill_tenant_ids` without auth dependency \u2014 routes/admin_migration_routes.py:107"}, "properties": {"repobilityId": "1d20d9c60c934115", "scanner": "scanner-primary", "fingerprint": "5758a0cc0040721c", "layer": "security", "severity": "high", "confidence": 1.0, "tags": ["auth", "owasp", "auth.fastapi.unauth_mutation"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "routes/admin_migration_routes.py"}, "region": {"startLine": 107}}}]}, {"ruleId": "scanner-c4c5b724604e0be8", "level": "error", "message": {"text": "FastAPI POST `api_receive` without auth dependency \u2014 routes/inventory_routes.py:169"}, "properties": {"repobilityId": "9bd8e1779332c522", "scanner": "scanner-primary", "fingerprint": "c4c5b724604e0be8", "layer": "security", "severity": "high", "confidence": 1.0, "tags": ["auth", "owasp", "auth.fastapi.unauth_mutation"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "routes/inventory_routes.py"}, "region": {"startLine": 169}}}]}, {"ruleId": "scanner-3f1f5777a1c4ac6c", "level": "error", "message": {"text": "FastAPI POST `api_count` without auth dependency \u2014 routes/inventory_routes.py:189"}, "properties": {"repobilityId": "ed58a3a7b4da3a40", "scanner": "scanner-primary", "fingerprint": "3f1f5777a1c4ac6c", "layer": "security", "severity": "high", "confidence": 1.0, "tags": ["auth", "owasp", "auth.fastapi.unauth_mutation"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "routes/inventory_routes.py"}, "region": {"startLine": 189}}}]}, {"ruleId": "scanner-454c5766db5d3adc", "level": "error", "message": {"text": "FastAPI POST `api_adjust` without auth dependency \u2014 routes/inventory_routes.py:206"}, "properties": {"repobilityId": "d1417112e7e4ee90", "scanner": "scanner-primary", "fingerprint": "454c5766db5d3adc", "layer": "security", "severity": "high", "confidence": 1.0, "tags": ["auth", "owasp", "auth.fastapi.unauth_mutation"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "routes/inventory_routes.py"}, "region": {"startLine": 206}}}]}, {"ruleId": "scanner-1261396c9ff37031", "level": "error", "message": {"text": "FastAPI POST `admin_create_tenant` without auth dependency \u2014 routes/tenant_routes.py:85"}, "properties": {"repobilityId": "71b08d0d9b14013c", "scanner": "scanner-primary", "fingerprint": "1261396c9ff37031", "layer": "security", "severity": "high", "confidence": 1.0, "tags": ["auth", "owasp", "auth.fastapi.unauth_mutation"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "routes/tenant_routes.py"}, "region": {"startLine": 85}}}]}, {"ruleId": "scanner-cb236782b678f39a", "level": "error", "message": {"text": "FastAPI PATCH `admin_update_tenant_quota` without auth dependency \u2014 routes/tenant_routes.py:100"}, "properties": {"repobilityId": "129b0db2f9f88ba9", "scanner": "scanner-primary", "fingerprint": "cb236782b678f39a", "layer": "security", "severity": "high", "confidence": 1.0, "tags": ["auth", "owasp", "auth.fastapi.unauth_mutation"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "routes/tenant_routes.py"}, "region": {"startLine": 100}}}]}, {"ruleId": "scanner-1447eee0cac4becc", "level": "error", "message": {"text": "FastAPI PATCH `admin_update_tenant_status` without auth dependency \u2014 routes/tenant_routes.py:112"}, "properties": {"repobilityId": "7a952f037578ff19", "scanner": "scanner-primary", "fingerprint": "1447eee0cac4becc", "layer": "security", "severity": "high", "confidence": 1.0, "tags": ["auth", "owasp", "auth.fastapi.unauth_mutation"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "routes/tenant_routes.py"}, "region": {"startLine": 112}}}]}, {"ruleId": "scanner-ba991259058665f1", "level": "error", "message": {"text": "FastAPI POST `erp_push` without auth dependency \u2014 routes/erp_push_log_routes.py:34"}, "properties": {"repobilityId": "15ce25e99d0e367a", "scanner": "scanner-primary", "fingerprint": "ba991259058665f1", "layer": "security", "severity": "high", "confidence": 1.0, "tags": ["auth", "owasp", "auth.fastapi.unauth_mutation"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "routes/erp_push_log_routes.py"}, "region": {"startLine": 34}}}]}, {"ruleId": "scanner-b0530729ca2eaa17", "level": "error", "message": {"text": "FastAPI POST `erp_retry_push` without auth dependency \u2014 routes/erp_push_log_routes.py:309"}, "properties": {"repobilityId": "5ea5e710ad800b9d", "scanner": "scanner-primary", "fingerprint": "b0530729ca2eaa17", "layer": "security", "severity": "high", "confidence": 1.0, "tags": ["auth", "owasp", "auth.fastapi.unauth_mutation"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "routes/erp_push_log_routes.py"}, "region": {"startLine": 309}}}]}, {"ruleId": "scanner-a877e2eb5a98d908", "level": "error", "message": {"text": "FastAPI POST `erp_batch_retry` without auth dependency \u2014 routes/erp_push_log_routes.py:372"}, "properties": {"repobilityId": "36d99a896b9182eb", "scanner": "scanner-primary", "fingerprint": "a877e2eb5a98d908", "layer": "security", "severity": "high", "confidence": 1.0, "tags": ["auth", "owasp", "auth.fastapi.unauth_mutation"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "routes/erp_push_log_routes.py"}, "region": {"startLine": 372}}}]}, {"ruleId": "scanner-b0bc4db05ff6a1b5", "level": "error", "message": {"text": "FastAPI POST `erp_batch_delete` without auth dependency \u2014 routes/erp_push_log_routes.py:463"}, "properties": {"repobilityId": "9958bc68e0cf7437", "scanner": "scanner-primary", "fingerprint": "b0bc4db05ff6a1b5", "layer": "security", "severity": "high", "confidence": 1.0, "tags": ["auth", "owasp", "auth.fastapi.unauth_mutation"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "routes/erp_push_log_routes.py"}, "region": {"startLine": 463}}}]}, {"ruleId": "scanner-713d33c54db29310", "level": "error", "message": {"text": "FastAPI POST `api_open_table` without auth dependency \u2014 routes/pos_restaurant_routes.py:79"}, "properties": {"repobilityId": "d48578c66f38e494", "scanner": "scanner-primary", "fingerprint": "713d33c54db29310", "layer": "security", "severity": "high", "confidence": 1.0, "tags": ["auth", "owasp", "auth.fastapi.unauth_mutation"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "routes/pos_restaurant_routes.py"}, "region": {"startLine": 79}}}]}, {"ruleId": "scanner-b011bb8464c358cf", "level": "error", "message": {"text": "FastAPI POST `api_add_lines` without auth dependency \u2014 routes/pos_restaurant_routes.py:126"}, "properties": {"repobilityId": "d75ecb782f40aa5b", "scanner": "scanner-primary", "fingerprint": "b011bb8464c358cf", "layer": "security", "severity": "high", "confidence": 1.0, "tags": ["auth", "owasp", "auth.fastapi.unauth_mutation"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "routes/pos_restaurant_routes.py"}, "region": {"startLine": 126}}}]}, {"ruleId": "scanner-c5289dad892cca5a", "level": "error", "message": {"text": "FastAPI PATCH `api_update_line` without auth dependency \u2014 routes/pos_restaurant_routes.py:150"}, "properties": {"repobilityId": "720dc18ad04fdc37", "scanner": "scanner-primary", "fingerprint": "c5289dad892cca5a", "layer": "security", "severity": "high", "confidence": 1.0, "tags": ["auth", "owasp", "auth.fastapi.unauth_mutation"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "routes/pos_restaurant_routes.py"}, "region": {"startLine": 150}}}]}, {"ruleId": "scanner-eebd97b6d5757d78", "level": "error", "message": {"text": "FastAPI DELETE `api_delete_line` without auth dependency \u2014 routes/pos_restaurant_routes.py:162"}, "properties": {"repobilityId": "fbb4bd7c027b2936", "scanner": "scanner-primary", "fingerprint": "eebd97b6d5757d78", "layer": "security", "severity": "high", "confidence": 1.0, "tags": ["auth", "owasp", "auth.fastapi.unauth_mutation"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "routes/pos_restaurant_routes.py"}, "region": {"startLine": 162}}}]}, {"ruleId": "scanner-c8e3038408b07e99", "level": "error", "message": {"text": "FastAPI POST `api_send_kitchen` without auth dependency \u2014 routes/pos_restaurant_routes.py:185"}, "properties": {"repobilityId": "58207d1591d7354a", "scanner": "scanner-primary", "fingerprint": "c8e3038408b07e99", "layer": "security", "severity": "high", "confidence": 1.0, "tags": ["auth", "owasp", "auth.fastapi.unauth_mutation"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "routes/pos_restaurant_routes.py"}, "region": {"startLine": 185}}}]}, {"ruleId": "scanner-f678e8d1c3590e85", "level": "error", "message": {"text": "FastAPI POST `api_cancel_session` without auth dependency \u2014 routes/pos_restaurant_routes.py:202"}, "properties": {"repobilityId": "eeacbc1fc5db9436", "scanner": "scanner-primary", "fingerprint": "f678e8d1c3590e85", "layer": "security", "severity": "high", "confidence": 1.0, "tags": ["auth", "owasp", "auth.fastapi.unauth_mutation"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "routes/pos_restaurant_routes.py"}, "region": {"startLine": 202}}}]}, {"ruleId": "scanner-4c5f1eedd4efceee", "level": "error", "message": {"text": "FastAPI POST `api_kot_status` without auth dependency \u2014 routes/pos_restaurant_routes.py:238"}, "properties": {"repobilityId": "a977c269d1e6c1aa", "scanner": "scanner-primary", "fingerprint": "4c5f1eedd4efceee", "layer": "security", "severity": "high", "confidence": 1.0, "tags": ["auth", "owasp", "auth.fastapi.unauth_mutation"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "routes/pos_restaurant_routes.py"}, "region": {"startLine": 238}}}]}, {"ruleId": "scanner-ee74d19286a27bfa", "level": "error", "message": {"text": "FastAPI POST `api_kot_item_status` without auth dependency \u2014 routes/pos_restaurant_routes.py:250"}, "properties": {"repobilityId": "6451f64ffe062c3c", "scanner": "scanner-primary", "fingerprint": "ee74d19286a27bfa", "layer": "security", "severity": "high", "confidence": 1.0, "tags": ["auth", "owasp", "auth.fastapi.unauth_mutation"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "routes/pos_restaurant_routes.py"}, "region": {"startLine": 250}}}]}, {"ruleId": "scanner-153ad8beb4e7dd22", "level": "error", "message": {"text": "FastAPI POST `api_request_bill` without auth dependency \u2014 routes/pos_restaurant_routes.py:263"}, "properties": {"repobilityId": "45bdf7eb6f5d2289", "scanner": "scanner-primary", "fingerprint": "153ad8beb4e7dd22", "layer": "security", "severity": "high", "confidence": 1.0, "tags": ["auth", "owasp", "auth.fastapi.unauth_mutation"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "routes/pos_restaurant_routes.py"}, "region": {"startLine": 263}}}]}, {"ruleId": "scanner-f8fece22dd63a18f", "level": "error", "message": {"text": "FastAPI POST `api_checkout` without auth dependency \u2014 routes/pos_restaurant_routes.py:332"}, "properties": {"repobilityId": "cfec360a1ba53fa8", "scanner": "scanner-primary", "fingerprint": "f8fece22dd63a18f", "layer": "security", "severity": "high", "confidence": 1.0, "tags": ["auth", "owasp", "auth.fastapi.unauth_mutation"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "routes/pos_restaurant_routes.py"}, "region": {"startLine": 332}}}]}, {"ruleId": "scanner-cf206176908049f6", "level": "error", "message": {"text": "FastAPI PUT `update_me_profile` without auth dependency \u2014 routes/me_routes.py:245"}, "properties": {"repobilityId": "8106704f9c282263", "scanner": "scanner-primary", "fingerprint": "cf206176908049f6", "layer": "security", "severity": "high", "confidence": 1.0, "tags": ["auth", "owasp", "auth.fastapi.unauth_mutation"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "routes/me_routes.py"}, "region": {"startLine": 245}}}]}, {"ruleId": "scanner-5cf83d6ac4bd4bba", "level": "error", "message": {"text": "FastAPI POST `api_open_shift` without auth dependency \u2014 routes/pos_sales_routes.py:119"}, "properties": {"repobilityId": "6f7f9e946f95418a", "scanner": "scanner-primary", "fingerprint": "5cf83d6ac4bd4bba", "layer": "security", "severity": "high", "confidence": 1.0, "tags": ["auth", "owasp", "auth.fastapi.unauth_mutation"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "routes/pos_sales_routes.py"}, "region": {"startLine": 119}}}]}, {"ruleId": "scanner-efe50f1346f5bf8e", "level": "error", "message": {"text": "FastAPI POST `api_close_shift` without auth dependency \u2014 routes/pos_sales_routes.py:139"}, "properties": {"repobilityId": "67589557bdb27da7", "scanner": "scanner-primary", "fingerprint": "efe50f1346f5bf8e", "layer": "security", "severity": "high", "confidence": 1.0, "tags": ["auth", "owasp", "auth.fastapi.unauth_mutation"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "routes/pos_sales_routes.py"}, "region": {"startLine": 139}}}]}, {"ruleId": "scanner-249cf88a61cc5793", "level": "error", "message": {"text": "FastAPI POST `api_create_sale` without auth dependency \u2014 routes/pos_sales_routes.py:193"}, "properties": {"repobilityId": "a5e893d0a7309d57", "scanner": "scanner-primary", "fingerprint": "249cf88a61cc5793", "layer": "security", "severity": "high", "confidence": 1.0, "tags": ["auth", "owasp", "auth.fastapi.unauth_mutation"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "routes/pos_sales_routes.py"}, "region": {"startLine": 193}}}]}, {"ruleId": "scanner-d0acbeb9f7e756fe", "level": "error", "message": {"text": "FastAPI POST `api_sync_sales` without auth dependency \u2014 routes/pos_sales_routes.py:214"}, "properties": {"repobilityId": "875dad19b6584d7f", "scanner": "scanner-primary", "fingerprint": "d0acbeb9f7e756fe", "layer": "security", "severity": "high", "confidence": 1.0, "tags": ["auth", "owasp", "auth.fastapi.unauth_mutation"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "routes/pos_sales_routes.py"}, "region": {"startLine": 214}}}]}, {"ruleId": "scanner-025ea1357f0a076d", "level": "error", "message": {"text": "FastAPI POST `api_refund` without auth dependency \u2014 routes/pos_sales_routes.py:269"}, "properties": {"repobilityId": "1107ce4dcc29f58b", "scanner": "scanner-primary", "fingerprint": "025ea1357f0a076d", "layer": "security", "severity": "high", "confidence": 1.0, "tags": ["auth", "owasp", "auth.fastapi.unauth_mutation"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "routes/pos_sales_routes.py"}, "region": {"startLine": 269}}}]}, {"ruleId": "scanner-d09dd37a74c6f7fe", "level": "error", "message": {"text": "FastAPI POST `api_void` without auth dependency \u2014 routes/pos_sales_routes.py:288"}, "properties": {"repobilityId": "e15ba65eb1ad3cbe", "scanner": "scanner-primary", "fingerprint": "d09dd37a74c6f7fe", "layer": "security", "severity": "high", "confidence": 1.0, "tags": ["auth", "owasp", "auth.fastapi.unauth_mutation"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "routes/pos_sales_routes.py"}, "region": {"startLine": 288}}}]}, {"ruleId": "scanner-1dd6ae53e1409d8c", "level": "error", "message": {"text": "FastAPI POST `api_full_tax_invoice` without auth dependency \u2014 routes/pos_sales_routes.py:319"}, "properties": {"repobilityId": "57f172e5a718eab1", "scanner": "scanner-primary", "fingerprint": "1dd6ae53e1409d8c", "layer": "security", "severity": "high", "confidence": 1.0, "tags": ["auth", "owasp", "auth.fastapi.unauth_mutation"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "routes/pos_sales_routes.py"}, "region": {"startLine": 319}}}]}, {"ruleId": "scanner-6c12ade93f655aa5", "level": "error", "message": {"text": "FastAPI POST `send_email_code` without auth dependency \u2014 routes/auth_email_code_routes.py:179"}, "properties": {"repobilityId": "e57deba8122c8225", "scanner": "scanner-primary", "fingerprint": "6c12ade93f655aa5", "layer": "security", "severity": "high", "confidence": 1.0, "tags": ["auth", "owasp", "auth.fastapi.unauth_mutation"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "routes/auth_email_code_routes.py"}, "region": {"startLine": 179}}}]}, {"ruleId": "scanner-b64b50479c26d679", "level": "error", "message": {"text": "FastAPI POST `verify_email_code` without auth dependency \u2014 routes/auth_email_code_routes.py:289"}, "properties": {"repobilityId": "a97b2c8719761243", "scanner": "scanner-primary", "fingerprint": "b64b50479c26d679", "layer": "security", "severity": "high", "confidence": 1.0, "tags": ["auth", "owasp", "auth.fastapi.unauth_mutation"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "routes/auth_email_code_routes.py"}, "region": {"startLine": 289}}}]}, {"ruleId": "scanner-69a05fad694d3b74", "level": "error", "message": {"text": "FastAPI POST `download_mrerp_xlsx_batch` without auth dependency \u2014 routes/erp_export_routes.py:38"}, "properties": {"repobilityId": "bf3f5653c56ad76b", "scanner": "scanner-primary", "fingerprint": "69a05fad694d3b74", "layer": "security", "severity": "high", "confidence": 1.0, "tags": ["auth", "owasp", "auth.fastapi.unauth_mutation"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "routes/erp_export_routes.py"}, "region": {"startLine": 38}}}]}, {"ruleId": "scanner-0ef26806f6a90bf2", "level": "error", "message": {"text": "FastAPI POST `build_excel_endpoint` without auth dependency \u2014 routes/vat_excel_routes.py:74"}, "properties": {"repobilityId": "ebdb91210fcdc8ad", "scanner": "scanner-primary", "fingerprint": "0ef26806f6a90bf2", "layer": "security", "severity": "high", "confidence": 1.0, "tags": ["auth", "owasp", "auth.fastapi.unauth_mutation"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "routes/vat_excel_routes.py"}, "region": {"startLine": 74}}}]}, {"ruleId": "scanner-e3e96ad49dd7d7cf", "level": "error", "message": {"text": "FastAPI POST `regenerate_task` without auth dependency \u2014 routes/vat_excel_routes.py:402"}, "properties": {"repobilityId": "40c85d3489176e3c", "scanner": "scanner-primary", "fingerprint": "e3e96ad49dd7d7cf", "layer": "security", "severity": "high", "confidence": 1.0, "tags": ["auth", "owasp", "auth.fastapi.unauth_mutation"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "routes/vat_excel_routes.py"}, "region": {"startLine": 402}}}]}, {"ruleId": "scanner-f9777ec1f34a59d4", "level": "error", "message": {"text": "FastAPI PUT `api_onboarding` without auth dependency \u2014 routes/modules_routes.py:48"}, "properties": {"repobilityId": "c11b3ab2e626064a", "scanner": "scanner-primary", "fingerprint": "f9777ec1f34a59d4", "layer": "security", "severity": "high", "confidence": 1.0, "tags": ["auth", "owasp", "auth.fastapi.unauth_mutation"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "routes/modules_routes.py"}, "region": {"startLine": 48}}}]}, {"ruleId": "scanner-5911a0a08cd70976", "level": "error", "message": {"text": "FastAPI PUT `api_toggle_module` without auth dependency \u2014 routes/modules_routes.py:59"}, "properties": {"repobilityId": "646f94d6326933e0", "scanner": "scanner-primary", "fingerprint": "5911a0a08cd70976", "layer": "security", "severity": "high", "confidence": 1.0, "tags": ["auth", "owasp", "auth.fastapi.unauth_mutation"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "routes/modules_routes.py"}, "region": {"startLine": 59}}}]}, {"ruleId": "scanner-2e9645563d58f1ff", "level": "error", "message": {"text": "FastAPI POST `bank_recon_upload` without auth dependency \u2014 routes/bank_recon_routes.py:41"}, "properties": {"repobilityId": "711f7fa17e412f00", "scanner": "scanner-primary", "fingerprint": "2e9645563d58f1ff", "layer": "security", "severity": "high", "confidence": 1.0, "tags": ["auth", "owasp", "auth.fastapi.unauth_mutation"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "routes/bank_recon_routes.py"}, "region": {"startLine": 41}}}]}, {"ruleId": "scanner-761495da25a983b8", "level": "error", "message": {"text": "FastAPI DELETE `bank_recon_delete_session` without auth dependency \u2014 routes/bank_recon_routes.py:210"}, "properties": {"repobilityId": "f8a6cb7629ed84d4", "scanner": "scanner-primary", "fingerprint": "761495da25a983b8", "layer": "security", "severity": "high", "confidence": 1.0, "tags": ["auth", "owasp", "auth.fastapi.unauth_mutation"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "routes/bank_recon_routes.py"}, "region": {"startLine": 210}}}]}, {"ruleId": "scanner-480a7a731efcd665", "level": "error", "message": {"text": "FastAPI POST `bank_recon_run_match` without auth dependency \u2014 routes/bank_recon_routes.py:224"}, "properties": {"repobilityId": "aaa0d5c2391b81a4", "scanner": "scanner-primary", "fingerprint": "480a7a731efcd665", "layer": "security", "severity": "high", "confidence": 1.0, "tags": ["auth", "owasp", "auth.fastapi.unauth_mutation"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "routes/bank_recon_routes.py"}, "region": {"startLine": 224}}}]}, {"ruleId": "scanner-f66a5a8101f461ee", "level": "error", "message": {"text": "FastAPI POST `bank_recon_tx_override` without auth dependency \u2014 routes/bank_recon_routes.py:252"}, "properties": {"repobilityId": "acdb0bd8dc522b9e", "scanner": "scanner-primary", "fingerprint": "f66a5a8101f461ee", "layer": "security", "severity": "high", "confidence": 1.0, "tags": ["auth", "owasp", "auth.fastapi.unauth_mutation"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "routes/bank_recon_routes.py"}, "region": {"startLine": 252}}}]}, {"ruleId": "scanner-84c2029ae493b5c5", "level": "error", "message": {"text": "FastAPI PATCH `bank_recon_set_session_client` without auth dependency \u2014 routes/bank_recon_routes.py:282"}, "properties": {"repobilityId": "35e2d0935177db57", "scanner": "scanner-primary", "fingerprint": "84c2029ae493b5c5", "layer": "security", "severity": "high", "confidence": 1.0, "tags": ["auth", "owasp", "auth.fastapi.unauth_mutation"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "routes/bank_recon_routes.py"}, "region": {"startLine": 282}}}]}, {"ruleId": "scanner-6eb48f0de6d73525", "level": "error", "message": {"text": "FastAPI POST `api_upload_image` without auth dependency \u2014 routes/uploads_routes.py:39"}, "properties": {"repobilityId": "3dec6921bf5fb5d7", "scanner": "scanner-primary", "fingerprint": "6eb48f0de6d73525", "layer": "security", "severity": "high", "confidence": 1.0, "tags": ["auth", "owasp", "auth.fastapi.unauth_mutation"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "routes/uploads_routes.py"}, "region": {"startLine": 39}}}]}, {"ruleId": "scanner-03fe00f368b5fccb", "level": "error", "message": {"text": "FastAPI POST `save_mapping` without auth dependency \u2014 routes/import_routes.py:44"}, "properties": {"repobilityId": "7d99ddcc8904f49c", "scanner": "scanner-primary", "fingerprint": "03fe00f368b5fccb", "layer": "security", "severity": "high", "confidence": 1.0, "tags": ["auth", "owasp", "auth.fastapi.unauth_mutation"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "routes/import_routes.py"}, "region": {"startLine": 44}}}]}, {"ruleId": "scanner-c176b320393c324e", "level": "error", "message": {"text": "FastAPI DELETE `delete_mapping` without auth dependency \u2014 routes/import_routes.py:81"}, "properties": {"repobilityId": "04102f793139d033", "scanner": "scanner-primary", "fingerprint": "c176b320393c324e", "layer": "security", "severity": "high", "confidence": 1.0, "tags": ["auth", "owasp", "auth.fastapi.unauth_mutation"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "routes/import_routes.py"}, "region": {"startLine": 81}}}]}, {"ruleId": "scanner-3c08042d24eb41ee", "level": "error", "message": {"text": "FastAPI POST `ask_question` without auth dependency \u2014 routes/knowledge_ask_routes.py:51"}, "properties": {"repobilityId": "752fb4d8ff284b3f", "scanner": "scanner-primary", "fingerprint": "3c08042d24eb41ee", "layer": "security", "severity": "high", "confidence": 1.0, "tags": ["auth", "owasp", "auth.fastapi.unauth_mutation"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "routes/knowledge_ask_routes.py"}, "region": {"startLine": 51}}}]}, {"ruleId": "scanner-d5defc3a78592283", "level": "error", "message": {"text": "FastAPI POST `link_line` without auth dependency \u2014 routes/auth_me_routes.py:34"}, "properties": {"repobilityId": "dd789920291c3528", "scanner": "scanner-primary", "fingerprint": "d5defc3a78592283", "layer": "security", "severity": "high", "confidence": 1.0, "tags": ["auth", "owasp", "auth.fastapi.unauth_mutation"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "routes/auth_me_routes.py"}, "region": {"startLine": 34}}}]}, {"ruleId": "scanner-3528c2254b86bbad", "level": "error", "message": {"text": "FastAPI POST `link_line_dev` without auth dependency \u2014 routes/auth_me_routes.py:89"}, "properties": {"repobilityId": "0e72edda2929bdf4", "scanner": "scanner-primary", "fingerprint": "3528c2254b86bbad", "layer": "security", "severity": "high", "confidence": 1.0, "tags": ["auth", "owasp", "auth.fastapi.unauth_mutation"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "routes/auth_me_routes.py"}, "region": {"startLine": 89}}}]}, {"ruleId": "scanner-201c19dddd7ed94c", "level": "error", "message": {"text": "FastAPI POST `xero_set_auto_push` without auth dependency \u2014 routes/erp_xero_routes.py:268"}, "properties": {"repobilityId": "df2e04a3fc3ae07f", "scanner": "scanner-primary", "fingerprint": "201c19dddd7ed94c", "layer": "security", "severity": "high", "confidence": 1.0, "tags": ["auth", "owasp", "auth.fastapi.unauth_mutation"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "routes/erp_xero_routes.py"}, "region": {"startLine": 268}}}]}, {"ruleId": "scanner-a6b0d629ca0cae06", "level": "error", "message": {"text": "FastAPI POST `xero_select_org` without auth dependency \u2014 routes/erp_xero_routes.py:279"}, "properties": {"repobilityId": "6c7e361d817e2684", "scanner": "scanner-primary", "fingerprint": "a6b0d629ca0cae06", "layer": "security", "severity": "high", "confidence": 1.0, "tags": ["auth", "owasp", "auth.fastapi.unauth_mutation"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "routes/erp_xero_routes.py"}, "region": {"startLine": 279}}}]}, {"ruleId": "scanner-a5e21603cf6dd848", "level": "error", "message": {"text": "FastAPI POST `xero_disconnect` without auth dependency \u2014 routes/erp_xero_routes.py:293"}, "properties": {"repobilityId": "0ab3a06a21079fb6", "scanner": "scanner-primary", "fingerprint": "a5e21603cf6dd848", "layer": "security", "severity": "high", "confidence": 1.0, "tags": ["auth", "owasp", "auth.fastapi.unauth_mutation"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "routes/erp_xero_routes.py"}, "region": {"startLine": 293}}}]}, {"ruleId": "scanner-921251bc67572604", "level": "error", "message": {"text": "FastAPI POST `xero_push` without auth dependency \u2014 routes/erp_xero_routes.py:338"}, "properties": {"repobilityId": "ff717bd62411c0ff", "scanner": "scanner-primary", "fingerprint": "921251bc67572604", "layer": "security", "severity": "high", "confidence": 1.0, "tags": ["auth", "owasp", "auth.fastapi.unauth_mutation"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "routes/erp_xero_routes.py"}, "region": {"startLine": 338}}}]}, {"ruleId": "scanner-2ee0eda20d9e3035", "level": "error", "message": {"text": "FastAPI POST `api_export` without auth dependency \u2014 routes/export_routes.py:34"}, "properties": {"repobilityId": "17b26fd2d354598d", "scanner": "scanner-primary", "fingerprint": "2ee0eda20d9e3035", "layer": "security", "severity": "high", "confidence": 1.0, "tags": ["auth", "owasp", "auth.fastapi.unauth_mutation"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "routes/export_routes.py"}, "region": {"startLine": 34}}}]}, {"ruleId": "scanner-a2100bf20844b180", "level": "error", "message": {"text": "FastAPI POST `credits_topup_request` without auth dependency \u2014 routes/billing_topup_routes.py:106"}, "properties": {"repobilityId": "4532b1864b7ec3d1", "scanner": "scanner-primary", "fingerprint": "a2100bf20844b180", "layer": "security", "severity": "high", "confidence": 1.0, "tags": ["auth", "owasp", "auth.fastapi.unauth_mutation"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "routes/billing_topup_routes.py"}, "region": {"startLine": 106}}}]}, {"ruleId": "scanner-95c7609e555a1de1", "level": "error", "message": {"text": "FastAPI POST `credits_topup_upload_slip` without auth dependency \u2014 routes/billing_topup_routes.py:132"}, "properties": {"repobilityId": "014521dcfdedd6ad", "scanner": "scanner-primary", "fingerprint": "95c7609e555a1de1", "layer": "security", "severity": "high", "confidence": 1.0, "tags": ["auth", "owasp", "auth.fastapi.unauth_mutation"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "routes/billing_topup_routes.py"}, "region": {"startLine": 132}}}]}, {"ruleId": "scanner-6d2996881b037a3c", "level": "error", "message": {"text": "FastAPI POST `admin_topup_approve` without auth dependency \u2014 routes/billing_topup_routes.py:288"}, "properties": {"repobilityId": "b3448e42c62ce22f", "scanner": "scanner-primary", "fingerprint": "6d2996881b037a3c", "layer": "security", "severity": "high", "confidence": 1.0, "tags": ["auth", "owasp", "auth.fastapi.unauth_mutation"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "routes/billing_topup_routes.py"}, "region": {"startLine": 288}}}]}, {"ruleId": "scanner-737bb525f7708941", "level": "error", "message": {"text": "FastAPI POST `admin_topup_reject` without auth dependency \u2014 routes/billing_topup_routes.py:331"}, "properties": {"repobilityId": "1fdcaa0754dca0e4", "scanner": "scanner-primary", "fingerprint": "737bb525f7708941", "layer": "security", "severity": "high", "confidence": 1.0, "tags": ["auth", "owasp", "auth.fastapi.unauth_mutation"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "routes/billing_topup_routes.py"}, "region": {"startLine": 331}}}]}, {"ruleId": "scanner-ea65d6b033a992ed", "level": "error", "message": {"text": "FastAPI POST `api_resolve_exception` without auth dependency \u2014 routes/exceptions_routes.py:102"}, "properties": {"repobilityId": "503c2e19347460a1", "scanner": "scanner-primary", "fingerprint": "ea65d6b033a992ed", "layer": "security", "severity": "high", "confidence": 1.0, "tags": ["auth", "owasp", "auth.fastapi.unauth_mutation"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "routes/exceptions_routes.py"}, "region": {"startLine": 102}}}]}, {"ruleId": "scanner-7ee35293883a3155", "level": "error", "message": {"text": "FastAPI POST `api_ignore_exception` without auth dependency \u2014 routes/exceptions_routes.py:114"}, "properties": {"repobilityId": "1fcdf328d110f06a", "scanner": "scanner-primary", "fingerprint": "7ee35293883a3155", "layer": "security", "severity": "high", "confidence": 1.0, "tags": ["auth", "owasp", "auth.fastapi.unauth_mutation"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "routes/exceptions_routes.py"}, "region": {"startLine": 114}}}]}, {"ruleId": "scanner-80995082c40a898a", "level": "error", "message": {"text": "FastAPI POST `api_batch_exceptions` without auth dependency \u2014 routes/exceptions_routes.py:135"}, "properties": {"repobilityId": "070cc363c05a4c4d", "scanner": "scanner-primary", "fingerprint": "80995082c40a898a", "layer": "security", "severity": "high", "confidence": 1.0, "tags": ["auth", "owasp", "auth.fastapi.unauth_mutation"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "routes/exceptions_routes.py"}, "region": {"startLine": 135}}}]}, {"ruleId": "scanner-9434cc883a5161e7", "level": "error", "message": {"text": "FastAPI DELETE `api_delete_exception_whitelist` without auth dependency \u2014 routes/exceptions_routes.py:185"}, "properties": {"repobilityId": "ac7832cc6f3bc64f", "scanner": "scanner-primary", "fingerprint": "9434cc883a5161e7", "layer": "security", "severity": "high", "confidence": 1.0, "tags": ["auth", "owasp", "auth.fastapi.unauth_mutation"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "routes/exceptions_routes.py"}, "region": {"startLine": 185}}}]}, {"ruleId": "scanner-943a2886a9c1157a", "level": "error", "message": {"text": "FastAPI PUT `api_set_module` without auth dependency \u2014 routes/pos_modules_routes.py:39"}, "properties": {"repobilityId": "ea3037afc4f900da", "scanner": "scanner-primary", "fingerprint": "943a2886a9c1157a", "layer": "security", "severity": "high", "confidence": 1.0, "tags": ["auth", "owasp", "auth.fastapi.unauth_mutation"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "routes/pos_modules_routes.py"}, "region": {"startLine": 39}}}]}, {"ruleId": "scanner-0ba941d216400ec6", "level": "error", "message": {"text": "FastAPI POST `api_create_product` without auth dependency \u2014 routes/products_routes.py:149"}, "properties": {"repobilityId": "968d9bc2e6ba86a8", "scanner": "scanner-primary", "fingerprint": "0ba941d216400ec6", "layer": "security", "severity": "high", "confidence": 1.0, "tags": ["auth", "owasp", "auth.fastapi.unauth_mutation"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "routes/products_routes.py"}, "region": {"startLine": 149}}}]}, {"ruleId": "scanner-17de188a14a58fc6", "level": "error", "message": {"text": "FastAPI POST `api_import_products` without auth dependency \u2014 routes/products_routes.py:186"}, "properties": {"repobilityId": "a7a7e784d5389068", "scanner": "scanner-primary", "fingerprint": "17de188a14a58fc6", "layer": "security", "severity": "high", "confidence": 1.0, "tags": ["auth", "owasp", "auth.fastapi.unauth_mutation"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "routes/products_routes.py"}, "region": {"startLine": 186}}}]}, {"ruleId": "scanner-43b3965ce5e88a68", "level": "error", "message": {"text": "FastAPI PATCH `api_update_product` without auth dependency \u2014 routes/products_routes.py:223"}, "properties": {"repobilityId": "0a4caf76bed22d15", "scanner": "scanner-primary", "fingerprint": "43b3965ce5e88a68", "layer": "security", "severity": "high", "confidence": 1.0, "tags": ["auth", "owasp", "auth.fastapi.unauth_mutation"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "routes/products_routes.py"}, "region": {"startLine": 223}}}]}, {"ruleId": "scanner-ecaf4dc74832a728", "level": "error", "message": {"text": "FastAPI DELETE `api_delete_product` without auth dependency \u2014 routes/products_routes.py:242"}, "properties": {"repobilityId": "0e92be94e9aed464", "scanner": "scanner-primary", "fingerprint": "ecaf4dc74832a728", "layer": "security", "severity": "high", "confidence": 1.0, "tags": ["auth", "owasp", "auth.fastapi.unauth_mutation"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "routes/products_routes.py"}, "region": {"startLine": 242}}}]}, {"ruleId": "scanner-f01e5101c6daa741", "level": "error", "message": {"text": "FastAPI POST `api_create_unit` without auth dependency \u2014 routes/products_routes.py:267"}, "properties": {"repobilityId": "b30ce5f8fb5dca81", "scanner": "scanner-primary", "fingerprint": "f01e5101c6daa741", "layer": "security", "severity": "high", "confidence": 1.0, "tags": ["auth", "owasp", "auth.fastapi.unauth_mutation"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "routes/products_routes.py"}, "region": {"startLine": 267}}}]}, {"ruleId": "scanner-0b4c3008fb9cb336", "level": "error", "message": {"text": "FastAPI PATCH `api_update_unit` without auth dependency \u2014 routes/products_routes.py:286"}, "properties": {"repobilityId": "f8fbb9727aab8a96", "scanner": "scanner-primary", "fingerprint": "0b4c3008fb9cb336", "layer": "security", "severity": "high", "confidence": 1.0, "tags": ["auth", "owasp", "auth.fastapi.unauth_mutation"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "routes/products_routes.py"}, "region": {"startLine": 286}}}]}, {"ruleId": "scanner-39d2c395265c0836", "level": "error", "message": {"text": "FastAPI DELETE `api_delete_unit` without auth dependency \u2014 routes/products_routes.py:310"}, "properties": {"repobilityId": "a8bfbee8dc466095", "scanner": "scanner-primary", "fingerprint": "39d2c395265c0836", "layer": "security", "severity": "high", "confidence": 1.0, "tags": ["auth", "owasp", "auth.fastapi.unauth_mutation"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "routes/products_routes.py"}, "region": {"startLine": 310}}}]}, {"ruleId": "scanner-5dbad95d0ff69b09", "level": "error", "message": {"text": "FastAPI POST `api_create_bank_account` without auth dependency \u2014 routes/accounting_bank_routes.py:60"}, "properties": {"repobilityId": "9335b06a4a2c52b7", "scanner": "scanner-primary", "fingerprint": "5dbad95d0ff69b09", "layer": "security", "severity": "high", "confidence": 1.0, "tags": ["auth", "owasp", "auth.fastapi.unauth_mutation"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "routes/accounting_bank_routes.py"}, "region": {"startLine": 60}}}]}, {"ruleId": "scanner-319fea9c198768d7", "level": "error", "message": {"text": "FastAPI POST `api_bank_import` without auth dependency \u2014 routes/accounting_bank_routes.py:100"}, "properties": {"repobilityId": "d32a1000e512a6f9", "scanner": "scanner-primary", "fingerprint": "319fea9c198768d7", "layer": "security", "severity": "high", "confidence": 1.0, "tags": ["auth", "owasp", "auth.fastapi.unauth_mutation"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "routes/accounting_bank_routes.py"}, "region": {"startLine": 100}}}]}, {"ruleId": "scanner-528903e89b0de452", "level": "error", "message": {"text": "FastAPI POST `api_bank_match` without auth dependency \u2014 routes/accounting_bank_routes.py:259"}, "properties": {"repobilityId": "84b5c7c7693722ed", "scanner": "scanner-primary", "fingerprint": "528903e89b0de452", "layer": "security", "severity": "high", "confidence": 1.0, "tags": ["auth", "owasp", "auth.fastapi.unauth_mutation"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "routes/accounting_bank_routes.py"}, "region": {"startLine": 259}}}]}, {"ruleId": "scanner-04f2639fe119012a", "level": "error", "message": {"text": "FastAPI POST `api_bank_unmatch` without auth dependency \u2014 routes/accounting_bank_routes.py:281"}, "properties": {"repobilityId": "0097aaa28a066444", "scanner": "scanner-primary", "fingerprint": "04f2639fe119012a", "layer": "security", "severity": "high", "confidence": 1.0, "tags": ["auth", "owasp", "auth.fastapi.unauth_mutation"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "routes/accounting_bank_routes.py"}, "region": {"startLine": 281}}}]}, {"ruleId": "scanner-19291e03470585cf", "level": "error", "message": {"text": "FastAPI POST `api_bank_exclude` without auth dependency \u2014 routes/accounting_bank_routes.py:305"}, "properties": {"repobilityId": "8ecf4c8362ae3d82", "scanner": "scanner-primary", "fingerprint": "19291e03470585cf", "layer": "security", "severity": "high", "confidence": 1.0, "tags": ["auth", "owasp", "auth.fastapi.unauth_mutation"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "routes/accounting_bank_routes.py"}, "region": {"startLine": 305}}}]}, {"ruleId": "scanner-bdc5f890ed1a35bc", "level": "error", "message": {"text": "FastAPI POST `api_bank_restore` without auth dependency \u2014 routes/accounting_bank_routes.py:319"}, "properties": {"repobilityId": "d95037e3dc7ca102", "scanner": "scanner-primary", "fingerprint": "bdc5f890ed1a35bc", "layer": "security", "severity": "high", "confidence": 1.0, "tags": ["auth", "owasp", "auth.fastapi.unauth_mutation"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "routes/accounting_bank_routes.py"}, "region": {"startLine": 319}}}]}, {"ruleId": "scanner-d46d859d3e9ad780", "level": "error", "message": {"text": "FastAPI POST `api_bank_harvest` without auth dependency \u2014 routes/accounting_bank_routes.py:333"}, "properties": {"repobilityId": "f0b5443cce2e7827", "scanner": "scanner-primary", "fingerprint": "d46d859d3e9ad780", "layer": "security", "severity": "high", "confidence": 1.0, "tags": ["auth", "owasp", "auth.fastapi.unauth_mutation"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "routes/accounting_bank_routes.py"}, "region": {"startLine": 333}}}]}, {"ruleId": "scanner-6cfe75613a193aea", "level": "error", "message": {"text": "FastAPI POST `api_manual_voucher` without auth dependency \u2014 routes/accounting_routes.py:134"}, "properties": {"repobilityId": "50f3437dadc84134", "scanner": "scanner-primary", "fingerprint": "6cfe75613a193aea", "layer": "security", "severity": "high", "confidence": 1.0, "tags": ["auth", "owasp", "auth.fastapi.unauth_mutation"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "routes/accounting_routes.py"}, "region": {"startLine": 134}}}]}, {"ruleId": "scanner-8b33bc6fd925ebba", "level": "error", "message": {"text": "FastAPI POST `api_create_template` without auth dependency \u2014 routes/accounting_routes.py:170"}, "properties": {"repobilityId": "39372e51d0c18528", "scanner": "scanner-primary", "fingerprint": "8b33bc6fd925ebba", "layer": "security", "severity": "high", "confidence": 1.0, "tags": ["auth", "owasp", "auth.fastapi.unauth_mutation"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "routes/accounting_routes.py"}, "region": {"startLine": 170}}}]}, {"ruleId": "scanner-6211b39f9554b942", "level": "error", "message": {"text": "FastAPI DELETE `api_delete_template` without auth dependency \u2014 routes/accounting_routes.py:195"}, "properties": {"repobilityId": "9aaec3c8f4886eb7", "scanner": "scanner-primary", "fingerprint": "6211b39f9554b942", "layer": "security", "severity": "high", "confidence": 1.0, "tags": ["auth", "owasp", "auth.fastapi.unauth_mutation"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "routes/accounting_routes.py"}, "region": {"startLine": 195}}}]}, {"ruleId": "scanner-ce5bb3ffe7820d84", "level": "error", "message": {"text": "FastAPI POST `api_review_voucher` without auth dependency \u2014 routes/accounting_routes.py:211"}, "properties": {"repobilityId": "5d7a2663c3108620", "scanner": "scanner-primary", "fingerprint": "ce5bb3ffe7820d84", "layer": "security", "severity": "high", "confidence": 1.0, "tags": ["auth", "owasp", "auth.fastapi.unauth_mutation"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "routes/accounting_routes.py"}, "region": {"startLine": 211}}}]}, {"ruleId": "scanner-6555a706eccd60c5", "level": "error", "message": {"text": "FastAPI PATCH `api_patch_voucher` without auth dependency \u2014 routes/accounting_routes.py:235"}, "properties": {"repobilityId": "a71d5f486b813667", "scanner": "scanner-primary", "fingerprint": "6555a706eccd60c5", "layer": "security", "severity": "high", "confidence": 1.0, "tags": ["auth", "owasp", "auth.fastapi.unauth_mutation"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "routes/accounting_routes.py"}, "region": {"startLine": 235}}}]}, {"ruleId": "scanner-90f34ecaf4b94698", "level": "error", "message": {"text": "FastAPI POST `api_void_voucher` without auth dependency \u2014 routes/accounting_routes.py:268"}, "properties": {"repobilityId": "6c9577d0c2eb59f6", "scanner": "scanner-primary", "fingerprint": "90f34ecaf4b94698", "layer": "security", "severity": "high", "confidence": 1.0, "tags": ["auth", "owasp", "auth.fastapi.unauth_mutation"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "routes/accounting_routes.py"}, "region": {"startLine": 268}}}]}, {"ruleId": "scanner-189e087a128ac453", "level": "error", "message": {"text": "FastAPI POST `api_unpost_voucher` without auth dependency \u2014 routes/accounting_routes.py:282"}, "properties": {"repobilityId": "2ae100ddf0a4ed51", "scanner": "scanner-primary", "fingerprint": "189e087a128ac453", "layer": "security", "severity": "high", "confidence": 1.0, "tags": ["auth", "owasp", "auth.fastapi.unauth_mutation"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "routes/accounting_routes.py"}, "region": {"startLine": 282}}}]}, {"ruleId": "scanner-d726e1b3772361ed", "level": "error", "message": {"text": "FastAPI POST `api_create_account` without auth dependency \u2014 routes/accounting_routes.py:330"}, "properties": {"repobilityId": "10e6691141361044", "scanner": "scanner-primary", "fingerprint": "d726e1b3772361ed", "layer": "security", "severity": "high", "confidence": 1.0, "tags": ["auth", "owasp", "auth.fastapi.unauth_mutation"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "routes/accounting_routes.py"}, "region": {"startLine": 330}}}]}, {"ruleId": "scanner-d8843f3d7017c7cf", "level": "error", "message": {"text": "FastAPI PATCH `api_update_account` without auth dependency \u2014 routes/accounting_routes.py:345"}, "properties": {"repobilityId": "712103c6a41e4e5f", "scanner": "scanner-primary", "fingerprint": "d8843f3d7017c7cf", "layer": "security", "severity": "high", "confidence": 1.0, "tags": ["auth", "owasp", "auth.fastapi.unauth_mutation"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "routes/accounting_routes.py"}, "region": {"startLine": 345}}}]}, {"ruleId": "scanner-256f32e5f023505b", "level": "error", "message": {"text": "FastAPI PUT `api_set_mapping` without auth dependency \u2014 routes/accounting_routes.py:378"}, "properties": {"repobilityId": "f527243eda9fd0b2", "scanner": "scanner-primary", "fingerprint": "256f32e5f023505b", "layer": "security", "severity": "high", "confidence": 1.0, "tags": ["auth", "owasp", "auth.fastapi.unauth_mutation"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "routes/accounting_routes.py"}, "region": {"startLine": 378}}}]}, {"ruleId": "scanner-ca5005a762c928f1", "level": "error", "message": {"text": "FastAPI PUT `api_update_settings` without auth dependency \u2014 routes/accounting_routes.py:405"}, "properties": {"repobilityId": "94597eac54ff8a9f", "scanner": "scanner-primary", "fingerprint": "ca5005a762c928f1", "layer": "security", "severity": "high", "confidence": 1.0, "tags": ["auth", "owasp", "auth.fastapi.unauth_mutation"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "routes/accounting_routes.py"}, "region": {"startLine": 405}}}]}, {"ruleId": "scanner-77e6a3bd31c39ba4", "level": "error", "message": {"text": "FastAPI DELETE `api_delete_learned` without auth dependency \u2014 routes/accounting_routes.py:429"}, "properties": {"repobilityId": "1e4418e26ed09a4b", "scanner": "scanner-primary", "fingerprint": "77e6a3bd31c39ba4", "layer": "security", "severity": "high", "confidence": 1.0, "tags": ["auth", "owasp", "auth.fastapi.unauth_mutation"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "routes/accounting_routes.py"}, "region": {"startLine": 429}}}]}, {"ruleId": "scanner-2eb7d828498b7019", "level": "error", "message": {"text": "FastAPI POST `api_disconnect` without auth dependency \u2014 routes/google_oauth_routes.py:112"}, "properties": {"repobilityId": "1dbdff6ea13e369c", "scanner": "scanner-primary", "fingerprint": "2eb7d828498b7019", "layer": "security", "severity": "high", "confidence": 1.0, "tags": ["auth", "owasp", "auth.fastapi.unauth_mutation"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "routes/google_oauth_routes.py"}, "region": {"startLine": 112}}}]}, {"ruleId": "scanner-ba8cd6d1bf26604b", "level": "error", "message": {"text": "FastAPI POST `create_task` without auth dependency \u2014 routes/recon_routes.py:199"}, "properties": {"repobilityId": "dbda35d063a5bf1b", "scanner": "scanner-primary", "fingerprint": "ba8cd6d1bf26604b", "layer": "security", "severity": "high", "confidence": 1.0, "tags": ["auth", "owasp", "auth.fastapi.unauth_mutation"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "routes/recon_routes.py"}, "region": {"startLine": 199}}}]}, {"ruleId": "scanner-9c6ff7f35a1fcbf5", "level": "error", "message": {"text": "FastAPI POST `run_recon` without auth dependency \u2014 routes/recon_routes.py:217"}, "properties": {"repobilityId": "1e76140fee5a7c05", "scanner": "scanner-primary", "fingerprint": "9c6ff7f35a1fcbf5", "layer": "security", "severity": "high", "confidence": 1.0, "tags": ["auth", "owasp", "auth.fastapi.unauth_mutation"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "routes/recon_routes.py"}, "region": {"startLine": 217}}}]}, {"ruleId": "scanner-9e76272d0dbb4972", "level": "error", "message": {"text": "FastAPI POST `row_ai` without auth dependency \u2014 routes/recon_routes.py:302"}, "properties": {"repobilityId": "6a8bc9b0dc75310c", "scanner": "scanner-primary", "fingerprint": "9e76272d0dbb4972", "layer": "security", "severity": "high", "confidence": 1.0, "tags": ["auth", "owasp", "auth.fastapi.unauth_mutation"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "routes/recon_routes.py"}, "region": {"startLine": 302}}}]}, {"ruleId": "scanner-1488529de00f64cd", "level": "error", "message": {"text": "FastAPI POST `row_action` without auth dependency \u2014 routes/recon_routes.py:334"}, "properties": {"repobilityId": "13bdffba980b42dd", "scanner": "scanner-primary", "fingerprint": "1488529de00f64cd", "layer": "security", "severity": "high", "confidence": 1.0, "tags": ["auth", "owasp", "auth.fastapi.unauth_mutation"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "routes/recon_routes.py"}, "region": {"startLine": 334}}}]}, {"ruleId": "scanner-4e17f513f1fc1391", "level": "error", "message": {"text": "FastAPI PATCH `row_field_override` without auth dependency \u2014 routes/recon_routes.py:355"}, "properties": {"repobilityId": "95928703ebec88c2", "scanner": "scanner-primary", "fingerprint": "4e17f513f1fc1391", "layer": "security", "severity": "high", "confidence": 1.0, "tags": ["auth", "owasp", "auth.fastapi.unauth_mutation"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "routes/recon_routes.py"}, "region": {"startLine": 355}}}]}, {"ruleId": "scanner-05da3e57670f5100", "level": "error", "message": {"text": "FastAPI PUT `api_set_settings` without auth dependency \u2014 routes/sales_settings_routes.py:59"}, "properties": {"repobilityId": "f4674ebf9ec5d8ee", "scanner": "scanner-primary", "fingerprint": "05da3e57670f5100", "layer": "security", "severity": "high", "confidence": 1.0, "tags": ["auth", "owasp", "auth.fastapi.unauth_mutation"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "routes/sales_settings_routes.py"}, "region": {"startLine": 59}}}]}, {"ruleId": "scanner-de4551996a20c7a6", "level": "error", "message": {"text": "FastAPI POST `admin_cleanup_demo` without auth dependency \u2014 routes/auth_admin_routes.py:82"}, "properties": {"repobilityId": "8d5ec07a8bc494f9", "scanner": "scanner-primary", "fingerprint": "de4551996a20c7a6", "layer": "security", "severity": "high", "confidence": 1.0, "tags": ["auth", "owasp", "auth.fastapi.unauth_mutation"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "routes/auth_admin_routes.py"}, "region": {"startLine": 82}}}]}, {"ruleId": "scanner-b92d76332208d6ac", "level": "error", "message": {"text": "FastAPI POST `api_create_document` without auth dependency \u2014 routes/sales_routes.py:213"}, "properties": {"repobilityId": "6275bcaa5d0dd977", "scanner": "scanner-primary", "fingerprint": "b92d76332208d6ac", "layer": "security", "severity": "high", "confidence": 1.0, "tags": ["auth", "owasp", "auth.fastapi.unauth_mutation"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "routes/sales_routes.py"}, "region": {"startLine": 213}}}]}, {"ruleId": "scanner-55ed172aa5a04ae3", "level": "error", "message": {"text": "FastAPI PATCH `api_update_document` without auth dependency \u2014 routes/sales_routes.py:292"}, "properties": {"repobilityId": "667b2b98c496575f", "scanner": "scanner-primary", "fingerprint": "55ed172aa5a04ae3", "layer": "security", "severity": "high", "confidence": 1.0, "tags": ["auth", "owasp", "auth.fastapi.unauth_mutation"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "routes/sales_routes.py"}, "region": {"startLine": 292}}}]}, {"ruleId": "scanner-6c31dc503a1c6006", "level": "error", "message": {"text": "FastAPI POST `api_issue_document` without auth dependency \u2014 routes/sales_routes.py:327"}, "properties": {"repobilityId": "318ac7dfbec9f1b7", "scanner": "scanner-primary", "fingerprint": "6c31dc503a1c6006", "layer": "security", "severity": "high", "confidence": 1.0, "tags": ["auth", "owasp", "auth.fastapi.unauth_mutation"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "routes/sales_routes.py"}, "region": {"startLine": 327}}}]}, {"ruleId": "scanner-505e00cbae203c84", "level": "error", "message": {"text": "FastAPI POST `api_void_document` without auth dependency \u2014 routes/sales_routes.py:354"}, "properties": {"repobilityId": "5c6c31eeee401b77", "scanner": "scanner-primary", "fingerprint": "505e00cbae203c84", "layer": "security", "severity": "high", "confidence": 1.0, "tags": ["auth", "owasp", "auth.fastapi.unauth_mutation"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "routes/sales_routes.py"}, "region": {"startLine": 354}}}]}, {"ruleId": "scanner-4d7eaad877f809ac", "level": "error", "message": {"text": "FastAPI DELETE `api_delete_draft` without auth dependency \u2014 routes/sales_routes.py:365"}, "properties": {"repobilityId": "93bbdb5705bd95ea", "scanner": "scanner-primary", "fingerprint": "4d7eaad877f809ac", "layer": "security", "severity": "high", "confidence": 1.0, "tags": ["auth", "owasp", "auth.fastapi.unauth_mutation"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "routes/sales_routes.py"}, "region": {"startLine": 365}}}]}, {"ruleId": "scanner-8faaf2a3c082d0ef", "level": "error", "message": {"text": "FastAPI POST `api_submit_for_approval` without auth dependency \u2014 routes/sales_routes.py:377"}, "properties": {"repobilityId": "2b3c4cdb45a857a2", "scanner": "scanner-primary", "fingerprint": "8faaf2a3c082d0ef", "layer": "security", "severity": "high", "confidence": 1.0, "tags": ["auth", "owasp", "auth.fastapi.unauth_mutation"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "routes/sales_routes.py"}, "region": {"startLine": 377}}}]}, {"ruleId": "scanner-5374144f286ed7a8", "level": "error", "message": {"text": "FastAPI POST `api_approve_document` without auth dependency \u2014 routes/sales_routes.py:389"}, "properties": {"repobilityId": "3013db4030637940", "scanner": "scanner-primary", "fingerprint": "5374144f286ed7a8", "layer": "security", "severity": "high", "confidence": 1.0, "tags": ["auth", "owasp", "auth.fastapi.unauth_mutation"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "routes/sales_routes.py"}, "region": {"startLine": 389}}}]}, {"ruleId": "scanner-38ad99486021fd11", "level": "error", "message": {"text": "FastAPI POST `api_reject_document` without auth dependency \u2014 routes/sales_routes.py:415"}, "properties": {"repobilityId": "f419bd47783b544b", "scanner": "scanner-primary", "fingerprint": "38ad99486021fd11", "layer": "security", "severity": "high", "confidence": 1.0, "tags": ["auth", "owasp", "auth.fastapi.unauth_mutation"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "routes/sales_routes.py"}, "region": {"startLine": 415}}}]}, {"ruleId": "scanner-7244d0cd1ec31a11", "level": "error", "message": {"text": "FastAPI POST `api_credit_note` without auth dependency \u2014 routes/sales_routes.py:453"}, "properties": {"repobilityId": "53a85060e90e82dd", "scanner": "scanner-primary", "fingerprint": "7244d0cd1ec31a11", "layer": "security", "severity": "high", "confidence": 1.0, "tags": ["auth", "owasp", "auth.fastapi.unauth_mutation"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "routes/sales_routes.py"}, "region": {"startLine": 453}}}]}, {"ruleId": "scanner-1882d0e661c05669", "level": "error", "message": {"text": "FastAPI POST `api_debit_note` without auth dependency \u2014 routes/sales_routes.py:459"}, "properties": {"repobilityId": "2dc748ed064fe413", "scanner": "scanner-primary", "fingerprint": "1882d0e661c05669", "layer": "security", "severity": "high", "confidence": 1.0, "tags": ["auth", "owasp", "auth.fastapi.unauth_mutation"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "routes/sales_routes.py"}, "region": {"startLine": 459}}}]}, {"ruleId": "scanner-d2967692b271c35f", "level": "error", "message": {"text": "FastAPI POST `api_convert_quotation` without auth dependency \u2014 routes/sales_routes.py:465"}, "properties": {"repobilityId": "ba6223405fe349b6", "scanner": "scanner-primary", "fingerprint": "d2967692b271c35f", "layer": "security", "severity": "high", "confidence": 1.0, "tags": ["auth", "owasp", "auth.fastapi.unauth_mutation"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "routes/sales_routes.py"}, "region": {"startLine": 465}}}]}, {"ruleId": "scanner-5b6142a5dc08c803", "level": "error", "message": {"text": "FastAPI POST `bank_v2_submit` without auth dependency \u2014 routes/recon_jobs_routes.py:172"}, "properties": {"repobilityId": "61a0fcb73cd7e8fb", "scanner": "scanner-primary", "fingerprint": "5b6142a5dc08c803", "layer": "security", "severity": "high", "confidence": 1.0, "tags": ["auth", "owasp", "auth.fastapi.unauth_mutation"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "routes/recon_jobs_routes.py"}, "region": {"startLine": 172}}}]}, {"ruleId": "scanner-79fc42e1da199430", "level": "error", "message": {"text": "FastAPI POST `gl_vat_submit` without auth dependency \u2014 routes/recon_jobs_routes.py:238"}, "properties": {"repobilityId": "c66fc82de97e3249", "scanner": "scanner-primary", "fingerprint": "79fc42e1da199430", "layer": "security", "severity": "high", "confidence": 1.0, "tags": ["auth", "owasp", "auth.fastapi.unauth_mutation"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "routes/recon_jobs_routes.py"}, "region": {"startLine": 238}}}]}, {"ruleId": "scanner-7844b9466180e048", "level": "error", "message": {"text": "FastAPI POST `vat_excel_submit` without auth dependency \u2014 routes/recon_jobs_routes.py:299"}, "properties": {"repobilityId": "f8d19520c423a2a2", "scanner": "scanner-primary", "fingerprint": "7844b9466180e048", "layer": "security", "severity": "high", "confidence": 1.0, "tags": ["auth", "owasp", "auth.fastapi.unauth_mutation"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "routes/recon_jobs_routes.py"}, "region": {"startLine": 299}}}]}, {"ruleId": "scanner-fd27c6dc35b6cc6e", "level": "error", "message": {"text": "FastAPI POST `bank_v2_confirm_rows` without auth dependency \u2014 routes/recon_jobs_routes.py:400"}, "properties": {"repobilityId": "a549e108c25cd36f", "scanner": "scanner-primary", "fingerprint": "fd27c6dc35b6cc6e", "layer": "security", "severity": "high", "confidence": 1.0, "tags": ["auth", "owasp", "auth.fastapi.unauth_mutation"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "routes/recon_jobs_routes.py"}, "region": {"startLine": 400}}}]}, {"ruleId": "scanner-804a3f0f4204e9be", "level": "error", "message": {"text": "FastAPI POST `ocr_export` without auth dependency \u2014 routes/ocr_export_routes.py:75"}, "properties": {"repobilityId": "2331488671d83969", "scanner": "scanner-primary", "fingerprint": "804a3f0f4204e9be", "layer": "security", "severity": "high", "confidence": 1.0, "tags": ["auth", "owasp", "auth.fastapi.unauth_mutation"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "routes/ocr_export_routes.py"}, "region": {"startLine": 75}}}]}, {"ruleId": "scanner-9e6cd5fc7096c562", "level": "error", "message": {"text": "FastAPI POST `ocr_export_by_history_ids` without auth dependency \u2014 routes/ocr_export_routes.py:153"}, "properties": {"repobilityId": "7f0596bdb686ca9d", "scanner": "scanner-primary", "fingerprint": "9e6cd5fc7096c562", "layer": "security", "severity": "high", "confidence": 1.0, "tags": ["auth", "owasp", "auth.fastapi.unauth_mutation"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "routes/ocr_export_routes.py"}, "region": {"startLine": 153}}}]}, {"ruleId": "scanner-a302297e334b3632", "level": "error", "message": {"text": "FastAPI POST `v1_export` without auth dependency \u2014 routes/ocr_export_routes.py:218"}, "properties": {"repobilityId": "112ff469e559d272", "scanner": "scanner-primary", "fingerprint": "a302297e334b3632", "layer": "security", "severity": "high", "confidence": 1.0, "tags": ["auth", "owasp", "auth.fastapi.unauth_mutation"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "routes/ocr_export_routes.py"}, "region": {"startLine": 218}}}]}, {"ruleId": "scanner-aac2e02785ec9a30", "level": "error", "message": {"text": "FastAPI POST `api_intake` without auth dependency \u2014 routes/purchase_intake_routes.py:69"}, "properties": {"repobilityId": "9d4969412e4bc3cd", "scanner": "scanner-primary", "fingerprint": "aac2e02785ec9a30", "layer": "security", "severity": "high", "confidence": 1.0, "tags": ["auth", "owasp", "auth.fastapi.unauth_mutation"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "routes/purchase_intake_routes.py"}, "region": {"startLine": 69}}}]}, {"ruleId": "scanner-4da7aab4f9266d30", "level": "error", "message": {"text": "FastAPI POST `api_quick_expense` without auth dependency \u2014 routes/purchase_intake_routes.py:138"}, "properties": {"repobilityId": "c191d11ace5c635e", "scanner": "scanner-primary", "fingerprint": "4da7aab4f9266d30", "layer": "security", "severity": "high", "confidence": 1.0, "tags": ["auth", "owasp", "auth.fastapi.unauth_mutation"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "routes/purchase_intake_routes.py"}, "region": {"startLine": 138}}}]}, {"ruleId": "scanner-0b3badaf44c2fa8d", "level": "error", "message": {"text": "FastAPI POST `api_inbox_resolve` without auth dependency \u2014 routes/purchase_intake_routes.py:193"}, "properties": {"repobilityId": "d0a25d541d4ca8f5", "scanner": "scanner-primary", "fingerprint": "0b3badaf44c2fa8d", "layer": "security", "severity": "high", "confidence": 1.0, "tags": ["auth", "owasp", "auth.fastapi.unauth_mutation"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "routes/purchase_intake_routes.py"}, "region": {"startLine": 193}}}]}, {"ruleId": "scanner-c84e0b2eef9c1c9e", "level": "error", "message": {"text": "FastAPI POST `api_bind_device` without auth dependency \u2014 routes/pos_auth_routes.py:111"}, "properties": {"repobilityId": "4ea62d9a54c38789", "scanner": "scanner-primary", "fingerprint": "c84e0b2eef9c1c9e", "layer": "security", "severity": "high", "confidence": 1.0, "tags": ["auth", "owasp", "auth.fastapi.unauth_mutation"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "routes/pos_auth_routes.py"}, "region": {"startLine": 111}}}]}, {"ruleId": "scanner-8f174c9ad3041111", "level": "error", "message": {"text": "FastAPI POST `api_pin_login` without auth dependency \u2014 routes/pos_auth_routes.py:143"}, "properties": {"repobilityId": "ed5d46984a2548ba", "scanner": "scanner-primary", "fingerprint": "8f174c9ad3041111", "layer": "security", "severity": "high", "confidence": 1.0, "tags": ["auth", "owasp", "auth.fastapi.unauth_mutation"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "routes/pos_auth_routes.py"}, "region": {"startLine": 143}}}]}, {"ruleId": "scanner-65b9f79f3e0399a4", "level": "error", "message": {"text": "FastAPI POST `api_reset_store_code` without auth dependency \u2014 routes/pos_auth_routes.py:183"}, "properties": {"repobilityId": "5116cbec842ab6bc", "scanner": "scanner-primary", "fingerprint": "65b9f79f3e0399a4", "layer": "security", "severity": "high", "confidence": 1.0, "tags": ["auth", "owasp", "auth.fastapi.unauth_mutation"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "routes/pos_auth_routes.py"}, "region": {"startLine": 183}}}]}, {"ruleId": "scanner-2f9bf2372d8e9a92", "level": "error", "message": {"text": "FastAPI POST `api_admin_create_cashier` without auth dependency \u2014 routes/pos_auth_routes.py:242"}, "properties": {"repobilityId": "7ffdcb4cb5aa1650", "scanner": "scanner-primary", "fingerprint": "2f9bf2372d8e9a92", "layer": "security", "severity": "high", "confidence": 1.0, "tags": ["auth", "owasp", "auth.fastapi.unauth_mutation"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "routes/pos_auth_routes.py"}, "region": {"startLine": 242}}}]}, {"ruleId": "scanner-355a60636fc0e82f", "level": "error", "message": {"text": "FastAPI PUT `api_admin_update_cashier` without auth dependency \u2014 routes/pos_auth_routes.py:259"}, "properties": {"repobilityId": "f8a9a732e8ab4d70", "scanner": "scanner-primary", "fingerprint": "355a60636fc0e82f", "layer": "security", "severity": "high", "confidence": 1.0, "tags": ["auth", "owasp", "auth.fastapi.unauth_mutation"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "routes/pos_auth_routes.py"}, "region": {"startLine": 259}}}]}, {"ruleId": "scanner-ae33b9821672e86d", "level": "error", "message": {"text": "FastAPI DELETE `api_admin_delete_cashier` without auth dependency \u2014 routes/pos_auth_routes.py:280"}, "properties": {"repobilityId": "0240f900d056fdca", "scanner": "scanner-primary", "fingerprint": "ae33b9821672e86d", "layer": "security", "severity": "high", "confidence": 1.0, "tags": ["auth", "owasp", "auth.fastapi.unauth_mutation"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "routes/pos_auth_routes.py"}, "region": {"startLine": 280}}}]}, {"ruleId": "scanner-97f1a3a4e3558d0e", "level": "error", "message": {"text": "FastAPI PUT `api_onboarding` without auth dependency \u2014 routes/pos_auth_routes.py:298"}, "properties": {"repobilityId": "abb97a17d2535edd", "scanner": "scanner-primary", "fingerprint": "97f1a3a4e3558d0e", "layer": "security", "severity": "high", "confidence": 1.0, "tags": ["auth", "owasp", "auth.fastapi.unauth_mutation"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "routes/pos_auth_routes.py"}, "region": {"startLine": 298}}}]}, {"ruleId": "scanner-8a1a5c1a0a9d2b1d", "level": "error", "message": {"text": "FastAPI POST `export_records` without auth dependency \u2014 routes/report_routes.py:123"}, "properties": {"repobilityId": "ec44e10fc9c68e11", "scanner": "scanner-primary", "fingerprint": "8a1a5c1a0a9d2b1d", "layer": "security", "severity": "high", "confidence": 1.0, "tags": ["auth", "owasp", "auth.fastapi.unauth_mutation"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "routes/report_routes.py"}, "region": {"startLine": 123}}}]}, {"ruleId": "scanner-047170a6f16692de", "level": "error", "message": {"text": "FastAPI POST `batch_export_history` without auth dependency \u2014 routes/report_routes.py:231"}, "properties": {"repobilityId": "6df88513a1882de2", "scanner": "scanner-primary", "fingerprint": "047170a6f16692de", "layer": "security", "severity": "high", "confidence": 1.0, "tags": ["auth", "owasp", "auth.fastapi.unauth_mutation"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "routes/report_routes.py"}, "region": {"startLine": 231}}}]}, {"ruleId": "scanner-403eb59366e6b2b5", "level": "error", "message": {"text": "FastAPI POST `forgot_password` without auth dependency \u2014 routes/auth_password_routes.py:222"}, "properties": {"repobilityId": "c1a35ad3cbf6119f", "scanner": "scanner-primary", "fingerprint": "403eb59366e6b2b5", "layer": "security", "severity": "high", "confidence": 1.0, "tags": ["auth", "owasp", "auth.fastapi.unauth_mutation"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "routes/auth_password_routes.py"}, "region": {"startLine": 222}}}]}, {"ruleId": "scanner-8604672aaaa83d5b", "level": "error", "message": {"text": "FastAPI POST `reset_password` without auth dependency \u2014 routes/auth_password_routes.py:333"}, "properties": {"repobilityId": "1839f3f01a30c52d", "scanner": "scanner-primary", "fingerprint": "8604672aaaa83d5b", "layer": "security", "severity": "high", "confidence": 1.0, "tags": ["auth", "owasp", "auth.fastapi.unauth_mutation"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "routes/auth_password_routes.py"}, "region": {"startLine": 333}}}]}, {"ruleId": "scanner-c83436761a63dbf2", "level": "error", "message": {"text": "FastAPI POST `change_password` without auth dependency \u2014 routes/auth_password_routes.py:417"}, "properties": {"repobilityId": "dcffba7832bb9b64", "scanner": "scanner-primary", "fingerprint": "c83436761a63dbf2", "layer": "security", "severity": "high", "confidence": 1.0, "tags": ["auth", "owasp", "auth.fastapi.unauth_mutation"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "routes/auth_password_routes.py"}, "region": {"startLine": 417}}}]}, {"ruleId": "scanner-7740f7965e8bc1a3", "level": "error", "message": {"text": "FastAPI PUT `history_update` without auth dependency \u2014 routes/history_routes.py:105"}, "properties": {"repobilityId": "ec329e76eb35cfe3", "scanner": "scanner-primary", "fingerprint": "7740f7965e8bc1a3", "layer": "security", "severity": "high", "confidence": 1.0, "tags": ["auth", "owasp", "auth.fastapi.unauth_mutation"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "routes/history_routes.py"}, "region": {"startLine": 105}}}]}, {"ruleId": "scanner-910ef3bd1301b519", "level": "error", "message": {"text": "FastAPI DELETE `history_delete` without auth dependency \u2014 routes/history_routes.py:172"}, "properties": {"repobilityId": "8ca5db15475e599b", "scanner": "scanner-primary", "fingerprint": "910ef3bd1301b519", "layer": "security", "severity": "high", "confidence": 1.0, "tags": ["auth", "owasp", "auth.fastapi.unauth_mutation"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "routes/history_routes.py"}, "region": {"startLine": 172}}}]}, {"ruleId": "scanner-8cc0c457fed287e4", "level": "error", "message": {"text": "FastAPI POST `history_batch_delete` without auth dependency \u2014 routes/history_routes.py:233"}, "properties": {"repobilityId": "255abf74a031f500", "scanner": "scanner-primary", "fingerprint": "8cc0c457fed287e4", "layer": "security", "severity": "high", "confidence": 1.0, "tags": ["auth", "owasp", "auth.fastapi.unauth_mutation"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "routes/history_routes.py"}, "region": {"startLine": 233}}}]}, {"ruleId": "scanner-cd497c26226c2f32", "level": "error", "message": {"text": "FastAPI PUT `v1_history_update` without auth dependency \u2014 routes/history_routes.py:275"}, "properties": {"repobilityId": "a67d1ab920e2ece0", "scanner": "scanner-primary", "fingerprint": "cd497c26226c2f32", "layer": "security", "severity": "high", "confidence": 1.0, "tags": ["auth", "owasp", "auth.fastapi.unauth_mutation"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "routes/history_routes.py"}, "region": {"startLine": 275}}}]}, {"ruleId": "scanner-81ce5415d8514200", "level": "error", "message": {"text": "FastAPI DELETE `v1_history_delete` without auth dependency \u2014 routes/history_routes.py:280"}, "properties": {"repobilityId": "74ac752e564d1002", "scanner": "scanner-primary", "fingerprint": "81ce5415d8514200", "layer": "security", "severity": "high", "confidence": 1.0, "tags": ["auth", "owasp", "auth.fastapi.unauth_mutation"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "routes/history_routes.py"}, "region": {"startLine": 280}}}]}, {"ruleId": "scanner-940e947337e6d217", "level": "error", "message": {"text": "FastAPI POST `api_assign_client` without auth dependency \u2014 routes/history_routes.py:289"}, "properties": {"repobilityId": "acb990a2a1271fbd", "scanner": "scanner-primary", "fingerprint": "940e947337e6d217", "layer": "security", "severity": "high", "confidence": 1.0, "tags": ["auth", "owasp", "auth.fastapi.unauth_mutation"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "routes/history_routes.py"}, "region": {"startLine": 289}}}]}, {"ruleId": "scanner-3e4976d65cad7c68", "level": "error", "message": {"text": "FastAPI POST `github_deploy_webhook` without auth dependency \u2014 routes/admin_diagnostics_routes.py:95"}, "properties": {"repobilityId": "a73568d347ac5de6", "scanner": "scanner-primary", "fingerprint": "3e4976d65cad7c68", "layer": "security", "severity": "high", "confidence": 1.0, "tags": ["auth", "owasp", "auth.fastapi.unauth_mutation"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "routes/admin_diagnostics_routes.py"}, "region": {"startLine": 95}}}]}, {"ruleId": "scanner-009d4f06e31587b0", "level": "error", "message": {"text": "FastAPI POST `install_playwright` without auth dependency \u2014 routes/admin_diagnostics_routes.py:224"}, "properties": {"repobilityId": "e0179ef7576895be", "scanner": "scanner-primary", "fingerprint": "009d4f06e31587b0", "layer": "security", "severity": "high", "confidence": 1.0, "tags": ["auth", "owasp", "auth.fastapi.unauth_mutation"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "routes/admin_diagnostics_routes.py"}, "region": {"startLine": 224}}}]}, {"ruleId": "scanner-8dfc5dbe3d95ed5c", "level": "error", "message": {"text": "FastAPI POST `rd_verify` without auth dependency \u2014 routes/rd_routes.py:64"}, "properties": {"repobilityId": "8d0c3666198efbbd", "scanner": "scanner-primary", "fingerprint": "8dfc5dbe3d95ed5c", "layer": "security", "severity": "high", "confidence": 1.0, "tags": ["auth", "owasp", "auth.fastapi.unauth_mutation"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "routes/rd_routes.py"}, "region": {"startLine": 64}}}]}, {"ruleId": "scanner-fdc7648bf952ad50", "level": "error", "message": {"text": "FastAPI POST `rd_lookup` without auth dependency \u2014 routes/rd_routes.py:78"}, "properties": {"repobilityId": "3409502903b9dc6f", "scanner": "scanner-primary", "fingerprint": "fdc7648bf952ad50", "layer": "security", "severity": "high", "confidence": 1.0, "tags": ["auth", "owasp", "auth.fastapi.unauth_mutation"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "routes/rd_routes.py"}, "region": {"startLine": 78}}}]}, {"ruleId": "scanner-70d60c4480f05a02", "level": "error", "message": {"text": "FastAPI POST `v1_rd_verify` without auth dependency \u2014 routes/rd_routes.py:93"}, "properties": {"repobilityId": "7f044304901228d7", "scanner": "scanner-primary", "fingerprint": "70d60c4480f05a02", "layer": "security", "severity": "high", "confidence": 1.0, "tags": ["auth", "owasp", "auth.fastapi.unauth_mutation"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "routes/rd_routes.py"}, "region": {"startLine": 93}}}]}, {"ruleId": "scanner-0478ffabb3df7110", "level": "error", "message": {"text": "FastAPI POST `v1_rd_lookup` without auth dependency \u2014 routes/rd_routes.py:98"}, "properties": {"repobilityId": "3c1b27a1c4d19638", "scanner": "scanner-primary", "fingerprint": "0478ffabb3df7110", "layer": "security", "severity": "high", "confidence": 1.0, "tags": ["auth", "owasp", "auth.fastapi.unauth_mutation"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "routes/rd_routes.py"}, "region": {"startLine": 98}}}]}, {"ruleId": "scanner-91493b51c447a89d", "level": "error", "message": {"text": "FastAPI POST `api_create_doc` without auth dependency \u2014 routes/purchase_routes.py:79"}, "properties": {"repobilityId": "711e8639800600d3", "scanner": "scanner-primary", "fingerprint": "91493b51c447a89d", "layer": "security", "severity": "high", "confidence": 1.0, "tags": ["auth", "owasp", "auth.fastapi.unauth_mutation"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "routes/purchase_routes.py"}, "region": {"startLine": 79}}}]}, {"ruleId": "scanner-b1dd78d8043a0e5f", "level": "error", "message": {"text": "FastAPI PUT `api_update_doc` without auth dependency \u2014 routes/purchase_routes.py:142"}, "properties": {"repobilityId": "1b3c41f93075b6d6", "scanner": "scanner-primary", "fingerprint": "b1dd78d8043a0e5f", "layer": "security", "severity": "high", "confidence": 1.0, "tags": ["auth", "owasp", "auth.fastapi.unauth_mutation"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "routes/purchase_routes.py"}, "region": {"startLine": 142}}}]}, {"ruleId": "scanner-d103b372161f5be7", "level": "error", "message": {"text": "FastAPI POST `api_post_doc` without auth dependency \u2014 routes/purchase_routes.py:161"}, "properties": {"repobilityId": "992b8b5db61490f6", "scanner": "scanner-primary", "fingerprint": "d103b372161f5be7", "layer": "security", "severity": "high", "confidence": 1.0, "tags": ["auth", "owasp", "auth.fastapi.unauth_mutation"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "routes/purchase_routes.py"}, "region": {"startLine": 161}}}]}, {"ruleId": "scanner-99df36323e3d92bc", "level": "error", "message": {"text": "FastAPI POST `api_pay_doc` without auth dependency \u2014 routes/purchase_routes.py:180"}, "properties": {"repobilityId": "3e05fc69a5bd06c2", "scanner": "scanner-primary", "fingerprint": "99df36323e3d92bc", "layer": "security", "severity": "high", "confidence": 1.0, "tags": ["auth", "owasp", "auth.fastapi.unauth_mutation"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "routes/purchase_routes.py"}, "region": {"startLine": 180}}}]}, {"ruleId": "scanner-870d22be554ed8d1", "level": "error", "message": {"text": "FastAPI POST `api_set_payment_status` without auth dependency \u2014 routes/purchase_routes.py:192"}, "properties": {"repobilityId": "c2a134ea467d6c75", "scanner": "scanner-primary", "fingerprint": "870d22be554ed8d1", "layer": "security", "severity": "high", "confidence": 1.0, "tags": ["auth", "owasp", "auth.fastapi.unauth_mutation"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "routes/purchase_routes.py"}, "region": {"startLine": 192}}}]}, {"ruleId": "scanner-d85f62e553c57b17", "level": "error", "message": {"text": "FastAPI POST `api_void_doc` without auth dependency \u2014 routes/purchase_routes.py:205"}, "properties": {"repobilityId": "f1ab78b335c038b6", "scanner": "scanner-primary", "fingerprint": "d85f62e553c57b17", "layer": "security", "severity": "high", "confidence": 1.0, "tags": ["auth", "owasp", "auth.fastapi.unauth_mutation"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "routes/purchase_routes.py"}, "region": {"startLine": 205}}}]}, {"ruleId": "scanner-50a2ceab733d5370", "level": "error", "message": {"text": "FastAPI DELETE `api_delete_doc` without auth dependency \u2014 routes/purchase_routes.py:221"}, "properties": {"repobilityId": "3b4341f3812fe777", "scanner": "scanner-primary", "fingerprint": "50a2ceab733d5370", "layer": "security", "severity": "high", "confidence": 1.0, "tags": ["auth", "owasp", "auth.fastapi.unauth_mutation"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "routes/purchase_routes.py"}, "region": {"startLine": 221}}}]}, {"ruleId": "scanner-082ac4e283ccbf67", "level": "error", "message": {"text": "FastAPI POST `api_match_product` without auth dependency \u2014 routes/purchase_routes.py:233"}, "properties": {"repobilityId": "e54a4a09b4cba48f", "scanner": "scanner-primary", "fingerprint": "082ac4e283ccbf67", "layer": "security", "severity": "high", "confidence": 1.0, "tags": ["auth", "owasp", "auth.fastapi.unauth_mutation"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "routes/purchase_routes.py"}, "region": {"startLine": 233}}}]}, {"ruleId": "scanner-373a34ed9bc0bba8", "level": "error", "message": {"text": "FastAPI POST `api_substitute_receipt` without auth dependency \u2014 routes/purchase_routes.py:281"}, "properties": {"repobilityId": "b33c17383f515941", "scanner": "scanner-primary", "fingerprint": "373a34ed9bc0bba8", "layer": "security", "severity": "high", "confidence": 1.0, "tags": ["auth", "owasp", "auth.fastapi.unauth_mutation"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "routes/purchase_routes.py"}, "region": {"startLine": 281}}}]}, {"ruleId": "scanner-90997f28d2e60b4c", "level": "error", "message": {"text": "FastAPI POST `api_wht_cert` without auth dependency \u2014 routes/purchase_routes.py:286"}, "properties": {"repobilityId": "52d3b8bafd831004", "scanner": "scanner-primary", "fingerprint": "90997f28d2e60b4c", "layer": "security", "severity": "high", "confidence": 1.0, "tags": ["auth", "owasp", "auth.fastapi.unauth_mutation"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "routes/purchase_routes.py"}, "region": {"startLine": 286}}}]}, {"ruleId": "scanner-38f0ba741baaecff", "level": "error", "message": {"text": "FastAPI POST `api_add_attachment` without auth dependency \u2014 routes/purchase_routes.py:343"}, "properties": {"repobilityId": "4350d10b15f473dc", "scanner": "scanner-primary", "fingerprint": "38f0ba741baaecff", "layer": "security", "severity": "high", "confidence": 1.0, "tags": ["auth", "owasp", "auth.fastapi.unauth_mutation"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "routes/purchase_routes.py"}, "region": {"startLine": 343}}}]}, {"ruleId": "scanner-59946e60700b3d1e", "level": "error", "message": {"text": "FastAPI DELETE `api_delete_attachment` without auth dependency \u2014 routes/purchase_routes.py:355"}, "properties": {"repobilityId": "5d0fa4f9446c7726", "scanner": "scanner-primary", "fingerprint": "59946e60700b3d1e", "layer": "security", "severity": "high", "confidence": 1.0, "tags": ["auth", "owasp", "auth.fastapi.unauth_mutation"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "routes/purchase_routes.py"}, "region": {"startLine": 355}}}]}, {"ruleId": "scanner-7e8846840b79b9fc", "level": "error", "message": {"text": "FastAPI POST `create_line_binding_code` without auth dependency \u2014 routes/line_binding_routes.py:45"}, "properties": {"repobilityId": "02e958ccae31d24d", "scanner": "scanner-primary", "fingerprint": "7e8846840b79b9fc", "layer": "security", "severity": "high", "confidence": 1.0, "tags": ["auth", "owasp", "auth.fastapi.unauth_mutation"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "routes/line_binding_routes.py"}, "region": {"startLine": 45}}}]}, {"ruleId": "scanner-87ab2b5dce7f2f6f", "level": "error", "message": {"text": "FastAPI DELETE `delete_line_binding` without auth dependency \u2014 routes/line_binding_routes.py:84"}, "properties": {"repobilityId": "d4050ac1afa2d659", "scanner": "scanner-primary", "fingerprint": "87ab2b5dce7f2f6f", "layer": "security", "severity": "high", "confidence": 1.0, "tags": ["auth", "owasp", "auth.fastapi.unauth_mutation"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "routes/line_binding_routes.py"}, "region": {"startLine": 84}}}]}, {"ruleId": "scanner-291f0831fa3d7eb3", "level": "error", "message": {"text": "FastAPI POST `update_my_lang` without auth dependency \u2014 routes/line_binding_routes.py:104"}, "properties": {"repobilityId": "ead4937f3ce0cf60", "scanner": "scanner-primary", "fingerprint": "291f0831fa3d7eb3", "layer": "security", "severity": "high", "confidence": 1.0, "tags": ["auth", "owasp", "auth.fastapi.unauth_mutation"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "routes/line_binding_routes.py"}, "region": {"startLine": 104}}}]}, {"ruleId": "scanner-8c16a4ca8eea1fde", "level": "error", "message": {"text": "FastAPI POST `switch_company` without auth dependency \u2014 routes/billing_credits_routes.py:186"}, "properties": {"repobilityId": "d0ca1927e2abead4", "scanner": "scanner-primary", "fingerprint": "8c16a4ca8eea1fde", "layer": "security", "severity": "high", "confidence": 1.0, "tags": ["auth", "owasp", "auth.fastapi.unauth_mutation"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "routes/billing_credits_routes.py"}, "region": {"startLine": 186}}}]}, {"ruleId": "scanner-544cdd9a616c7761", "level": "error", "message": {"text": "FastAPI PUT `archive_settings_put` without auth dependency \u2014 routes/settings_routes.py:85"}, "properties": {"repobilityId": "812a37643bf0b4db", "scanner": "scanner-primary", "fingerprint": "544cdd9a616c7761", "layer": "security", "severity": "high", "confidence": 1.0, "tags": ["auth", "owasp", "auth.fastapi.unauth_mutation"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "routes/settings_routes.py"}, "region": {"startLine": 85}}}]}, {"ruleId": "scanner-e66f72ceca30f90d", "level": "error", "message": {"text": "FastAPI POST `archive_rename_preview` without auth dependency \u2014 routes/settings_routes.py:102"}, "properties": {"repobilityId": "d4d293d0fc0b7320", "scanner": "scanner-primary", "fingerprint": "e66f72ceca30f90d", "layer": "security", "severity": "high", "confidence": 1.0, "tags": ["auth", "owasp", "auth.fastapi.unauth_mutation"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "routes/settings_routes.py"}, "region": {"startLine": 102}}}]}, {"ruleId": "scanner-8dcabe924213375b", "level": "error", "message": {"text": "FastAPI PUT `dup_check_put` without auth dependency \u2014 routes/settings_routes.py:129"}, "properties": {"repobilityId": "4747f62e5179f64d", "scanner": "scanner-primary", "fingerprint": "8dcabe924213375b", "layer": "security", "severity": "high", "confidence": 1.0, "tags": ["auth", "owasp", "auth.fastapi.unauth_mutation"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "routes/settings_routes.py"}, "region": {"startLine": 129}}}]}, {"ruleId": "scanner-9fe836bbf3753a58", "level": "error", "message": {"text": "FastAPI PUT `erp_push_mode_put` without auth dependency \u2014 routes/settings_routes.py:152"}, "properties": {"repobilityId": "da8977b3c3647238", "scanner": "scanner-primary", "fingerprint": "9fe836bbf3753a58", "layer": "security", "severity": "high", "confidence": 1.0, "tags": ["auth", "owasp", "auth.fastapi.unauth_mutation"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "routes/settings_routes.py"}, "region": {"startLine": 152}}}]}, {"ruleId": "scanner-c24b192034179461", "level": "error", "message": {"text": "FastAPI POST `create_custom_role` without auth dependency \u2014 routes/console_roles_routes.py:50"}, "properties": {"repobilityId": "0c14efa0ef9b43f0", "scanner": "scanner-primary", "fingerprint": "c24b192034179461", "layer": "security", "severity": "high", "confidence": 1.0, "tags": ["auth", "owasp", "auth.fastapi.unauth_mutation"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "routes/console_roles_routes.py"}, "region": {"startLine": 50}}}]}, {"ruleId": "scanner-4ea0ce60e17f220a", "level": "error", "message": {"text": "FastAPI PATCH `update_custom_role` without auth dependency \u2014 routes/console_roles_routes.py:74"}, "properties": {"repobilityId": "b3a80cdae9a5b84a", "scanner": "scanner-primary", "fingerprint": "4ea0ce60e17f220a", "layer": "security", "severity": "high", "confidence": 1.0, "tags": ["auth", "owasp", "auth.fastapi.unauth_mutation"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "routes/console_roles_routes.py"}, "region": {"startLine": 74}}}]}, {"ruleId": "scanner-a4b9b316645b1551", "level": "error", "message": {"text": "FastAPI DELETE `delete_custom_role` without auth dependency \u2014 routes/console_roles_routes.py:101"}, "properties": {"repobilityId": "0f00163c6f2d8a8b", "scanner": "scanner-primary", "fingerprint": "a4b9b316645b1551", "layer": "security", "severity": "high", "confidence": 1.0, "tags": ["auth", "owasp", "auth.fastapi.unauth_mutation"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "routes/console_roles_routes.py"}, "region": {"startLine": 101}}}]}, {"ruleId": "scanner-4a6ec12a91525b39", "level": "error", "message": {"text": "FastAPI PUT `assign_role` without auth dependency \u2014 routes/console_roles_routes.py:119"}, "properties": {"repobilityId": "d83ee1072821c234", "scanner": "scanner-primary", "fingerprint": "4a6ec12a91525b39", "layer": "security", "severity": "high", "confidence": 1.0, "tags": ["auth", "owasp", "auth.fastapi.unauth_mutation"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "routes/console_roles_routes.py"}, "region": {"startLine": 119}}}]}, {"ruleId": "scanner-9286be9115a05f31", "level": "error", "message": {"text": "FastAPI POST `api_create_area` without auth dependency \u2014 routes/pos_restaurant_admin_routes.py:66"}, "properties": {"repobilityId": "1a02c28bd5e4c760", "scanner": "scanner-primary", "fingerprint": "9286be9115a05f31", "layer": "security", "severity": "high", "confidence": 1.0, "tags": ["auth", "owasp", "auth.fastapi.unauth_mutation"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "routes/pos_restaurant_admin_routes.py"}, "region": {"startLine": 66}}}]}, {"ruleId": "scanner-c287b5cdc17784ef", "level": "error", "message": {"text": "FastAPI PATCH `api_update_area` without auth dependency \u2014 routes/pos_restaurant_admin_routes.py:78"}, "properties": {"repobilityId": "a40cc5fb1854aeca", "scanner": "scanner-primary", "fingerprint": "c287b5cdc17784ef", "layer": "security", "severity": "high", "confidence": 1.0, "tags": ["auth", "owasp", "auth.fastapi.unauth_mutation"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "routes/pos_restaurant_admin_routes.py"}, "region": {"startLine": 78}}}]}, {"ruleId": "scanner-7b8e9d297e7285fd", "level": "error", "message": {"text": "FastAPI DELETE `api_delete_area` without auth dependency \u2014 routes/pos_restaurant_admin_routes.py:91"}, "properties": {"repobilityId": "db46285c076f8d8c", "scanner": "scanner-primary", "fingerprint": "7b8e9d297e7285fd", "layer": "security", "severity": "high", "confidence": 1.0, "tags": ["auth", "owasp", "auth.fastapi.unauth_mutation"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "routes/pos_restaurant_admin_routes.py"}, "region": {"startLine": 91}}}]}, {"ruleId": "scanner-ed12182b8a7056d7", "level": "error", "message": {"text": "FastAPI POST `api_create_table` without auth dependency \u2014 routes/pos_restaurant_admin_routes.py:140"}, "properties": {"repobilityId": "4e1ea12be5fb5320", "scanner": "scanner-primary", "fingerprint": "ed12182b8a7056d7", "layer": "security", "severity": "high", "confidence": 1.0, "tags": ["auth", "owasp", "auth.fastapi.unauth_mutation"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "routes/pos_restaurant_admin_routes.py"}, "region": {"startLine": 140}}}]}, {"ruleId": "scanner-07db653b20fe47de", "level": "error", "message": {"text": "FastAPI PATCH `api_update_table` without auth dependency \u2014 routes/pos_restaurant_admin_routes.py:158"}, "properties": {"repobilityId": "6028702f52ebfd77", "scanner": "scanner-primary", "fingerprint": "07db653b20fe47de", "layer": "security", "severity": "high", "confidence": 1.0, "tags": ["auth", "owasp", "auth.fastapi.unauth_mutation"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "routes/pos_restaurant_admin_routes.py"}, "region": {"startLine": 158}}}]}, {"ruleId": "scanner-b9f83e4f137fbc8b", "level": "error", "message": {"text": "FastAPI DELETE `api_delete_table` without auth dependency \u2014 routes/pos_restaurant_admin_routes.py:171"}, "properties": {"repobilityId": "8d69af3c48488731", "scanner": "scanner-primary", "fingerprint": "b9f83e4f137fbc8b", "layer": "security", "severity": "high", "confidence": 1.0, "tags": ["auth", "owasp", "auth.fastapi.unauth_mutation"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "routes/pos_restaurant_admin_routes.py"}, "region": {"startLine": 171}}}]}, {"ruleId": "scanner-0426965805455355", "level": "error", "message": {"text": "FastAPI POST `create_workspace_client` without auth dependency \u2014 routes/workspace_routes.py:143"}, "properties": {"repobilityId": "f4d70a29e7002af3", "scanner": "scanner-primary", "fingerprint": "0426965805455355", "layer": "security", "severity": "high", "confidence": 1.0, "tags": ["auth", "owasp", "auth.fastapi.unauth_mutation"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "routes/workspace_routes.py"}, "region": {"startLine": 143}}}]}, {"ruleId": "scanner-593a50f4ff4bcbd3", "level": "error", "message": {"text": "FastAPI PUT `bind_workspace_endpoint` without auth dependency \u2014 routes/workspace_routes.py:186"}, "properties": {"repobilityId": "e1bd65c44c303abe", "scanner": "scanner-primary", "fingerprint": "593a50f4ff4bcbd3", "layer": "security", "severity": "high", "confidence": 1.0, "tags": ["auth", "owasp", "auth.fastapi.unauth_mutation"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "routes/workspace_routes.py"}, "region": {"startLine": 186}}}]}, {"ruleId": "scanner-ee044fe0e38e0d82", "level": "error", "message": {"text": "FastAPI PATCH `update_workspace_client_route` without auth dependency \u2014 routes/workspace_routes.py:203"}, "properties": {"repobilityId": "aefd9a1f767883eb", "scanner": "scanner-primary", "fingerprint": "ee044fe0e38e0d82", "layer": "security", "severity": "high", "confidence": 1.0, "tags": ["auth", "owasp", "auth.fastapi.unauth_mutation"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "routes/workspace_routes.py"}, "region": {"startLine": 203}}}]}, {"ruleId": "scanner-3f461fd1d428907a", "level": "error", "message": {"text": "FastAPI DELETE `archive_workspace_client_route` without auth dependency \u2014 routes/workspace_routes.py:237"}, "properties": {"repobilityId": "9c4ace79b45534e5", "scanner": "scanner-primary", "fingerprint": "3f461fd1d428907a", "layer": "security", "severity": "high", "confidence": 1.0, "tags": ["auth", "owasp", "auth.fastapi.unauth_mutation"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "routes/workspace_routes.py"}, "region": {"startLine": 237}}}]}, {"ruleId": "scanner-28b3543c5e31ea64", "level": "error", "message": {"text": "FastAPI POST `api_create_client` without auth dependency \u2014 routes/clients_routes.py:126"}, "properties": {"repobilityId": "88e9fb9cb21a6408", "scanner": "scanner-primary", "fingerprint": "28b3543c5e31ea64", "layer": "security", "severity": "high", "confidence": 1.0, "tags": ["auth", "owasp", "auth.fastapi.unauth_mutation"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "routes/clients_routes.py"}, "region": {"startLine": 126}}}]}, {"ruleId": "scanner-fca92c24c9cc7ef7", "level": "error", "message": {"text": "FastAPI PATCH `api_update_client` without auth dependency \u2014 routes/clients_routes.py:148"}, "properties": {"repobilityId": "7d2b311881383126", "scanner": "scanner-primary", "fingerprint": "fca92c24c9cc7ef7", "layer": "security", "severity": "high", "confidence": 1.0, "tags": ["auth", "owasp", "auth.fastapi.unauth_mutation"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "routes/clients_routes.py"}, "region": {"startLine": 148}}}]}, {"ruleId": "scanner-00f7f8958df1de6a", "level": "error", "message": {"text": "FastAPI DELETE `api_delete_client` without auth dependency \u2014 routes/clients_routes.py:164"}, "properties": {"repobilityId": "4234e478d11fefd0", "scanner": "scanner-primary", "fingerprint": "00f7f8958df1de6a", "layer": "security", "severity": "high", "confidence": 1.0, "tags": ["auth", "owasp", "auth.fastapi.unauth_mutation"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "routes/clients_routes.py"}, "region": {"startLine": 164}}}]}, {"ruleId": "scanner-03f3255877a6239f", "level": "error", "message": {"text": "FastAPI POST `api_batch_delete_clients` without auth dependency \u2014 routes/clients_routes.py:178"}, "properties": {"repobilityId": "5c45bc2bc6c34440", "scanner": "scanner-primary", "fingerprint": "03f3255877a6239f", "layer": "security", "severity": "high", "confidence": 1.0, "tags": ["auth", "owasp", "auth.fastapi.unauth_mutation"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "routes/clients_routes.py"}, "region": {"startLine": 178}}}]}, {"ruleId": "scanner-339dcdd68483e168", "level": "error", "message": {"text": "FastAPI PUT `change_member_role` without auth dependency \u2014 routes/console_team_routes.py:121"}, "properties": {"repobilityId": "f42bd5ad9083ff1f", "scanner": "scanner-primary", "fingerprint": "339dcdd68483e168", "layer": "security", "severity": "high", "confidence": 1.0, "tags": ["auth", "owasp", "auth.fastapi.unauth_mutation"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "routes/console_team_routes.py"}, "region": {"startLine": 121}}}]}, {"ruleId": "scanner-a2dee80fda484bac", "level": "error", "message": {"text": "FastAPI PUT `change_member_scope` without auth dependency \u2014 routes/console_team_routes.py:146"}, "properties": {"repobilityId": "ecfbd8486f0d167f", "scanner": "scanner-primary", "fingerprint": "a2dee80fda484bac", "layer": "security", "severity": "high", "confidence": 1.0, "tags": ["auth", "owasp", "auth.fastapi.unauth_mutation"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "routes/console_team_routes.py"}, "region": {"startLine": 146}}}]}, {"ruleId": "scanner-643f78ef5eacb18c", "level": "error", "message": {"text": "FastAPI PATCH `toggle_member` without auth dependency \u2014 routes/console_team_routes.py:174"}, "properties": {"repobilityId": "9e1f409925fc10e9", "scanner": "scanner-primary", "fingerprint": "643f78ef5eacb18c", "layer": "security", "severity": "high", "confidence": 1.0, "tags": ["auth", "owasp", "auth.fastapi.unauth_mutation"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "routes/console_team_routes.py"}, "region": {"startLine": 174}}}]}, {"ruleId": "scanner-ceab71f28f258eaa", "level": "error", "message": {"text": "FastAPI DELETE `remove_member` without auth dependency \u2014 routes/console_team_routes.py:196"}, "properties": {"repobilityId": "653c07ca017d284e", "scanner": "scanner-primary", "fingerprint": "ceab71f28f258eaa", "layer": "security", "severity": "high", "confidence": 1.0, "tags": ["auth", "owasp", "auth.fastapi.unauth_mutation"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "routes/console_team_routes.py"}, "region": {"startLine": 196}}}]}, {"ruleId": "scanner-82fd3d07def3ee01", "level": "error", "message": {"text": "FastAPI POST `api_notif_create_rule` without auth dependency \u2014 routes/notification_routes.py:84"}, "properties": {"repobilityId": "7c093a88c346dfc6", "scanner": "scanner-primary", "fingerprint": "82fd3d07def3ee01", "layer": "security", "severity": "high", "confidence": 1.0, "tags": ["auth", "owasp", "auth.fastapi.unauth_mutation"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "routes/notification_routes.py"}, "region": {"startLine": 84}}}]}, {"ruleId": "scanner-9cdcccf3c78e9538", "level": "error", "message": {"text": "FastAPI PATCH `api_notif_update_rule` without auth dependency \u2014 routes/notification_routes.py:109"}, "properties": {"repobilityId": "eb6d48399dc37378", "scanner": "scanner-primary", "fingerprint": "9cdcccf3c78e9538", "layer": "security", "severity": "high", "confidence": 1.0, "tags": ["auth", "owasp", "auth.fastapi.unauth_mutation"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "routes/notification_routes.py"}, "region": {"startLine": 109}}}]}, {"ruleId": "scanner-f37e7e7e38717e16", "level": "error", "message": {"text": "FastAPI DELETE `api_notif_delete_rule` without auth dependency \u2014 routes/notification_routes.py:139"}, "properties": {"repobilityId": "3bef6085551a1af5", "scanner": "scanner-primary", "fingerprint": "f37e7e7e38717e16", "layer": "security", "severity": "high", "confidence": 1.0, "tags": ["auth", "owasp", "auth.fastapi.unauth_mutation"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "routes/notification_routes.py"}, "region": {"startLine": 139}}}]}, {"ruleId": "scanner-6af33f8c2da7198e", "level": "error", "message": {"text": "FastAPI POST `api_notif_test_send` without auth dependency \u2014 routes/notification_routes.py:152"}, "properties": {"repobilityId": "6221f2d786c9fe40", "scanner": "scanner-primary", "fingerprint": "6af33f8c2da7198e", "layer": "security", "severity": "high", "confidence": 1.0, "tags": ["auth", "owasp", "auth.fastapi.unauth_mutation"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "routes/notification_routes.py"}, "region": {"startLine": 152}}}]}, {"ruleId": "scanner-bc779fc19b2d99db", "level": "error", "message": {"text": "FastAPI POST `erp_endpoints_create` without auth dependency \u2014 routes/erp_endpoints_routes.py:70"}, "properties": {"repobilityId": "7b2f26a462d810bd", "scanner": "scanner-primary", "fingerprint": "bc779fc19b2d99db", "layer": "security", "severity": "high", "confidence": 1.0, "tags": ["auth", "owasp", "auth.fastapi.unauth_mutation"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "routes/erp_endpoints_routes.py"}, "region": {"startLine": 70}}}]}, {"ruleId": "scanner-af2cf5163989ea94", "level": "error", "message": {"text": "FastAPI PATCH `erp_endpoints_update` without auth dependency \u2014 routes/erp_endpoints_routes.py:190"}, "properties": {"repobilityId": "abbb80dba154812b", "scanner": "scanner-primary", "fingerprint": "af2cf5163989ea94", "layer": "security", "severity": "high", "confidence": 1.0, "tags": ["auth", "owasp", "auth.fastapi.unauth_mutation"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "routes/erp_endpoints_routes.py"}, "region": {"startLine": 190}}}]}, {"ruleId": "scanner-2fe0ef422940435c", "level": "error", "message": {"text": "FastAPI DELETE `erp_endpoints_delete` without auth dependency \u2014 routes/erp_endpoints_routes.py:277"}, "properties": {"repobilityId": "40da1f41e81394ef", "scanner": "scanner-primary", "fingerprint": "2fe0ef422940435c", "layer": "security", "severity": "high", "confidence": 1.0, "tags": ["auth", "owasp", "auth.fastapi.unauth_mutation"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "routes/erp_endpoints_routes.py"}, "region": {"startLine": 277}}}]}, {"ruleId": "scanner-b265dd8e6a604577", "level": "error", "message": {"text": "FastAPI PATCH `erp_endpoints_update_seed` without auth dependency \u2014 routes/erp_endpoints_routes.py:294"}, "properties": {"repobilityId": "a56e0f3651f02f33", "scanner": "scanner-primary", "fingerprint": "b265dd8e6a604577", "layer": "security", "severity": "high", "confidence": 1.0, "tags": ["auth", "owasp", "auth.fastapi.unauth_mutation"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "routes/erp_endpoints_routes.py"}, "region": {"startLine": 294}}}]}, {"ruleId": "scanner-bc4c7c5250b0f104", "level": "error", "message": {"text": "FastAPI POST `erp_map_upsert_client` without auth dependency \u2014 routes/erp_mappings_routes.py:67"}, "properties": {"repobilityId": "6245f9e6af10decb", "scanner": "scanner-primary", "fingerprint": "bc4c7c5250b0f104", "layer": "security", "severity": "high", "confidence": 1.0, "tags": ["auth", "owasp", "auth.fastapi.unauth_mutation"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "routes/erp_mappings_routes.py"}, "region": {"startLine": 67}}}]}, {"ruleId": "scanner-06bcf37897c3dcf9", "level": "error", "message": {"text": "FastAPI DELETE `erp_map_delete_client` without auth dependency \u2014 routes/erp_mappings_routes.py:85"}, "properties": {"repobilityId": "162587ce6dacddf1", "scanner": "scanner-primary", "fingerprint": "06bcf37897c3dcf9", "layer": "security", "severity": "high", "confidence": 1.0, "tags": ["auth", "owasp", "auth.fastapi.unauth_mutation"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "routes/erp_mappings_routes.py"}, "region": {"startLine": 85}}}]}, {"ruleId": "scanner-4368fd07dc76b533", "level": "error", "message": {"text": "FastAPI POST `erp_map_upsert_account` without auth dependency \u2014 routes/erp_mappings_routes.py:105"}, "properties": {"repobilityId": "09edd682b23258c0", "scanner": "scanner-primary", "fingerprint": "4368fd07dc76b533", "layer": "security", "severity": "high", "confidence": 1.0, "tags": ["auth", "owasp", "auth.fastapi.unauth_mutation"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "routes/erp_mappings_routes.py"}, "region": {"startLine": 105}}}]}, {"ruleId": "scanner-0ad624adb2ab3a91", "level": "error", "message": {"text": "FastAPI DELETE `erp_map_delete_account` without auth dependency \u2014 routes/erp_mappings_routes.py:124"}, "properties": {"repobilityId": "2a69d731ef868185", "scanner": "scanner-primary", "fingerprint": "0ad624adb2ab3a91", "layer": "security", "severity": "high", "confidence": 1.0, "tags": ["auth", "owasp", "auth.fastapi.unauth_mutation"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "routes/erp_mappings_routes.py"}, "region": {"startLine": 124}}}]}, {"ruleId": "scanner-f376b91ac2b2b007", "level": "error", "message": {"text": "FastAPI POST `erp_map_upsert_tax` without auth dependency \u2014 routes/erp_mappings_routes.py:144"}, "properties": {"repobilityId": "95d51d9cc4148751", "scanner": "scanner-primary", "fingerprint": "f376b91ac2b2b007", "layer": "security", "severity": "high", "confidence": 1.0, "tags": ["auth", "owasp", "auth.fastapi.unauth_mutation"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "routes/erp_mappings_routes.py"}, "region": {"startLine": 144}}}]}, {"ruleId": "scanner-e7d3116f70afb29d", "level": "error", "message": {"text": "FastAPI DELETE `erp_map_delete_tax` without auth dependency \u2014 routes/erp_mappings_routes.py:162"}, "properties": {"repobilityId": "2c5068592aafd3da", "scanner": "scanner-primary", "fingerprint": "e7d3116f70afb29d", "layer": "security", "severity": "high", "confidence": 1.0, "tags": ["auth", "owasp", "auth.fastapi.unauth_mutation"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "routes/erp_mappings_routes.py"}, "region": {"startLine": 162}}}]}, {"ruleId": "scanner-1fba6c45ff12a91d", "level": "error", "message": {"text": "FastAPI POST `upsert_mapping_product` without auth dependency \u2014 routes/erp_mappings_routes.py:210"}, "properties": {"repobilityId": "414b976629863569", "scanner": "scanner-primary", "fingerprint": "1fba6c45ff12a91d", "layer": "security", "severity": "high", "confidence": 1.0, "tags": ["auth", "owasp", "auth.fastapi.unauth_mutation"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "routes/erp_mappings_routes.py"}, "region": {"startLine": 210}}}]}, {"ruleId": "scanner-d4d0b0d23985abde", "level": "error", "message": {"text": "FastAPI DELETE `delete_mapping_product` without auth dependency \u2014 routes/erp_mappings_routes.py:234"}, "properties": {"repobilityId": "c3088173eda1e929", "scanner": "scanner-primary", "fingerprint": "d4d0b0d23985abde", "layer": "security", "severity": "high", "confidence": 1.0, "tags": ["auth", "owasp", "auth.fastapi.unauth_mutation"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "routes/erp_mappings_routes.py"}, "region": {"startLine": 234}}}]}, {"ruleId": "scanner-de232f199549a7f0", "level": "error", "message": {"text": "FastAPI PUT `api_save_payment_settings` without auth dependency \u2014 routes/pos_payment_routes.py:54"}, "properties": {"repobilityId": "289c75b6b79163f7", "scanner": "scanner-primary", "fingerprint": "de232f199549a7f0", "layer": "security", "severity": "high", "confidence": 1.0, "tags": ["auth", "owasp", "auth.fastapi.unauth_mutation"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "routes/pos_payment_routes.py"}, "region": {"startLine": 54}}}]}, {"ruleId": "scanner-3470ec75300a2fcd", "level": "error", "message": {"text": "FastAPI POST `admin_ban_user` without auth dependency \u2014 routes/auth_admin_risk_routes.py:178"}, "properties": {"repobilityId": "95e3c9711c0a314a", "scanner": "scanner-primary", "fingerprint": "3470ec75300a2fcd", "layer": "security", "severity": "high", "confidence": 1.0, "tags": ["auth", "owasp", "auth.fastapi.unauth_mutation"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "routes/auth_admin_risk_routes.py"}, "region": {"startLine": 178}}}]}, {"ruleId": "scanner-7114f6ad4ed7a5d2", "level": "error", "message": {"text": "FastAPI POST `admin_unban_user` without auth dependency \u2014 routes/auth_admin_risk_routes.py:206"}, "properties": {"repobilityId": "b70c774240adb2bc", "scanner": "scanner-primary", "fingerprint": "7114f6ad4ed7a5d2", "layer": "security", "severity": "high", "confidence": 1.0, "tags": ["auth", "owasp", "auth.fastapi.unauth_mutation"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "routes/auth_admin_risk_routes.py"}, "region": {"startLine": 206}}}]}, {"ruleId": "scanner-fd0e2d57f9f89bd6", "level": "error", "message": {"text": "FastAPI POST `admin_risk_batch_ban` without auth dependency \u2014 routes/auth_admin_risk_routes.py:233"}, "properties": {"repobilityId": "80d13fc62ac15f1f", "scanner": "scanner-primary", "fingerprint": "fd0e2d57f9f89bd6", "layer": "security", "severity": "high", "confidence": 1.0, "tags": ["auth", "owasp", "auth.fastapi.unauth_mutation"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "routes/auth_admin_risk_routes.py"}, "region": {"startLine": 233}}}]}, {"ruleId": "scanner-4b58df59474aae33", "level": "error", "message": {"text": "FastAPI POST `ocr_recognize` without auth dependency \u2014 routes/ocr_recognize_routes.py:38"}, "properties": {"repobilityId": "f54b4abd633a60b3", "scanner": "scanner-primary", "fingerprint": "4b58df59474aae33", "layer": "security", "severity": "high", "confidence": 1.0, "tags": ["auth", "owasp", "auth.fastapi.unauth_mutation"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "routes/ocr_recognize_routes.py"}, "region": {"startLine": 38}}}]}, {"ruleId": "scanner-a098ad678e85d356", "level": "error", "message": {"text": "FastAPI POST `api_generate_filings` without auth dependency \u2014 routes/tax_routes.py:124"}, "properties": {"repobilityId": "42fe79eabc220446", "scanner": "scanner-primary", "fingerprint": "a098ad678e85d356", "layer": "security", "severity": "high", "confidence": 1.0, "tags": ["auth", "owasp", "auth.fastapi.unauth_mutation"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "routes/tax_routes.py"}, "region": {"startLine": 124}}}]}, {"ruleId": "scanner-c4685a89002f3225", "level": "error", "message": {"text": "FastAPI POST `api_recompute_filing` without auth dependency \u2014 routes/tax_routes.py:152"}, "properties": {"repobilityId": "e6b975a707749aff", "scanner": "scanner-primary", "fingerprint": "c4685a89002f3225", "layer": "security", "severity": "high", "confidence": 1.0, "tags": ["auth", "owasp", "auth.fastapi.unauth_mutation"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "routes/tax_routes.py"}, "region": {"startLine": 152}}}]}, {"ruleId": "scanner-c6eaeba496e3cf81", "level": "error", "message": {"text": "FastAPI POST `api_check_filing` without auth dependency \u2014 routes/tax_routes.py:164"}, "properties": {"repobilityId": "960b90d8351388b2", "scanner": "scanner-primary", "fingerprint": "c6eaeba496e3cf81", "layer": "security", "severity": "high", "confidence": 1.0, "tags": ["auth", "owasp", "auth.fastapi.unauth_mutation"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "routes/tax_routes.py"}, "region": {"startLine": 164}}}]}, {"ruleId": "scanner-150eef5068dba328", "level": "error", "message": {"text": "FastAPI POST `api_file_filing` without auth dependency \u2014 routes/tax_routes.py:180"}, "properties": {"repobilityId": "4d835f6ed85f1307", "scanner": "scanner-primary", "fingerprint": "150eef5068dba328", "layer": "security", "severity": "high", "confidence": 1.0, "tags": ["auth", "owasp", "auth.fastapi.unauth_mutation"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "routes/tax_routes.py"}, "region": {"startLine": 180}}}]}, {"ruleId": "scanner-501ecac3387b3718", "level": "error", "message": {"text": "FastAPI POST `api_mark_filed` without auth dependency \u2014 routes/tax_routes.py:213"}, "properties": {"repobilityId": "619d4969e6bdee27", "scanner": "scanner-primary", "fingerprint": "501ecac3387b3718", "layer": "security", "severity": "high", "confidence": 1.0, "tags": ["auth", "owasp", "auth.fastapi.unauth_mutation"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "routes/tax_routes.py"}, "region": {"startLine": 213}}}]}, {"ruleId": "scanner-e760e686b82de67c", "level": "error", "message": {"text": "FastAPI POST `api_issue_wht_cert` without auth dependency \u2014 routes/tax_routes.py:292"}, "properties": {"repobilityId": "e1ef6794b9e806f4", "scanner": "scanner-primary", "fingerprint": "e760e686b82de67c", "layer": "security", "severity": "high", "confidence": 1.0, "tags": ["auth", "owasp", "auth.fastapi.unauth_mutation"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "routes/tax_routes.py"}, "region": {"startLine": 292}}}]}, {"ruleId": "scanner-8dfb730435741bd0", "level": "error", "message": {"text": "FastAPI PUT `api_update_settings` without auth dependency \u2014 routes/tax_routes.py:326"}, "properties": {"repobilityId": "3ccd14206d5bd92c", "scanner": "scanner-primary", "fingerprint": "8dfb730435741bd0", "layer": "security", "severity": "high", "confidence": 1.0, "tags": ["auth", "owasp", "auth.fastapi.unauth_mutation"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "routes/tax_routes.py"}, "region": {"startLine": 326}}}]}, {"ruleId": "scanner-9fb96a201228dd7e", "level": "error", "message": {"text": "FastAPI POST `api_close_period` without auth dependency \u2014 routes/accounting_books_routes.py:131"}, "properties": {"repobilityId": "263d67ae5bc05506", "scanner": "scanner-primary", "fingerprint": "9fb96a201228dd7e", "layer": "security", "severity": "high", "confidence": 1.0, "tags": ["auth", "owasp", "auth.fastapi.unauth_mutation"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "routes/accounting_books_routes.py"}, "region": {"startLine": 131}}}]}, {"ruleId": "scanner-4a1ed173c4fb0216", "level": "error", "message": {"text": "FastAPI POST `line_webhook` without auth dependency \u2014 routes/line_webhook_routes.py:251"}, "properties": {"repobilityId": "b9cb85e995ebcdb6", "scanner": "scanner-primary", "fingerprint": "4a1ed173c4fb0216", "layer": "security", "severity": "high", "confidence": 1.0, "tags": ["auth", "owasp", "auth.fastapi.unauth_mutation"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "routes/line_webhook_routes.py"}, "region": {"startLine": 251}}}]}, {"ruleId": "scanner-a65d3bb82de92937", "level": "error", "message": {"text": "FastAPI PUT `api_set_seller` without auth dependency \u2014 routes/sales_seller_routes.py:81"}, "properties": {"repobilityId": "ad15ce10cef215e6", "scanner": "scanner-primary", "fingerprint": "a65d3bb82de92937", "layer": "security", "severity": "high", "confidence": 1.0, "tags": ["auth", "owasp", "auth.fastapi.unauth_mutation"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "routes/sales_seller_routes.py"}, "region": {"startLine": 81}}}]}, {"ruleId": "scanner-7736c8a7ea262405", "level": "error", "message": {"text": "FastAPI POST `api_liff_auth` without auth dependency \u2014 routes/line_liff_routes.py:54"}, "properties": {"repobilityId": "b842375f8555505b", "scanner": "scanner-primary", "fingerprint": "7736c8a7ea262405", "layer": "security", "severity": "high", "confidence": 1.0, "tags": ["auth", "owasp", "auth.fastapi.unauth_mutation"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "routes/line_liff_routes.py"}, "region": {"startLine": 54}}}]}, {"ruleId": "scanner-3708fa50a3ce44fb", "level": "error", "message": {"text": "FastAPI DELETE `clear_old_tasks` without auth dependency \u2014 routes/vat_excel_tasks_routes.py:88"}, "properties": {"repobilityId": "5d117956cc5e46fb", "scanner": "scanner-primary", "fingerprint": "3708fa50a3ce44fb", "layer": "security", "severity": "high", "confidence": 1.0, "tags": ["auth", "owasp", "auth.fastapi.unauth_mutation"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "routes/vat_excel_tasks_routes.py"}, "region": {"startLine": 88}}}]}, {"ruleId": "scanner-62d6205970dc1cee", "level": "error", "message": {"text": "FastAPI DELETE `delete_task` without auth dependency \u2014 routes/vat_excel_tasks_routes.py:108"}, "properties": {"repobilityId": "ae40f068f52244b8", "scanner": "scanner-primary", "fingerprint": "62d6205970dc1cee", "layer": "security", "severity": "high", "confidence": 1.0, "tags": ["auth", "owasp", "auth.fastapi.unauth_mutation"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "routes/vat_excel_tasks_routes.py"}, "region": {"startLine": 108}}}]}, {"ruleId": "scanner-6078719c83aacca8", "level": "error", "message": {"text": "FastAPI POST `create_rule` without auth dependency \u2014 routes/knowledge_rules_routes.py:79"}, "properties": {"repobilityId": "69239f12ffd2c3f1", "scanner": "scanner-primary", "fingerprint": "6078719c83aacca8", "layer": "security", "severity": "high", "confidence": 1.0, "tags": ["auth", "owasp", "auth.fastapi.unauth_mutation"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "routes/knowledge_rules_routes.py"}, "region": {"startLine": 79}}}]}, {"ruleId": "scanner-2cf6a4a2e7fdf006", "level": "error", "message": {"text": "FastAPI PATCH `update_rule` without auth dependency \u2014 routes/knowledge_rules_routes.py:108"}, "properties": {"repobilityId": "95e54b30818d35fa", "scanner": "scanner-primary", "fingerprint": "2cf6a4a2e7fdf006", "layer": "security", "severity": "high", "confidence": 1.0, "tags": ["auth", "owasp", "auth.fastapi.unauth_mutation"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "routes/knowledge_rules_routes.py"}, "region": {"startLine": 108}}}]}, {"ruleId": "scanner-2fc185549b966c23", "level": "error", "message": {"text": "FastAPI DELETE `delete_rule` without auth dependency \u2014 routes/knowledge_rules_routes.py:130"}, "properties": {"repobilityId": "04a020e87917648c", "scanner": "scanner-primary", "fingerprint": "2fc185549b966c23", "layer": "security", "severity": "high", "confidence": 1.0, "tags": ["auth", "owasp", "auth.fastapi.unauth_mutation"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "routes/knowledge_rules_routes.py"}, "region": {"startLine": 130}}}]}, {"ruleId": "scanner-5e497247fd1ecbdb", "level": "error", "message": {"text": "FastAPI POST `erp_test_connection` without auth dependency \u2014 routes/erp_listing_routes.py:37"}, "properties": {"repobilityId": "6b4b791534ab65c0", "scanner": "scanner-primary", "fingerprint": "5e497247fd1ecbdb", "layer": "security", "severity": "high", "confidence": 1.0, "tags": ["auth", "owasp", "auth.fastapi.unauth_mutation"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "routes/erp_listing_routes.py"}, "region": {"startLine": 37}}}]}, {"ruleId": "scanner-284230b972eabcf1", "level": "error", "message": {"text": "FastAPI POST `erp_endpoint_test_connection` without auth dependency \u2014 routes/erp_listing_routes.py:143"}, "properties": {"repobilityId": "fbf0d7ec8970995a", "scanner": "scanner-primary", "fingerprint": "284230b972eabcf1", "layer": "security", "severity": "high", "confidence": 1.0, "tags": ["auth", "owasp", "auth.fastapi.unauth_mutation"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "routes/erp_listing_routes.py"}, "region": {"startLine": 143}}}]}, {"ruleId": "scanner-7a83ce92c8402418", "level": "error", "message": {"text": "FastAPI POST `erp_wizard_products` without auth dependency \u2014 routes/erp_listing_routes.py:436"}, "properties": {"repobilityId": "c216ce8f6620e68f", "scanner": "scanner-primary", "fingerprint": "7a83ce92c8402418", "layer": "security", "severity": "high", "confidence": 1.0, "tags": ["auth", "owasp", "auth.fastapi.unauth_mutation"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "routes/erp_listing_routes.py"}, "region": {"startLine": 436}}}]}, {"ruleId": "scanner-550c928d0ddf952b", "level": "error", "message": {"text": "Dangling fetch: PUT /api/pos/admin/onboarding (src/home/pos-onboarding.ts:146)"}, "properties": {"repobilityId": "f30c34d8e5aa2ade", "scanner": "scanner-primary", "fingerprint": "550c928d0ddf952b", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-44cd857315c4c980", "level": "error", "message": {"text": "Dangling fetch: POST /api/ocr/recognize?source=folder (src/home/folder-watcher-io.ts:96)"}, "properties": {"repobilityId": "7dea47b52c416a40", "scanner": "scanner-primary", "fingerprint": "44cd857315c4c980", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-2488261b52cbc86e", "level": "error", "message": {"text": "Dangling fetch: POST /api/reports/history/batch_export (src/home/dms-intake-invoice-submit.ts:291)"}, "properties": {"repobilityId": "99cd153d345c3339", "scanner": "scanner-primary", "fingerprint": "2488261b52cbc86e", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-ff58f17b72a40f4d", "level": "error", "message": {"text": "Dangling fetch: PUT /api/me/onboarding (src/home/onboarding-flow.ts:335)"}, "properties": {"repobilityId": "c914597bbfe5fd9b", "scanner": "scanner-primary", "fingerprint": "ff58f17b72a40f4d", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-5480f7f0d189a79f", "level": "error", "message": {"text": "Dangling fetch: POST /api/purchase/export (src/home/purchase-export.ts:86)"}, "properties": {"repobilityId": "1cf67d2c52f40c29", "scanner": "scanner-primary", "fingerprint": "5480f7f0d189a79f", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-9ab9cd318ae754a4", "level": "error", "message": {"text": "Dangling fetch: GET /api/purchase/export/${encodeURIComponent(jobId)} (src/home/purchase-export.ts:125)"}, "properties": {"repobilityId": "0074d497235b6940", "scanner": "scanner-primary", "fingerprint": "9ab9cd318ae754a4", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-78e35b37abd0f0b0", "level": "error", "message": {"text": "Dangling fetch: POST /api/purchase/export (src/home/purchase-export.ts:161)"}, "properties": {"repobilityId": "56ad4fa1a7732f18", "scanner": "scanner-primary", "fingerprint": "78e35b37abd0f0b0", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-38603f1c6c18a7f6", "level": "error", "message": {"text": "Dangling fetch: PUT /api/me/onboarding (src/home/onboarding-business.ts:153)"}, "properties": {"repobilityId": "006b2d264c233e2c", "scanner": "scanner-primary", "fingerprint": "38603f1c6c18a7f6", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-aa26eb0047956ed4", "level": "error", "message": {"text": "Dangling fetch: POST /api/ocr/recognize (src/home/dms-intake-invoice.ts:238)"}, "properties": {"repobilityId": "27b3814d171ed2ae", "scanner": "scanner-primary", "fingerprint": "aa26eb0047956ed4", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-9747e6e11c3c87ae", "level": "error", "message": {"text": "Dangling fetch: GET /api/reports/templates?lang=${encodeURIComponent(lang)} (src/home/report-templates.ts:103)"}, "properties": {"repobilityId": "e9a8fd07ced55168", "scanner": "scanner-primary", "fingerprint": "9747e6e11c3c87ae", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-8d2e0c64dc395fe2", "level": "error", "message": {"text": "Dangling fetch: POST /api/reports/history/batch_export (src/home/report-templates.ts:326)"}, "properties": {"repobilityId": "14a61fc78350fdac", "scanner": "scanner-primary", "fingerprint": "8d2e0c64dc395fe2", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-beadc873b5571365", "level": "note", "message": {"text": "Unused endpoint: POST /from-history/{history_id}"}, "properties": {"repobilityId": "64a97c25a73da05e", "scanner": "scanner-primary", "fingerprint": "beadc873b5571365", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-bba313dd9fd91ca0", "level": "note", "message": {"text": "Unused endpoint: GET /{history_id}"}, "properties": {"repobilityId": "ab484dc6a7f4a655", "scanner": "scanner-primary", "fingerprint": "bba313dd9fd91ca0", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-4a2982c7d537a154", "level": "note", "message": {"text": "Unused endpoint: POST /api/team/invitations"}, "properties": {"repobilityId": "f2f305c5a77ef622", "scanner": "scanner-primary", "fingerprint": "4a2982c7d537a154", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-0aef3ae29fb11c30", "level": "note", "message": {"text": "Unused endpoint: GET /api/team/invitations"}, "properties": {"repobilityId": "e31a4dce4c2fa6c0", "scanner": "scanner-primary", "fingerprint": "0aef3ae29fb11c30", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-10edd1f2ed0b8f70", "level": "note", "message": {"text": "Unused endpoint: DELETE /api/team/invitations/{invitation_id}"}, "properties": {"repobilityId": "4aa83c57a7a07836", "scanner": "scanner-primary", "fingerprint": "10edd1f2ed0b8f70", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-ac006bc08e201d43", "level": "note", "message": {"text": "Unused endpoint: GET /api/invitations/{token}/preview"}, "properties": {"repobilityId": "80a070864c90c12e", "scanner": "scanner-primary", "fingerprint": "ac006bc08e201d43", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-3d3544ef4dbe4592", "level": "note", "message": {"text": "Unused endpoint: POST /api/invitations/{token}/accept"}, "properties": {"repobilityId": "293e428507591f78", "scanner": "scanner-primary", "fingerprint": "3d3544ef4dbe4592", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-aa13454512cc600a", "level": "note", "message": {"text": "Unused endpoint: POST /api/ownership/transfer"}, "properties": {"repobilityId": "0b3d9c9d8618bcd7", "scanner": "scanner-primary", "fingerprint": "aa13454512cc600a", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-c6e1d1cc7f00b285", "level": "note", "message": {"text": "Unused endpoint: POST /api/ownership/transfer/accept"}, "properties": {"repobilityId": "f9dfdda79e4558ae", "scanner": "scanner-primary", "fingerprint": "c6e1d1cc7f00b285", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-621f858deaa3be43", "level": "note", "message": {"text": "Unused endpoint: GET /report"}, "properties": {"repobilityId": "58fe35c6562ff8e7", "scanner": "scanner-primary", "fingerprint": "621f858deaa3be43", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-1cbbae7002e77128", "level": "note", "message": {"text": "Unused endpoint: POST /gl-vat/run"}, "properties": {"repobilityId": "96653d979b3027f4", "scanner": "scanner-primary", "fingerprint": "1cbbae7002e77128", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-117bbe70c913bc44", "level": "note", "message": {"text": "Unused endpoint: GET /gl-vat/tasks"}, "properties": {"repobilityId": "ddfa5515322c3acf", "scanner": "scanner-primary", "fingerprint": "117bbe70c913bc44", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-9baeb4bdcf450a47", "level": "note", "message": {"text": "Unused endpoint: GET /gl-vat/{task_id}"}, "properties": {"repobilityId": "6c9131b0f8f3751f", "scanner": "scanner-primary", "fingerprint": "9baeb4bdcf450a47", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-78e585889deb1b14", "level": "note", "message": {"text": "Unused endpoint: GET /gl-vat/{task_id}/export"}, "properties": {"repobilityId": "6c2fc5fa75fe65cc", "scanner": "scanner-primary", "fingerprint": "78e585889deb1b14", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-f5492077adacae36", "level": "note", "message": {"text": "Unused endpoint: DELETE /gl-vat/{task_id}"}, "properties": {"repobilityId": "346f7c43319bedd8", "scanner": "scanner-primary", "fingerprint": "f5492077adacae36", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-f1d75e28bb4d5061", "level": "note", "message": {"text": "Unused endpoint: POST /gl-vat/tasks/batch_delete"}, "properties": {"repobilityId": "e84935c0af8b1f48", "scanner": "scanner-primary", "fingerprint": "f1d75e28bb4d5061", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-4aa35f9c575955ad", "level": "note", "message": {"text": "Unused endpoint: POST /api/admin/users"}, "properties": {"repobilityId": "95b5166b91b8a584", "scanner": "scanner-primary", "fingerprint": "4aa35f9c575955ad", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-70985c2470367d6c", "level": "note", "message": {"text": "Unused endpoint: PATCH /api/admin/users/{user_id}/quota"}, "properties": {"repobilityId": "2768bb4016f9ba2c", "scanner": "scanner-primary", "fingerprint": "70985c2470367d6c", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-97a09e08eeeed37e", "level": "note", "message": {"text": "Unused endpoint: PATCH /api/admin/users/{user_id}/status"}, "properties": {"repobilityId": "648a9a31be29b84e", "scanner": "scanner-primary", "fingerprint": "97a09e08eeeed37e", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-caf27521612ef669", "level": "note", "message": {"text": "Unused endpoint: POST /api/admin/users/{user_id}/delete"}, "properties": {"repobilityId": "944bb10be16bbef0", "scanner": "scanner-primary", "fingerprint": "caf27521612ef669", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-12fc20500f3ba93e", "level": "note", "message": {"text": "Unused endpoint: POST /api/admin/users/{user_id}/reset-password"}, "properties": {"repobilityId": "6158b1ae76094aac", "scanner": "scanner-primary", "fingerprint": "12fc20500f3ba93e", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-5cc1bc84f7a4f3f6", "level": "note", "message": {"text": "Unused endpoint: PATCH /api/admin/employees/{employee_id}/active"}, "properties": {"repobilityId": "d53a0c32612fe942", "scanner": "scanner-primary", "fingerprint": "5cc1bc84f7a4f3f6", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-3ba033cc9eb6de7d", "level": "note", "message": {"text": "Unused endpoint: POST /api/admin/employees/{employee_id}/reset-password"}, "properties": {"repobilityId": "e7ade528225d5855", "scanner": "scanner-primary", "fingerprint": "3ba033cc9eb6de7d", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-f591f5248c76ae60", "level": "note", "message": {"text": "Unused endpoint: DELETE /api/admin/employees/{employee_id}"}, "properties": {"repobilityId": "60333c6f6cdfba06", "scanner": "scanner-primary", "fingerprint": "f591f5248c76ae60", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-b7c4cd05a781afc4", "level": "note", "message": {"text": "Unused endpoint: POST /api/admin/users/{user_id}/cascade-delete"}, "properties": {"repobilityId": "6dc51ad66a593f75", "scanner": "scanner-primary", "fingerprint": "b7c4cd05a781afc4", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-9cf873a3c4656cf5", "level": "note", "message": {"text": "Unused endpoint: POST /{doc_id}/send"}, "properties": {"repobilityId": "bfcb8eca2df376cc", "scanner": "scanner-primary", "fingerprint": "9cf873a3c4656cf5", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-bb61631e79b67eb3", "level": "note", "message": {"text": "Unused endpoint: GET /shared/{token}/pdf"}, "properties": {"repobilityId": "7ed76c81d770e5b3", "scanner": "scanner-primary", "fingerprint": "bb61631e79b67eb3", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-6c2507f3182299a0", "level": "note", "message": {"text": "Unused endpoint: GET /api/version"}, "properties": {"repobilityId": "77abf33161f1928b", "scanner": "scanner-primary", "fingerprint": "6c2507f3182299a0", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-b096cb9141acd78a", "level": "note", "message": {"text": "Unused endpoint: GET /api/v1/ocr/quota"}, "properties": {"repobilityId": "e034cf25beefe424", "scanner": "scanner-primary", "fingerprint": "b096cb9141acd78a", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-57299c736f5d620c", "level": "note", "message": {"text": "Unused endpoint: POST /api/v1/ocr/recognize"}, "properties": {"repobilityId": "6e545768b112d8b6", "scanner": "scanner-primary", "fingerprint": "57299c736f5d620c", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-4756b4c4da7d2088", "level": "note", "message": {"text": "Unused endpoint: GET /api/health"}, "properties": {"repobilityId": "d9e301d80ac7dbc5", "scanner": "scanner-primary", "fingerprint": "4756b4c4da7d2088", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-52765bcf81a6e09b", "level": "note", "message": {"text": "Unused endpoint: GET /api/ready"}, "properties": {"repobilityId": "dc3cc81b0f3ed542", "scanner": "scanner-primary", "fingerprint": "52765bcf81a6e09b", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-a436691337284d03", "level": "note", "message": {"text": "Unused endpoint: GET /api/v1/health"}, "properties": {"repobilityId": "e211dfd5eeff9548", "scanner": "scanner-primary", "fingerprint": "a436691337284d03", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-61df9670b4fd8340", "level": "note", "message": {"text": "Unused endpoint: GET /api/v1/contact"}, "properties": {"repobilityId": "b372f30827d6fb25", "scanner": "scanner-primary", "fingerprint": "61df9670b4fd8340", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-5baa8971ebe192a1", "level": "note", "message": {"text": "Unused endpoint: GET /"}, "properties": {"repobilityId": "0e1e75a9f0d89316", "scanner": "scanner-primary", "fingerprint": "5baa8971ebe192a1", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-6a4dfcad3eb1618a", "level": "note", "message": {"text": "Unused endpoint: GET /login"}, "properties": {"repobilityId": "98412e958d44ff1f", "scanner": "scanner-primary", "fingerprint": "6a4dfcad3eb1618a", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-ed0fe929c38b9a74", "level": "note", "message": {"text": "Unused endpoint: GET /home"}, "properties": {"repobilityId": "7892d4c2bce275f4", "scanner": "scanner-primary", "fingerprint": "ed0fe929c38b9a74", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-953ec1a0ee6df50d", "level": "note", "message": {"text": "Unused endpoint: GET /admin"}, "properties": {"repobilityId": "05fae79465f679e1", "scanner": "scanner-primary", "fingerprint": "953ec1a0ee6df50d", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-20032897f32e6c47", "level": "note", "message": {"text": "Unused endpoint: GET /admin/{rest:path}"}, "properties": {"repobilityId": "0046a07587a91427", "scanner": "scanner-primary", "fingerprint": "20032897f32e6c47", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-a72b6601340b6cff", "level": "note", "message": {"text": "Unused endpoint: GET /pos-sw.js"}, "properties": {"repobilityId": "425cf61b3727dd21", "scanner": "scanner-primary", "fingerprint": "a72b6601340b6cff", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-4ffa15575917ffc7", "level": "note", "message": {"text": "Unused endpoint: GET /pos"}, "properties": {"repobilityId": "d402296533718ed9", "scanner": "scanner-primary", "fingerprint": "4ffa15575917ffc7", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-45a2633809b910e5", "level": "note", "message": {"text": "Unused endpoint: GET /pos/{rest:path}"}, "properties": {"repobilityId": "eb5e6d4ed352df01", "scanner": "scanner-primary", "fingerprint": "45a2633809b910e5", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-39866e2e69fe467c", "level": "note", "message": {"text": "Unused endpoint: GET /console"}, "properties": {"repobilityId": "360d8eb89f6a581d", "scanner": "scanner-primary", "fingerprint": "39866e2e69fe467c", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-e86c2f6676c6be17", "level": "note", "message": {"text": "Unused endpoint: GET /console/{rest:path}"}, "properties": {"repobilityId": "0199cff679decb22", "scanner": "scanner-primary", "fingerprint": "e86c2f6676c6be17", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-0c428493be4ea9df", "level": "note", "message": {"text": "Unused endpoint: GET /invite/{token}"}, "properties": {"repobilityId": "c3657273e8179aa5", "scanner": "scanner-primary", "fingerprint": "0c428493be4ea9df", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-9c4cb08fd0673246", "level": "note", "message": {"text": "Unused endpoint: GET /reset"}, "properties": {"repobilityId": "3d17d8d37f35266a", "scanner": "scanner-primary", "fingerprint": "9c4cb08fd0673246", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-ebe3481a27b770a5", "level": "note", "message": {"text": "Unused endpoint: GET /terms"}, "properties": {"repobilityId": "4d9e2b036eafa63e", "scanner": "scanner-primary", "fingerprint": "ebe3481a27b770a5", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-9daee89b78e9ceac", "level": "note", "message": {"text": "Unused endpoint: GET /privacy"}, "properties": {"repobilityId": "d6584d06171de8ef", "scanner": "scanner-primary", "fingerprint": "9daee89b78e9ceac", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-06399f44ad6564f6", "level": "note", "message": {"text": "Unused endpoint: GET /bases"}, "properties": {"repobilityId": "3b8fe7aec203d8bd", "scanner": "scanner-primary", "fingerprint": "06399f44ad6564f6", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-ee82d381f92e9834", "level": "note", "message": {"text": "Unused endpoint: POST /documents"}, "properties": {"repobilityId": "1910de0d713a68c6", "scanner": "scanner-primary", "fingerprint": "ee82d381f92e9834", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}]}]}